hxt 8.3.0 → 8.3.1
raw patch · 258 files changed
+411/−153978 lines, 258 filesdep ~HUnitdep ~basedep ~bytestringPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: HUnit, base, bytestring, containers, curl, directory, filepath, haskell98, network, parallel, tagsoup
API changes (from Hackage documentation)
+ Control.Arrow.ArrowTree: (//>) :: (ArrowTree a, Tree t) => a (t b) (t b) -> a (t b) (t b) -> a (t b) (t b)
+ Text.XML.HXT.DOM.MimeTypes: isTextMimeType :: String -> Bool
+ Text.XML.HXT.DOM.Util: stringToLower :: String -> String
+ Text.XML.HXT.DOM.XmlKeywords: a_no_redirect :: String
+ Text.XML.HXT.DOM.XmlKeywords: a_redirect :: String
- Text.XML.HXT.IO.GetFILE: getCont :: Bool -> String -> IO (Either String String)
+ Text.XML.HXT.IO.GetFILE: getCont :: Bool -> String -> IO (Either ([(String, String)], String) String)
- Text.XML.HXT.IO.GetFILE: getStdinCont :: Bool -> IO (Either String String)
+ Text.XML.HXT.IO.GetFILE: getStdinCont :: Bool -> IO (Either ([(String, String)], String) String)
- Text.XML.HXT.IO.GetHTTPLibCurl: getCont :: [(String, String)] -> String -> IO (Either String ([(String, String)], String))
+ Text.XML.HXT.IO.GetHTTPLibCurl: getCont :: [(String, String)] -> String -> IO (Either ([(String, String)], String) ([(String, String)], String))
Files
- Makefile +11/−0
- Version.mk +2/−2
- doc/hdoc/Control-Arrow-ArrowIO.html +0/−584
- doc/hdoc/Control-Arrow-ArrowIf.html +0/−1015
- doc/hdoc/Control-Arrow-ArrowList.html +0/−1582
- doc/hdoc/Control-Arrow-ArrowNF.html +0/−328
- doc/hdoc/Control-Arrow-ArrowState.html +0/−436
- doc/hdoc/Control-Arrow-ArrowTree.html +0/−1325
- doc/hdoc/Control-Arrow-IOListArrow.html +0/−343
- doc/hdoc/Control-Arrow-IOStateListArrow.html +0/−456
- doc/hdoc/Control-Arrow-ListArrow.html +0/−369
- doc/hdoc/Control-Arrow-ListArrows.html +0/−211
- doc/hdoc/Control-Arrow-StateListArrow.html +0/−394
- doc/hdoc/Data-AssocList.html +0/−490
- doc/hdoc/Data-Atom.html +0/−439
- doc/hdoc/Data-Char-UTF8.html +0/−287
- doc/hdoc/Data-NavTree.html +0/−630
- doc/hdoc/Data-Tree-Class.html +0/−752
- doc/hdoc/Data-Tree-NTree-TypeDefs.html +0/−440
- doc/hdoc/Text-XML-HXT-Arrow-DTDProcessing.html +0/−192
- doc/hdoc/Text-XML-HXT-Arrow-DocumentInput.html +0/−385
- doc/hdoc/Text-XML-HXT-Arrow-DocumentOutput.html +0/−375
- doc/hdoc/Text-XML-HXT-Arrow-Edit.html +0/−1762
- doc/hdoc/Text-XML-HXT-Arrow-GeneralEntitySubstitution.html +0/−182
- doc/hdoc/Text-XML-HXT-Arrow-Namespace.html +0/−896
- doc/hdoc/Text-XML-HXT-Arrow-ParserInterface.html +0/−943
- doc/hdoc/Text-XML-HXT-Arrow-Pickle-DTD.html +0/−1090
- doc/hdoc/Text-XML-HXT-Arrow-Pickle-Schema.html +0/−2191
- doc/hdoc/Text-XML-HXT-Arrow-Pickle-Xml.html +0/−3075
- doc/hdoc/Text-XML-HXT-Arrow-Pickle.html +0/−3316
- doc/hdoc/Text-XML-HXT-Arrow-ProcessDocument.html +0/−494
- doc/hdoc/Text-XML-HXT-Arrow-ReadDocument.html +0/−707
- doc/hdoc/Text-XML-HXT-Arrow-WriteDocument.html +0/−415
- doc/hdoc/Text-XML-HXT-Arrow-XPath.html +0/−883
- doc/hdoc/Text-XML-HXT-Arrow-XPathSimple.html +0/−2605
- doc/hdoc/Text-XML-HXT-Arrow-XmlArrow.html +0/−5540
- doc/hdoc/Text-XML-HXT-Arrow-XmlIOStateArrow.html +0/−4120
- doc/hdoc/Text-XML-HXT-Arrow-XmlRegex.html +0/−1179
- doc/hdoc/Text-XML-HXT-Arrow.html +0/−283
- doc/hdoc/Text-XML-HXT-DOM-FormatXmlTree.html +0/−163
- doc/hdoc/Text-XML-HXT-DOM-Interface.html +0/−162
- doc/hdoc/Text-XML-HXT-DOM-IsoLatinTables.html +0/−444
- doc/hdoc/Text-XML-HXT-DOM-MimeTypeDefaults.html +0/−151
- doc/hdoc/Text-XML-HXT-DOM-MimeTypes.html +0/−325
- doc/hdoc/Text-XML-HXT-DOM-QualifiedName.html +0/−2250
- doc/hdoc/Text-XML-HXT-DOM-ShowXml.html +0/−219
- doc/hdoc/Text-XML-HXT-DOM-TypeDefs.html +0/−1422
- doc/hdoc/Text-XML-HXT-DOM-UTF8Decoding.html +0/−258
- doc/hdoc/Text-XML-HXT-DOM-Unicode.html +0/−2317
- doc/hdoc/Text-XML-HXT-DOM-Util.html +0/−1136
- doc/hdoc/Text-XML-HXT-DOM-XmlKeywords.html +0/−569
- doc/hdoc/Text-XML-HXT-DOM-XmlNode.html +0/−1855
- doc/hdoc/Text-XML-HXT-DOM-XmlOptions.html +0/−725
- doc/hdoc/Text-XML-HXT-DTDValidation-AttributeValueValidation.html +0/−267
- doc/hdoc/Text-XML-HXT-DTDValidation-DTDValidation.html +0/−244
- doc/hdoc/Text-XML-HXT-DTDValidation-DocTransformation.html +0/−207
- doc/hdoc/Text-XML-HXT-DTDValidation-DocValidation.html +0/−194
- doc/hdoc/Text-XML-HXT-DTDValidation-IdValidation.html +0/−207
- doc/hdoc/Text-XML-HXT-DTDValidation-RE.html +0/−1174
- doc/hdoc/Text-XML-HXT-DTDValidation-TypeDefs.html +0/−1528
- doc/hdoc/Text-XML-HXT-DTDValidation-Validation.html +0/−425
- doc/hdoc/Text-XML-HXT-DTDValidation-XmlRE.html +0/−893
- doc/hdoc/Text-XML-HXT-IO-GetFILE.html +0/−177
- doc/hdoc/Text-XML-HXT-IO-GetHTTPLibCurl.html +0/−120
- doc/hdoc/Text-XML-HXT-Parser-HtmlParsec.html +0/−280
- doc/hdoc/Text-XML-HXT-Parser-ProtocolHandlerUtil.html +0/−108
- doc/hdoc/Text-XML-HXT-Parser-TagSoup.html +0/−150
- doc/hdoc/Text-XML-HXT-Parser-XhtmlEntities.html +0/−152
- doc/hdoc/Text-XML-HXT-Parser-XmlCharParser.html +0/−458
- doc/hdoc/Text-XML-HXT-Parser-XmlDTDParser.html +0/−395
- doc/hdoc/Text-XML-HXT-Parser-XmlDTDTokenParser.html +0/−342
- doc/hdoc/Text-XML-HXT-Parser-XmlEntities.html +0/−150
- doc/hdoc/Text-XML-HXT-Parser-XmlParsec.html +0/−1723
- doc/hdoc/Text-XML-HXT-Parser-XmlTokenParser.html +0/−1428
- doc/hdoc/Text-XML-HXT-RelaxNG-BasicArrows.html +0/−2532
- doc/hdoc/Text-XML-HXT-RelaxNG-CreatePattern.html +0/−318
- doc/hdoc/Text-XML-HXT-RelaxNG-DataTypeLibMysql.html +0/−197
- doc/hdoc/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html +0/−1377
- doc/hdoc/Text-XML-HXT-RelaxNG-DataTypeLibraries.html +0/−292
- doc/hdoc/Text-XML-HXT-RelaxNG-DataTypes.html +0/−2787
- doc/hdoc/Text-XML-HXT-RelaxNG-PatternFunctions.html +0/−802
- doc/hdoc/Text-XML-HXT-RelaxNG-PatternToString.html +0/−472
- doc/hdoc/Text-XML-HXT-RelaxNG-Schema.html +0/−139
- doc/hdoc/Text-XML-HXT-RelaxNG-SchemaGrammar.html +0/−139
- doc/hdoc/Text-XML-HXT-RelaxNG-Simplification.html +0/−245
- doc/hdoc/Text-XML-HXT-RelaxNG-Unicode-Blocks.html +0/−148
- doc/hdoc/Text-XML-HXT-RelaxNG-Unicode-CharProps.html +0/−1056
- doc/hdoc/Text-XML-HXT-RelaxNG-Utils.html +0/−661
- doc/hdoc/Text-XML-HXT-RelaxNG-Validation.html +0/−550
- doc/hdoc/Text-XML-HXT-RelaxNG-Validator.html +0/−788
- doc/hdoc/Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html +0/−289
- doc/hdoc/Text-XML-HXT-RelaxNG-XmlSchema-Regex.html +0/−1157
- doc/hdoc/Text-XML-HXT-RelaxNG-XmlSchema-RegexMatch.html +0/−820
- doc/hdoc/Text-XML-HXT-RelaxNG-XmlSchema-RegexParser.html +0/−149
- doc/hdoc/Text-XML-HXT-RelaxNG.html +0/−152
- doc/hdoc/Text-XML-HXT-Version.html +0/−104
- doc/hdoc/Text-XML-HXT-XPath-NavTree.html +0/−419
- doc/hdoc/Text-XML-HXT-XPath-XPathArithmetic.html +0/−348
- doc/hdoc/Text-XML-HXT-XPath-XPathDataTypes.html +0/−3034
- doc/hdoc/Text-XML-HXT-XPath-XPathEval.html +0/−545
- doc/hdoc/Text-XML-HXT-XPath-XPathFct.html +0/−804
- doc/hdoc/Text-XML-HXT-XPath-XPathKeywords.html +0/−144
- doc/hdoc/Text-XML-HXT-XPath-XPathParser.html +0/−231
- doc/hdoc/Text-XML-HXT-XPath-XPathToNodeSet.html +0/−186
- doc/hdoc/Text-XML-HXT-XPath-XPathToString.html +0/−380
- doc/hdoc/Text-XML-HXT-XPath.html +0/−125
- doc/hdoc/Text-XML-HXT-XSLT-Application.html +0/−217
- doc/hdoc/Text-XML-HXT-XSLT-Common.html +0/−1348
- doc/hdoc/Text-XML-HXT-XSLT-Compilation.html +0/−165
- doc/hdoc/Text-XML-HXT-XSLT-CompiledStylesheet.html +0/−2160
- doc/hdoc/Text-XML-HXT-XSLT-Names.html +0/−314
- doc/hdoc/Text-XML-HXT-XSLT-XsltArrows.html +0/−435
- doc/hdoc/doc-index.html +0/−15878
- doc/hdoc/haddock-util.js +0/−133
- doc/hdoc/haddock.css +0/−267
- doc/hdoc/haskell_icon.gif binary
- doc/hdoc/hxt.haddock binary
- doc/hdoc/index.html +0/−1435
- doc/hdoc/minus.gif binary
- doc/hdoc/plus.gif binary
- doc/hdoc/src/Control-Arrow-ArrowIO.html +0/−81
- doc/hdoc/src/Control-Arrow-ArrowIf.html +0/−168
- doc/hdoc/src/Control-Arrow-ArrowList.html +0/−356
- doc/hdoc/src/Control-Arrow-ArrowNF.html +0/−48
- doc/hdoc/src/Control-Arrow-ArrowState.html +0/−88
- doc/hdoc/src/Control-Arrow-ArrowTree.html +0/−311
- doc/hdoc/src/Control-Arrow-IOListArrow.html +0/−142
- doc/hdoc/src/Control-Arrow-IOStateListArrow.html +0/−202
- doc/hdoc/src/Control-Arrow-ListArrow.html +0/−129
- doc/hdoc/src/Control-Arrow-ListArrows.html +0/−57
- doc/hdoc/src/Control-Arrow-StateListArrow.html +0/−193
- doc/hdoc/src/Data-AssocList.html +0/−71
- doc/hdoc/src/Data-Atom.html +0/−147
- doc/hdoc/src/Data-Char-UTF8.html +0/−373
- doc/hdoc/src/Data-NavTree.html +0/−127
- doc/hdoc/src/Data-Tree-Class.html +0/−102
- doc/hdoc/src/Data-Tree-NTree-TypeDefs.html +0/−121
- doc/hdoc/src/Text-XML-HXT-Arrow-DTDProcessing.html +0/−523
- doc/hdoc/src/Text-XML-HXT-Arrow-DocumentInput.html +0/−442
- doc/hdoc/src/Text-XML-HXT-Arrow-DocumentOutput.html +0/−189
- doc/hdoc/src/Text-XML-HXT-Arrow-Edit.html +0/−797
- doc/hdoc/src/Text-XML-HXT-Arrow-GeneralEntitySubstitution.html +0/−354
- doc/hdoc/src/Text-XML-HXT-Arrow-Namespace.html +0/−425
- doc/hdoc/src/Text-XML-HXT-Arrow-ParserInterface.html +0/−145
- doc/hdoc/src/Text-XML-HXT-Arrow-Pickle-DTD.html +0/−342
- doc/hdoc/src/Text-XML-HXT-Arrow-Pickle-Schema.html +0/−231
- doc/hdoc/src/Text-XML-HXT-Arrow-Pickle-Xml.html +0/−704
- doc/hdoc/src/Text-XML-HXT-Arrow-Pickle.html +0/−254
- doc/hdoc/src/Text-XML-HXT-Arrow-ProcessDocument.html +0/−294
- doc/hdoc/src/Text-XML-HXT-Arrow-ReadDocument.html +0/−386
- doc/hdoc/src/Text-XML-HXT-Arrow-WriteDocument.html +0/−217
- doc/hdoc/src/Text-XML-HXT-Arrow-XPath.html +0/−297
- doc/hdoc/src/Text-XML-HXT-Arrow-XPathSimple.html +0/−517
- doc/hdoc/src/Text-XML-HXT-Arrow-XmlArrow.html +0/−642
- doc/hdoc/src/Text-XML-HXT-Arrow-XmlIOStateArrow.html +0/−963
- doc/hdoc/src/Text-XML-HXT-Arrow-XmlRegex.html +0/−314
- doc/hdoc/src/Text-XML-HXT-Arrow.html +0/−84
- doc/hdoc/src/Text-XML-HXT-DOM-FormatXmlTree.html +0/−84
- doc/hdoc/src/Text-XML-HXT-DOM-Interface.html +0/−46
- doc/hdoc/src/Text-XML-HXT-DOM-IsoLatinTables.html +0/−729
- doc/hdoc/src/Text-XML-HXT-DOM-MimeTypeDefaults.html +0/−594
- doc/hdoc/src/Text-XML-HXT-DOM-MimeTypes.html +0/−125
- doc/hdoc/src/Text-XML-HXT-DOM-QualifiedName.html +0/−547
- doc/hdoc/src/Text-XML-HXT-DOM-ShowXml.html +0/−415
- doc/hdoc/src/Text-XML-HXT-DOM-TypeDefs.html +0/−176
- doc/hdoc/src/Text-XML-HXT-DOM-UTF8Decoding.html +0/−62
- doc/hdoc/src/Text-XML-HXT-DOM-Unicode.html +0/−1114
- doc/hdoc/src/Text-XML-HXT-DOM-Util.html +0/−287
- doc/hdoc/src/Text-XML-HXT-DOM-XmlKeywords.html +0/−368
- doc/hdoc/src/Text-XML-HXT-DOM-XmlNode.html +0/−343
- doc/hdoc/src/Text-XML-HXT-DOM-XmlOptions.html +0/−191
- doc/hdoc/src/Text-XML-HXT-DTDValidation-AttributeValueValidation.html +0/−352
- doc/hdoc/src/Text-XML-HXT-DTDValidation-DTDValidation.html +0/−600
- doc/hdoc/src/Text-XML-HXT-DTDValidation-DocTransformation.html +0/−220
- doc/hdoc/src/Text-XML-HXT-DTDValidation-DocValidation.html +0/−533
- doc/hdoc/src/Text-XML-HXT-DTDValidation-IdValidation.html +0/−276
- doc/hdoc/src/Text-XML-HXT-DTDValidation-RE.html +0/−351
- doc/hdoc/src/Text-XML-HXT-DTDValidation-TypeDefs.html +0/−175
- doc/hdoc/src/Text-XML-HXT-DTDValidation-Validation.html +0/−140
- doc/hdoc/src/Text-XML-HXT-DTDValidation-XmlRE.html +0/−126
- doc/hdoc/src/Text-XML-HXT-IO-GetFILE.html +0/−110
- doc/hdoc/src/Text-XML-HXT-IO-GetHTTPLibCurl.html +0/−252
- doc/hdoc/src/Text-XML-HXT-Parser-HtmlParsec.html +0/−547
- doc/hdoc/src/Text-XML-HXT-Parser-ProtocolHandlerUtil.html +0/−63
- doc/hdoc/src/Text-XML-HXT-Parser-TagSoup.html +0/−459
- doc/hdoc/src/Text-XML-HXT-Parser-XhtmlEntities.html +0/−288
- doc/hdoc/src/Text-XML-HXT-Parser-XmlCharParser.html +0/−84
- doc/hdoc/src/Text-XML-HXT-Parser-XmlDTDParser.html +0/−725
- doc/hdoc/src/Text-XML-HXT-Parser-XmlDTDTokenParser.html +0/−120
- doc/hdoc/src/Text-XML-HXT-Parser-XmlEntities.html +0/−36
- doc/hdoc/src/Text-XML-HXT-Parser-XmlParsec.html +0/−704
- doc/hdoc/src/Text-XML-HXT-Parser-XmlTokenParser.html +0/−560
- doc/hdoc/src/Text-XML-HXT-RelaxNG-BasicArrows.html +0/−336
- doc/hdoc/src/Text-XML-HXT-RelaxNG-CreatePattern.html +0/−359
- doc/hdoc/src/Text-XML-HXT-RelaxNG-DataTypeLibMysql.html +0/−179
- doc/hdoc/src/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html +0/−418
- doc/hdoc/src/Text-XML-HXT-RelaxNG-DataTypeLibraries.html +0/−150
- doc/hdoc/src/Text-XML-HXT-RelaxNG-DataTypes.html +0/−306
- doc/hdoc/src/Text-XML-HXT-RelaxNG-PatternFunctions.html +0/−118
- doc/hdoc/src/Text-XML-HXT-RelaxNG-PatternToString.html +0/−370
- doc/hdoc/src/Text-XML-HXT-RelaxNG-Schema.html +0/−3931
- doc/hdoc/src/Text-XML-HXT-RelaxNG-SchemaGrammar.html +0/−3841
- doc/hdoc/src/Text-XML-HXT-RelaxNG-Simplification.html +0/−2317
- doc/hdoc/src/Text-XML-HXT-RelaxNG-Unicode-Blocks.html +0/−196
- doc/hdoc/src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html +0/−3267
- doc/hdoc/src/Text-XML-HXT-RelaxNG-Utils.html +0/−171
- doc/hdoc/src/Text-XML-HXT-RelaxNG-Validation.html +0/−627
- doc/hdoc/src/Text-XML-HXT-RelaxNG-Validator.html +0/−318
- doc/hdoc/src/Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html +0/−620
- doc/hdoc/src/Text-XML-HXT-RelaxNG-XmlSchema-Regex.html +0/−327
- doc/hdoc/src/Text-XML-HXT-RelaxNG-XmlSchema-RegexMatch.html +0/−248
- doc/hdoc/src/Text-XML-HXT-RelaxNG-XmlSchema-RegexParser.html +0/−364
- doc/hdoc/src/Text-XML-HXT-RelaxNG.html +0/−34
- doc/hdoc/src/Text-XML-HXT-Version.html +0/−14
- doc/hdoc/src/Text-XML-HXT-XPath-NavTree.html +0/−89
- doc/hdoc/src/Text-XML-HXT-XPath-XPathArithmetic.html +0/−176
- doc/hdoc/src/Text-XML-HXT-XPath-XPathDataTypes.html +0/−295
- doc/hdoc/src/Text-XML-HXT-XPath-XPathEval.html +0/−672
- doc/hdoc/src/Text-XML-HXT-XPath-XPathFct.html +0/−897
- doc/hdoc/src/Text-XML-HXT-XPath-XPathKeywords.html +0/−67
- doc/hdoc/src/Text-XML-HXT-XPath-XPathParser.html +0/−662
- doc/hdoc/src/Text-XML-HXT-XPath-XPathToNodeSet.html +0/−88
- doc/hdoc/src/Text-XML-HXT-XPath-XPathToString.html +0/−146
- doc/hdoc/src/Text-XML-HXT-XPath.html +0/−27
- doc/hdoc/src/Text-XML-HXT-XSLT-Application.html +0/−650
- doc/hdoc/src/Text-XML-HXT-XSLT-Common.html +0/−416
- doc/hdoc/src/Text-XML-HXT-XSLT-Compilation.html +0/−511
- doc/hdoc/src/Text-XML-HXT-XSLT-CompiledStylesheet.html +0/−277
- doc/hdoc/src/Text-XML-HXT-XSLT-Names.html +0/−162
- doc/hdoc/src/Text-XML-HXT-XSLT-XsltArrows.html +0/−320
- doc/hdoc/src/hscolour.css +0/−5
- doc/index.html +22/−7
- examples/arrows/AGentleIntroductionToHXT/Makefile +1/−1
- examples/arrows/hparser/Makefile +1/−1
- hxt.cabal +12/−12
- src/Control/Arrow/ArrowList.hs +1/−1
- src/Control/Arrow/ArrowState.hs +2/−0
- src/Control/Arrow/ArrowTree.hs +17/−1
- src/Control/Arrow/IOStateListArrow.hs +2/−0
- src/Control/Arrow/StateListArrow.hs +2/−0
- src/Data/Atom.hs +2/−0
- src/Data/Tree/NTree/TypeDefs.hs +2/−0
- src/Makefile +7/−2
- src/Text/XML/HXT/Arrow/DocumentInput.hs +64/−82
- src/Text/XML/HXT/Arrow/Namespace.hs +1/−1
- src/Text/XML/HXT/Arrow/ReadDocument.hs +21/−24
- src/Text/XML/HXT/Arrow/XPathSimple.hs +9/−9
- src/Text/XML/HXT/DOM/MimeTypes.hs +39/−43
- src/Text/XML/HXT/DOM/QualifiedName.hs +3/−1
- src/Text/XML/HXT/DOM/TypeDefs.hs +2/−0
- src/Text/XML/HXT/DOM/Util.hs +35/−19
- src/Text/XML/HXT/DOM/XmlKeywords.hs +4/−0
- src/Text/XML/HXT/DOM/XmlOptions.hs +2/−0
- src/Text/XML/HXT/IO/GetFILE.hs +22/−10
- src/Text/XML/HXT/IO/GetHTTPLibCurl.hs +85/−53
- src/Text/XML/HXT/Parser/ProtocolHandlerUtil.hs +28/−14
- src/Text/XML/HXT/Parser/XmlParsec.hs +1/−1
- src/hxt-package.hs +11/−11
Makefile view
@@ -168,6 +168,17 @@ ; $(INSTALL) sudo runhaskell $(SETUP) install $(CABAL_OPTIONS) $(INSTEND) \ ) +disttry : tarball+ ( [ -f $(DIST_TAR) ] || exit 1 \+ ; cp -f $(DIST_TAR) $(PROD_DIR) || exit 1 \+ ; cd $(PROD_DIR) || exit 1 \+ ; tar xvzf $(DIST_TAR) \+ ; cd $(DIST) || exit 1 \+ ; runhaskell $(SETUP) configure $(CABAL_OPTIONS) || exit 1 \+ ; runhaskell $(SETUP) build || exit 1 \+ ; $(INSTALL) sudo runhaskell $(SETUP) install $(CABAL_OPTIONS) $(INSTEND) \+ )+ distinstall : $(MAKE) distbuild INSTALL="" INSTEND=""
Version.mk view
@@ -2,6 +2,6 @@ # Version numbering for HXT SOFTWARE = hxt-VERSION = 8.3.0-LASTVERSION = 8.2.0+VERSION = 8.3.1+LASTVERSION = 8.3.0 DIST_NAME = $(SOFTWARE)-$(VERSION)
− doc/hdoc/Control-Arrow-ArrowIO.html
@@ -1,584 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Control-Arrow-ArrowIO.html"->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 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-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Arrow.html#t%3AArrow"->Arrow</A-> a => <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 -> <A HREF="/usr/local/share/doc/ghc/libraries/base/System-IO.html#t%3AIO"->IO</A-> c) -> a b c</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AarrIO0"->arrIO0</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/System-IO.html#t%3AIO"->IO</A-> c -> a b c</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AarrIO2"->arrIO2</A-> :: (b1 -> b2 -> <A HREF="/usr/local/share/doc/ghc/libraries/base/System-IO.html#t%3AIO"->IO</A-> c) -> a (b1, b2) c</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AarrIO3"->arrIO3</A-> :: (b1 -> b2 -> b3 -> <A HREF="/usr/local/share/doc/ghc/libraries/base/System-IO.html#t%3AIO"->IO</A-> c) -> a (b1, (b2, b3)) c</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AarrIO4"->arrIO4</A-> :: (b1 -> b2 -> b3 -> b4 -> <A HREF="/usr/local/share/doc/ghc/libraries/base/System-IO.html#t%3AIO"->IO</A-> c) -> 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-> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Arrow.html#t%3AArrow"->Arrow</A-> a, <A HREF="Control-Arrow-ArrowIO.html#t%3AArrowIO"->ArrowIO</A-> a) => <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 -> <A HREF="/usr/local/share/doc/ghc/libraries/base/System-IO.html#t%3AIO"->IO</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A->) -> 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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->class</SPAN-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Arrow.html#t%3AArrow"->Arrow</A-> a => <A NAME="t%3AArrowIO"-></A-><B->ArrowIO</B-> a <SPAN CLASS="keyword"->where</SPAN-></TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowIO.html#ArrowIO"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AarrIO"-></A-><B->arrIO</B-> :: (b -> <A HREF="/usr/local/share/doc/ghc/libraries/base/System-IO.html#t%3AIO"->IO</A-> c) -> a b c</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowIO.html#arrIO"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->construct an arrow from an IO action-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AarrIO0"-></A-><B->arrIO0</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/System-IO.html#t%3AIO"->IO</A-> c -> a b c</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowIO.html#arrIO0"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AarrIO2"-></A-><B->arrIO2</B-> :: (b1 -> b2 -> <A HREF="/usr/local/share/doc/ghc/libraries/base/System-IO.html#t%3AIO"->IO</A-> c) -> a (b1, b2) c</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowIO.html#arrIO2"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->construction of a 2 argument arrow from a binary IO action- |- | example: <TT-> a1 &&& a2 >>> arr2 f </TT->-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AarrIO3"-></A-><B->arrIO3</B-> :: (b1 -> b2 -> b3 -> <A HREF="/usr/local/share/doc/ghc/libraries/base/System-IO.html#t%3AIO"->IO</A-> c) -> a (b1, (b2, b3)) c</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowIO.html#arrIO3"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->construction of a 3 argument arrow from a 3-ary IO action- |- | example: <TT-> a1 &&& a2 &&& a3 >>> arr3 f </TT->-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AarrIO4"-></A-><B->arrIO4</B-> :: (b1 -> b2 -> b3 -> b4 -> <A HREF="/usr/local/share/doc/ghc/libraries/base/System-IO.html#t%3AIO"->IO</A-> c) -> a (b1, (b2, (b3, b4))) c</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowIO.html#arrIO4"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->construction of a 4 argument arrow from a 4-ary IO action- |- | example: <TT-> a1 &&& a2 &&& a3 &&& a4 >>> 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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->class</SPAN-> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Arrow.html#t%3AArrow"->Arrow</A-> a, <A HREF="Control-Arrow-ArrowIO.html#t%3AArrowIO"->ArrowIO</A-> a) => <A NAME="t%3AArrowIOIf"-></A-><B->ArrowIOIf</B-> a <SPAN CLASS="keyword"->where</SPAN-></TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowIO.html#ArrowIOIf"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisIOA"-></A-><B->isIOA</B-> :: (b -> <A HREF="/usr/local/share/doc/ghc/libraries/base/System-IO.html#t%3AIO"->IO</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A->) -> a b b</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowIO.html#isIOA"->Source</A-></TD-></TR-></TABLE-></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 Control.Arrow.ArrowList.isA-</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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Control-Arrow-ArrowIf.html
@@ -1,1015 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Control-Arrow-ArrowIf.html"->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 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 => <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 -> a b d -> a b d -> a b d</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AifP"->ifP</A-> :: (b -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A->) -> a b d -> a b d -> a b d</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Aneg"->neg</A-> :: a b c -> a b b</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Awhen"->when</A-> :: a b b -> a b c -> a b b</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AwhenP"->whenP</A-> :: a b b -> (b -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A->) -> a b b</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AwhenNot"->whenNot</A-> :: a b b -> a b c -> a b b</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AwhenNotP"->whenNotP</A-> :: a b b -> (b -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A->) -> a b b</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Aguards"->guards</A-> :: a b c -> a b d -> a b d</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AguardsP"->guardsP</A-> :: (b -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A->) -> a b d -> a b d</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AfilterA"->filterA</A-> :: a b c -> a b b</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Acontaining"->containing</A-> :: a b c -> a c d -> a b c</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AnotContaining"->notContaining</A-> :: a b c -> a c d -> a b c</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AorElse"->orElse</A-> :: a b c -> a b c -> 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)] -> a b d</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AtagA"->tagA</A-> :: a b c -> a b (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Either.html#t%3AEither"->Either</A-> b b)</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AspanA"->spanA</A-> :: a b b -> a [b] ([b], [b])</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3ApartitionA"->partitionA</A-> :: a b b -> 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 <A HREF="#v%3A%3A-%3E"->:-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->class</SPAN-> <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"->ArrowList</A-> a => <A NAME="t%3AArrowIf"-></A-><B->ArrowIf</B-> a <SPAN CLASS="keyword"->where</SPAN-></TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowIf.html#ArrowIf"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AifA"-></A-><B->ifA</B-> :: a b c -> a b d -> a b d -> a b d</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowIf.html#ifA"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->if lifted to arrows-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AifP"-></A-><B->ifP</B-> :: (b -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A->) -> a b d -> a b d -> a b d</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowIf.html#ifP"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Aneg"-></A-><B->neg</B-> :: a b c -> a b b</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowIf.html#neg"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Awhen"-></A-><B->when</B-> :: a b b -> a b c -> a b b</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowIf.html#when"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AwhenP"-></A-><B->whenP</B-> :: a b b -> (b -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A->) -> a b b</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowIf.html#whenP"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AwhenNot"-></A-><B->whenNot</B-> :: a b b -> a b c -> a b b</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowIf.html#whenNot"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AwhenNotP"-></A-><B->whenNotP</B-> :: a b b -> (b -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A->) -> a b b</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowIf.html#whenNotP"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Aguards"-></A-><B->guards</B-> :: a b c -> a b d -> a b d</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowIf.html#guards"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AguardsP"-></A-><B->guardsP</B-> :: (b -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A->) -> a b d -> a b d</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowIf.html#guardsP"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AfilterA"-></A-><B->filterA</B-> :: a b c -> a b b</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowIf.html#filterA"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->shortcut for <TT-> f <TT-><A HREF="Control-Arrow-ArrowIf.html#v%3Aguards"->guards</A-></TT-> this </TT->-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Acontaining"-></A-><B->containing</B-> :: a b c -> a c d -> a b c</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowIf.html#containing"->Source</A-></TD-></TR-></TABLE-></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 >>> g `guards` this </TT->-</P-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AnotContaining"-></A-><B->notContaining</B-> :: a b c -> a c d -> a b c</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowIf.html#notContaining"->Source</A-></TD-></TR-></TABLE-></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 >>> ifA g none this </TT->-</P-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AorElse"-></A-><B->orElse</B-> :: a b c -> a b c -> a b c</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowIf.html#orElse"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AchoiceA"-></A-><B->choiceA</B-> :: [<A HREF="Control-Arrow-ArrowIf.html#t%3AIfThen"->IfThen</A-> (a b c) (a b d)] -> a b d</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowIf.html#choiceA"->Source</A-></TD-></TR-></TABLE-></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 ':->' is used for writing multi way branches-</P-><P->example: <TT-> choiceA [ p1 :-> e1, p2 :-> e2, this :-> default ] </TT->-</P-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AtagA"-></A-><B->tagA</B-> :: a b c -> a b (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Either.html#t%3AEither"->Either</A-> b b)</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowIf.html#tagA"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AspanA"-></A-><B->spanA</B-> :: a b b -> a [b] ([b], [b])</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowIf.html#spanA"->Source</A-></TD-></TR-></TABLE-></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 <TT-><A HREF="/usr/local/share/doc/ghc/libraries/base/Data-List.html#v%3Aspan"->span</A-></TT->. The arrow is deterministic.-</P-><P->example: <TT-> runLA (spanA (isA (/= '-'))) "abc-def" </TT-> gives <TT-> [("abc","-def")] </TT-> as result-</P-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3ApartitionA"-></A-><B->partitionA</B-> :: a b b -> a [b] ([b], [b])</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowIf.html#partitionA"->Source</A-></TD-></TR-></TABLE-></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="/usr/local/share/doc/ghc/libraries/base/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-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-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-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-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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->data</SPAN-> <A NAME="t%3AIfThen"-></A-><B->IfThen</B-> a b </TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowIf.html#IfThen"->Source</A-></TD-></TR-></TABLE-></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 <A NAME="v%3A%3A-%3E"-></A-><B->:-></B-> 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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Control-Arrow-ArrowList.html
@@ -1,1582 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Control-Arrow-ArrowList.html"->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 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-> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Arrow.html#t%3AArrow"->Arrow</A-> a, <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Arrow.html#t%3AArrowPlus"->ArrowPlus</A-> a, <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Arrow.html#t%3AArrowZero"->ArrowZero</A-> a, <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Arrow.html#t%3AArrowApply"->ArrowApply</A-> a) => <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 -> b2 -> c) -> a (b1, b2) c</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Aarr3"->arr3</A-> :: (b1 -> b2 -> b3 -> c) -> a (b1, (b2, b3)) c</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Aarr4"->arr4</A-> :: (b1 -> b2 -> b3 -> b4 -> c) -> a (b1, (b2, (b3, b4))) c</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Aarr2A"->arr2A</A-> :: (b -> a c d) -> a (b, c) d</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AarrL"->arrL</A-> :: (b -> [c]) -> a b c</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Aarr2L"->arr2L</A-> :: (b -> c -> [d]) -> a (b, c) d</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AconstA"->constA</A-> :: c -> a b c</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AconstL"->constL</A-> :: [c] -> a b c</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AisA"->isA</A-> :: (b -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A->) -> a b b</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3A%3E%3E."->(>>.)</A-> :: a b c -> ([c] -> [d]) -> a b d</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3A%3E."->(>.)</A-> :: a b c -> ([c] -> d) -> a b d</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AlistA"->listA</A-> :: a b c -> a b [c]</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AunlistA"->unlistA</A-> :: a [b] b</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 -> c -> a b c</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Asingle"->single</A-> :: a b c -> a b c</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AapplyA"->applyA</A-> :: a b (a b c) -> a b c</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3A%24%3C"->($<)</A-> :: (c -> a b d) -> a b c -> a b d</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3A%24%3C%3C"->($<<)</A-> :: (c1 -> c2 -> a b d) -> a b (c1, c2) -> a b d</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3A%24%3C%3C%3C"->($<<<)</A-> :: (c1 -> c2 -> c3 -> a b d) -> a b (c1, (c2, c3)) -> a b d</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3A%24%3C%3C%3C%3C"->($<<<<)</A-> :: (c1 -> c2 -> c3 -> c4 -> a b d) -> a b (c1, (c2, (c3, c4))) -> a b d</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3A%24%3C%24"->($<$)</A-> :: (c -> a b b) -> a b c -> a b b</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AmergeA"->mergeA</A-> :: (a (a1, b1) a1 -> a (a1, b1) b1 -> a (a1, b1) c) -> a (a1, b1) c</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Aperform"->perform</A-> :: a b c -> a b b</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AcatA"->catA</A-> :: [a b c] -> a b c</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AseqA"->seqA</A-> :: [a b b] -> 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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->class</SPAN-> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Arrow.html#t%3AArrow"->Arrow</A-> a, <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Arrow.html#t%3AArrowPlus"->ArrowPlus</A-> a, <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Arrow.html#t%3AArrowZero"->ArrowZero</A-> a, <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Arrow.html#t%3AArrowApply"->ArrowApply</A-> a) => <A NAME="t%3AArrowList"-></A-><B->ArrowList</B-> a <SPAN CLASS="keyword"->where</SPAN-></TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowList.html#ArrowList"->Source</A-></TD-></TR-></TABLE-></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-> '(>>.)' 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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Aarr2"-></A-><B->arr2</B-> :: (b1 -> b2 -> c) -> a (b1, b2) c</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowList.html#arr2"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->construction of a 2 argument arrow from a binary function- |- | example: <TT-> a1 &&& a2 >>> arr2 f </TT->-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Aarr3"-></A-><B->arr3</B-> :: (b1 -> b2 -> b3 -> c) -> a (b1, (b2, b3)) c</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowList.html#arr3"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->construction of a 3 argument arrow from a 3-ary function- |- | example: <TT-> a1 &&& a2 &&& a3 >>> arr3 f </TT->-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Aarr4"-></A-><B->arr4</B-> :: (b1 -> b2 -> b3 -> b4 -> c) -> a (b1, (b2, (b3, b4))) c</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowList.html#arr4"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->construction of a 4 argument arrow from a 4-ary function- |- | example: <TT-> a1 &&& a2 &&& a3 &&& a4 >>> arr4 f </TT->-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Aarr2A"-></A-><B->arr2A</B-> :: (b -> a c d) -> a (b, c) d</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowList.html#arr2A"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AarrL"-></A-><B->arrL</B-> :: (b -> [c]) -> a b c</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowList.html#arrL"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Aarr2L"-></A-><B->arr2L</B-> :: (b -> c -> [d]) -> a (b, c) d</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowList.html#arr2L"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AconstA"-></A-><B->constA</B-> :: c -> a b c</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowList.html#constA"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AconstL"-></A-><B->constL</B-> :: [c] -> a b c</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowList.html#constL"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisA"-></A-><B->isA</B-> :: (b -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A->) -> a b b</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowList.html#isA"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3A%3E%3E."-></A-><B->(>>.)</B-> :: a b c -> ([c] -> [d]) -> a b d</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowList.html#%3E%3E."->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->combinator for converting the result of a list arrow into another list-</P-><P->example: <TT-> foo >>. reverse </TT-> reverses the the result of foo-</P-><P->example: <TT-> foo >>. 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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3A%3E."-></A-><B->(>.)</B-> :: a b c -> ([c] -> d) -> a b d</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowList.html#%3E."->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AlistA"-></A-><B->listA</B-> :: a b c -> a b [c]</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowList.html#listA"->Source</A-></TD-></TR-></TABLE-></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 >>. (:[])</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 -> a b c-- collectAndSort collect = listA collect >>> arrL sort-</PRE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AunlistA"-></A-><B->unlistA</B-> :: a [b] b</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowList.html#unlistA"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->the inverse of <TT-><A HREF="Control-Arrow-ArrowList.html#v%3AlistA"->listA</A-></TT->-</P-><PRE-> listA af >>> unlistA = af</PRE-><P->unlistA is defined as <TT-> arrL id </TT->-</P-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Athis"-></A-><B->this</B-> :: a b b</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowList.html#this"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->the identity arrow, alias for returnA-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Anone"-></A-><B->none</B-> :: a b c</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowList.html#none"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->the zero arrow, alias for zeroArrow-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AwithDefault"-></A-><B->withDefault</B-> :: a b c -> c -> a b c</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowList.html#withDefault"->Source</A-></TD-></TR-></TABLE-></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 "abc" </TT-> is equivalent to <TT-> constA "abc" </TT->-</P-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Asingle"-></A-><B->single</B-> :: a b c -> a b c</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowList.html#single"->Source</A-></TD-></TR-></TABLE-></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 >>. take 1-</PRE-><P->examples with strings:-</P-><PRE-> runLA ( single none ) "x" == []- runLA ( single this ) "x" == ["x"]- runLA ( single- (constA "y"- <+> this ) ) "x" == ["y"]-</PRE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AapplyA"-></A-><B->applyA</B-> :: a b (a b c) -> a b c</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowList.html#applyA"->Source</A-></TD-></TR-></TABLE-></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 &&& this) >>> 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"->$<</A-></TT->, <TT-><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C%3C"->$<<</A-></TT->, <TT-><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C%3C%3C"->$<<<</A-></TT->, <TT-><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C%3C%3C%3C"->$<<<<</A-></TT->, <TT-><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C%24"->$<$</A-></TT->-</P-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3A%24%3C"-></A-><B->($<)</B-> :: (c -> a b d) -> a b c -> a b d</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowList.html#%24%3C"->Source</A-></TD-></TR-></TABLE-></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 "function call" for arrows, useful for joining arrows-</P-><PRE-> infixl 2 ($<)-</PRE-><P->definition:-</P-><PRE-> g $< f = applyA (f >>> arr g)-</PRE-><P->if <TT->f</TT-> fails, the whole arrow fails, e.g. <TT-> g $< 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 -> 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"]-</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"->$<<</A-></TT->, <TT-><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C%3C%3C"->$<<<</A-></TT->, <TT-><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C%3C%3C%3C"->$<<<<</A-></TT->, <TT-><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C%24"->$<$</A-></TT->-</P-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3A%24%3C%3C"-></A-><B->($<<)</B-> :: (c1 -> c2 -> a b d) -> a b (c1, c2) -> a b d</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowList.html#%24%3C%3C"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->binary version of <TT-><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C"->$<</A-></TT->-</P-><P->example with simple list arrows with strings-</P-><PRE-> 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"]-</PRE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3A%24%3C%3C%3C"-></A-><B->($<<<)</B-> :: (c1 -> c2 -> c3 -> a b d) -> a b (c1, (c2, c3)) -> a b d</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowList.html#%24%3C%3C%3C"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->version of <TT-><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C"->$<</A-></TT-> for arrows with 3 extra parameters-</P-><P->typical usage-</P-><PRE-> f $<<< g1 &&& g2 &&& g3-</PRE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3A%24%3C%3C%3C%3C"-></A-><B->($<<<<)</B-> :: (c1 -> c2 -> c3 -> c4 -> a b d) -> a b (c1, (c2, (c3, c4))) -> a b d</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowList.html#%24%3C%3C%3C%3C"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->version of <TT-><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C"->$<</A-></TT-> for arrows with 4 extra parameters-</P-><P->typical usage-</P-><PRE-> f $<<<< g1 &&& g2 &&& g3 &&& g4-</PRE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3A%24%3C%24"-></A-><B->($<$)</B-> :: (c -> a b b) -> a b c -> a b b</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowList.html#%24%3C%24"->Source</A-></TD-></TR-></TABLE-></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 ($<$)-</PRE-><P->typical usage:-</P-><PRE-> g :: a b c- g = ...-- f :: c -> a b b- f x = ... x ...-- f $<$ 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 $<$ f == g $< f </TT-> holds-</P-><P->if <TT->g</TT-> fails, <TT-> f $<$ 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 -> 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"]-</PRE-><P->example with two extra parameter-</P-><PRE-> g1 :: a b c1- g2 :: a b c2-- f :: (c1, c2) -> a b b- f (x1, x2) = ... x1 ... x2 ... -- f $<$ g1 &&& 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"->$<</A-></TT->-</P-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmergeA"-></A-><B->mergeA</B-> :: (a (a1, b1) a1 -> a (a1, b1) b1 -> a (a1, b1) c) -> a (a1, b1) c</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowList.html#mergeA"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->merge the result pairs of an arrow with type <TT->a a1 (b1, b2)</TT->- by combining the tuple components with the <TT->op</TT-> arrow-</P-><P->examples with simple list arrows working on strings and XmlTrees-</P-><PRE-> a1 :: a String (XmlTree, XmlTree)- a1 = selem "foo" [this >>> mkText]- &&&- selem "bar" [arr (++"0") >>> mkText]- - runLA (a1 >>> mergeA (<+>) >>> xshow this) "42" == ["<foo>42</foo>","<bar>420</bar>"]- runLA (a1 >>> mergeA (+=) >>> xshow this) "42" == ["<foo>42<bar>420</bar></foo>"]-</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"->$<</A-></TT-> and += in class Text.XML.HXT.Arrow.ArrowXml-</P-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Aperform"-></A-><B->perform</B-> :: a b c -> a b b</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowList.html#perform"->Source</A-></TD-></TR-></TABLE-></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-> ... >>> perform someTraceArrow >>> ... </TT->-</P-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AcatA"-></A-><B->catA</B-> :: [a b c] -> a b c</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowList.html#catA"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->generalization of arrow combinator <TT-><A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Arrow.html#v%3A%3C%2B%3E"-><+></A-></TT->-</P-><P->definition: <TT-> catA = foldl (<A HREF="+"->+</A->) none </TT->-</P-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AseqA"-></A-><B->seqA</B-> :: [a b b] -> a b b</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowList.html#seqA"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->generalization of arrow combinator <TT-><A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Category.html#v%3A%3E%3E%3E"->>>></A-></TT->-</P-><P->definition: <TT-> seqA = foldl (>>>) 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-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-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-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-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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Control-Arrow-ArrowNF.html
@@ -1,328 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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.ArrowNF</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-><SCRIPT SRC="haddock-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Control-Arrow-ArrowNF.html"->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.ArrowNF</FONT-></TD-><TD ALIGN="right"-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="infohead"->Portability</TD-><TD CLASS="infoval"->non-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 CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"->Arrows for evaluation of normal form results-</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-> :: (<A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Arrow.html#t%3AArrow"->Arrow</A-> a, <A HREF="/usr/local/share/doc/ghc/libraries/parallel/Control-Parallel-Strategies.html#t%3ANFData"->NFData</A-> b) => a b b</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><SPAN CLASS="keyword"->class</SPAN-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Arrow.html#t%3AArrow"->Arrow</A-> a => <A HREF="#t%3AArrowNF"->ArrowNF</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%3ArnfA"->rnfA</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parallel/Control-Parallel-Strategies.html#t%3ANFData"->NFData</A-> c => a b c -> a b c</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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AstrictA"-></A-><B->strictA</B-> :: (<A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Arrow.html#t%3AArrow"->Arrow</A-> a, <A HREF="/usr/local/share/doc/ghc/libraries/parallel/Control-Parallel-Strategies.html#t%3ANFData"->NFData</A-> b) => a b b</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowNF.html#strictA"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->complete evaluation of an arrow result using <TT-><A HREF="/usr/local/share/doc/ghc/libraries/parallel/Control-Parallel-Strategies.html#v%3Arnf"->rnf</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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->class</SPAN-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Arrow.html#t%3AArrow"->Arrow</A-> a => <A NAME="t%3AArrowNF"-></A-><B->ArrowNF</B-> a <SPAN CLASS="keyword"->where</SPAN-></TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowNF.html#ArrowNF"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3ArnfA"-></A-><B->rnfA</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parallel/Control-Parallel-Strategies.html#t%3ANFData"->NFData</A-> c => a b c -> a b c</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowNF.html#rnfA"->Source</A-></TD-></TR-></TABLE-></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:ArrowNF')" ALT="show/hide"-> Instances</TD-></TR-><TR-><TD CLASS="body"-><DIV ID="i:ArrowNF" STYLE="display:block;"-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"-><TR-><TD CLASS="decl"-><A HREF="Control-Arrow-ArrowNF.html#t%3AArrowNF"->ArrowNF</A-> <A HREF="Control-Arrow-ListArrow.html#t%3ALA"->LA</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="Control-Arrow-ArrowNF.html#t%3AArrowNF"->ArrowNF</A-> <A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"->IOLA</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/parallel/Control-Parallel-Strategies.html#t%3ANFData"->NFData</A-> s => <A HREF="Control-Arrow-ArrowNF.html#t%3AArrowNF"->ArrowNF</A-> (<A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"->SLA</A-> s)</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/parallel/Control-Parallel-Strategies.html#t%3ANFData"->NFData</A-> s => <A HREF="Control-Arrow-ArrowNF.html#t%3AArrowNF"->ArrowNF</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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Control-Arrow-ArrowState.html
@@ -1,436 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Control-Arrow-ArrowState.html"->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"->multy parameter classes and functional depenedencies required</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 CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"-><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-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Arrow.html#t%3AArrow"->Arrow</A-> a => <A HREF="#t%3AArrowState"->ArrowState</A-> s a | a -> 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 -> b -> s) -> a b b</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AaccessState"->accessState</A-> :: (s -> b -> c) -> 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 -> s) -> 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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->class</SPAN-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Arrow.html#t%3AArrow"->Arrow</A-> a => <A NAME="t%3AArrowState"-></A-><B->ArrowState</B-> s a | a -> s <SPAN CLASS="keyword"->where</SPAN-></TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowState.html#ArrowState"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AchangeState"-></A-><B->changeState</B-> :: (s -> b -> s) -> a b b</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowState.html#changeState"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AaccessState"-></A-><B->accessState</B-> :: (s -> b -> c) -> a b c</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowState.html#accessState"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetState"-></A-><B->getState</B-> :: a b s</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowState.html#getState"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->read the complete state, ignore arrow input-</P-><P->definition: <TT-> getState = accessState (\ s x -> s) </TT-> -</P-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AsetState"-></A-><B->setState</B-> :: a s s</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowState.html#setState"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->overwrite the old state-</P-><P->definition: <TT-> setState = changeState (\ s x -> x) </TT->-</P-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AnextState"-></A-><B->nextState</B-> :: (s -> s) -> a b s</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowState.html#nextState"->Source</A-></TD-></TR-></TABLE-></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)- >>>- arr (('#':) . show)- - runSLA 0 (newId <+> newId <+> newId) undefined- = ["#1", "#2", "#3"]-</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-StateListArrow.html#t%3ASLA"->SLA</A-> s)</TD-></TR-><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-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Control-Arrow-ArrowTree.html
@@ -1,1325 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Control-Arrow-ArrowTree.html"->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 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-> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Arrow.html#t%3AArrowPlus"->ArrowPlus</A-> a, <A HREF="Control-Arrow-ArrowIf.html#t%3AArrowIf"->ArrowIf</A-> a) => <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%3AmkLeaf"->mkLeaf</A-> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"->Tree</A-> t => b -> a c (t b)</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AmkTree"->mkTree</A-> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"->Tree</A-> t => b -> [t b] -> a c (t b)</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AgetChildren"->getChildren</A-> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"->Tree</A-> t => 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 => 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 => [t b] -> 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 => b -> 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 => ([t b] -> [t b]) -> 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 => (b -> b) -> 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 => a (t b) (t b) -> 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 => a (t b) (t b) -> a (t b) (t b)</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3A%2F%3E"->(/>)</A-> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"->Tree</A-> t => a (t b) (t b) -> a (t b) (t b) -> a (t b) (t b)</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3A%3C%2F"->(</)</A-> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"->Tree</A-> t => a (t b) (t b) -> a (t b) (t b) -> 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 => a (t b) (t b) -> 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 => a (t b) (t b) -> 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 => a (t b) c -> 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 => a (t b) (t b) -> 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 => a (t b) (t b) -> 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 => a (t b) (t b) -> a (t b) (t b) -> 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 => a (t b) (t b) -> 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 => <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-> -> a (t b) (t b) -> 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 => a (t b) (t b) -> a (t b) (t b) -> 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 => a (t b) (t b) -> [<A HREF="Control-Arrow-ArrowIf.html#t%3AIfThen"->IfThen</A-> (a (t b) c) (a (t b) (t b))] -> 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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->class</SPAN-> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Arrow.html#t%3AArrowPlus"->ArrowPlus</A-> a, <A HREF="Control-Arrow-ArrowIf.html#t%3AArrowIf"->ArrowIf</A-> a) => <A NAME="t%3AArrowTree"-></A-><B->ArrowTree</B-> a <SPAN CLASS="keyword"->where</SPAN-></TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowTree.html#ArrowTree"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkLeaf"-></A-><B->mkLeaf</B-> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"->Tree</A-> t => b -> a c (t b)</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowTree.html#mkLeaf"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->construct a leaf-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkTree"-></A-><B->mkTree</B-> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"->Tree</A-> t => b -> [t b] -> a c (t b)</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowTree.html#mkTree"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->construct an inner node-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetChildren"-></A-><B->getChildren</B-> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"->Tree</A-> t => a (t b) (t b)</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowTree.html#getChildren"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetNode"-></A-><B->getNode</B-> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"->Tree</A-> t => a (t b) b</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowTree.html#getNode"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AsetChildren"-></A-><B->setChildren</B-> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"->Tree</A-> t => [t b] -> a (t b) (t b)</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowTree.html#setChildren"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AsetNode"-></A-><B->setNode</B-> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"->Tree</A-> t => b -> a (t b) (t b)</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowTree.html#setNode"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AchangeChildren"-></A-><B->changeChildren</B-> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"->Tree</A-> t => ([t b] -> [t b]) -> a (t b) (t b)</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowTree.html#changeChildren"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AchangeNode"-></A-><B->changeNode</B-> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"->Tree</A-> t => (b -> b) -> a (t b) (t b)</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowTree.html#changeNode"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AprocessChildren"-></A-><B->processChildren</B-> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"->Tree</A-> t => a (t b) (t b) -> a (t b) (t b)</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowTree.html#processChildren"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AreplaceChildren"-></A-><B->replaceChildren</B-> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"->Tree</A-> t => a (t b) (t b) -> a (t b) (t b)</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowTree.html#replaceChildren"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3A%2F%3E"-></A-><B->(/>)</B-> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"->Tree</A-> t => a (t b) (t b) -> a (t b) (t b) -> a (t b) (t b)</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowTree.html#%2F%3E"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->pronounced "slash", meaning g inside f-</P-><P->defined as <TT-> f /> g = f >>> getChildren >>> g </TT->-</P-><P->example: <TT-> hasName "html" /> hasName "body" /> hasName "h1" </TT->-</P-><P->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" -</P-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3A%3C%2F"-></A-><B->(</)</B-> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"->Tree</A-> t => a (t b) (t b) -> a (t b) (t b) -> a (t b) (t b)</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowTree.html#%3C%2F"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->pronounced "outside" meaning f containing g-</P-><P->defined as <TT-> f </ g = f `containing` (getChildren >>> g) </TT->-</P-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Adeep"-></A-><B->deep</B-> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"->Tree</A-> t => a (t b) (t b) -> a (t b) (t b)</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowTree.html#deep"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Adeepest"-></A-><B->deepest</B-> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"->Tree</A-> t => a (t b) (t b) -> a (t b) (t b)</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowTree.html#deepest"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Amulti"-></A-><B->multi</B-> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"->Tree</A-> t => a (t b) c -> a (t b) c</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowTree.html#multi"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AprocessBottomUp"-></A-><B->processBottomUp</B-> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"->Tree</A-> t => a (t b) (t b) -> a (t b) (t b)</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowTree.html#processBottomUp"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AprocessTopDown"-></A-><B->processTopDown</B-> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"->Tree</A-> t => a (t b) (t b) -> a (t b) (t b)</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowTree.html#processTopDown"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AprocessBottomUpWhenNot"-></A-><B->processBottomUpWhenNot</B-> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"->Tree</A-> t => a (t b) (t b) -> a (t b) (t b) -> a (t b) (t b)</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowTree.html#processBottomUpWhenNot"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AprocessTopDownUntil"-></A-><B->processTopDownUntil</B-> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"->Tree</A-> t => a (t b) (t b) -> a (t b) (t b)</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowTree.html#processTopDownUntil"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AinsertChildrenAt"-></A-><B->insertChildrenAt</B-> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"->Tree</A-> t => <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-> -> a (t b) (t b) -> a (t b) (t b)</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowTree.html#insertChildrenAt"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AinsertChildrenAfter"-></A-><B->insertChildrenAfter</B-> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"->Tree</A-> t => a (t b) (t b) -> a (t b) (t b) -> a (t b) (t b)</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowTree.html#insertChildrenAfter"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AinsertTreeTemplate"-></A-><B->insertTreeTemplate</B-> :: <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"->Tree</A-> t => a (t b) (t b) -> [<A HREF="Control-Arrow-ArrowIf.html#t%3AIfThen"->IfThen</A-> (a (t b) c) (a (t b) (t b))] -> a (t b) (t b)</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ArrowTree.html#insertTreeTemplate"->Source</A-></TD-></TR-></TABLE-></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 => 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 )- ]-</PRE-><P->computes the XML tree for the following document-</P-><PRE-> "<html><head><title>The Title</title></head><body><h1>The content</h1></body></html>"-</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-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-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-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-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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->class</SPAN-> <A NAME="t%3ATree"-></A-><B->Tree</B-> t </TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-Class.html#Tree"->Source</A-></TD-></TR-></TABLE-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Control-Arrow-IOListArrow.html
@@ -1,343 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Control-Arrow-IOListArrow.html"->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 CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"->Implementation of pure list arrows with IO-</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 -> <A HREF="/usr/local/share/doc/ghc/libraries/base/System-IO.html#t%3AIO"->IO</A-> [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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->newtype</SPAN-> <A NAME="t%3AIOLA"-></A-><B->IOLA</B-> a b </TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-IOListArrow.html#IOLA"->Source</A-></TD-></TR-></TABLE-></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 -> <A HREF="/usr/local/share/doc/ghc/libraries/base/System-IO.html#t%3AIO"->IO</A-> [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"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Arrow.html#t%3AArrow"->Arrow</A-> <A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"->IOLA</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Arrow.html#t%3AArrowZero"->ArrowZero</A-> <A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"->IOLA</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Arrow.html#t%3AArrowPlus"->ArrowPlus</A-> <A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"->IOLA</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Arrow.html#t%3AArrowChoice"->ArrowChoice</A-> <A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"->IOLA</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Arrow.html#t%3AArrowApply"->ArrowApply</A-> <A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"->IOLA</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Category.html#t%3ACategory"->Category</A-> <A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"->IOLA</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="Control-Arrow-ArrowNF.html#t%3AArrowNF"->ArrowNF</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"-><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-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-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%3AArrowIO"->ArrowIO</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-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-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Control-Arrow-IOStateListArrow.html
@@ -1,456 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Control-Arrow-IOStateListArrow.html"->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 CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"->Implementation of arrows with IO and a state-</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 -> a -> <A HREF="/usr/local/share/doc/ghc/libraries/base/System-IO.html#t%3AIO"->IO</A-> (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 -> <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 -> <A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"->IOSLA</A-> (s1, s2) b c -> <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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->newtype</SPAN-> <A NAME="t%3AIOSLA"-></A-><B->IOSLA</B-> s a b </TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-IOStateListArrow.html#IOSLA"->Source</A-></TD-></TR-></TABLE-></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 -> a -> <A HREF="/usr/local/share/doc/ghc/libraries/base/System-IO.html#t%3AIO"->IO</A-> (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"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Arrow.html#t%3AArrow"->Arrow</A-> (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"->IOSLA</A-> s)</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Arrow.html#t%3AArrowZero"->ArrowZero</A-> (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"->IOSLA</A-> s)</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Arrow.html#t%3AArrowPlus"->ArrowPlus</A-> (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"->IOSLA</A-> s)</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Arrow.html#t%3AArrowChoice"->ArrowChoice</A-> (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"->IOSLA</A-> s)</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Arrow.html#t%3AArrowApply"->ArrowApply</A-> (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"->IOSLA</A-> s)</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Category.html#t%3ACategory"->Category</A-> (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"->IOSLA</A-> s)</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/parallel/Control-Parallel-Strategies.html#t%3ANFData"->NFData</A-> s => <A HREF="Control-Arrow-ArrowNF.html#t%3AArrowNF"->ArrowNF</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"-><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-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-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-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="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%3AArrowXml"->ArrowXml</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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AliftSt"-></A-><B->liftSt</B-> :: <A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"->IOSLA</A-> s1 b c -> <A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"->IOSLA</A-> (s1, s2) b c</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-IOStateListArrow.html#liftSt"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3ArunSt"-></A-><B->runSt</B-> :: s2 -> <A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"->IOSLA</A-> (s1, s2) b c -> <A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"->IOSLA</A-> s1 b c</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-IOStateListArrow.html#runSt"->Source</A-></TD-></TR-></TABLE-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Control-Arrow-ListArrow.html
@@ -1,369 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Control-Arrow-ListArrow.html"->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 CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"->Implementation of pure list arrows-</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 -> [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 => <A HREF="Control-Arrow-ListArrow.html#t%3ALA"->LA</A-> b c -> 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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->newtype</SPAN-> <A NAME="t%3ALA"-></A-><B->LA</B-> a b </TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ListArrow.html#LA"->Source</A-></TD-></TR-></TABLE-></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 -> [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"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Arrow.html#t%3AArrow"->Arrow</A-> <A HREF="Control-Arrow-ListArrow.html#t%3ALA"->LA</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Arrow.html#t%3AArrowZero"->ArrowZero</A-> <A HREF="Control-Arrow-ListArrow.html#t%3ALA"->LA</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Arrow.html#t%3AArrowPlus"->ArrowPlus</A-> <A HREF="Control-Arrow-ListArrow.html#t%3ALA"->LA</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Arrow.html#t%3AArrowChoice"->ArrowChoice</A-> <A HREF="Control-Arrow-ListArrow.html#t%3ALA"->LA</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Arrow.html#t%3AArrowApply"->ArrowApply</A-> <A HREF="Control-Arrow-ListArrow.html#t%3ALA"->LA</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Category.html#t%3ACategory"->Category</A-> <A HREF="Control-Arrow-ListArrow.html#t%3ALA"->LA</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="Control-Arrow-ArrowNF.html#t%3AArrowNF"->ArrowNF</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"-><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-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%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%3AArrowXml"->ArrowXml</A-> <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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AfromLA"-></A-><B->fromLA</B-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"->ArrowList</A-> a => <A HREF="Control-Arrow-ListArrow.html#t%3ALA"->LA</A-> b c -> a b c</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-ListArrow.html#fromLA"->Source</A-></TD-></TR-></TABLE-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Control-Arrow-ListArrows.html
@@ -1,211 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Control-Arrow-ListArrows.html"->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 CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"->Module for importing all list arrows-</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-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-ArrowNF.html"->Control.Arrow.ArrowNF</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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Control-Arrow-StateListArrow.html
@@ -1,394 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Control-Arrow-StateListArrow.html"->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 CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"->Implementation of list arrows with a state-</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 -> a -> (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 => s -> <A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"->SLA</A-> s b c -> 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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->newtype</SPAN-> <A NAME="t%3ASLA"-></A-><B->SLA</B-> s a b </TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-StateListArrow.html#SLA"->Source</A-></TD-></TR-></TABLE-></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 -> a -> (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"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Arrow.html#t%3AArrow"->Arrow</A-> (<A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"->SLA</A-> s)</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Arrow.html#t%3AArrowZero"->ArrowZero</A-> (<A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"->SLA</A-> s)</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Arrow.html#t%3AArrowPlus"->ArrowPlus</A-> (<A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"->SLA</A-> s)</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Arrow.html#t%3AArrowChoice"->ArrowChoice</A-> (<A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"->SLA</A-> s)</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Arrow.html#t%3AArrowApply"->ArrowApply</A-> (<A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"->SLA</A-> s)</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Category.html#t%3ACategory"->Category</A-> (<A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"->SLA</A-> s)</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/parallel/Control-Parallel-Strategies.html#t%3ANFData"->NFData</A-> s => <A HREF="Control-Arrow-ArrowNF.html#t%3AArrowNF"->ArrowNF</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"-><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-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%3AArrowDTD"->ArrowDTD</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-></TABLE-></DIV-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AfromSLA"-></A-><B->fromSLA</B-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"->ArrowList</A-> a => s -> <A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"->SLA</A-> s b c -> a b c</TD-><TD CLASS="declbut"-><A HREF="src/Control-Arrow-StateListArrow.html#fromSLA"->Source</A-></TD-></TR-></TABLE-></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-> ... >>> fromSLA 0 (... setState ... getState ... ) >>> ...-</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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Data-AssocList.html
@@ -1,490 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Data-AssocList.html"->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 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-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Eq.html#t%3AEq"->Eq</A-> k => v -> k -> <A HREF="Data-AssocList.html#t%3AAssocList"->AssocList</A-> k v -> v</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Alookup1"->lookup1</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Eq.html#t%3AEq"->Eq</A-> k => k -> <A HREF="Data-AssocList.html#t%3AAssocList"->AssocList</A-> k [e] -> [e]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AhasEntry"->hasEntry</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Eq.html#t%3AEq"->Eq</A-> k => k -> <A HREF="Data-AssocList.html#t%3AAssocList"->AssocList</A-> k v -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AaddEntry"->addEntry</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Eq.html#t%3AEq"->Eq</A-> k => k -> v -> <A HREF="Data-AssocList.html#t%3AAssocList"->AssocList</A-> k v -> <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-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Eq.html#t%3AEq"->Eq</A-> k => <A HREF="Data-AssocList.html#t%3AAssocList"->AssocList</A-> k v -> <A HREF="Data-AssocList.html#t%3AAssocList"->AssocList</A-> k v -> <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-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Eq.html#t%3AEq"->Eq</A-> k => k -> <A HREF="Data-AssocList.html#t%3AAssocList"->AssocList</A-> k v -> <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-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Eq.html#t%3AEq"->Eq</A-> k => [k] -> <A HREF="Data-AssocList.html#t%3AAssocList"->AssocList</A-> k v -> <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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->type</SPAN-> <A NAME="t%3AAssocList"-></A-><B->AssocList</B-> k v = [(k, v)]</TD-><TD CLASS="declbut"-><A HREF="src/Data-AssocList.html#AssocList"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AlookupDef"-></A-><B->lookupDef</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Eq.html#t%3AEq"->Eq</A-> k => v -> k -> <A HREF="Data-AssocList.html#t%3AAssocList"->AssocList</A-> k v -> v</TD-><TD CLASS="declbut"-><A HREF="src/Data-AssocList.html#lookupDef"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->lookup with default value-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Alookup1"-></A-><B->lookup1</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Eq.html#t%3AEq"->Eq</A-> k => k -> <A HREF="Data-AssocList.html#t%3AAssocList"->AssocList</A-> k [e] -> [e]</TD-><TD CLASS="declbut"-><A HREF="src/Data-AssocList.html#lookup1"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AhasEntry"-></A-><B->hasEntry</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Eq.html#t%3AEq"->Eq</A-> k => k -> <A HREF="Data-AssocList.html#t%3AAssocList"->AssocList</A-> k v -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Data-AssocList.html#hasEntry"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->test for existence of a key-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AaddEntry"-></A-><B->addEntry</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Eq.html#t%3AEq"->Eq</A-> k => k -> v -> <A HREF="Data-AssocList.html#t%3AAssocList"->AssocList</A-> k v -> <A HREF="Data-AssocList.html#t%3AAssocList"->AssocList</A-> k v</TD-><TD CLASS="declbut"-><A HREF="src/Data-AssocList.html#addEntry"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AaddEntries"-></A-><B->addEntries</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Eq.html#t%3AEq"->Eq</A-> k => <A HREF="Data-AssocList.html#t%3AAssocList"->AssocList</A-> k v -> <A HREF="Data-AssocList.html#t%3AAssocList"->AssocList</A-> k v -> <A HREF="Data-AssocList.html#t%3AAssocList"->AssocList</A-> k v</TD-><TD CLASS="declbut"-><A HREF="src/Data-AssocList.html#addEntries"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AdelEntry"-></A-><B->delEntry</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Eq.html#t%3AEq"->Eq</A-> k => k -> <A HREF="Data-AssocList.html#t%3AAssocList"->AssocList</A-> k v -> <A HREF="Data-AssocList.html#t%3AAssocList"->AssocList</A-> k v</TD-><TD CLASS="declbut"-><A HREF="src/Data-AssocList.html#delEntry"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->delete an entry, delEntry is strict-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AdelEntries"-></A-><B->delEntries</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Eq.html#t%3AEq"->Eq</A-> k => [k] -> <A HREF="Data-AssocList.html#t%3AAssocList"->AssocList</A-> k v -> <A HREF="Data-AssocList.html#t%3AAssocList"->AssocList</A-> k v</TD-><TD CLASS="declbut"-><A HREF="src/Data-AssocList.html#delEntries"->Source</A-></TD-></TR-></TABLE-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Data-Atom.html
@@ -1,439 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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.Atom</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-><SCRIPT SRC="haddock-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Data-Atom.html"->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.Atom</FONT-></TD-><TD ALIGN="right"-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="infohead"->Portability</TD-><TD CLASS="infoval"->non-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"->Atom objects-</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->Unique Atoms generated from Strings and- managed as flyweights-</P-><P->Data.Atom can be used for caching and storage optimisation- of frequently used strings. An <TT->Atom</TT-> is constructed from a <TT->String</TT->.- For two equal strings the identical atom is returned.-</P-><P->This module can be used for optimizing memory usage when working with- strings or names. Many applications use data types like- <TT->Map String SomeAttribute</TT-> where a rather fixed set of keys is used.- Especially XML applications often work with a limited set of element and attribute names.- For these applications it becomes more memory efficient when working with types like- <TT->Map Atom SomeAttribute</TT-> and convert the keys into atoms before operating- on such a map.-</P-><P->Internally this module manages a map of atoms. The atoms are internally represented- by <TT->ByteString</TT->s. When creating a new atom from a string, the string is first converted- into an UTF8 <TT->Word8</TT-> sequence, which is packed into a <TT->ByteString</TT->. This <TT->ByteString</TT-> is looked- up in the table of atoms. If it is already there, the value in the map is used as atom, else- the new <TT->ByteString</TT-> is inserted into the map.-</P-><P->Of course the implementation of this name cache uses <TT->unsavePerformIO</TT-> and <TT->MVar</TT->s- for managing this kind of global state.-</P-><P->The following laws hold for atoms-</P-><PRE->- s == t => newAtom s == newAtom t- s `compare` t => newAtom s `compare` newAtom t- show . newAtom == id-</PRE-><P->Equality test for <TT->Atom</TT->s runs in <EM->O(1)</EM->, it is just a pointer comarison.- The <TT->Ord</TT-> comparisons have the same runtime like the <TT->ByteString</TT-> comparisons.- Internally there is an UTF8 comparison, but UTF8 encoding preserves the total order.-</P-><P->Warning: The internal cache never shrinks during execution. So using it in a- undisciplined way can lead to memory leaks.-</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%3AAtom"->Atom</A-> </TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AnewAtom"->newAtom</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Data-Atom.html#t%3AAtom"->Atom</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Ashare"->share</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="section1"-><A NAME="1"->Atom objects-</A-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->data</SPAN-> <A NAME="t%3AAtom"-></A-><B->Atom</B-> </TD-><TD CLASS="declbut"-><A HREF="src/Data-Atom.html#Atom"->Source</A-></TD-></TR-></TABLE-></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:Atom')" ALT="show/hide"-> Instances</TD-></TR-><TR-><TD CLASS="body"-><DIV ID="i:Atom" STYLE="display:block;"-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Eq.html#t%3AEq"->Eq</A-> <A HREF="Data-Atom.html#t%3AAtom"->Atom</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Ord.html#t%3AOrd"->Ord</A-> <A HREF="Data-Atom.html#t%3AAtom"->Atom</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Read.html#t%3ARead"->Read</A-> <A HREF="Data-Atom.html#t%3AAtom"->Atom</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Show.html#t%3AShow"->Show</A-> <A HREF="Data-Atom.html#t%3AAtom"->Atom</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Typeable.html#t%3ATypeable"->Typeable</A-> <A HREF="Data-Atom.html#t%3AAtom"->Atom</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/parallel/Control-Parallel-Strategies.html#t%3ANFData"->NFData</A-> <A HREF="Data-Atom.html#t%3AAtom"->Atom</A-></TD-></TR-></TABLE-></DIV-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AnewAtom"-></A-><B->newAtom</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Data-Atom.html#t%3AAtom"->Atom</A-></TD-><TD CLASS="declbut"-><A HREF="src/Data-Atom.html#newAtom"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->creation of an <TT->Atom</TT-> from a <TT->String</TT->-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Ashare"-></A-><B->share</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Data-Atom.html#share"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->Insert a <TT->String</TT-> into the atom cache and convert the atom back into a <TT->String</TT->.-</P-><P->locically <TT->share == id</TT-> holds, but internally equal strings share the same memory.-</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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Data-Char-UTF8.html
@@ -1,287 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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.Char.UTF8</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-><SCRIPT SRC="haddock-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Data-Char-UTF8.html"->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.Char.UTF8</FONT-></TD-></TR-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Aencode"-></A-><B->encode</B-> :: [<A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A->] -> [<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Word.html#t%3AWord8"->Word8</A->]</TD-><TD CLASS="declbut"-><A HREF="src/Data-Char-UTF8.html#encode"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Adecode"-></A-><B->decode</B-> :: [<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Word.html#t%3AWord8"->Word8</A->] -> ([<A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A->], [(<A HREF="Data-Char-UTF8.html#t%3AError"->Error</A->, <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A->)])</TD-><TD CLASS="declbut"-><A HREF="src/Data-Char-UTF8.html#decode"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AdecodeEmbedErrors"-></A-><B->decodeEmbedErrors</B-> :: [<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Word.html#t%3AWord8"->Word8</A->] -> [<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Either.html#t%3AEither"->Either</A-> (<A HREF="Data-Char-UTF8.html#t%3AError"->Error</A->, <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A->) <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A->]</TD-><TD CLASS="declbut"-><A HREF="src/Data-Char-UTF8.html#decodeEmbedErrors"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AencodeOne"-></A-><B->encodeOne</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> -> [<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Word.html#t%3AWord8"->Word8</A->]</TD-><TD CLASS="declbut"-><A HREF="src/Data-Char-UTF8.html#encodeOne"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AdecodeOne"-></A-><B->decodeOne</B-> :: [<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Word.html#t%3AWord8"->Word8</A->] -> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Either.html#t%3AEither"->Either</A-> <A HREF="Data-Char-UTF8.html#t%3AError"->Error</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A->, <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A->, [<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Word.html#t%3AWord8"->Word8</A->])</TD-><TD CLASS="declbut"-><A HREF="src/Data-Char-UTF8.html#decodeOne"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->data</SPAN-> <A NAME="t%3AError"-></A-><B->Error</B-> </TD-><TD CLASS="declbut"-><A HREF="src/Data-Char-UTF8.html#Error"->Source</A-></TD-></TR-></TABLE-></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:Error')" ALT="show/hide"-> Instances</TD-></TR-><TR-><TD CLASS="body"-><DIV ID="i:Error" STYLE="display:block;"-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Eq.html#t%3AEq"->Eq</A-> <A HREF="Data-Char-UTF8.html#t%3AError"->Error</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Show.html#t%3AShow"->Show</A-> <A HREF="Data-Char-UTF8.html#t%3AError"->Error</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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
@@ -1,630 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Data-NavTree.html"->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 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 -> <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 -> <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 -> 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 -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> (<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 -> [<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 -> [<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 -> [<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-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"->Monad</A-> m => (b -> m c) -> (a -> m b) -> a -> m c</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AmaybePlus"->maybePlus</A-> :: (a -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> a) -> a -> [a]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"->module <A HREF="Data-Tree-NTree-TypeDefs.html"->Data.Tree.NTree.TypeDefs</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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->data</SPAN-> <A NAME="t%3ANavTree"-></A-><B->NavTree</B-> a </TD-><TD CLASS="declbut"-><A HREF="src/Data-NavTree.html#NavTree"->Source</A-></TD-></TR-></TABLE-></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 HREF="/usr/local/share/doc/ghc/libraries/base/Data-Eq.html#t%3AEq"->Eq</A-> a => <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Eq.html#t%3AEq"->Eq</A-> (<A HREF="Data-NavTree.html#t%3ANavTree"->NavTree</A-> a)</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Ord.html#t%3AOrd"->Ord</A-> a => <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Ord.html#t%3AOrd"->Ord</A-> (<A HREF="Data-NavTree.html#t%3ANavTree"->NavTree</A-> a)</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Show.html#t%3AShow"->Show</A-> a => <A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Show.html#t%3AShow"->Show</A-> (<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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Antree"-></A-><B->ntree</B-> :: <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"->NTree</A-> a -> <A HREF="Data-NavTree.html#t%3ANavTree"->NavTree</A-> a</TD-><TD CLASS="declbut"-><A HREF="src/Data-NavTree.html#ntree"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AsubtreeNT"-></A-><B->subtreeNT</B-> :: <A HREF="Data-NavTree.html#t%3ANavTree"->NavTree</A-> a -> <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"->NTree</A-> a</TD-><TD CLASS="declbut"-><A HREF="src/Data-NavTree.html#subtreeNT"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AdataNT"-></A-><B->dataNT</B-> :: <A HREF="Data-NavTree.html#t%3ANavTree"->NavTree</A-> a -> a</TD-><TD CLASS="declbut"-><A HREF="src/Data-NavTree.html#dataNT"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AdownNT"-></A-><B->downNT</B-> :: <A HREF="Data-NavTree.html#t%3ANavTree"->NavTree</A-> a -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> (<A HREF="Data-NavTree.html#t%3ANavTree"->NavTree</A-> a)</TD-><TD CLASS="declbut"-><A HREF="src/Data-NavTree.html#downNT"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3ApreorderNT"-></A-><B->preorderNT</B-> :: <A HREF="Data-NavTree.html#t%3ANavTree"->NavTree</A-> a -> [<A HREF="Data-NavTree.html#t%3ANavTree"->NavTree</A-> a]</TD-><TD CLASS="declbut"-><A HREF="src/Data-NavTree.html#preorderNT"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3ArevPreorderNT"-></A-><B->revPreorderNT</B-> :: <A HREF="Data-NavTree.html#t%3ANavTree"->NavTree</A-> a -> [<A HREF="Data-NavTree.html#t%3ANavTree"->NavTree</A-> a]</TD-><TD CLASS="declbut"-><A HREF="src/Data-NavTree.html#revPreorderNT"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetChildrenNT"-></A-><B->getChildrenNT</B-> :: <A HREF="Data-NavTree.html#t%3ANavTree"->NavTree</A-> a -> [<A HREF="Data-NavTree.html#t%3ANavTree"->NavTree</A-> a]</TD-><TD CLASS="declbut"-><A HREF="src/Data-NavTree.html#getChildrenNT"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Ao%27"-></A-><B->o'</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"->Monad</A-> m => (b -> m c) -> (a -> m b) -> a -> m c</TD-><TD CLASS="declbut"-><A HREF="src/Data-NavTree.html#o%27"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Kleisli composition:-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmaybePlus"-></A-><B->maybePlus</B-> :: (a -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> a) -> a -> [a]</TD-><TD CLASS="declbut"-><A HREF="src/Data-NavTree.html#maybePlus"->Source</A-></TD-></TR-></TABLE-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Data-Tree-Class.html
@@ -1,752 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Data-Tree-Class.html"->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 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 -> [t a] -> t a</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AmkLeaf"->mkLeaf</A-> :: a -> t a</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AisLeaf"->isLeaf</A-> :: t a -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AisInner"->isInner</A-> :: t a -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AgetNode"->getNode</A-> :: t a -> a</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AgetChildren"->getChildren</A-> :: t a -> [t a]</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AchangeNode"->changeNode</A-> :: (a -> a) -> t a -> t a</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AchangeChildren"->changeChildren</A-> :: ([t a] -> [t a]) -> t a -> t a</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AsetNode"->setNode</A-> :: a -> t a -> t a</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AsetChildren"->setChildren</A-> :: [t a] -> t a -> t a</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AfoldTree"->foldTree</A-> :: (a -> [b] -> b) -> t a -> b</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AnodesTree"->nodesTree</A-> :: t a -> [a]</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AdepthTree"->depthTree</A-> :: t a -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AcardTree"->cardTree</A-> :: t a -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AformatTree"->formatTree</A-> :: (a -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->) -> t a -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->class</SPAN-> <A NAME="t%3ATree"-></A-><B->Tree</B-> t <SPAN CLASS="keyword"->where</SPAN-></TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-Class.html#Tree"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkTree"-></A-><B->mkTree</B-> :: a -> [t a] -> t a</TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-Class.html#mkTree"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkLeaf"-></A-><B->mkLeaf</B-> :: a -> t a</TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-Class.html#mkLeaf"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisLeaf"-></A-><B->isLeaf</B-> :: t a -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-Class.html#isLeaf"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->leaf test: list of children empty?-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisInner"-></A-><B->isInner</B-> :: t a -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-Class.html#isInner"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->innner node test: <TT-> not . isLeaf </TT->-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetNode"-></A-><B->getNode</B-> :: t a -> a</TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-Class.html#getNode"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->select node attribute-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetChildren"-></A-><B->getChildren</B-> :: t a -> [t a]</TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-Class.html#getChildren"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->select children-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AchangeNode"-></A-><B->changeNode</B-> :: (a -> a) -> t a -> t a</TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-Class.html#changeNode"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->edit node attribute-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AchangeChildren"-></A-><B->changeChildren</B-> :: ([t a] -> [t a]) -> t a -> t a</TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-Class.html#changeChildren"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->edit children-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AsetNode"-></A-><B->setNode</B-> :: a -> t a -> t a</TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-Class.html#setNode"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AsetChildren"-></A-><B->setChildren</B-> :: [t a] -> t a -> t a</TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-Class.html#setChildren"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AfoldTree"-></A-><B->foldTree</B-> :: (a -> [b] -> b) -> t a -> b</TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-Class.html#foldTree"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->fold for trees-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AnodesTree"-></A-><B->nodesTree</B-> :: t a -> [a]</TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-Class.html#nodesTree"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->all nodes of a tree-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AdepthTree"-></A-><B->depthTree</B-> :: t a -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-></TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-Class.html#depthTree"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->depth of a tree-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AcardTree"-></A-><B->cardTree</B-> :: t a -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-></TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-Class.html#cardTree"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->number of nodes in a tree-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AformatTree"-></A-><B->formatTree</B-> :: (a -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->) -> t a -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-Class.html#formatTree"->Source</A-></TD-></TR-></TABLE-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Data-Tree-NTree-TypeDefs.html
@@ -1,440 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Data-Tree-NTree-TypeDefs.html"->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 CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"-><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 -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->) -> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->) -> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->) -> <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"->NTree</A-> node -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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-Class.html"->Data.Tree.Class</A-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->data</SPAN-> <A NAME="t%3ANTree"-></A-><B->NTree</B-> a </TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-NTree-TypeDefs.html#NTree"->Source</A-></TD-></TR-></TABLE-></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"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AFunctor"->Functor</A-> <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"->NTree</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Typeable.html#t%3ATypeable1"->Typeable1</A-> <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="/usr/local/share/doc/ghc/libraries/base/Data-Eq.html#t%3AEq"->Eq</A-> a => <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Eq.html#t%3AEq"->Eq</A-> (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"->NTree</A-> a)</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Ord.html#t%3AOrd"->Ord</A-> a => <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Ord.html#t%3AOrd"->Ord</A-> (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"->NTree</A-> a)</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Read.html#t%3ARead"->Read</A-> a => <A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Read.html#t%3ARead"->Read</A-> (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"->NTree</A-> a)</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Show.html#t%3AShow"->Show</A-> a => <A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Show.html#t%3AShow"->Show</A-> (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"->NTree</A-> a)</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/parallel/Control-Parallel-Strategies.html#t%3ANFData"->NFData</A-> a => <A HREF="/usr/local/share/doc/ghc/libraries/parallel/Control-Parallel-Strategies.html#t%3ANFData"->NFData</A-> (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"->NTree</A-> a)</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="Text-XML-HXT-DOM-XmlNode.html#t%3AXmlNode"->XmlNode</A-> a => <A HREF="Text-XML-HXT-DOM-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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-><TD CLASS="declbut"-><A HREF="src/Data-Tree-NTree-TypeDefs.html#NTrees"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AformatNTreeF"-></A-><B->formatNTreeF</B-> :: (node -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->) -> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->) -> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->) -> <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"->NTree</A-> node -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-NTree-TypeDefs.html#formatNTreeF"->Source</A-></TD-></TR-></TABLE-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-Arrow-DTDProcessing.html
@@ -1,192 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-Arrow-DTDProcessing.html"->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 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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-DTDProcessing.html#processDTD"->Source</A-></TD-></TR-></TABLE-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-Arrow-DocumentInput.html
@@ -1,385 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-Arrow-DocumentInput.html"->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-><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 CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"-><P->Version : $Id$-</P-><P->State arrows for document input-</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-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-DocumentInput.html#getURIContents"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-DocumentInput.html#getXmlContents"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->Read the content of a document.-</P-><P->This routine is usually called from Text.XML.HXT.Arrow.ProcessDocument.getDocumentContents.-</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 "file" and points to the current working directory.-</P-><P->The currently supported protocols are "http", "file", "stdin" and "string".-</P-><P->The latter two are internal protocols. An uri of the form "stdin:" stands for the content of- the standard input stream.-</P-><P->"string:some text" means, that "some text" is taken as input.- This internal protocol is used for reading from normal <TT-><A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TT-> values.-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-DocumentInput.html#getXmlEntityContents"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-DocumentInput.html#getEncoding"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-DocumentInput.html#decodeDocument"->Source</A-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-Arrow-DocumentOutput.html
@@ -1,375 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-Arrow-DocumentOutput.html"->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-><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 CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"->State arrows for document output-</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-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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%3AputXmlTree"->putXmlTree</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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%3AputXmlSource"->putXmlSource</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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%3AgetOutputEncoding"->getOutputEncoding</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AencodeDocument"->encodeDocument</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AputXmlDocument"-></A-><B->putXmlDocument</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-DocumentOutput.html#putXmlDocument"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AputXmlTree"-></A-><B->putXmlTree</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-DocumentOutput.html#putXmlTree"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AputXmlSource"-></A-><B->putXmlSource</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-DocumentOutput.html#putXmlSource"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetOutputEncoding"-></A-><B->getOutputEncoding</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-DocumentOutput.html#getOutputEncoding"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AencodeDocument"-></A-><B->encodeDocument</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-DocumentOutput.html#encodeDocument"->Source</A-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-Arrow-Edit.html
@@ -1,1762 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-Arrow-Edit.html"->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"->stable</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 CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"->common edit arrows-</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 => a <A HREF="Text-XML-HXT-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 => a <A HREF="Text-XML-HXT-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 => a <A HREF="Text-XML-HXT-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 => a <A HREF="Text-XML-HXT-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 => a <A HREF="Text-XML-HXT-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%3AxshowEscapeXml"->xshowEscapeXml</A-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> a n <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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 => a <A HREF="Text-XML-HXT-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 => a <A HREF="Text-XML-HXT-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 => a <A HREF="Text-XML-HXT-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 => a <A HREF="Text-XML-HXT-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 => a <A HREF="Text-XML-HXT-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="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AnumberLinesInXmlDoc"->numberLinesInXmlDoc</A-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"->ArrowList</A-> 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="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3ApreventEmptyElements"->preventEmptyElements</A-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"->ArrowList</A-> a => <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</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="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 => a <A HREF="Text-XML-HXT-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 => a <A HREF="Text-XML-HXT-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 => a <A HREF="Text-XML-HXT-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 => a <A HREF="Text-XML-HXT-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 => a <A HREF="Text-XML-HXT-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 => a <A HREF="Text-XML-HXT-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 => a <A HREF="Text-XML-HXT-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 => a <A HREF="Text-XML-HXT-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 => a <A HREF="Text-XML-HXT-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 => a <A HREF="Text-XML-HXT-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 => a <A HREF="Text-XML-HXT-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 => <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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="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 => <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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="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 => a <A HREF="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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AcanonicalizeAllNodes"-></A-><B->canonicalizeAllNodes</B-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"->ArrowList</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Edit.html#canonicalizeAllNodes"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AcanonicalizeForXPath"-></A-><B->canonicalizeForXPath</B-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"->ArrowList</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Edit.html#canonicalizeForXPath"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AcanonicalizeContents"-></A-><B->canonicalizeContents</B-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"->ArrowList</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Edit.html#canonicalizeContents"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AcollapseAllXText"-></A-><B->collapseAllXText</B-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"->ArrowList</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Edit.html#collapseAllXText"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AcollapseXText"-></A-><B->collapseXText</B-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"->ArrowList</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Edit.html#collapseXText"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxshowEscapeXml"-></A-><B->xshowEscapeXml</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> a n <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Edit.html#xshowEscapeXml"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->apply an arrow to the input and convert the resulting XML trees into an XML escaped string-</P-><P->This is a save variant for converting a tree into an XML string representation that is parsable with Text.XML.HXT.Arrow.ReadDocument.- It is implemented with <TT-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Axshow"->xshow</A-></TT->, but xshow does no XML escaping. The XML escaping is done with- <TT-><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AescapeXmlDoc"->escapeXmlDoc</A-></TT-> before xshow is applied.-</P-><P->So the following law holds-</P-><PRE-> xshowEscape f >>> xread == f-</PRE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AescapeXmlDoc"-></A-><B->escapeXmlDoc</B-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"->ArrowList</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Edit.html#escapeXmlDoc"->Source</A-></TD-></TR-></TABLE-></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 < 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).-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AescapeHtmlDoc"-></A-><B->escapeHtmlDoc</B-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"->ArrowList</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Edit.html#escapeHtmlDoc"->Source</A-></TD-></TR-></TABLE-></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 < 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-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AhaskellRepOfXmlDoc"-></A-><B->haskellRepOfXmlDoc</B-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"->ArrowList</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Edit.html#haskellRepOfXmlDoc"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AtreeRepOfXmlDoc"-></A-><B->treeRepOfXmlDoc</B-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"->ArrowList</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Edit.html#treeRepOfXmlDoc"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AaddHeadlineToXmlDoc"-></A-><B->addHeadlineToXmlDoc</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Edit.html#addHeadlineToXmlDoc"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AindentDoc"-></A-><B->indentDoc</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Edit.html#indentDoc"->Source</A-></TD-></TR-></TABLE-></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 or a document fragment- result is 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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AnumberLinesInXmlDoc"-></A-><B->numberLinesInXmlDoc</B-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"->ArrowList</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Edit.html#numberLinesInXmlDoc"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3ApreventEmptyElements"-></A-><B->preventEmptyElements</B-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"->ArrowList</A-> a => <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Edit.html#preventEmptyElements"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AremoveComment"-></A-><B->removeComment</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Edit.html#removeComment"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AremoveAllComment"-></A-><B->removeAllComment</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Edit.html#removeAllComment"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->remove all comments recursively-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AremoveWhiteSpace"-></A-><B->removeWhiteSpace</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Edit.html#removeWhiteSpace"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->simple filter for removing whitespace.-</P-><P->no check on sigificant whitespace, e.g. in HTML <pre>-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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AremoveAllWhiteSpace"-></A-><B->removeAllWhiteSpace</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Edit.html#removeAllWhiteSpace"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AremoveDocWhiteSpace"-></A-><B->removeDocWhiteSpace</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Edit.html#removeDocWhiteSpace"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AtransfCdata"-></A-><B->transfCdata</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Edit.html#transfCdata"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AtransfAllCdata"-></A-><B->transfAllCdata</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Edit.html#transfAllCdata"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AtransfCharRef"-></A-><B->transfCharRef</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Edit.html#transfCharRef"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->converts character references to normal text-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AtransfAllCharRef"-></A-><B->transfAllCharRef</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Edit.html#transfAllCharRef"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AhasXmlPi"-></A-><B->hasXmlPi</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Edit.html#hasXmlPi"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AaddXmlPi"-></A-><B->addXmlPi</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Edit.html#addXmlPi"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->add an <?xml version="1.0"?> processing instruction- if it's not already there-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AaddXmlPiEncoding"-></A-><B->addXmlPiEncoding</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Edit.html#addXmlPiEncoding"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->add an encoding spec to the <?xml version="1.0"?> processing instruction-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AaddDoctypeDecl"-></A-><B->addDoctypeDecl</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Edit.html#addDoctypeDecl"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->add an XHTML strict doctype declaration to a document-</P-><P->add an XHTML transitional doctype declaration to a document-</P-><P->add an XHTML frameset doctype declaration to a document-</P-><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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AaddXHtmlDoctypeTransitional"-></A-><B->addXHtmlDoctypeTransitional</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Edit.html#addXHtmlDoctypeTransitional"->Source</A-></TD-></TR-></TABLE-></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="botbar"->Produced by <A HREF="http://www.haskell.org/haddock/"->Haddock</A-> version 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-Arrow-GeneralEntitySubstitution.html
@@ -1,182 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-Arrow-GeneralEntitySubstitution.html"->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 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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-GeneralEntitySubstitution.html#processGeneralEntities"->Source</A-></TD-></TR-></TABLE-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-Arrow-Namespace.html
@@ -1,896 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-Arrow-Namespace.html"->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 CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"->namespace specific arrows-</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 => <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3ANsEnv"->NsEnv</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="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-> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->, <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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-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-> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->, <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->)</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-> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->, <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->)</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 => a <A HREF="Text-XML-HXT-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 => a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->, <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->)</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 => (<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3ANsEnv"->NsEnv</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->) -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3ANsEnv"->NsEnv</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="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 => (<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3ANsEnv"->NsEnv</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->) -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3ANsEnv"->NsEnv</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="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3ApropagateNamespaces"->propagateNamespaces</A-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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="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 => a <A HREF="Text-XML-HXT-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 => a <A HREF="Text-XML-HXT-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%3AvalidateNamespaces"->validateNamespaces</A-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AattachNsEnv"-></A-><B->attachNsEnv</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3ANsEnv"->NsEnv</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Namespace.html#attachNsEnv"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->, <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Namespace.html#cleanupNamespaces"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->, <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->)</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Namespace.html#collectNamespaceDecl"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->, <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->)</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Namespace.html#collectPrefixUriPairs"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisNamespaceDeclAttr"-></A-><B->isNamespaceDeclAttr</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Namespace.html#isNamespaceDeclAttr"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetNamespaceDecl"-></A-><B->getNamespaceDecl</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->, <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->)</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Namespace.html#getNamespaceDecl"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AprocessWithNsEnv"-></A-><B->processWithNsEnv</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => (<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3ANsEnv"->NsEnv</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->) -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3ANsEnv"->NsEnv</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Namespace.html#processWithNsEnv"->Source</A-></TD-></TR-></TABLE-></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 Data.AssocList.AssocList-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AprocessWithNsEnvWithoutAttrl"-></A-><B->processWithNsEnvWithoutAttrl</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => (<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3ANsEnv"->NsEnv</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->) -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3ANsEnv"->NsEnv</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Namespace.html#processWithNsEnvWithoutAttrl"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3ApropagateNamespaces"-></A-><B->propagateNamespaces</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Namespace.html#propagateNamespaces"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->propagate all namespace declarations "xmlns:ns=..." to all element and attribute nodes of a document.-</P-><P->This arrow does not check for illegal use of namespaces.- The real work is done by <TT->propagateNamespaceEnv</TT->.-</P-><P->The arrow may be applied repeatedly if neccessary.-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AuniqueNamespaces"-></A-><B->uniqueNamespaces</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Namespace.html#uniqueNamespaces"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AuniqueNamespacesFromDeclAndQNames"-></A-><B->uniqueNamespacesFromDeclAndQNames</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Namespace.html#uniqueNamespacesFromDeclAndQNames"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AvalidateNamespaces"-></A-><B->validateNamespaces</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Namespace.html#validateNamespaces"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->validate the namespace constraints in a whole tree.-</P-><P->Result is the list of errors concerning namespaces.- Predicates <TT-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AisWellformedQName"->isWellformedQName</A-></TT->, <TT-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AisWellformedQualifiedName"->isWellformedQualifiedName</A-></TT->, <TT-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AisDeclaredNamespace"->isDeclaredNamespace</A-></TT->- and <TT-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AisWellformedNSDecl"->isWellformedNSDecl</A-></TT-> are applied to the appropriate elements and attributes.-</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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-Arrow-ParserInterface.html
@@ -1,943 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-Arrow-ParserInterface.html"->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 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="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%3AparseXmlDoc"->parseXmlDoc</A-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => a (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->, <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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%3AparseXmlDTDPart"->parseXmlDTDPart</A-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => a (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->, <A HREF="Text-XML-HXT-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%3AparseXmlContent"->parseXmlContent</A-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => a <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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%3AparseXmlDocEncodingSpec"->parseXmlDocEncodingSpec</A-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AparseXmlDTDdeclPart"->parseXmlDTDdeclPart</A-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AparseXmlDTDdecl"->parseXmlDTDdecl</A-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AparseXmlDTDEntityValue"->parseXmlDTDEntityValue</A-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AparseXmlAttrValue"->parseXmlAttrValue</A-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AparseXmlGeneralEntityValue"->parseXmlGeneralEntityValue</A-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AparseHtmlDoc"->parseHtmlDoc</A-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"->ArrowList</A-> a => a (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->, <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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%3AparseHtmlContent"->parseHtmlContent</A-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"->ArrowList</A-> a => a <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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%3AparseHtmlTagSoup"->parseHtmlTagSoup</A-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"->ArrowList</A-> a => <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-> -> a (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->, <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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%3AvalidateDoc"->validateDoc</A-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"->ArrowList</A-> 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="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AtransformDoc"->transformDoc</A-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"->ArrowList</A-> 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="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AsubstHtmlEntityRefs"->substHtmlEntityRefs</A-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"->ArrowList</A-> 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="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AsubstXmlEntityRefs"->substXmlEntityRefs</A-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"->ArrowList</A-> 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="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AsubstEntityRefs"->substEntityRefs</A-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"->ArrowList</A-> a => [(<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->, <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</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-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AparseXmlDoc"-></A-><B->parseXmlDoc</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => a (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->, <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->) <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-ParserInterface.html#parseXmlDoc"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AparseXmlDTDPart"-></A-><B->parseXmlDTDPart</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => a (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->, <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A->) <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-ParserInterface.html#parseXmlDTDPart"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AparseXmlContent"-></A-><B->parseXmlContent</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => a <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-ParserInterface.html#parseXmlContent"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AparseXmlDocEncodingSpec"-></A-><B->parseXmlDocEncodingSpec</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-ParserInterface.html#parseXmlDocEncodingSpec"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AparseXmlDTDdeclPart"-></A-><B->parseXmlDTDdeclPart</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-ParserInterface.html#parseXmlDTDdeclPart"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AparseXmlDTDdecl"-></A-><B->parseXmlDTDdecl</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-ParserInterface.html#parseXmlDTDdecl"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AparseXmlDTDEntityValue"-></A-><B->parseXmlDTDEntityValue</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-ParserInterface.html#parseXmlDTDEntityValue"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AparseXmlAttrValue"-></A-><B->parseXmlAttrValue</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-ParserInterface.html#parseXmlAttrValue"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AparseXmlGeneralEntityValue"-></A-><B->parseXmlGeneralEntityValue</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-ParserInterface.html#parseXmlGeneralEntityValue"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AparseHtmlDoc"-></A-><B->parseHtmlDoc</B-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"->ArrowList</A-> a => a (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->, <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->) <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-ParserInterface.html#parseHtmlDoc"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AparseHtmlContent"-></A-><B->parseHtmlContent</B-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"->ArrowList</A-> a => a <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-ParserInterface.html#parseHtmlContent"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AparseHtmlTagSoup"-></A-><B->parseHtmlTagSoup</B-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"->ArrowList</A-> a => <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-> -> a (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->, <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->) <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-ParserInterface.html#parseHtmlTagSoup"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AvalidateDoc"-></A-><B->validateDoc</B-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"->ArrowList</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-ParserInterface.html#validateDoc"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AtransformDoc"-></A-><B->transformDoc</B-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"->ArrowList</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-ParserInterface.html#transformDoc"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AsubstHtmlEntityRefs"-></A-><B->substHtmlEntityRefs</B-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"->ArrowList</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-ParserInterface.html#substHtmlEntityRefs"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->substitution of all predefined XHTMT entities for none ASCII chars-</P-><P->This arrow recurses through a whole XML tree and substitutes all- entity refs within text nodes and attribute values by a text node- containing of a single char corresponding to this entity.-</P-><P->Unknown entity refs remain unchanged-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AsubstXmlEntityRefs"-></A-><B->substXmlEntityRefs</B-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"->ArrowList</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-ParserInterface.html#substXmlEntityRefs"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->substitution of the five predefined XMT entities, works like <TT-><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AsubstHtmlEntityRefs"->substHtmlEntityRefs</A-></TT->-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AsubstEntityRefs"-></A-><B->substEntityRefs</B-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"->ArrowList</A-> a => [(<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->, <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-ParserInterface.html#substEntityRefs"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->the entity substitution arrow called from <TT-><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AsubstXmlEntityRefs"->substXmlEntityRefs</A-></TT-> and <TT-><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AsubstHtmlEntityRefs"->substHtmlEntityRefs</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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-Arrow-Pickle-DTD.html
@@ -1,1090 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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.Pickle.DTD</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-><SCRIPT SRC="haddock-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-DTD.html"->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.Pickle.DTD</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 CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"-><P->Version : $Id$-</P-><P->Functions for converting a pickler schema-into a DTD-</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%3ADTDdescr"->DTDdescr</A-> = <A HREF="#v%3ADTDdescr"->DTDdescr</A-> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3AName"->Name</A-> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchemas"->Schemas</A-> [(<A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3AName"->Name</A->, <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchemas"->Schemas</A->)]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AdtdDescrToXml"->dtdDescrToXml</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#t%3ADTDdescr"->DTDdescr</A-> -> <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%3AcheckAttrModell"->checkAttrModell</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3AName"->Name</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchemas"->Schemas</A-> -> <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%3AcheckAM"->checkAM</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3AName"->Name</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> <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%3AcheckAMC"->checkAMC</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3AName"->Name</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3AName"->Name</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> <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%3AcheckContentModell"->checkContentModell</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3AName"->Name</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> <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%3AscContToXml"->scContToXml</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</A->, <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%3AscWrap"->scWrap</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AscCont"->scCont</A-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> <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%3AscConts"->scConts</A-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchemas"->Schemas</A-> -> <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%3AscAttrToXml"->scAttrToXml</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</A->, <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%3AcheckErr"->checkErr</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <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%3AfoundErr"->foundErr</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <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%3AdtdDescr"->dtdDescr</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#t%3ADTDdescr"->DTDdescr</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AelementDeclarations"->elementDeclarations</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchemas"->Schemas</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AelementDecs"->elementDecs</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchemas"->Schemas</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchemas"->Schemas</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchemas"->Schemas</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AelemNames"->elemNames</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchemas"->Schemas</A-> -> [<A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3AName"->Name</A->]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AelemName"->elemName</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3AName"->Name</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AelemRefs"->elemRefs</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchemas"->Schemas</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchemas"->Schemas</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AattrDec"->attrDec</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> [(<A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3AName"->Name</A->, <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchemas"->Schemas</A->)]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AremAttrDec"->remAttrDec</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->data</SPAN-> <A NAME="t%3ADTDdescr"-></A-><B->DTDdescr</B-> </TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-DTD.html#DTDdescr"->Source</A-></TD-></TR-></TABLE-></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%3ADTDdescr"-></A-><B->DTDdescr</B-> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3AName"->Name</A-> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchemas"->Schemas</A-> [(<A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3AName"->Name</A->, <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchemas"->Schemas</A->)]</TD-><TD CLASS="rdoc"-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="section4"-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:DTDdescr')" ALT="show/hide"-> Instances</TD-></TR-><TR-><TD CLASS="body"-><DIV ID="i:DTDdescr" STYLE="display:block;"-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Show.html#t%3AShow"->Show</A-> <A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#t%3ADTDdescr"->DTDdescr</A-></TD-></TR-></TABLE-></DIV-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AdtdDescrToXml"-></A-><B->dtdDescrToXml</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#t%3ADTDdescr"->DTDdescr</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-DTD.html#dtdDescrToXml"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->convert a DTD descr into XmlTrees-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AcheckAttrModell"-></A-><B->checkAttrModell</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3AName"->Name</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchemas"->Schemas</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-DTD.html#checkAttrModell"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AcheckAM"-></A-><B->checkAM</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3AName"->Name</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-DTD.html#checkAM"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AcheckAMC"-></A-><B->checkAMC</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3AName"->Name</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3AName"->Name</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-DTD.html#checkAMC"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AcheckContentModell"-></A-><B->checkContentModell</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3AName"->Name</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-DTD.html#checkContentModell"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AscContToXml"-></A-><B->scContToXml</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</A->, <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A->)</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-DTD.html#scContToXml"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AscWrap"-></A-><B->scWrap</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-DTD.html#scWrap"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AscCont"-></A-><B->scCont</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-DTD.html#scCont"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AscConts"-></A-><B->scConts</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchemas"->Schemas</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-DTD.html#scConts"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AscAttrToXml"-></A-><B->scAttrToXml</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</A->, <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A->)</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-DTD.html#scAttrToXml"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AcheckErr"-></A-><B->checkErr</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-DTD.html#checkErr"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AfoundErr"-></A-><B->foundErr</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-DTD.html#foundErr"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AdtdDescr"-></A-><B->dtdDescr</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#t%3ADTDdescr"->DTDdescr</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-DTD.html#dtdDescr"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->convert a pickler schema into a DTD descr-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AelementDeclarations"-></A-><B->elementDeclarations</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchemas"->Schemas</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-DTD.html#elementDeclarations"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AelementDecs"-></A-><B->elementDecs</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchemas"->Schemas</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchemas"->Schemas</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchemas"->Schemas</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-DTD.html#elementDecs"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AelemNames"-></A-><B->elemNames</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchemas"->Schemas</A-> -> [<A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3AName"->Name</A->]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-DTD.html#elemNames"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AelemName"-></A-><B->elemName</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3AName"->Name</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-DTD.html#elemName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AelemRefs"-></A-><B->elemRefs</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchemas"->Schemas</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchemas"->Schemas</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-DTD.html#elemRefs"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AattrDec"-></A-><B->attrDec</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> [(<A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3AName"->Name</A->, <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchemas"->Schemas</A->)]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-DTD.html#attrDec"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AremAttrDec"-></A-><B->remAttrDec</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-DTD.html#remAttrDec"->Source</A-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-Arrow-Pickle-Schema.html
@@ -1,2191 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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.Pickle.Schema</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-><SCRIPT SRC="haddock-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html"->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.Pickle.Schema</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 CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"-><P->Version : $Id$-</P-><P->Datatypes and functions for building a content model-for XML picklers. A schema is part of every pickler-and can be used to derive a corrensponding DTD (or Relax NG schema).-This schema further enables checking the picklers.-</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%3ASchema"->Schema</A-> </TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="decl"->= <A HREF="#v%3AAny"->Any</A-></TD-></TR-><TR-><TD CLASS="decl"->| <A HREF="#v%3ASeq"->Seq</A-> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="recfield"-><A HREF="#v%3Asc_l"->sc_l</A-> :: [<A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A->]</TD-></TR-></TABLE->}</TD-></TR-><TR-><TD CLASS="decl"->| <A HREF="#v%3AAlt"->Alt</A-> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="recfield"-><A HREF="#v%3Asc_l"->sc_l</A-> :: [<A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A->]</TD-></TR-></TABLE->}</TD-></TR-><TR-><TD CLASS="decl"->| <A HREF="#v%3ARep"->Rep</A-> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="recfield"-><A HREF="#v%3Asc_lb"->sc_lb</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-></TD-></TR-><TR-><TD CLASS="recfield"-><A HREF="#v%3Asc_ub"->sc_ub</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-></TD-></TR-><TR-><TD CLASS="recfield"-><A HREF="#v%3Asc_1"->sc_1</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-></TD-></TR-></TABLE->}</TD-></TR-><TR-><TD CLASS="decl"->| <A HREF="#v%3AElement"->Element</A-> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="recfield"-><A HREF="#v%3Asc_n"->sc_n</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3AName"->Name</A-></TD-></TR-><TR-><TD CLASS="recfield"-><A HREF="#v%3Asc_1"->sc_1</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-></TD-></TR-></TABLE->}</TD-></TR-><TR-><TD CLASS="decl"->| <A HREF="#v%3AAttribute"->Attribute</A-> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="recfield"-><A HREF="#v%3Asc_n"->sc_n</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3AName"->Name</A-></TD-></TR-><TR-><TD CLASS="recfield"-><A HREF="#v%3Asc_1"->sc_1</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-></TD-></TR-></TABLE->}</TD-></TR-><TR-><TD CLASS="decl"->| <A HREF="#v%3AElemRef"->ElemRef</A-> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="recfield"-><A HREF="#v%3Asc_n"->sc_n</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3AName"->Name</A-></TD-></TR-></TABLE->}</TD-></TR-><TR-><TD CLASS="decl"->| <A HREF="#v%3ACharData"->CharData</A-> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="recfield"-><A HREF="#v%3Asc_dt"->sc_dt</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ADataTypeDescr"->DataTypeDescr</A-></TD-></TR-></TABLE->}</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="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><SPAN CLASS="keyword"->type</SPAN-> <A HREF="#t%3ASchemas"->Schemas</A-> = [<A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A->]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><SPAN CLASS="keyword"->data</SPAN-> <A HREF="#t%3ADataTypeDescr"->DataTypeDescr</A-> = <A HREF="#v%3ADTDescr"->DTDescr</A-> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="recfield"-><A HREF="#v%3AdtLib"->dtLib</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="recfield"-><A HREF="#v%3AdtName"->dtName</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="recfield"-><A HREF="#v%3AdtParams"->dtParams</A-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</A-></TD-></TR-></TABLE->}</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AisScXsd"->isScXsd</A-> :: (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A->) -> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AisScFixed"->isScFixed</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AisScEnum"->isScEnum</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AisScElem"->isScElem</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AisScAttr"->isScAttr</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AisScElemRef"->isScElemRef</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AisScCharData"->isScCharData</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AisScSARE"->isScSARE</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AisScList"->isScList</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AisScOpt"->isScOpt</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxsdParam"->xsdParam</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AscDT"->scDT</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AscDTxsd"->scDTxsd</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AscString"->scString</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AscString1"->scString1</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AscFixed"->scFixed</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AscEnum"->scEnum</A-> :: [<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->] -> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AscNmtoken"->scNmtoken</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AscNmtokens"->scNmtokens</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AscEmpty"->scEmpty</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AscSeq"->scSeq</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AscSeqs"->scSeqs</A-> :: [<A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A->] -> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AscNull"->scNull</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AscAlt"->scAlt</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AscAlts"->scAlts</A-> :: [<A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A->] -> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AscOption"->scOption</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AscList"->scList</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AscList1"->scList1</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AscOpt"->scOpt</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AscRep"->scRep</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AscElem"->scElem</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AscAttr"->scAttr</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->data</SPAN-> <A NAME="t%3ASchema"-></A-><B->Schema</B-> </TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#Schema"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="ndoc"->The datatype for modelling the structure of an-</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%3AAny"-></A-><B->Any</B-></TD-><TD CLASS="rdoc"-></TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3ASeq"-></A-><B->Seq</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%3Asc_l"-></A-><B->sc_l</B-> :: [<A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A->]</TD-><TD CLASS="rdoc"-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3AAlt"-></A-><B->Alt</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%3Asc_l"-></A-><B->sc_l</B-> :: [<A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A->]</TD-><TD CLASS="rdoc"-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3ARep"-></A-><B->Rep</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%3Asc_lb"-></A-><B->sc_lb</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-></TD-><TD CLASS="rdoc"-></TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3Asc_ub"-></A-><B->sc_ub</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-></TD-><TD CLASS="rdoc"-></TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3Asc_1"-></A-><B->sc_1</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-></TD-><TD CLASS="rdoc"-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3AElement"-></A-><B->Element</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%3Asc_n"-></A-><B->sc_n</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3AName"->Name</A-></TD-><TD CLASS="rdoc"-></TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3Asc_1"-></A-><B->sc_1</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-></TD-><TD CLASS="rdoc"-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3AAttribute"-></A-><B->Attribute</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%3Asc_n"-></A-><B->sc_n</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3AName"->Name</A-></TD-><TD CLASS="rdoc"-></TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3Asc_1"-></A-><B->sc_1</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-></TD-><TD CLASS="rdoc"-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3AElemRef"-></A-><B->ElemRef</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%3Asc_n"-></A-><B->sc_n</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3AName"->Name</A-></TD-><TD CLASS="rdoc"-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3ACharData"-></A-><B->CharData</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%3Asc_dt"-></A-><B->sc_dt</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ADataTypeDescr"->DataTypeDescr</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:Schema')" ALT="show/hide"-> Instances</TD-></TR-><TR-><TD CLASS="body"-><DIV ID="i:Schema" STYLE="display:block;"-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Eq.html#t%3AEq"->Eq</A-> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Show.html#t%3AShow"->Show</A-> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-></TD-></TR-></TABLE-></DIV-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->type</SPAN-> <A NAME="t%3AName"-></A-><B->Name</B-> = <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#Name"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->type</SPAN-> <A NAME="t%3ASchemas"-></A-><B->Schemas</B-> = [<A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A->]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#Schemas"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->data</SPAN-> <A NAME="t%3ADataTypeDescr"-></A-><B->DataTypeDescr</B-> </TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#DataTypeDescr"->Source</A-></TD-></TR-></TABLE-></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%3ADTDescr"-></A-><B->DTDescr</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%3AdtLib"-></A-><B->dtLib</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="rdoc"-></TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3AdtName"-></A-><B->dtName</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="rdoc"-></TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3AdtParams"-></A-><B->dtParams</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</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:DataTypeDescr')" ALT="show/hide"-> Instances</TD-></TR-><TR-><TD CLASS="body"-><DIV ID="i:DataTypeDescr" STYLE="display:block;"-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Eq.html#t%3AEq"->Eq</A-> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ADataTypeDescr"->DataTypeDescr</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Show.html#t%3AShow"->Show</A-> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ADataTypeDescr"->DataTypeDescr</A-></TD-></TR-></TABLE-></DIV-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisScXsd"-></A-><B->isScXsd</B-> :: (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A->) -> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#isScXsd"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->test: is schema a simple XML Schema datatype-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisScFixed"-></A-><B->isScFixed</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#isScFixed"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->test: is type a fixed value attribute type-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisScEnum"-></A-><B->isScEnum</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#isScEnum"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisScElem"-></A-><B->isScElem</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#isScElem"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisScAttr"-></A-><B->isScAttr</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#isScAttr"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisScElemRef"-></A-><B->isScElemRef</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#isScElemRef"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisScCharData"-></A-><B->isScCharData</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#isScCharData"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisScSARE"-></A-><B->isScSARE</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#isScSARE"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisScList"-></A-><B->isScList</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#isScList"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisScOpt"-></A-><B->isScOpt</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#isScOpt"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxsdParam"-></A-><B->xsdParam</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#xsdParam"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->access an attribute of a descr of an atomic type-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AscDT"-></A-><B->scDT</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#scDT"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AscDTxsd"-></A-><B->scDTxsd</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#scDTxsd"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AscString"-></A-><B->scString</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#scString"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AscString1"-></A-><B->scString1</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#scString1"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AscFixed"-></A-><B->scFixed</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#scFixed"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AscEnum"-></A-><B->scEnum</B-> :: [<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->] -> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#scEnum"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AscNmtoken"-></A-><B->scNmtoken</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#scNmtoken"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AscNmtokens"-></A-><B->scNmtokens</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#scNmtokens"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AscEmpty"-></A-><B->scEmpty</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#scEmpty"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AscSeq"-></A-><B->scSeq</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#scSeq"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AscSeqs"-></A-><B->scSeqs</B-> :: [<A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A->] -> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#scSeqs"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AscNull"-></A-><B->scNull</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#scNull"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AscAlt"-></A-><B->scAlt</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#scAlt"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AscAlts"-></A-><B->scAlts</B-> :: [<A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A->] -> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#scAlts"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AscOption"-></A-><B->scOption</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#scOption"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AscList"-></A-><B->scList</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#scList"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AscList1"-></A-><B->scList1</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#scList1"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AscOpt"-></A-><B->scOpt</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#scOpt"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AscRep"-></A-><B->scRep</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#scRep"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AscElem"-></A-><B->scElem</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#scElem"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AscAttr"-></A-><B->scAttr</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#scAttr"->Source</A-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-Arrow-Pickle-Xml.html
@@ -1,3075 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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.Pickle.Xml</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-><SCRIPT SRC="haddock-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html"->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.Pickle.Xml</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 CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"-><P->Pickler functions for converting between user defined data types- and XmlTree data. Usefull for persistent storage and retreival- of arbitray data as XML documents-</P-><P->This module is an adaptation of the pickler combinators- developed by Andrew Kennedy- ( http://research.microsoft.com/~akenn/fun/picklercombinators.pdf )-</P-><P->The difference to Kennedys approach is that the target is not- a list of Chars but a list of XmlTrees. The basic picklers will- convert data into XML text nodes. New are the picklers for- creating elements and attributes.-</P-><P->One extension was neccessary: The unpickling may fail.- Therefore the unpickler has a Maybe result type.- Failure is used to unpickle optional elements- (Maybe data) and lists of arbitray length-</P-><P->There is an example program demonstrating the use- of the picklers for a none trivial data structure.- (see "examples/arrows/pickle" directory)-</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%3ASt"->St</A-> = <A HREF="#v%3ASt"->St</A-> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="recfield"-><A HREF="#v%3Aattributes"->attributes</A-> :: [<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A->]</TD-></TR-><TR-><TD CLASS="recfield"-><A HREF="#v%3Acontents"->contents</A-> :: [<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="decl"-><SPAN CLASS="keyword"->data</SPAN-> <A HREF="#t%3APU"->PU</A-> a = <A HREF="#v%3APU"->PU</A-> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="recfield"-><A HREF="#v%3AappPickle"->appPickle</A-> :: (a, <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"->St</A->) -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"->St</A-></TD-></TR-><TR-><TD CLASS="recfield"-><A HREF="#v%3AappUnPickle"->appUnPickle</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"->St</A-> -> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> a, <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"->St</A->)</TD-></TR-><TR-><TD CLASS="recfield"-><A HREF="#v%3AtheSchema"->theSchema</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-></TD-></TR-></TABLE->}</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AemptySt"->emptySt</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"->St</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AaddAtt"->addAtt</A-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"->St</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"->St</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AaddCont"->addCont</A-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"->St</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"->St</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AdropCont"->dropCont</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"->St</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"->St</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AgetAtt"->getAtt</A-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"->St</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</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%3AgetCont"->getCont</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"->St</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</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%3ApickleDoc"->pickleDoc</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a -> 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%3AunpickleDoc"->unpickleDoc</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> a</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxpZero"->xpZero</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxpUnit"->xpUnit</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> ()</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxpLift"->xpLift</A-> :: a -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxpLiftMaybe"->xpLiftMaybe</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxpCondSeq"->xpCondSeq</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> b -> (b -> a) -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a -> (a -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> b) -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> b</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxpSeq"->xpSeq</A-> :: (b -> a) -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a -> (a -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> b) -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> b</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxpChoice"->xpChoice</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> b -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a -> (a -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> b) -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> b</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxpWrap"->xpWrap</A-> :: (a -> b, b -> a) -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> b</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxpWrapMaybe"->xpWrapMaybe</A-> :: (a -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> b, b -> a) -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> b</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxpPair"->xpPair</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> b -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> (a, b)</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxpTriple"->xpTriple</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> b -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> c -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> (a, b, c)</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Axp4Tuple"->xp4Tuple</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> b -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> c -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> d -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> (a, b, c, d)</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Axp5Tuple"->xp5Tuple</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> b -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> c -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> d -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> e -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> (a, b, c, d, e)</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Axp6Tuple"->xp6Tuple</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> b -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> c -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> d -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> e -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> f -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> (a, b, c, d, e, f)</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxpText"->xpText</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxpTextDT"->xpTextDT</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxpText0"->xpText0</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxpText0DT"->xpText0DT</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxpPrim"->xpPrim</A-> :: (<A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Read.html#t%3ARead"->Read</A-> a, <A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Show.html#t%3AShow"->Show</A-> a) => <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxpTree"->xpTree</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</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%3AxpTrees"->xpTrees</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</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%3AxpXmlText"->xpXmlText</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxpOption"->xpOption</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> a)</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxpDefault"->xpDefault</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Eq.html#t%3AEq"->Eq</A-> a => a -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxpList"->xpList</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> [a]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxpList1"->xpList1</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> [a]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxpMap"->xpMap</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Ord.html#t%3AOrd"->Ord</A-> k => <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> k -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> v -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> (<A HREF="/usr/local/share/doc/ghc/libraries/containers/Data-Map.html#t%3AMap"->Map</A-> k v)</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxpAlt"->xpAlt</A-> :: (a -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A->) -> [<A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a] -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxpElemQN"->xpElemQN</A-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxpElem"->xpElem</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxpElemWithAttrValue"->xpElemWithAttrValue</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxpAttrQN"->xpAttrQN</A-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxpAttr"->xpAttr</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxpAttrImplied"->xpAttrImplied</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> a)</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxpAttrFixed"->xpAttrFixed</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> ()</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxpAddFixedAttr"->xpAddFixedAttr</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><SPAN CLASS="keyword"->class</SPAN-> <A HREF="#t%3AXmlPickler"->XmlPickler</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%3Axpickle"->xpickle</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> 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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->data</SPAN-> <A NAME="t%3ASt"-></A-><B->St</B-> </TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#St"->Source</A-></TD-></TR-></TABLE-></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%3ASt"-></A-><B->St</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%3Aattributes"-></A-><B->attributes</B-> :: [<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A->]</TD-><TD CLASS="rdoc"-></TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3Acontents"-></A-><B->contents</B-> :: [<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->data</SPAN-> <A NAME="t%3APU"-></A-><B->PU</B-> a </TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#PU"->Source</A-></TD-></TR-></TABLE-></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%3APU"-></A-><B->PU</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%3AappPickle"-></A-><B->appPickle</B-> :: (a, <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"->St</A->) -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"->St</A-></TD-><TD CLASS="rdoc"-></TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3AappUnPickle"-></A-><B->appUnPickle</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"->St</A-> -> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> a, <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"->St</A->)</TD-><TD CLASS="rdoc"-></TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3AtheSchema"-></A-><B->theSchema</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AemptySt"-></A-><B->emptySt</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"->St</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#emptySt"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AaddAtt"-></A-><B->addAtt</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"->St</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"->St</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#addAtt"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AaddCont"-></A-><B->addCont</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"->St</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"->St</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#addCont"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AdropCont"-></A-><B->dropCont</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"->St</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"->St</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#dropCont"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetAtt"-></A-><B->getAtt</B-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"->St</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#getAtt"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetCont"-></A-><B->getCont</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"->St</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#getCont"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3ApickleDoc"-></A-><B->pickleDoc</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a -> a -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#pickleDoc"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->conversion of an arbitrary value into an XML document tree.-</P-><P->The pickler, first parameter, controls the conversion process.- Result is a complete document tree including a root node-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AunpickleDoc"-></A-><B->unpickleDoc</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#unpickleDoc"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->Conversion of an XML document tree into an arbitrary data type-</P-><P->The inverse of <TT-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3ApickleDoc"->pickleDoc</A-></TT->.- This law should hold for all picklers: <TT-> unpickle px . pickle px $ v == Just v </TT->.- Not every possible combination of picklers make sense.- For reconverting a value from an XML tree, is becomes neccessary,- to introduce "enough" markup for unpickling the value-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxpZero"-></A-><B->xpZero</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpZero"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->The zero pickler-</P-><P->Encodes nothing, fails always during unpickling-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxpUnit"-></A-><B->xpUnit</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> ()</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpUnit"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxpLift"-></A-><B->xpLift</B-> :: a -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpLift"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->Lift a value to a pickler-</P-><P->When pickling, nothing is encoded, when unpickling, the given value is inserted.- This pickler always succeeds.-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxpLiftMaybe"-></A-><B->xpLiftMaybe</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpLiftMaybe"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->Lift a Maybe value to a pickler.-</P-><P-><TT->Nothing</TT-> is mapped to the zero pickler, <TT->Just x</TT-> is pickled with <TT->xpLift x</TT->.-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxpCondSeq"-></A-><B->xpCondSeq</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> b -> (b -> a) -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a -> (a -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> b) -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> b</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpCondSeq"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->pickle/unpickle combinator for sequence and choice.-</P-><P->When the first unpickler fails,- the second one is taken, else the third one configured with the result from the first- is taken. This pickler is a generalisation for <TT-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpSeq"->xpSeq</A-></TT-> and <TT-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpChoice"->xpChoice</A-></TT-> .-</P-><P->The schema must be attached later, e.g. in xpPair or other higher level combinators-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxpSeq"-></A-><B->xpSeq</B-> :: (b -> a) -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a -> (a -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> b) -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> b</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpSeq"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->Combine two picklers sequentially.-</P-><P->If the first fails during- unpickling, the whole unpickler fails-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxpChoice"-></A-><B->xpChoice</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> b -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a -> (a -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> b) -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> b</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpChoice"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->combine tow picklers with a choice-</P-><P->Run two picklers in sequence like with xpSeq.- When during unpickling the first one fails,- an alternative pickler (first argument) is applied.- This pickler is only used as combinator for unpickling.-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxpWrap"-></A-><B->xpWrap</B-> :: (a -> b, b -> a) -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> b</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpWrap"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->map value into another domain and apply pickler there-</P-><P->One of the most often used picklers.-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxpWrapMaybe"-></A-><B->xpWrapMaybe</B-> :: (a -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> b, b -> a) -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> b</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpWrapMaybe"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->like <TT-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpWrap"->xpWrap</A-></TT->, but if the inverse mapping is undefined, the unpickler fails-</P-><P->Map a value into another domain. If the inverse mapping is- undefined (Nothing), the unpickler fails-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxpPair"-></A-><B->xpPair</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> b -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> (a, b)</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpPair"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->pickle a pair of values sequentially-</P-><P->Used for pairs or together with wrap for pickling- algebraic data types with two components-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxpTriple"-></A-><B->xpTriple</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> b -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> c -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> (a, b, c)</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpTriple"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Like <TT-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpPair"->xpPair</A-></TT-> but for triples-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Axp4Tuple"-></A-><B->xp4Tuple</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> b -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> c -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> d -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> (a, b, c, d)</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xp4Tuple"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Like <TT-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpPair"->xpPair</A-></TT-> and <TT-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpTriple"->xpTriple</A-></TT-> but for 4-tuples-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Axp5Tuple"-></A-><B->xp5Tuple</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> b -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> c -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> d -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> e -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> (a, b, c, d, e)</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xp5Tuple"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Like <TT-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpPair"->xpPair</A-></TT-> and <TT-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpTriple"->xpTriple</A-></TT-> but for 5-tuples-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Axp6Tuple"-></A-><B->xp6Tuple</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> b -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> c -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> d -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> e -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> f -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> (a, b, c, d, e, f)</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xp6Tuple"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Like <TT-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpPair"->xpPair</A-></TT-> and <TT-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpTriple"->xpTriple</A-></TT-> but for 6-tuples-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxpText"-></A-><B->xpText</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpText"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->Pickle a string into an XML text node-</P-><P->One of the most often used primitive picklers. Attention:- For pickling empty strings use <TT-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpText0"->xpText0</A-></TT->. If the text has a more- specific datatype than xsd:string, use <TT-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpTextDT"->xpTextDT</A-></TT->-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxpTextDT"-></A-><B->xpTextDT</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpTextDT"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->Pickle a string into an XML text node-</P-><P->Text pickler with a description of the structure of the text- by a schema. A schema for a data type can be defined by <TT-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AscDT"->scDT</A-></TT->.- In Text.XML.HXT.Arrow.Pickle.Schema there are some more functions for creating- simple datatype descriptions.-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxpText0"-></A-><B->xpText0</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpText0"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->Pickle a possibly empty string into an XML node.-</P-><P->Must be used in all places, where empty strings are legal values.- If the content of an element can be an empty string, this string disapears- during storing the DOM into a document and reparse the document.- So the empty text node becomes nothing, and the pickler must deliver an empty string,- if there is no text node in the document.-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxpText0DT"-></A-><B->xpText0DT</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Schema</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpText0DT"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->Pickle a possibly empty string with a datatype description into an XML node.-</P-><P->Like <TT-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpText0"->xpText0</A-></TT-> but with extra Parameter for datatype description as in <TT-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpTextDT"->xpTextDT</A-></TT->.-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxpPrim"-></A-><B->xpPrim</B-> :: (<A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Read.html#t%3ARead"->Read</A-> a, <A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Show.html#t%3AShow"->Show</A-> a) => <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpPrim"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->Pickle an arbitrary value by applyling show during pickling- and read during unpickling.-</P-><P->Real pickling is then done with <TT-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpText"->xpText</A-></TT->.- One of the most often used pimitive picklers. Applicable for all- types which are instances of <TT->Read</TT-> and <TT->Show</TT->-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxpTree"-></A-><B->xpTree</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpTree"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->Pickle an XmlTree by just adding it-</P-><P->Usefull for components of type XmlTree in other data structures-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxpTrees"-></A-><B->xpTrees</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> [<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A->]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpTrees"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->Pickle a whole list of XmlTrees by just adding the list, unpickle is done by taking all element contens.-</P-><P->This pickler should always combined with <TT-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpElem"->xpElem</A-></TT-> for taking the whole contents of an element.-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxpXmlText"-></A-><B->xpXmlText</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpXmlText"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->Pickle a string representing XML contents by inserting the tree representation into the XML document.-</P-><P->Unpickling is done by converting the contents with- <TT-><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AxshowEscapeXml"->xshowEscapeXml</A-></TT-> into a string,- this function will escape all XML special chars, such that pickling the value back becomes save.- Pickling is done with <TT-><A HREF="Text-XML-HXT-Arrow-ReadDocument.html#v%3Axread"->xread</A-></TT->-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxpOption"-></A-><B->xpOption</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> a)</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpOption"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->Encoding of optional data by ignoring the Nothing case during pickling- and relying on failure during unpickling to recompute the Nothing case-</P-><P->The default pickler for Maybe types-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxpDefault"-></A-><B->xpDefault</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Eq.html#t%3AEq"->Eq</A-> a => a -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpDefault"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->Optional conversion with default value-</P-><P->The default value is not encoded in the XML document,- during unpickling the default value is inserted if the pickler fails-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxpList"-></A-><B->xpList</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> [a]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpList"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->Encoding of list values by pickling all list elements sequentially.-</P-><P->Unpickler relies on failure for detecting the end of the list.- The standard pickler for lists. Can also be used in combination with <TT-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpWrap"->xpWrap</A-></TT->- for constructing set and map picklers-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxpList1"-></A-><B->xpList1</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> [a]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpList1"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->Encoding of a none empty list of values-</P-><P->Attention: when calling this pickler with an empty list,- an internal error "head of empty list is raised".-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxpMap"-></A-><B->xpMap</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Ord.html#t%3AOrd"->Ord</A-> k => <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> k -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> v -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> (<A HREF="/usr/local/share/doc/ghc/libraries/containers/Data-Map.html#t%3AMap"->Map</A-> k v)</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpMap"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->Standard pickler for maps-</P-><P->This pickler converts a map into a list of pairs.- All key value pairs are mapped to an element with name (1.arg),- the key is encoded as an attribute named by the 2. argument,- the 3. arg is the pickler for the keys, the last one for the values-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxpAlt"-></A-><B->xpAlt</B-> :: (a -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A->) -> [<A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a] -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpAlt"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->Pickler for sum data types.-</P-><P->Every constructor is mapped to an index into the list of picklers.- The index is used only during pickling, not during unpickling, there the 1. match is taken-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxpElemQN"-></A-><B->xpElemQN</B-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpElemQN"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->Pickler for wrapping/unwrapping data into an XML element-</P-><P->Extra parameter is the element name given as a QName. THE pickler for constructing- nested structures-</P-><P->Example:-</P-><PRE-> xpElemQN (mkName "number") $ xpickle-</PRE-><P->will map an (42::Int) onto-</P-><PRE-> <number>42</number>-</PRE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxpElem"-></A-><B->xpElem</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpElem"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->convenient Pickler for xpElemQN-</P-><PRE-> xpElem n = xpElemQN (mkName n)-</PRE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxpElemWithAttrValue"-></A-><B->xpElemWithAttrValue</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpElemWithAttrValue"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->Pickler for wrapping/unwrapping data into an XML element with an attribute with given value-</P-><P->To make XML structures flexible but limit the number of different elements, it's sometimes- useful to use a kind of generic element with a key value structure-</P-><P->Example:-</P-><PRE-> <attr name="key1">value1</attr>- <attr name="key2">value2</attr>- <attr name="key3">value3</attr>-</PRE-><P->the Haskell datatype may look like this-</P-><PRE-> type T = T { key1 :: Int ; key2 :: String ; key3 :: Double }-</PRE-><P->Then the picker for that type looks like this-</P-><PRE-> xpT :: PU T- xpT = xpWrap ( uncurry3 T, \ t -> (key1 t, key2 t, key3 t) ) $- xpTriple (xpElemWithAttrValue "attr" "name" "key1" $ xpickle)- (xpElemWithAttrValue "attr" "name" "key2" $ xpText0)- (xpElemWithAttrValue "attr" "name" "key3" $ xpickle)-</PRE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxpAttrQN"-></A-><B->xpAttrQN</B-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpAttrQN"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->Pickler for storing/retreiving data into/from an attribute value-</P-><P->The attribute is inserted in the surrounding element constructed by the <TT-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpElem"->xpElem</A-></TT-> pickler-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxpAttr"-></A-><B->xpAttr</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpAttr"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->convenient Pickler for xpAttrQN-</P-><PRE-> xpAttr n = xpAttrQN (mkName n)-</PRE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxpAttrImplied"-></A-><B->xpAttrImplied</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> a)</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpAttrImplied"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Add an optional attribute for an optional value (Maybe a).-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxpAttrFixed"-></A-><B->xpAttrFixed</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> ()</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpAttrFixed"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxpAddFixedAttr"-></A-><B->xpAddFixedAttr</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpAddFixedAttr"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->Add an attribute with a fixed value.-</P-><P->Useful e.g. to declare namespaces. Is implemented by <TT-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpAttrFixed"->xpAttrFixed</A-></TT->-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->class</SPAN-> <A NAME="t%3AXmlPickler"-></A-><B->XmlPickler</B-> a <SPAN CLASS="keyword"->where</SPAN-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#XmlPickler"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="ndoc"->The class for overloading <TT-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3Axpickle"->xpickle</A-></TT->, the default pickler-</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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Axpickle"-></A-><B->xpickle</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->PU</A-> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpickle"->Source</A-></TD-></TR-></TABLE-></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:XmlPickler')" ALT="show/hide"-> Instances</TD-></TR-><TR-><TD CLASS="body"-><DIV ID="i:XmlPickler" STYLE="display:block;"-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"-><TR-><TD CLASS="decl"-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3AXmlPickler"->XmlPickler</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3AXmlPickler"->XmlPickler</A-> Integer</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3AXmlPickler"->XmlPickler</A-> ()</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3AXmlPickler"->XmlPickler</A-> a => <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3AXmlPickler"->XmlPickler</A-> ([] a)</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3AXmlPickler"->XmlPickler</A-> a => <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3AXmlPickler"->XmlPickler</A-> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> a)</TD-></TR-><TR-><TD CLASS="decl"->(<A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3AXmlPickler"->XmlPickler</A-> a, <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3AXmlPickler"->XmlPickler</A-> b) => <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3AXmlPickler"->XmlPickler</A-> ((,) a b)</TD-></TR-><TR-><TD CLASS="decl"->(<A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3AXmlPickler"->XmlPickler</A-> a, <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3AXmlPickler"->XmlPickler</A-> b, <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3AXmlPickler"->XmlPickler</A-> c) => <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3AXmlPickler"->XmlPickler</A-> ((,,) a b c)</TD-></TR-><TR-><TD CLASS="decl"->(<A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3AXmlPickler"->XmlPickler</A-> a, <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3AXmlPickler"->XmlPickler</A-> b, <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3AXmlPickler"->XmlPickler</A-> c, <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3AXmlPickler"->XmlPickler</A-> d) => <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3AXmlPickler"->XmlPickler</A-> ((,,,) a b c d)</TD-></TR-><TR-><TD CLASS="decl"->(<A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3AXmlPickler"->XmlPickler</A-> a, <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3AXmlPickler"->XmlPickler</A-> b, <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3AXmlPickler"->XmlPickler</A-> c, <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3AXmlPickler"->XmlPickler</A-> d, <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3AXmlPickler"->XmlPickler</A-> e) => <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3AXmlPickler"->XmlPickler</A-> ((,,,,) a b c d e)</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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-Arrow-Pickle.html
@@ -1,3316 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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.Pickle</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-><SCRIPT SRC="haddock-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle.html"->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.Pickle</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 CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"-><P->Version : $Id$-</P-><P->Pickler functions for converting between user defined data types-and XmlTree data. Usefull for persistent storage and retreival-of arbitray data as XML documents-</P-><P->This module is an adaptation of the pickler combinators-developed by Andrew Kennedy-( http://research.microsoft.com/~akenn/fun/picklercombinators.pdf )-</P-><P->The difference to Kennedys approach is that the target is not-a list of Chars but a list of XmlTrees. The basic picklers will-convert data into XML text nodes. New are the picklers for-creating elements and attributes.-</P-><P->One extension was neccessary: The unpickling may fail.-Therefore the unpickler has a Maybe result type.-Failure is used to unpickle optional elements-(Maybe data) and lists of arbitray length-</P-><P->There is an example program demonstrating the use-of the picklers for a none trivial data structure.-(see "examples/arrows/pickle" directory)-</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%3AxpickleDocument"->xpickleDocument</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"->IOStateArrow</A-> s 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%3AxunpickleDocument"->xunpickleDocument</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"->IOStateArrow</A-> s b a</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxpickleWriteDTD"->xpickleWriteDTD</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> b -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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%3AxpickleDTD"->xpickleDTD</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> 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="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AcheckPickler"->checkPickler</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Eq.html#t%3AEq"->Eq</A-> a => <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"->IOStateArrow</A-> s a a</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxpickleVal"->xpickleVal</A-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> b -> 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%3AxunpickleVal"->xunpickleVal</A-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> b -> a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> b</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AthePicklerDTD"->thePicklerDTD</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> b -> <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%3Aa_addDTD"->a_addDTD</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3ApickleDoc"->pickleDoc</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a -> 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%3AunpickleDoc"->unpickleDoc</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> a</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><SPAN CLASS="keyword"->data</SPAN-> <A HREF="#t%3APU"->PU</A-> a = <A HREF="#v%3APU"->PU</A-> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="recfield"-><A HREF="#v%3AappPickle"->appPickle</A-> :: (a, <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"->St</A->) -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"->St</A-></TD-></TR-><TR-><TD CLASS="recfield"-><A HREF="#v%3AappUnPickle"->appUnPickle</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"->St</A-> -> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> a, <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"->St</A->)</TD-></TR-><TR-><TD CLASS="recfield"-><A HREF="#v%3AtheSchema"->theSchema</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3ASchema"->Schema</A-></TD-></TR-></TABLE->}</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><SPAN CLASS="keyword"->class</SPAN-> <A HREF="#t%3AXmlPickler"->XmlPickler</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%3Axpickle"->xpickle</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a</TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Axp4Tuple"->xp4Tuple</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> b -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> c -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> d -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> (a, b, c, d)</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Axp5Tuple"->xp5Tuple</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> b -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> c -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> d -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> e -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> (a, b, c, d, e)</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Axp6Tuple"->xp6Tuple</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> b -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> c -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> d -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> e -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> f -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> (a, b, c, d, e, f)</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxpAddFixedAttr"->xpAddFixedAttr</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxpAlt"->xpAlt</A-> :: (a -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A->) -> [<A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a] -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxpAttr"->xpAttr</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxpAttrFixed"->xpAttrFixed</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> ()</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxpAttrImplied"->xpAttrImplied</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> a)</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxpChoice"->xpChoice</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> b -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a -> (a -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> b) -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> b</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxpCondSeq"->xpCondSeq</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> b -> (b -> a) -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a -> (a -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> b) -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> b</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxpDefault"->xpDefault</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Eq.html#t%3AEq"->Eq</A-> a => a -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxpElem"->xpElem</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxpElemWithAttrValue"->xpElemWithAttrValue</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Axpickle"->xpickle</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3AXmlPickler"->XmlPickler</A-> a => <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxpLift"->xpLift</A-> :: a -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxpLiftMaybe"->xpLiftMaybe</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxpList"->xpList</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> [a]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxpList1"->xpList1</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> [a]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxpMap"->xpMap</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Ord.html#t%3AOrd"->Ord</A-> k => <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> k -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> v -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> (<A HREF="/usr/local/share/doc/ghc/libraries/containers/Data-Map.html#t%3AMap"->Map</A-> k v)</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxpOption"->xpOption</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> a)</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxpPair"->xpPair</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> b -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> (a, b)</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxpPrim"->xpPrim</A-> :: (<A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Read.html#t%3ARead"->Read</A-> a, <A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Show.html#t%3AShow"->Show</A-> a) => <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxpSeq"->xpSeq</A-> :: (b -> a) -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a -> (a -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> b) -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> b</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxpText"->xpText</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxpText0"->xpText0</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxpTextDT"->xpTextDT</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3ASchema"->Schema</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxpText0DT"->xpText0DT</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3ASchema"->Schema</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxpTree"->xpTree</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</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%3AxpTrees"->xpTrees</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</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%3AxpTriple"->xpTriple</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> b -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> c -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> (a, b, c)</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxpUnit"->xpUnit</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> ()</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxpWrap"->xpWrap</A-> :: (a -> b, b -> a) -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> b</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxpWrapMaybe"->xpWrapMaybe</A-> :: (a -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> b, b -> a) -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> b</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxpXmlText"->xpXmlText</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxpZero"->xpZero</A-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><SPAN CLASS="keyword"->data</SPAN-> <A HREF="#t%3ASchema"->Schema</A-> </TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><SPAN CLASS="keyword"->type</SPAN-> <A HREF="#t%3ASchemas"->Schemas</A-> = [<A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3ASchema"->Schema</A->]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><SPAN CLASS="keyword"->data</SPAN-> <A HREF="#t%3ADataTypeDescr"->DataTypeDescr</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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxpickleDocument"-></A-><B->xpickleDocument</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"->IOStateArrow</A-> s a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle.html#xpickleDocument"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->store an arbitray value in a persistent XML document-</P-><P->The pickler converts a value into an XML tree, this is written out with- Text.XML.HXT.Arrow.writeDocument. The option list is passed to Text.XML.HXT.Arrow.writeDocument-</P-><P->An option evaluated by this arrow is <TT-><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3Aa_addDTD"->a_addDTD</A-></TT->.- If <TT-><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3Aa_addDTD"->a_addDTD</A-></TT-> is set (<TT-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Av_1"->v_1</A-></TT->), the pickler DTD is added as an inline DTD into the document.-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxunpickleDocument"-></A-><B->xunpickleDocument</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"->IOStateArrow</A-> s b a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle.html#xunpickleDocument"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->read an arbitray value from an XML document-</P-><P->The document is read with Text.XML.HXT.Arrow.readDocument. Options are passed- to Text.XML.HXT.Arrow.readDocument. The conversion from XmlTree is done with the- pickler.-</P-><P-><TT-> xpickleDocument xp al dest >>> xunpickleDocument xp al' dest </TT-> is the identity arrow- when applied with the appropriate options. When during pickling indentation is switched on,- the whitespace must be removed during unpickling.-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxpickleWriteDTD"-></A-><B->xpickleWriteDTD</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> b -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle.html#xpickleWriteDTD"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Write out the DTD generated out of a pickler. Calls xpicklerDTD-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxpickleDTD"-></A-><B->xpickleDTD</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle.html#xpickleDTD"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->The arrow for generating the DTD out of a pickler-</P-><P->A DTD is generated from a pickler and check for consistency.- Errors concerning the DTD are issued.-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AcheckPickler"-></A-><B->checkPickler</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Eq.html#t%3AEq"->Eq</A-> a => <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"->IOStateArrow</A-> s a a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle.html#checkPickler"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->An arrow for checking picklers-</P-><P->A value is transformed into an XML document by a given pickler,- the associated DTD is extracted from the pickler and checked,- the document including the DTD is tranlated into a string,- this string is read and validated against the included DTD,- and unpickled.- The last step is the equality with the input.-</P-><P->If the check succeeds, the arrow works like this, else it fails.-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxpickleVal"-></A-><B->xpickleVal</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> b -> a b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle.html#xpickleVal"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->The arrow version of the pickler function-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxunpickleVal"-></A-><B->xunpickleVal</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> b -> a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> b</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle.html#xunpickleVal"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->The arrow version of the unpickler function-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AthePicklerDTD"-></A-><B->thePicklerDTD</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> b -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle.html#thePicklerDTD"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Compute the associated DTD of a pickler-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Aa_addDTD"-></A-><B->a_addDTD</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle.html#a_addDTD"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Option for generating and adding DTD when document is pickled-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3ApickleDoc"-></A-><B->pickleDoc</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a -> a -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#pickleDoc"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->conversion of an arbitrary value into an XML document tree.-</P-><P->The pickler, first parameter, controls the conversion process.- Result is a complete document tree including a root node-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AunpickleDoc"-></A-><B->unpickleDoc</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#unpickleDoc"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->Conversion of an XML document tree into an arbitrary data type-</P-><P->The inverse of <TT-><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3ApickleDoc"->pickleDoc</A-></TT->.- This law should hold for all picklers: <TT-> unpickle px . pickle px $ v == Just v </TT->.- Not every possible combination of picklers make sense.- For reconverting a value from an XML tree, is becomes neccessary,- to introduce "enough" markup for unpickling the value-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->data</SPAN-> <A NAME="t%3APU"-></A-><B->PU</B-> a </TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#PU"->Source</A-></TD-></TR-></TABLE-></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%3APU"-></A-><B->PU</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%3AappPickle"-></A-><B->appPickle</B-> :: (a, <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"->St</A->) -> <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"->St</A-></TD-><TD CLASS="rdoc"-></TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3AappUnPickle"-></A-><B->appUnPickle</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"->St</A-> -> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> a, <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"->St</A->)</TD-><TD CLASS="rdoc"-></TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3AtheSchema"-></A-><B->theSchema</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3ASchema"->Schema</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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->class</SPAN-> <A NAME="t%3AXmlPickler"-></A-><B->XmlPickler</B-> a <SPAN CLASS="keyword"->where</SPAN-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#XmlPickler"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="ndoc"->The class for overloading <TT-><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3Axpickle"->xpickle</A-></TT->, the default pickler-</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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Axpickle"-></A-><B->xpickle</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpickle"->Source</A-></TD-></TR-></TABLE-></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:XmlPickler')" ALT="show/hide"-> Instances</TD-></TR-><TR-><TD CLASS="body"-><DIV ID="i:XmlPickler" STYLE="display:block;"-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"-><TR-><TD CLASS="decl"-><A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3AXmlPickler"->XmlPickler</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3AXmlPickler"->XmlPickler</A-> Integer</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3AXmlPickler"->XmlPickler</A-> ()</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3AXmlPickler"->XmlPickler</A-> a => <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3AXmlPickler"->XmlPickler</A-> ([] a)</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3AXmlPickler"->XmlPickler</A-> a => <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3AXmlPickler"->XmlPickler</A-> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> a)</TD-></TR-><TR-><TD CLASS="decl"->(<A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3AXmlPickler"->XmlPickler</A-> a, <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3AXmlPickler"->XmlPickler</A-> b) => <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3AXmlPickler"->XmlPickler</A-> ((,) a b)</TD-></TR-><TR-><TD CLASS="decl"->(<A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3AXmlPickler"->XmlPickler</A-> a, <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3AXmlPickler"->XmlPickler</A-> b, <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3AXmlPickler"->XmlPickler</A-> c) => <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3AXmlPickler"->XmlPickler</A-> ((,,) a b c)</TD-></TR-><TR-><TD CLASS="decl"->(<A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3AXmlPickler"->XmlPickler</A-> a, <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3AXmlPickler"->XmlPickler</A-> b, <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3AXmlPickler"->XmlPickler</A-> c, <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3AXmlPickler"->XmlPickler</A-> d) => <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3AXmlPickler"->XmlPickler</A-> ((,,,) a b c d)</TD-></TR-><TR-><TD CLASS="decl"->(<A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3AXmlPickler"->XmlPickler</A-> a, <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3AXmlPickler"->XmlPickler</A-> b, <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3AXmlPickler"->XmlPickler</A-> c, <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3AXmlPickler"->XmlPickler</A-> d, <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3AXmlPickler"->XmlPickler</A-> e) => <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3AXmlPickler"->XmlPickler</A-> ((,,,,) a b c d e)</TD-></TR-></TABLE-></DIV-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Axp4Tuple"-></A-><B->xp4Tuple</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> b -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> c -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> d -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> (a, b, c, d)</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xp4Tuple"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Like <TT-><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpPair"->xpPair</A-></TT-> and <TT-><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpTriple"->xpTriple</A-></TT-> but for 4-tuples-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Axp5Tuple"-></A-><B->xp5Tuple</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> b -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> c -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> d -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> e -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> (a, b, c, d, e)</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xp5Tuple"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Like <TT-><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpPair"->xpPair</A-></TT-> and <TT-><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpTriple"->xpTriple</A-></TT-> but for 5-tuples-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Axp6Tuple"-></A-><B->xp6Tuple</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> b -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> c -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> d -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> e -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> f -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> (a, b, c, d, e, f)</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xp6Tuple"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Like <TT-><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpPair"->xpPair</A-></TT-> and <TT-><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpTriple"->xpTriple</A-></TT-> but for 6-tuples-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxpAddFixedAttr"-></A-><B->xpAddFixedAttr</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpAddFixedAttr"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->Add an attribute with a fixed value.-</P-><P->Useful e.g. to declare namespaces. Is implemented by <TT-><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpAttrFixed"->xpAttrFixed</A-></TT->-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxpAlt"-></A-><B->xpAlt</B-> :: (a -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A->) -> [<A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a] -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpAlt"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->Pickler for sum data types.-</P-><P->Every constructor is mapped to an index into the list of picklers.- The index is used only during pickling, not during unpickling, there the 1. match is taken-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxpAttr"-></A-><B->xpAttr</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpAttr"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->convenient Pickler for xpAttrQN-</P-><PRE-> xpAttr n = xpAttrQN (mkName n)-</PRE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxpAttrFixed"-></A-><B->xpAttrFixed</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> ()</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpAttrFixed"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxpAttrImplied"-></A-><B->xpAttrImplied</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> a)</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpAttrImplied"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Add an optional attribute for an optional value (Maybe a).-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxpChoice"-></A-><B->xpChoice</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> b -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a -> (a -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> b) -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> b</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpChoice"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->combine tow picklers with a choice-</P-><P->Run two picklers in sequence like with xpSeq.- When during unpickling the first one fails,- an alternative pickler (first argument) is applied.- This pickler is only used as combinator for unpickling.-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxpCondSeq"-></A-><B->xpCondSeq</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> b -> (b -> a) -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a -> (a -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> b) -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> b</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpCondSeq"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->pickle/unpickle combinator for sequence and choice.-</P-><P->When the first unpickler fails,- the second one is taken, else the third one configured with the result from the first- is taken. This pickler is a generalisation for <TT-><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpSeq"->xpSeq</A-></TT-> and <TT-><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpChoice"->xpChoice</A-></TT-> .-</P-><P->The schema must be attached later, e.g. in xpPair or other higher level combinators-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxpDefault"-></A-><B->xpDefault</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Eq.html#t%3AEq"->Eq</A-> a => a -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpDefault"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->Optional conversion with default value-</P-><P->The default value is not encoded in the XML document,- during unpickling the default value is inserted if the pickler fails-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxpElem"-></A-><B->xpElem</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpElem"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->convenient Pickler for xpElemQN-</P-><PRE-> xpElem n = xpElemQN (mkName n)-</PRE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxpElemWithAttrValue"-></A-><B->xpElemWithAttrValue</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpElemWithAttrValue"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->Pickler for wrapping/unwrapping data into an XML element with an attribute with given value-</P-><P->To make XML structures flexible but limit the number of different elements, it's sometimes- useful to use a kind of generic element with a key value structure-</P-><P->Example:-</P-><PRE-> <attr name="key1">value1</attr>- <attr name="key2">value2</attr>- <attr name="key3">value3</attr>-</PRE-><P->the Haskell datatype may look like this-</P-><PRE-> type T = T { key1 :: Int ; key2 :: String ; key3 :: Double }-</PRE-><P->Then the picker for that type looks like this-</P-><PRE-> xpT :: PU T- xpT = xpWrap ( uncurry3 T, \ t -> (key1 t, key2 t, key3 t) ) $- xpTriple (xpElemWithAttrValue "attr" "name" "key1" $ xpickle)- (xpElemWithAttrValue "attr" "name" "key2" $ xpText0)- (xpElemWithAttrValue "attr" "name" "key3" $ xpickle)-</PRE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Axpickle"-></A-><B->xpickle</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3AXmlPickler"->XmlPickler</A-> a => <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpickle"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxpLift"-></A-><B->xpLift</B-> :: a -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpLift"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->Lift a value to a pickler-</P-><P->When pickling, nothing is encoded, when unpickling, the given value is inserted.- This pickler always succeeds.-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxpLiftMaybe"-></A-><B->xpLiftMaybe</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpLiftMaybe"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->Lift a Maybe value to a pickler.-</P-><P-><TT->Nothing</TT-> is mapped to the zero pickler, <TT->Just x</TT-> is pickled with <TT->xpLift x</TT->.-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxpList"-></A-><B->xpList</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> [a]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpList"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->Encoding of list values by pickling all list elements sequentially.-</P-><P->Unpickler relies on failure for detecting the end of the list.- The standard pickler for lists. Can also be used in combination with <TT-><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpWrap"->xpWrap</A-></TT->- for constructing set and map picklers-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxpList1"-></A-><B->xpList1</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> [a]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpList1"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->Encoding of a none empty list of values-</P-><P->Attention: when calling this pickler with an empty list,- an internal error "head of empty list is raised".-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxpMap"-></A-><B->xpMap</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Ord.html#t%3AOrd"->Ord</A-> k => <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> k -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> v -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> (<A HREF="/usr/local/share/doc/ghc/libraries/containers/Data-Map.html#t%3AMap"->Map</A-> k v)</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpMap"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->Standard pickler for maps-</P-><P->This pickler converts a map into a list of pairs.- All key value pairs are mapped to an element with name (1.arg),- the key is encoded as an attribute named by the 2. argument,- the 3. arg is the pickler for the keys, the last one for the values-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxpOption"-></A-><B->xpOption</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> a)</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpOption"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->Encoding of optional data by ignoring the Nothing case during pickling- and relying on failure during unpickling to recompute the Nothing case-</P-><P->The default pickler for Maybe types-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxpPair"-></A-><B->xpPair</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> b -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> (a, b)</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpPair"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->pickle a pair of values sequentially-</P-><P->Used for pairs or together with wrap for pickling- algebraic data types with two components-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxpPrim"-></A-><B->xpPrim</B-> :: (<A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Read.html#t%3ARead"->Read</A-> a, <A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Show.html#t%3AShow"->Show</A-> a) => <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpPrim"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->Pickle an arbitrary value by applyling show during pickling- and read during unpickling.-</P-><P->Real pickling is then done with <TT-><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpText"->xpText</A-></TT->.- One of the most often used pimitive picklers. Applicable for all- types which are instances of <TT->Read</TT-> and <TT->Show</TT->-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxpSeq"-></A-><B->xpSeq</B-> :: (b -> a) -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a -> (a -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> b) -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> b</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpSeq"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->Combine two picklers sequentially.-</P-><P->If the first fails during- unpickling, the whole unpickler fails-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxpText"-></A-><B->xpText</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpText"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->Pickle a string into an XML text node-</P-><P->One of the most often used primitive picklers. Attention:- For pickling empty strings use <TT-><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpText0"->xpText0</A-></TT->. If the text has a more- specific datatype than xsd:string, use <TT-><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpTextDT"->xpTextDT</A-></TT->-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxpText0"-></A-><B->xpText0</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpText0"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->Pickle a possibly empty string into an XML node.-</P-><P->Must be used in all places, where empty strings are legal values.- If the content of an element can be an empty string, this string disapears- during storing the DOM into a document and reparse the document.- So the empty text node becomes nothing, and the pickler must deliver an empty string,- if there is no text node in the document.-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxpTextDT"-></A-><B->xpTextDT</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3ASchema"->Schema</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpTextDT"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->Pickle a string into an XML text node-</P-><P->Text pickler with a description of the structure of the text- by a schema. A schema for a data type can be defined by <TT-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AscDT"->scDT</A-></TT->.- In Text.XML.HXT.Arrow.Pickle.Schema there are some more functions for creating- simple datatype descriptions.-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxpText0DT"-></A-><B->xpText0DT</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3ASchema"->Schema</A-> -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpText0DT"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->Pickle a possibly empty string with a datatype description into an XML node.-</P-><P->Like <TT-><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpText0"->xpText0</A-></TT-> but with extra Parameter for datatype description as in <TT-><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpTextDT"->xpTextDT</A-></TT->.-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxpTree"-></A-><B->xpTree</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpTree"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->Pickle an XmlTree by just adding it-</P-><P->Usefull for components of type XmlTree in other data structures-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxpTrees"-></A-><B->xpTrees</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> [<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A->]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpTrees"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->Pickle a whole list of XmlTrees by just adding the list, unpickle is done by taking all element contens.-</P-><P->This pickler should always combined with <TT-><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpElem"->xpElem</A-></TT-> for taking the whole contents of an element.-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxpTriple"-></A-><B->xpTriple</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> b -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> c -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> (a, b, c)</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpTriple"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Like <TT-><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpPair"->xpPair</A-></TT-> but for triples-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxpUnit"-></A-><B->xpUnit</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> ()</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpUnit"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxpWrap"-></A-><B->xpWrap</B-> :: (a -> b, b -> a) -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> b</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpWrap"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->map value into another domain and apply pickler there-</P-><P->One of the most often used picklers.-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxpWrapMaybe"-></A-><B->xpWrapMaybe</B-> :: (a -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> b, b -> a) -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a -> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> b</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpWrapMaybe"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->like <TT-><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpWrap"->xpWrap</A-></TT->, but if the inverse mapping is undefined, the unpickler fails-</P-><P->Map a value into another domain. If the inverse mapping is- undefined (Nothing), the unpickler fails-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxpXmlText"-></A-><B->xpXmlText</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpXmlText"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->Pickle a string representing XML contents by inserting the tree representation into the XML document.-</P-><P->Unpickling is done by converting the contents with- <TT-><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AxshowEscapeXml"->xshowEscapeXml</A-></TT-> into a string,- this function will escape all XML special chars, such that pickling the value back becomes save.- Pickling is done with <TT-><A HREF="Text-XML-HXT-Arrow-ReadDocument.html#v%3Axread"->xread</A-></TT->-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxpZero"-></A-><B->xpZero</B-> :: <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->PU</A-> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpZero"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->The zero pickler-</P-><P->Encodes nothing, fails always during unpickling-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->data</SPAN-> <A NAME="t%3ASchema"-></A-><B->Schema</B-> </TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#Schema"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="ndoc"->The datatype for modelling the structure of an-</TD-></TR-><TR-><TD CLASS="section4"-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Schema')" ALT="show/hide"-> Instances</TD-></TR-><TR-><TD CLASS="body"-><DIV ID="i:Schema" STYLE="display:block;"-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Eq.html#t%3AEq"->Eq</A-> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3ASchema"->Schema</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Show.html#t%3AShow"->Show</A-> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3ASchema"->Schema</A-></TD-></TR-></TABLE-></DIV-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->type</SPAN-> <A NAME="t%3ASchemas"-></A-><B->Schemas</B-> = [<A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3ASchema"->Schema</A->]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#Schemas"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->data</SPAN-> <A NAME="t%3ADataTypeDescr"-></A-><B->DataTypeDescr</B-> </TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-Pickle-Schema.html#DataTypeDescr"->Source</A-></TD-></TR-></TABLE-></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:DataTypeDescr')" ALT="show/hide"-> Instances</TD-></TR-><TR-><TD CLASS="body"-><DIV ID="i:DataTypeDescr" STYLE="display:block;"-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Eq.html#t%3AEq"->Eq</A-> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3ADataTypeDescr"->DataTypeDescr</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Show.html#t%3AShow"->Show</A-> <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3ADataTypeDescr"->DataTypeDescr</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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-Arrow-ProcessDocument.html
@@ -1,494 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-Arrow-ProcessDocument.html"->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 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-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</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%3AparseHtmlDocument"->parseHtmlDocument</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</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%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-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AparseXmlDocument"-></A-><B->parseXmlDocument</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-ProcessDocument.html#parseXmlDocument"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AparseHtmlDocument"-></A-><B->parseHtmlDocument</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-ProcessDocument.html#parseHtmlDocument"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-ProcessDocument.html#validateDocument"->Source</A-></TD-></TR-></TABLE-></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 "/" and the document content is removed from the tree.-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-ProcessDocument.html#propagateAndValidateNamespaces"->Source</A-></TD-></TR-></TABLE-></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 "/" and the document content is removed from the tree.-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetDocumentContents"-></A-><B->getDocumentContents</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-ProcessDocument.html#getDocumentContents"->Source</A-></TD-></TR-></TABLE-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-Arrow-ReadDocument.html
@@ -1,707 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-Arrow-ReadDocument.html"->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 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-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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%3AreadFromDocument"->readFromDocument</A-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</A-> -> <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"->IOStateArrow</A-> s <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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%3AreadString"->readString</A-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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%3AreadFromString"->readFromString</A-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</A-> -> <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"->IOStateArrow</A-> s <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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%3Ahread"->hread</A-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => a <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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%3Axread"->xread</A-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => a <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AreadDocument"-></A-><B->readDocument</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-ReadDocument.html#readDocument"->Source</A-></TD-></TR-></TABLE-></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_parse_html</TT->: use HTML parser, else use XML parser (default)-</LI-><LI-> <TT->a_tagsoup</TT-> : use light weight and lasy parser based on tagsoup lib-</LI-><LI-> <TT->a_parse_by_mimetype</TT-> : select the parser by the mime type of the document- (pulled out of the HTTP header). When the mime type is set to "text/html"- the HTML parser (parsec or tagsoup) is taken, when it's set to- "text/xml" or "text/xhtml" the XML parser (parsec or tagsoup) is taken.- If the mime type is something else no further processing is performed,- the contents is given back to the application in form of a single text node.- If the default document encoding (<TT->a_encoding</TT->) is set to isoLatin1, this even enables processing- of arbitray binary data.-</LI-><LI-> <TT->a_validate</TT-> : validate document againsd DTD (default), else skip validation-</LI-><LI-> <TT->a_relax_schema</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_check_namespaces</TT-> : check namespaces, else skip namespace processing (default)-</LI-><LI-> <TT->a_canonicalize</TT-> : canonicalize document (default), else skip canonicalization-</LI-><LI-> <TT->a_preserve_comment</TT-> : preserve comments during canonicalization, else remove comments (default)-</LI-><LI-> <TT->a_remove_whitespace</TT-> : remove all whitespace, used for document indentation, else skip this step (default)-</LI-><LI-> <TT->a_indent</TT-> : indent document by inserting whitespace, else skip this step (default)-</LI-><LI-> <TT->a_issue_warnings</TT-> : issue warnings, when parsing HTML (default), else ignore HTML parser warnings-</LI-><LI-> <TT->a_issue_errors</TT-> : issue all error messages on stderr (default), or ignore all error messages-</LI-><LI-> <TT->a_ignore_encoding_errors</TT->: ignore all encoding errors, default is issue all encoding errors-</LI-><LI-> <TT->a_ignore_none_xml_contents</TT->: ignore document contents of none XML/HTML documents.- This option can be useful for implementing crawler like applications, e.g. an URL checker.- In those cases net traffic can be reduced.-</LI-><LI-> <TT->a_trace</TT-> : trace level: values: 0 - 4-</LI-><LI-> <TT->a_proxy</TT-> : proxy for http access, e.g. www-cache:3128-</LI-><LI-> <TT->a_use_curl</TT-> : obsolete and ignored, HTTP acccess is always done with curl bindings for libcurl-</LI-><LI-> <TT->a_strict_input</TT-> : file input is done strictly using the Data.ByteString input functions. This ensures correct closing of files, especially when working with- the tagsoup parser and not processing the whole input data. Default is off. The <TT->ByteString</TT-> input usually is not faster than the buildin <TT->hGetContents</TT->- for strings.-</LI-><LI-> <TT->a_options_curl</TT-> : deprecated but for compatibility reasons still supported.- More options passed to the curl binding.- Instead of using this option to set a whole bunch of options at once for curl- it is recomended to use the <TT->curl-.*</TT-> options syntax described below.-</LI-><LI-> <TT->a_encoding</TT-> : default document encoding (<TT->utf8</TT->, <TT->isoLatin1</TT->, <TT->usAscii</TT->, <TT->iso8859_2</TT->, ... , <TT->iso8859_16</TT->, ...).- Only XML and HTML documents are decoded, documents with none XML/HTML mime types are not decoded. The whole content is returned in a single text node-</LI-><LI-> <TT->a_mime_types</TT-> : set the mime type table for file input with given file. The format of this config file must be in the syntax of a debian linux "mime.types" config file-</LI-><LI-> curl options : the HTTP interface with libcurl can be configured with a lot of options. To support these options in an easy way, there is a naming convetion:- Every option, which has the prefix <TT->curl</TT-> and the rest of the name forms an option as described in the curl man page, is passed to the curl binding lib.- See Text.XML.HXT.IO.GetHTTPLibCurl.getCont for examples. Currently most of the options concerning HTTP requests are implemented.-</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 "stdin:", the document is read from standard input.-</P-><P->examples:-</P-><PRE-> readDocument [ ] "test.xml"-</PRE-><P->reads and validates a document "test.xml", no namespace propagation, only canonicalization is performed -</P-><PRE-> readDocument [ (a_validate, "0")- , (a_encoding, isoLatin1)- , (a_parse_by_mimetype, "1")- ] "http://localhost/test.php"-</PRE-><P->reads document "test.php", parses it as HTML or XML depending on the mimetype given from the server, but without validation, default encoding <TT->isoLatin1</TT->.-</P-><PRE-> readDocument [ (a_parse_html, "1")- , (a_encoding, isoLatin1)- ] ""-</PRE-><P->reads a HTML document from standard input, no validation is done when parsing HTML, default encoding is <TT->isoLatin1</TT->,-parsing is done with tagsoup parser, but input is read strictly-</P-><PRE-> readDocument [ (a_encoding, isoLatin1)- , (a_mime_type, "/etc/mime.types")- , (a_tagsoup, "1")- , (a_strict_input, "1")- ] "test.svg"-</PRE-><P->reads an SVG document from standard input, sets the mime type by looking in the system mimetype config file, default encoding is <TT->isoLatin1</TT->,-parsing is done with the lightweight tagsoup parser, which implies no validation.-</P-><PRE-> readDocument [ (a_parse_html, "1")- , (a_proxy, "www-cache:3128")- , (a_curl, "1")- , (a_issue_warnings, "0")- ] "http://www.haskell.org/"-</PRE-><P->reads Haskell homepage with HTML parser ignoring any warnings, with http access via external program curl and proxy "www-cache" at port 3128-</P-><PRE-> readDocument [ (a_validate, "1")- , (a_check_namespace, "1")- , (a_remove_whitespace, "1")- , (a_trace, "2")- ] "http://www.w3c.org/"-</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 Text.XML.HXT.Arrow.WriteDocument.writeDocument 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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AreadFromDocument"-></A-><B->readFromDocument</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</A-> -> <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"->IOStateArrow</A-> s <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-ReadDocument.html#readFromDocument"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AreadString"-></A-><B->readString</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-ReadDocument.html#readString"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AreadFromString"-></A-><B->readFromString</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</A-> -> <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"->IOStateArrow</A-> s <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-ReadDocument.html#readFromString"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Ahread"-></A-><B->hread</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => a <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-ReadDocument.html#hread"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Axread"-></A-><B->xread</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => a <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-ReadDocument.html#xread"->Source</A-></TD-></TR-></TABLE-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-Arrow-WriteDocument.html
@@ -1,415 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-Arrow-WriteDocument.html"->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 CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"->Compound arrow for writing XML documents-</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-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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%3AwriteDocumentToString"->writeDocumentToString</A-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</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="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AprepareContents"->prepareContents</A-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AwriteDocument"-></A-><B->writeDocument</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-WriteDocument.html#writeDocument"->Source</A-></TD-></TR-></TABLE-></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 Text.XML.HXT.Arrow.ReadDocument.readDocument-</P-><P->usage: <TT-> writeDocument optionList destination </TT->-</P-><P->if <TT-> destination </TT-> is the empty string or "-", stdout is used as output device-</P-><P->available options are-</P-><UL-><LI-> <TT->a_indent</TT-> : indent document for readability, (default: no indentation)-</LI-><LI-> <TT->a_remove_whitespace</TT-> : remove all redundant whitespace for shorten text (default: no removal)-</LI-><LI-> <TT->a_output_encoding</TT-> : encoding of document, default is <TT->a_encoding</TT-> or <TT->utf8</TT->-</LI-><LI-> <TT->a_output_xml</TT-> : (default) issue XML: quote special XML chars >,<,",',& where neccessary- add XML processing instruction- and encode document with respect to <TT->a_output_encoding</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_output_html</TT-> : issue XHTML: quote alle XML chars, use HTML entity refs or char refs for none ASCII chars-</LI-><LI-> <TT->a_no_empty_elements</TT-> : do not write the short form <name .../> for empty elements. When <TT->a_output_html</TT-> is set,- the always empty HTML elements are still written in short form, but not the others, as e.g. the script element.- Empty script elements, like <script href="..."/>, are always a problem for firefox and others.- When XML output is generated with this option, all empty elements are written in the long form.-</LI-><LI-> <TT->a_no_xml_pi</TT-> : suppress generation of <?xml ... ?> processing instruction-</LI-><LI-> <TT->a_show_tree</TT-> : show tree representation of document (for debugging)-</LI-><LI-> <TT->a_show_haskell</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 [] "hello.xml"- >>>- writeDocument [] "bye.xml"- )- 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] <- 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- )-</PRE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AwriteDocumentToString"-></A-><B->writeDocumentToString</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</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="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-WriteDocument.html#writeDocumentToString"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Convert a document into a string. Formating 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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AprepareContents"-></A-><B->prepareContents</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-WriteDocument.html#prepareContents"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->indent and format output-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="botbar"->Produced by <A HREF="http://www.haskell.org/haddock/"->Haddock</A-> version 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-Arrow-XPath.html
@@ -1,883 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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.XPath</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-><SCRIPT SRC="haddock-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-Arrow-XPath.html"->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.XPath</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 CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"-><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 "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.-</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="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AgetXPathTreesInDocWithNsEnv"->getXPathTreesInDocWithNsEnv</A-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AgetXPathTrees"->getXPathTrees</A-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AgetXPathTreesWithNsEnv"->getXPathTreesWithNsEnv</A-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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="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 => a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> 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 => a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> 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="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> 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 => <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"->XmlNodeSet</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="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 => a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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="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 => a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</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-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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="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 => a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</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-> -> a <A HREF="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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetXPathTreesInDoc"-></A-><B->getXPathTreesInDoc</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XPath.html#getXPathTreesInDoc"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetXPathTreesInDocWithNsEnv"-></A-><B->getXPathTreesInDocWithNsEnv</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XPath.html#getXPathTreesInDocWithNsEnv"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Same as <TT-><A HREF="Text-XML-HXT-Arrow-XPath.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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetXPathTrees"-></A-><B->getXPathTrees</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XPath.html#getXPathTrees"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetXPathTreesWithNsEnv"-></A-><B->getXPathTreesWithNsEnv</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XPath.html#getXPathTreesWithNsEnv"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Same as <TT-><A HREF="Text-XML-HXT-Arrow-XPath.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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetElemNodeSet"-></A-><B->getElemNodeSet</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-> -> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XPath.html#getElemNodeSet"->Source</A-></TD-></TR-></TABLE-></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 "a" is done with-</P-><PRE-> getElemNodeSet (hasName "a")-</PRE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetElemAndAttrNodeSet"-></A-><B->getElemAndAttrNodeSet</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-> -> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XPath.html#getElemAndAttrNodeSet"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetXPathNodeSet"-></A-><B->getXPathNodeSet</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XPath.html#getXPathNodeSet"->Source</A-></TD-></TR-></TABLE-></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 "pointers" 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-XPath.html#v%3AgetFromNodeSet"->getFromNodeSet</A-></TT-> or <TT-><A HREF="Text-XML-HXT-Arrow-XPath.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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetFromNodeSet"-></A-><B->getFromNodeSet</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"->XmlNodeSet</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XPath.html#getFromNodeSet"->Source</A-></TD-></TR-></TABLE-></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 $< getElemNodeSet f == multi f-</PRE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AprocessXPathTrees"-></A-><B->processXPathTrees</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XPath.html#processXPathTrees"->Source</A-></TD-></TR-></TABLE-></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 $< getXPathNodeSet xpathExpr-</PRE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AprocessXPathTreesWithNsEnv"-></A-><B->processXPathTreesWithNsEnv</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XPath.html#processXPathTreesWithNsEnv"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Same as <TT-><A HREF="Text-XML-HXT-Arrow-XPath.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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AprocessFromNodeSet"-></A-><B->processFromNodeSet</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"->XmlNodeSet</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XPath.html#processFromNodeSet"->Source</A-></TD-></TR-></TABLE-></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 $< getElemNodeSet f == processBottomUp (g `when` f)-</PRE-><P->when attributes are contained in the node set (see <TT-><A HREF="Text-XML-HXT-Arrow-XPath.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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-Arrow-XPathSimple.html
@@ -1,2605 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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.XPathSimple</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-><SCRIPT SRC="haddock-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html"->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.XPathSimple</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 CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"-><P->XPath selection for simple XPath expressions with list arrows- instead of navigatable trees.-</P-><P->It is recomended, that this module is imported qualified,- e.g like <TT->Text.XML.HXT.Arrow.XPathSimple as XS</TT->.-</P-><P->The arrows defined in this module have the same- functionality as the functions in Text.XML.HXT.Arrow.XPath.-</P-><P->The computation modell in XPath is a navigatable tree,- that means a tree wicht can be traveresed in arbitrary directions,- not only from the root to the leafs. Sometimes this modell- leads to inefficent XPath processing for simple queries, which- only need a top down tree traversal.-</P-><P->When evaluating an XPath expression with these functions, first an attempt is made- to map the XPath expression to a pure arrow. If this is possible- due to the siplicity of the XPath expressions, the result is computed- directly, else the query is processed by the corresponding- function in Text.XML.HXT.Arrow.XPath.-</P-><P->The simple evaluation is possible, when in the XPath expression- only the top down axis (self, child, descendant, descendant or self are used,- when no builtin functions concerning the position of a node are used,- and no comparison of nodes e.g. in node set union is required.-</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="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AgetXPathTreesInDocWithNsEnv"->getXPathTreesInDocWithNsEnv</A-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AgetXPathTrees"->getXPathTrees</A-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AgetXPathTreesWithNsEnv"->getXPathTreesWithNsEnv</A-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AtryGetXPath"->tryGetXPath</A-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AgetXPathTreesWithNsEnvSimple"->getXPathTreesWithNsEnvSimple</A-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AgetXP"->getXP</A-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3ANsEnv"->NsEnv</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><SPAN CLASS="keyword"->type</SPAN-> <A HREF="#t%3AXPArrow"->XPArrow</A-> b c = <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> (<A HREF="Control-Arrow-ListArrow.html#t%3ALA"->LA</A-> b c)</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Amk"->mk</A-> :: <A HREF="Control-Arrow-ListArrow.html#t%3ALA"->LA</A-> b c -> <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> b c</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Aunwrap"->unwrap</A-> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> b b -> <A HREF="Control-Arrow-ListArrow.html#t%3ALA"->LA</A-> b b</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3A%3E%3E%3E%3E"->(>>>>)</A-> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> b b -> <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> b b -> <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> b b</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3A%26%26%26%26"->(&&&&)</A-> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> b b -> <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> b b -> <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> b (b, b)</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3A%3C%2B%3E%3E"->(<+>>)</A-> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> b b -> <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> b b -> <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> b b</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Aguards%27"->guards'</A-> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> b b -> <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> b b -> <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> b b</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Athis%27"->this'</A-> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> b b</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Athis%27%27"->this''</A-> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> b b</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AtoThis"->toThis</A-> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> b b -> <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> b b</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AgetChildren%27"->getChildren'</A-> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> <A HREF="Text-XML-HXT-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%3AgetAttrl%27"->getAttrl'</A-> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> <A HREF="Text-XML-HXT-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%3Amulti%27"->multi'</A-> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> <A HREF="Text-XML-HXT-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%3Adeep%27"->deep'</A-> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> <A HREF="Text-XML-HXT-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%3AxIndex"->xIndex</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-> -> <A HREF="Control-Arrow-ListArrow.html#t%3ALA"->LA</A-> [b] b</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxString"->xString</A-> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</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="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxNumber%27"->xNumber'</A-> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</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-XPath-XPathDataTypes.html#t%3AXPNumber"->XPNumber</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AdeadEndStreet"->deadEndStreet</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"->Monad</A-> m => m a</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AcompXPath"->compXPath</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonadPlus"->MonadPlus</A-> m => <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"->Expr</A-> -> m (<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%3AcompXP"->compXP</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonadPlus"->MonadPlus</A-> m => <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"->Expr</A-> -> m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> <A HREF="Text-XML-HXT-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%3AcompFP"->compFP</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonadPlus"->MonadPlus</A-> m => [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"->Expr</A->] -> <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> <A HREF="Text-XML-HXT-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%3AcompLP"->compLP</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonadPlus"->MonadPlus</A-> m => [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXStep"->XStep</A->] -> <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> <A HREF="Text-XML-HXT-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%3AcompXS"->compXS</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonadPlus"->MonadPlus</A-> m => <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXStep"->XStep</A-> -> <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> <A HREF="Text-XML-HXT-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%3AcompNTE"->compNTE</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"->Monad</A-> m => <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANodeTest"->NodeTest</A-> -> m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> <A HREF="Text-XML-HXT-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%3AcompNTA"->compNTA</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"->Monad</A-> m => <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANodeTest"->NodeTest</A-> -> m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> <A HREF="Text-XML-HXT-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%3AcompNameT"->compNameT</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"->Monad</A-> m => <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-> -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> <A HREF="Text-XML-HXT-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%3AcompNT"->compNT</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"->Monad</A-> m => <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANodeTest"->NodeTest</A-> -> m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> <A HREF="Text-XML-HXT-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%3AcompPred"->compPred</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonadPlus"->MonadPlus</A-> m => [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"->Expr</A->] -> <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> <A HREF="Text-XML-HXT-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%3AcompPred1"->compPred1</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonadPlus"->MonadPlus</A-> m => <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"->Expr</A-> -> <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> <A HREF="Text-XML-HXT-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%3AcompRelPathExpr"->compRelPathExpr</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonadPlus"->MonadPlus</A-> m => <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"->Expr</A-> -> m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> <A HREF="Text-XML-HXT-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%3AcompStringExpr"->compStringExpr</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonadPlus"->MonadPlus</A-> m => <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"->Expr</A-> -> m <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AcompNumberExpr"->compNumberExpr</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonadPlus"->MonadPlus</A-> m => <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"->Expr</A-> -> m <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPNumber"->XPNumber</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AcompIntExpr"->compIntExpr</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonadPlus"->MonadPlus</A-> m => <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"->Expr</A-> -> m <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AcompBoolExpr"->compBoolExpr</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonadPlus"->MonadPlus</A-> m => <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"->Expr</A-> -> m <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AcompGenExpr"->compGenExpr</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonadPlus"->MonadPlus</A-> m => <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"->Expr</A-> -> m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> <A HREF="Text-XML-HXT-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%3AcompString"->compString</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonadPlus"->MonadPlus</A-> m => <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AOp"->Op</A-> -> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"->Expr</A-> -> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"->Expr</A-> -> m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> <A HREF="Text-XML-HXT-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%3AcompNumber"->compNumber</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonadPlus"->MonadPlus</A-> m => <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AOp"->Op</A-> -> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"->Expr</A-> -> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"->Expr</A-> -> m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> <A HREF="Text-XML-HXT-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%3AcompBool"->compBool</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonadPlus"->MonadPlus</A-> m => <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AOp"->Op</A-> -> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"->Expr</A-> -> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"->Expr</A-> -> m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> <A HREF="Text-XML-HXT-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%3AcompPath"->compPath</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonadPlus"->MonadPlus</A-> m => <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AOp"->Op</A-> -> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"->Expr</A-> -> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"->Expr</A-> -> m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> <A HREF="Text-XML-HXT-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%3AtoNumber"->toNumber</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPNumber"->XPNumber</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AequalNodeSet"->equalNodeSet</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Eq.html#t%3AEq"->Eq</A-> a => [a] -> [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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetXPathTreesInDoc"-></A-><B->getXPathTreesInDoc</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#getXPathTreesInDoc"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Same Functionality as Text.XML.HXT.Arrow.XPath.getXPathTreesInDoc-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetXPathTreesInDocWithNsEnv"-></A-><B->getXPathTreesInDocWithNsEnv</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#getXPathTreesInDocWithNsEnv"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Same Functionality as Text.XML.HXT.Arrow.XPath.getXPathTreesInDocWithNsEnv-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetXPathTrees"-></A-><B->getXPathTrees</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#getXPathTrees"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Same Functionality as Text.XML.HXT.Arrow.XPath.getXPathTrees-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetXPathTreesWithNsEnv"-></A-><B->getXPathTreesWithNsEnv</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#getXPathTreesWithNsEnv"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Same Functionality as Text.XML.HXT.Arrow.XPath.getXPathTreesWithNsEnv-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AtryGetXPath"-></A-><B->tryGetXPath</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#tryGetXPath"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetXPathTreesWithNsEnvSimple"-></A-><B->getXPathTreesWithNsEnvSimple</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#getXPathTreesWithNsEnvSimple"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->The xpath interpreter for simple xpath expressions.-</P-><P->In case of a too complicated or illegal xpath expression an error- node is returned, else the list of selected XML trees-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetXP"-></A-><B->getXP</B-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3ANsEnv"->NsEnv</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#getXP"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->type</SPAN-> <A NAME="t%3AXPArrow"-></A-><B->XPArrow</B-> b c = <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> (<A HREF="Control-Arrow-ListArrow.html#t%3ALA"->LA</A-> b c)</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#XPArrow"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Amk"-></A-><B->mk</B-> :: <A HREF="Control-Arrow-ListArrow.html#t%3ALA"->LA</A-> b c -> <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> b c</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#mk"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Aunwrap"-></A-><B->unwrap</B-> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> b b -> <A HREF="Control-Arrow-ListArrow.html#t%3ALA"->LA</A-> b b</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#unwrap"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3A%3E%3E%3E%3E"-></A-><B->(>>>>)</B-> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> b b -> <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> b b -> <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> b b</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#%3E%3E%3E%3E"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3A%26%26%26%26"-></A-><B->(&&&&)</B-> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> b b -> <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> b b -> <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> b (b, b)</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#%26%26%26%26"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3A%3C%2B%3E%3E"-></A-><B->(<+>>)</B-> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> b b -> <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> b b -> <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> b b</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#%3C%2B%3E%3E"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Aguards%27"-></A-><B->guards'</B-> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> b b -> <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> b b -> <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> b b</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#guards%27"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Athis%27"-></A-><B->this'</B-> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> b b</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#this%27"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Athis%27%27"-></A-><B->this''</B-> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> b b</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#this%27%27"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AtoThis"-></A-><B->toThis</B-> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> b b -> <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> b b</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#toThis"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetChildren%27"-></A-><B->getChildren'</B-> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#getChildren%27"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetAttrl%27"-></A-><B->getAttrl'</B-> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#getAttrl%27"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Amulti%27"-></A-><B->multi'</B-> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#multi%27"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Adeep%27"-></A-><B->deep'</B-> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#deep%27"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxIndex"-></A-><B->xIndex</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-> -> <A HREF="Control-Arrow-ListArrow.html#t%3ALA"->LA</A-> [b] b</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#xIndex"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxString"-></A-><B->xString</B-> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</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="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#xString"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxNumber%27"-></A-><B->xNumber'</B-> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</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-XPath-XPathDataTypes.html#t%3AXPNumber"->XPNumber</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#xNumber%27"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AdeadEndStreet"-></A-><B->deadEndStreet</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"->Monad</A-> m => m a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#deadEndStreet"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AcompXPath"-></A-><B->compXPath</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonadPlus"->MonadPlus</A-> m => <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"->Expr</A-> -> m (<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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#compXPath"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AcompXP"-></A-><B->compXP</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonadPlus"->MonadPlus</A-> m => <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"->Expr</A-> -> m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A->)</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#compXP"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AcompFP"-></A-><B->compFP</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonadPlus"->MonadPlus</A-> m => [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"->Expr</A->] -> <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A->)</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#compFP"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AcompLP"-></A-><B->compLP</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonadPlus"->MonadPlus</A-> m => [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXStep"->XStep</A->] -> <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A->)</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#compLP"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AcompXS"-></A-><B->compXS</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonadPlus"->MonadPlus</A-> m => <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXStep"->XStep</A-> -> <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A->)</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#compXS"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AcompNTE"-></A-><B->compNTE</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"->Monad</A-> m => <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANodeTest"->NodeTest</A-> -> m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A->)</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#compNTE"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AcompNTA"-></A-><B->compNTA</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"->Monad</A-> m => <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANodeTest"->NodeTest</A-> -> m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A->)</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#compNTA"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AcompNameT"-></A-><B->compNameT</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"->Monad</A-> m => <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-> -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A->)</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#compNameT"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AcompNT"-></A-><B->compNT</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"->Monad</A-> m => <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANodeTest"->NodeTest</A-> -> m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A->)</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#compNT"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AcompPred"-></A-><B->compPred</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonadPlus"->MonadPlus</A-> m => [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"->Expr</A->] -> <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A->)</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#compPred"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AcompPred1"-></A-><B->compPred1</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonadPlus"->MonadPlus</A-> m => <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"->Expr</A-> -> <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A->)</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#compPred1"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AcompRelPathExpr"-></A-><B->compRelPathExpr</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonadPlus"->MonadPlus</A-> m => <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"->Expr</A-> -> m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A->)</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#compRelPathExpr"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AcompStringExpr"-></A-><B->compStringExpr</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonadPlus"->MonadPlus</A-> m => <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"->Expr</A-> -> m <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#compStringExpr"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AcompNumberExpr"-></A-><B->compNumberExpr</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonadPlus"->MonadPlus</A-> m => <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"->Expr</A-> -> m <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPNumber"->XPNumber</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#compNumberExpr"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AcompIntExpr"-></A-><B->compIntExpr</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonadPlus"->MonadPlus</A-> m => <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"->Expr</A-> -> m <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#compIntExpr"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AcompBoolExpr"-></A-><B->compBoolExpr</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonadPlus"->MonadPlus</A-> m => <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"->Expr</A-> -> m <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#compBoolExpr"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AcompGenExpr"-></A-><B->compGenExpr</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonadPlus"->MonadPlus</A-> m => <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"->Expr</A-> -> m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A->)</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#compGenExpr"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AcompString"-></A-><B->compString</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonadPlus"->MonadPlus</A-> m => <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AOp"->Op</A-> -> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"->Expr</A-> -> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"->Expr</A-> -> m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A->)</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#compString"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AcompNumber"-></A-><B->compNumber</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonadPlus"->MonadPlus</A-> m => <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AOp"->Op</A-> -> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"->Expr</A-> -> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"->Expr</A-> -> m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A->)</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#compNumber"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AcompBool"-></A-><B->compBool</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonadPlus"->MonadPlus</A-> m => <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AOp"->Op</A-> -> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"->Expr</A-> -> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"->Expr</A-> -> m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A->)</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#compBool"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AcompPath"-></A-><B->compPath</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonadPlus"->MonadPlus</A-> m => <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AOp"->Op</A-> -> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"->Expr</A-> -> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"->Expr</A-> -> m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->XPArrow</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A->)</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#compPath"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AtoNumber"-></A-><B->toNumber</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPNumber"->XPNumber</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#toNumber"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AequalNodeSet"-></A-><B->equalNodeSet</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Eq.html#t%3AEq"->Eq</A-> a => [a] -> [a] -> [a]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XPathSimple.html#equalNodeSet"->Source</A-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-Arrow-XmlArrow.html
@@ -1,5540 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html"->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 CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"-><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-> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Arrow.html#t%3AArrow"->Arrow</A-> a, <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"->ArrowList</A-> a, <A HREF="Control-Arrow-ArrowTree.html#t%3AArrowTree"->ArrowTree</A-> a) => <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-> :: (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</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%3AisWhiteSpace"->isWhiteSpace</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%3AhasNameWith"->hasNameWith</A-> :: (<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</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%3AhasQName"->hasQName</A-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</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%3AhasName"->hasName</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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%3AhasLocalPart"->hasLocalPart</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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%3AhasNamePrefix"->hasNamePrefix</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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%3AhasNamespaceUri"->hasNamespaceUri</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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%3AhasAttr"->hasAttr</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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%3AhasQAttr"->hasQAttr</A-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</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%3AhasAttrValue"->hasAttrValue</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</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%3AhasQAttrValue"->hasQAttrValue</A-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</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%3AmkText"->mkText</A-> :: a <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> <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 <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-> <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 <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> <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 <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> <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 <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AmkError"->mkError</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-> -> a <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> <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-QualifiedName.html#t%3AQName"->QName</A-> -> a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> 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-QualifiedName.html#t%3AQName"->QName</A-> -> a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> 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-QualifiedName.html#t%3AQName"->QName</A-> -> a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> 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-QualifiedName.html#t%3AQName"->QName</A-> -> [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A->] -> [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A->] -> 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-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A->] -> [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A->] -> 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-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A->] -> 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-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A->] -> 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-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> 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->] -> [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A->] -> 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-QualifiedName.html#t%3AQName"->QName</A-> -> a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> 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-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> 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-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> 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-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-> -> 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-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> 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-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> 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-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> 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-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> 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-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> 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-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> 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-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> 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-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> 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-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></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-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-></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-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></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-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></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-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></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-QualifiedName.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-QualifiedName.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-QualifiedName.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-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-></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-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></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-QualifiedName.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-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></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-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></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-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></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-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></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-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></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-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AgetAttrValue"->getAttrValue</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AgetAttrValue0"->getAttrValue0</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AgetQAttrValue"->getQAttrValue</A-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AgetQAttrValue0"->getQAttrValue0</A-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AchangeText"->changeText</A-> :: (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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%3AchangeCmt"->changeCmt</A-> :: (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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%3AchangeQName"->changeQName</A-> :: (<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</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%3AchangeElemName"->changeElemName</A-> :: (<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</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%3AchangeAttrName"->changeAttrName</A-> :: (<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</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%3AchangePiName"->changePiName</A-> :: (<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</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%3AchangeAttrValue"->changeAttrValue</A-> :: (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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%3AchangeAttrl"->changeAttrl</A-> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</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-> -> a <A HREF="Text-XML-HXT-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-QualifiedName.html#t%3AQName"->QName</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%3AsetElemName"->setElemName</A-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</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%3AsetAttrName"->setAttrName</A-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</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%3AsetPiName"->setPiName</A-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</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%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-> -> a <A HREF="Text-XML-HXT-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-> -> a <A HREF="Text-XML-HXT-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-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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%3AremoveAttr"->removeAttr</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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%3AremoveQAttr"->removeQAttr</A-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</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%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-> -> a <A HREF="Text-XML-HXT-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-> -> a <A HREF="Text-XML-HXT-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-> -> a b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> 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-> -> a n <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></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 => <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-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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%3AgetDTDAttrValue"->getDTDAttrValue</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AsetDTDAttrValue"->setDTDAttrValue</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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%3AmkDTDElem"->mkDTDElem</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-> -> a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> 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-> -> a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> 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-> -> 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-> -> 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-> -> 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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->class</SPAN-> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Arrow.html#t%3AArrow"->Arrow</A-> a, <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"->ArrowList</A-> a, <A HREF="Control-Arrow-ArrowTree.html#t%3AArrowTree"->ArrowTree</A-> a) => <A NAME="t%3AArrowXml"-></A-><B->ArrowXml</B-> a <SPAN CLASS="keyword"->where</SPAN-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#ArrowXml"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="ndoc"-><P->Arrows for processing Text.XML.HXT.DOM.TypeDefs.XmlTrees-</P-><P->These arrows can be grouped into predicates, selectors, constructors, and transformers.-</P-><P->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 <TT-> a1 >>> a2 </TT->, a locical or by <TT-> a1 <+> a2 </TT->.-</P-><P->Selector arrows will fail, when applied to wrong input, e.g. selecting the text of a node with <TT-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetText"->getText</A-></TT->-will fail when applied to a none text node.-</P-><P->Edit arrows will remain the input unchanged, when applied to wrong argument, e.g. editing the content of a text node-with <TT-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AchangeText"->changeText</A-></TT-> applied to an element node will return the unchanged element node.-</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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#isText"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->test for text nodes-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#isCharRef"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->test for char reference, used during parsing-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#isEntityRef"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->test for entity reference, used during parsing-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#isCmt"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->test for comment-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#isCdata"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->test for CDATA section, used during parsing-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#isPi"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->test for processing instruction-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#isXmlPi"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->test for processing instruction <?xml ...>-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#isElem"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->test for element-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#isDTD"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->test for DTD part, used during parsing-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#isAttr"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->test for attribute tree-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#isError"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->test for error message-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#isRoot"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->test for root node (element with name "/")-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AhasText"-></A-><B->hasText</B-> :: (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#hasText"->Source</A-></TD-></TR-></TABLE-></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` " \t\n"))</TT-> check for text nodes with only whitespace content-</P-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisWhiteSpace"-></A-><B->isWhiteSpace</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#isWhiteSpace"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->test for text nodes with only white space-</P-><P->implemented with hasTest-</P-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AhasNameWith"-></A-><B->hasNameWith</B-> :: (<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#hasNameWith"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AhasQName"-></A-><B->hasQName</B-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#hasQName"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AhasName"-></A-><B->hasName</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#hasName"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AhasLocalPart"-></A-><B->hasLocalPart</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#hasLocalPart"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AhasNamePrefix"-></A-><B->hasNamePrefix</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#hasNamePrefix"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AhasNamespaceUri"-></A-><B->hasNamespaceUri</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#hasNamespaceUri"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AhasAttr"-></A-><B->hasAttr</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#hasAttr"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AhasQAttr"-></A-><B->hasQAttr</B-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#hasQAttr"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AhasAttrValue"-></A-><B->hasAttrValue</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#hasAttrValue"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AhasQAttrValue"-></A-><B->hasQAttrValue</B-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#hasQAttrValue"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkText"-></A-><B->mkText</B-> :: a <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#mkText"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->text node construction arrow-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkCharRef"-></A-><B->mkCharRef</B-> :: a <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#mkCharRef"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkEntityRef"-></A-><B->mkEntityRef</B-> :: a <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#mkEntityRef"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkCmt"-></A-><B->mkCmt</B-> :: a <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#mkCmt"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->comment node construction, useful for document output-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkCdata"-></A-><B->mkCdata</B-> :: a <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#mkCdata"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->CDATA construction, useful for document output-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkError"-></A-><B->mkError</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-> -> a <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#mkError"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->error node construction, useful only internally-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkElement"-></A-><B->mkElement</B-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#mkElement"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkAttr"-></A-><B->mkAttr</B-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#mkAttr"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkPi"-></A-><B->mkPi</B-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#mkPi"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Amkqelem"-></A-><B->mkqelem</B-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A->] -> [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A->] -> a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#mkqelem"->Source</A-></TD-></TR-></TABLE-></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 <+> ... <+> ai) (c1 <+> ... <+> cj)-</PRE-><P->equals-</P-><PRE-> mkqelem qn [a1,...,ai] [c1,...,cj]-</PRE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Amkelem"-></A-><B->mkelem</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A->] -> [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A->] -> a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#mkelem"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->convenient arrow for element construction with strings instead of qualified names as element names, 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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Aaelem"-></A-><B->aelem</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A->] -> a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#aelem"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Aselem"-></A-><B->selem</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A->] -> a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#selem"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Aeelem"-></A-><B->eelem</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#eelem"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Aroot"-></A-><B->root</B-> :: [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A->] -> [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A->] -> a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#root"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->construction of an element node with name "/" for document roots-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Aqattr"-></A-><B->qattr</B-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#qattr"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Aattr"-></A-><B->attr</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#attr"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Atxt"-></A-><B->txt</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#txt"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->constant arrow for text nodes-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AcharRef"-></A-><B->charRef</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-> -> a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#charRef"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->constant arrow for char reference nodes-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AentityRef"-></A-><B->entityRef</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#entityRef"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->constant arrow for entity reference nodes-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Acmt"-></A-><B->cmt</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#cmt"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->constant arrow for comment-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Awarn"-></A-><B->warn</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#warn"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->constant arrow for warning-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Aerr"-></A-><B->err</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#err"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->constant arrow for errors-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Afatal"-></A-><B->fatal</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#fatal"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->constant arrow for fatal errors-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Aspi"-></A-><B->spi</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#spi"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Asqattr"-></A-><B->sqattr</B-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#sqattr"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Asattr"-></A-><B->sattr</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#sattr"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetText"-></A-><B->getText</B-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#getText"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->select the text of a text node-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetCharRef"-></A-><B->getCharRef</B-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#getCharRef"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->select the value of a char reference-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetEntityRef"-></A-><B->getEntityRef</B-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#getEntityRef"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetCmt"-></A-><B->getCmt</B-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#getCmt"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->select the comment of a comment node-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetCdata"-></A-><B->getCdata</B-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#getCdata"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->select the content of a CDATA node-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-QualifiedName.html#t%3AQName"->QName</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#getPiName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->select the name of a processing instruction-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#getPiContent"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->select the content of a processing instruction-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-QualifiedName.html#t%3AQName"->QName</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#getElemName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->select the name of an element node-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#getAttrl"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#getDTDPart"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#getDTDAttrl"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-QualifiedName.html#t%3AQName"->QName</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#getAttrName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->select the name of an attribute-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetErrorLevel"-></A-><B->getErrorLevel</B-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#getErrorLevel"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetErrorMsg"-></A-><B->getErrorMsg</B-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#getErrorMsg"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-QualifiedName.html#t%3AQName"->QName</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#getQName"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetName"-></A-><B->getName</B-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#getName"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetUniversalName"-></A-><B->getUniversalName</B-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#getUniversalName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->select the univeral name ({namespace URI} ++ localPart)-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetUniversalUri"-></A-><B->getUniversalUri</B-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#getUniversalUri"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->select the univeral name (namespace URI ++ localPart)-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetLocalPart"-></A-><B->getLocalPart</B-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#getLocalPart"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->select the local part-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetNamePrefix"-></A-><B->getNamePrefix</B-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#getNamePrefix"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->select the name prefix-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetNamespaceUri"-></A-><B->getNamespaceUri</B-> :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#getNamespaceUri"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->select the namespace URI-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetAttrValue"-></A-><B->getAttrValue</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#getAttrValue"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->select the value of an attribute of an element node,- always succeeds with empty string as default value ""-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetAttrValue0"-></A-><B->getAttrValue0</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#getAttrValue0"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetQAttrValue"-></A-><B->getQAttrValue</B-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#getQAttrValue"->Source</A-></TD-></TR-></TABLE-></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 ""-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetQAttrValue0"-></A-><B->getQAttrValue0</B-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#getQAttrValue0"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AchangeText"-></A-><B->changeText</B-> :: (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#changeText"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->edit the string of a text node-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AchangeCmt"-></A-><B->changeCmt</B-> :: (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#changeCmt"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AchangeQName"-></A-><B->changeQName</B-> :: (<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#changeQName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->edit an element-, attribute- or pi- name-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AchangeElemName"-></A-><B->changeElemName</B-> :: (<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#changeElemName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->edit an element name-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AchangeAttrName"-></A-><B->changeAttrName</B-> :: (<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#changeAttrName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->edit an attribute name-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AchangePiName"-></A-><B->changePiName</B-> :: (<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#changePiName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->edit a pi name-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AchangeAttrValue"-></A-><B->changeAttrValue</B-> :: (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#changeAttrValue"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->edit an attribute value-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AchangeAttrl"-></A-><B->changeAttrl</B-> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</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-> -> a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#changeAttrl"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AsetQName"-></A-><B->setQName</B-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#setQName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->replace an element, attribute or pi name-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AsetElemName"-></A-><B->setElemName</B-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#setElemName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->replace an element name-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AsetAttrName"-></A-><B->setAttrName</B-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#setAttrName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->replace an attribute name-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AsetPiName"-></A-><B->setPiName</B-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#setPiName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->replace an element name-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-> -> a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#setAttrl"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-> -> a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#addAttrl"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AaddAttr"-></A-><B->addAttr</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#addAttr"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->add (or replace) an attribute-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AremoveAttr"-></A-><B->removeAttr</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#removeAttr"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->remove an attribute-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AremoveQAttr"-></A-><B->removeQAttr</B-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#removeQAttr"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->remove an attribute with a qualified name-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-> -> a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#processAttrl"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-> -> a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#processTopDownWithAttrl"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3A%2B%3D"-></A-><B->(+=)</B-> :: a b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> a b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> a b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#%2B%3D"->Source</A-></TD-></TR-></TABLE-></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 "a"- += sattr "href" "page.html"- += sattr "name" "here"- += txt "look here"-</PRE-><P->is the same as-</P-><PRE-> mkelem [ sattr "href" "page.html"- , sattr "name" "here"- ]- [ txt "look here" ]-</PRE-><P->and results in the XML fragment: <a href="page.html" name="here">look here</a>-</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 "td" or "tr" elements,- the attributes or content is added to all trees. useful for adding "class" or "style" attributes- to table elements.-</P-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Axshow"-></A-><B->xshow</B-> :: a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> a n <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#xshow"->Source</A-></TD-></TR-></TABLE-></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-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-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-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-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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->class</SPAN-> <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => <A NAME="t%3AArrowDTD"-></A-><B->ArrowDTD</B-> a <SPAN CLASS="keyword"->where</SPAN-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#ArrowDTD"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#isDTDDoctype"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#isDTDElement"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#isDTDContent"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#isDTDAttlist"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#isDTDEntity"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#isDTDPEntity"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#isDTDNotation"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#isDTDCondSect"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#isDTDName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#isDTDPERef"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AhasDTDAttr"-></A-><B->hasDTDAttr</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#hasDTDAttr"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetDTDAttrValue"-></A-><B->getDTDAttrValue</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#getDTDAttrValue"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AsetDTDAttrValue"-></A-><B->setDTDAttrValue</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#setDTDAttrValue"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkDTDElem"-></A-><B->mkDTDElem</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-> -> a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#mkDTDElem"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkDTDDoctype"-></A-><B->mkDTDDoctype</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</A-> -> a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#mkDTDDoctype"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkDTDElement"-></A-><B->mkDTDElement</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</A-> -> a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#mkDTDElement"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkDTDEntity"-></A-><B->mkDTDEntity</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</A-> -> a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#mkDTDEntity"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkDTDPEntity"-></A-><B->mkDTDPEntity</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</A-> -> a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlArrow.html#mkDTDPEntity"->Source</A-></TD-></TR-></TABLE-></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-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-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-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-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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-Arrow-XmlIOStateArrow.html
@@ -1,4120 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html"->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-><DT-><A HREF="#9"->Mime Type Handling-</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-> :: !<A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-></TD-></TR-><TR-><TD CLASS="recfield"-><A HREF="#v%3Axio_errorStatus"->xio_errorStatus</A-> :: !<A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-></TD-></TR-><TR-><TD CLASS="recfield"-><A HREF="#v%3Axio_errorModule"->xio_errorModule</A-> :: !<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="recfield"-><A HREF="#v%3Axio_errorMsgHandler"->xio_errorMsgHandler</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/System-IO.html#t%3AIO"->IO</A-> ()</TD-></TR-><TR-><TD CLASS="recfield"-><A HREF="#v%3Axio_errorMsgCollect"->xio_errorMsgCollect</A-> :: !<A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></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-> :: !<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="recfield"-><A HREF="#v%3Axio_defaultBaseURI"->xio_defaultBaseURI</A-> :: !<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="recfield"-><A HREF="#v%3Axio_attrList"->xio_attrList</A-> :: !(<A HREF="Data-AssocList.html#t%3AAssocList"->AssocList</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A->)</TD-></TR-><TR-><TD CLASS="recfield"-><A HREF="#v%3Axio_mimeTypes"->xio_mimeTypes</A-> :: <A HREF="Text-XML-HXT-DOM-MimeTypes.html#t%3AMimeTypeTable"->MimeTypeTable</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 -> <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 -> <A HREF="/usr/local/share/doc/ghc/libraries/base/System-IO.html#t%3AIO"->IO</A-> [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 -> s -> s) -> <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 -> <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"->IOStateArrow</A-> (s1, s0) b c -> <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 -> <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"->IOStateArrow</A-> s1 b c -> <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-> -> c) -> <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 -> <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOSysState"->XIOSysState</A-> -> <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOSysState"->XIOSysState</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%3AsetParamList"->setParamList</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <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-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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%3AunsetParam"->unsetParam</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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%3AgetParam"->getParam</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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%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-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> <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%3AgetAllParamsString"->getAllParamsString</A-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"->IOStateArrow</A-> s b (<A HREF="Data-AssocList.html#t%3AAssocList"->AssocList</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->)</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AsetParamString"->setParamString</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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%3AgetParamString"->getParamString</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"->IOStateArrow</A-> s b <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AsetParamInt"->setParamInt</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</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%3AgetParamInt"->getParamInt</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"->IOStateArrow</A-> s b <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-></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 <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-></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-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-></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-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-> -> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/System-IO.html#t%3AIO"->IO</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%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-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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%3AissueErr"->issueErr</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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%3AissueFatal"->issueFatal</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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%3AsetDocumentStatus"->setDocumentStatus</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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%3AsetDocumentStatusFromSystemState"->setDocumentStatusFromSystemState</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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%3AdocumentStatusOk"->documentStatusOk</A-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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="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 <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></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 <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></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 <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AsetDefaultBaseURI"->setDefaultBaseURI</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"->IOStateArrow</A-> s b <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></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 <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></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 -> <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-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</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%3AgetTraceLevel"->getTraceLevel</A-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"->IOStateArrow</A-> s b <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AwithTraceLevel"->withTraceLevel</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-> -> <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"->IOStateArrow</A-> s b c -> <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-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-> -> <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"->IOStateArrow</A-> s b <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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%3AtraceMsg"->traceMsg</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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%3AtraceValue"->traceValue</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-> -> (b -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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%3AtraceString"->traceString</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-> -> (b -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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%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-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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%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-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></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 => a (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->, <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->) <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></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 <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></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 => a <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></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 => a <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></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 => a <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></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 => a <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></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 => a <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></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 => a <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></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 => a <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AsetMimeTypeTable"->setMimeTypeTable</A-> :: <A HREF="Text-XML-HXT-DOM-MimeTypes.html#t%3AMimeTypeTable"->MimeTypeTable</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%3AsetMimeTypeTableFromFile"->setMimeTypeTableFromFile</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/System-IO.html#t%3AFilePath"->FilePath</A-> -> <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"->IOStateArrow</A-> s b b</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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->data</SPAN-> <A NAME="t%3AXIOState"-></A-><B->XIOState</B-> us </TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#XIOState"->Source</A-></TD-></TR-></TABLE-></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="/usr/local/share/doc/ghc/libraries/parallel/Control-Parallel-Strategies.html#t%3ANFData"->NFData</A-> us => <A HREF="/usr/local/share/doc/ghc/libraries/parallel/Control-Parallel-Strategies.html#t%3ANFData"->NFData</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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->data</SPAN-> <A NAME="t%3AXIOSysState"-></A-><B->XIOSysState</B-> </TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#XIOSysState"->Source</A-></TD-></TR-></TABLE-></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-> :: !<A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-></TD-><TD CLASS="rdoc"-></TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3Axio_errorStatus"-></A-><B->xio_errorStatus</B-> :: !<A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-></TD-><TD CLASS="rdoc"-></TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3Axio_errorModule"-></A-><B->xio_errorModule</B-> :: !<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="rdoc"-></TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3Axio_errorMsgHandler"-></A-><B->xio_errorMsgHandler</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/System-IO.html#t%3AIO"->IO</A-> ()</TD-><TD CLASS="rdoc"-></TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3Axio_errorMsgCollect"-></A-><B->xio_errorMsgCollect</B-> :: !<A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></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-> :: !<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="rdoc"-></TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3Axio_defaultBaseURI"-></A-><B->xio_defaultBaseURI</B-> :: !<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></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-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> <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_mimeTypes"-></A-><B->xio_mimeTypes</B-> :: <A HREF="Text-XML-HXT-DOM-MimeTypes.html#t%3AMimeTypeTable"->MimeTypeTable</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="/usr/local/share/doc/ghc/libraries/parallel/Control-Parallel-Strategies.html#t%3ANFData"->NFData</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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#IOStateArrow"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->The arrow type for stateful arrows-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#IOSArrow"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AinitialState"-></A-><B->initialState</B-> :: us -> <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOState"->XIOState</A-> us</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#initialState"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AinitialSysState"-></A-><B->initialSysState</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOSysState"->XIOSysState</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#initialSysState"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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 -> <A HREF="/usr/local/share/doc/ghc/libraries/base/System-IO.html#t%3AIO"->IO</A-> [c]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#runX"->Source</A-></TD-></TR-></TABLE-></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 Text.XML.HXT.Arrow.ReadDocument.readDocument arrow.-</P-><P->for usage see examples with Text.XML.HXT.Arrow.WriteDocument.writeDocument-</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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetUserState"-></A-><B->getUserState</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"->IOStateArrow</A-> s b s</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#getUserState"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AsetUserState"-></A-><B->setUserState</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"->IOStateArrow</A-> s s s</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#setUserState"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AchangeUserState"-></A-><B->changeUserState</B-> :: (b -> s -> s) -> <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"->IOStateArrow</A-> s b b</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#changeUserState"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AwithExtendedUserState"-></A-><B->withExtendedUserState</B-> :: s1 -> <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"->IOStateArrow</A-> (s1, s0) b c -> <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"->IOStateArrow</A-> s0 b c</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#withExtendedUserState"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AwithOtherUserState"-></A-><B->withOtherUserState</B-> :: s1 -> <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"->IOStateArrow</A-> s1 b c -> <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"->IOStateArrow</A-> s0 b c</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#withOtherUserState"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetSysParam"-></A-><B->getSysParam</B-> :: (<A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOSysState"->XIOSysState</A-> -> c) -> <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"->IOStateArrow</A-> s b c</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#getSysParam"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AchangeSysParam"-></A-><B->changeSysParam</B-> :: (b -> <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOSysState"->XIOSysState</A-> -> <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AXIOSysState"->XIOSysState</A->) -> <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"->IOStateArrow</A-> s b b</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#changeSysParam"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AsetParamList"-></A-><B->setParamList</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#setParamList"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AsetParam"-></A-><B->setParam</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#setParam"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AunsetParam"-></A-><B->unsetParam</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"->IOStateArrow</A-> s b b</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#unsetParam"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetParam"-></A-><B->getParam</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#getParam"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->read an attribute value from global state-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A->)</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#getAllParams"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->read all attributes from global state-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetAllParamsString"-></A-><B->getAllParamsString</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"->IOStateArrow</A-> s b (<A HREF="Data-AssocList.html#t%3AAssocList"->AssocList</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->)</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#getAllParamsString"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->read all attributes from global state- and convert the values to strings-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AsetParamString"-></A-><B->setParamString</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"->IOStateArrow</A-> s b b</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#setParamString"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetParamString"-></A-><B->getParamString</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"->IOStateArrow</A-> s b <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#getParamString"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->read a string value from global state,- if parameter not set "" is returned-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AsetParamInt"-></A-><B->setParamInt</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-> -> <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"->IOStateArrow</A-> s b b</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#setParamInt"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->store an int value in global state-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetParamInt"-></A-><B->getParamInt</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"->IOStateArrow</A-> s b <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#getParamInt"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AclearErrStatus"-></A-><B->clearErrStatus</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"->IOStateArrow</A-> s b b</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#clearErrStatus"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AsetErrStatus"-></A-><B->setErrStatus</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"->IOStateArrow</A-> s <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#setErrStatus"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->set global error variable-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#getErrStatus"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->read current global error status-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#setErrMsgStatus"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AsetErrorMsgHandler"-></A-><B->setErrorMsgHandler</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-> -> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/System-IO.html#t%3AIO"->IO</A-> ()) -> <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"->IOStateArrow</A-> s b b</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#setErrorMsgHandler"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AerrorMsgStderr"-></A-><B->errorMsgStderr</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"->IOStateArrow</A-> s b b</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#errorMsgStderr"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AerrorMsgCollect"-></A-><B->errorMsgCollect</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"->IOStateArrow</A-> s b b</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#errorMsgCollect"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->error message handler for collecting errors-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AerrorMsgStderrAndCollect"-></A-><B->errorMsgStderrAndCollect</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"->IOStateArrow</A-> s b b</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#errorMsgStderrAndCollect"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AerrorMsgIgnore"-></A-><B->errorMsgIgnore</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"->IOStateArrow</A-> s b b</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#errorMsgIgnore"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->error message handler for ignoring errors-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#getErrorMessages"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#filterErrorMsg"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AissueWarn"-></A-><B->issueWarn</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"->IOStateArrow</A-> s b b</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#issueWarn"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->generate a warnig message-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AissueErr"-></A-><B->issueErr</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"->IOStateArrow</A-> s b b</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#issueErr"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->generate an error message-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AissueFatal"-></A-><B->issueFatal</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"->IOStateArrow</A-> s b b</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#issueFatal"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AsetDocumentStatus"-></A-><B->setDocumentStatus</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#setDocumentStatus"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AsetDocumentStatusFromSystemState"-></A-><B->setDocumentStatusFromSystemState</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#setDocumentStatusFromSystemState"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AdocumentStatusOk"-></A-><B->documentStatusOk</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#documentStatusOk"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AsetBaseURI"-></A-><B->setBaseURI</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"->IOStateArrow</A-> s <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#setBaseURI"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetBaseURI"-></A-><B->getBaseURI</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"->IOStateArrow</A-> s b <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#getBaseURI"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AchangeBaseURI"-></A-><B->changeBaseURI</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"->IOStateArrow</A-> s <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#changeBaseURI"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AsetDefaultBaseURI"-></A-><B->setDefaultBaseURI</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"->IOStateArrow</A-> s b <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#setDefaultBaseURI"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->set the default base URI, if parameter is null, the system base (<TT-> file:///<cwd>/ </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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetDefaultBaseURI"-></A-><B->getDefaultBaseURI</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"->IOStateArrow</A-> s b <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#getDefaultBaseURI"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->get the default base URI-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3ArunInLocalURIContext"-></A-><B->runInLocalURIContext</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"->IOStateArrow</A-> s b c -> <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"->IOStateArrow</A-> s b c</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#runInLocalURIContext"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AsetTraceLevel"-></A-><B->setTraceLevel</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-> -> <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"->IOStateArrow</A-> s b b</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#setTraceLevel"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->set the global trace level-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetTraceLevel"-></A-><B->getTraceLevel</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"->IOStateArrow</A-> s b <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#getTraceLevel"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->read the global trace level-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AwithTraceLevel"-></A-><B->withTraceLevel</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-> -> <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"->IOStateArrow</A-> s b c -> <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"->IOStateArrow</A-> s b c</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#withTraceLevel"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Atrace"-></A-><B->trace</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-> -> <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"->IOStateArrow</A-> s b <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"->IOStateArrow</A-> s b b</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#trace"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AtraceMsg"-></A-><B->traceMsg</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"->IOStateArrow</A-> s b b</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#traceMsg"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->issue a string message as trace-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AtraceValue"-></A-><B->traceValue</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-> -> (b -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->) -> <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"->IOStateArrow</A-> s b b</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#traceValue"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->trace the current value transfered in a sequence of arrows.-</P-><P->The value is formated by a string conversion function. This is a substitute for- the old and less general traceString function-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AtraceString"-></A-><B->traceString</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-> -> (b -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->) -> <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"->IOStateArrow</A-> s b b</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#traceString"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->an old alias for <TT-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AtraceValue"->traceValue</A-></TT->-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#traceSource"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->issue the source representation of a document if trace level >= 3-</P-><P->for better readability the source is formated with indentDoc-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#traceTree"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->issue the tree representation of a document if trace level >= 4-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AtraceDoc"-></A-><B->traceDoc</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#traceDoc"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->trace a main computation step- issue a message when trace level >= 1, issue document source if level >= 3, issue tree when level is >= 4-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AtraceState"-></A-><B->traceState</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"->IOStateArrow</A-> s b b</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#traceState"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AexpandURIString"-></A-><B->expandURIString</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#expandURIString"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AexpandURI"-></A-><B->expandURI</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => a (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->, <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->) <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#expandURI"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkAbsURI"-></A-><B->mkAbsURI</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"->IOStateArrow</A-> s <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#mkAbsURI"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetFragmentFromURI"-></A-><B->getFragmentFromURI</B-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"->ArrowList</A-> a => a <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#getFragmentFromURI"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetPathFromURI"-></A-><B->getPathFromURI</B-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"->ArrowList</A-> a => a <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#getPathFromURI"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetPortFromURI"-></A-><B->getPortFromURI</B-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"->ArrowList</A-> a => a <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#getPortFromURI"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetQueryFromURI"-></A-><B->getQueryFromURI</B-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"->ArrowList</A-> a => a <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#getQueryFromURI"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetRegNameFromURI"-></A-><B->getRegNameFromURI</B-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"->ArrowList</A-> a => a <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#getRegNameFromURI"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetSchemeFromURI"-></A-><B->getSchemeFromURI</B-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"->ArrowList</A-> a => a <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#getSchemeFromURI"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetUserInfoFromURI"-></A-><B->getUserInfoFromURI</B-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"->ArrowList</A-> a => a <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#getUserInfoFromURI"->Source</A-></TD-></TR-></TABLE-></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="section1"-><A NAME="9"->Mime Type Handling-</A-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AsetMimeTypeTable"-></A-><B->setMimeTypeTable</B-> :: <A HREF="Text-XML-HXT-DOM-MimeTypes.html#t%3AMimeTypeTable"->MimeTypeTable</A-> -> <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"->IOStateArrow</A-> s b b</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#setMimeTypeTable"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->set the table mapping of file extensions to mime types in the system state-</P-><P->Default table is defined in Text.XML.HXT.DOM.MimeTypeDefaults.- This table is used when reading loacl files, (file: protocol) to determine the mime type-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AsetMimeTypeTableFromFile"-></A-><B->setMimeTypeTableFromFile</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/System-IO.html#t%3AFilePath"->FilePath</A-> -> <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"->IOStateArrow</A-> s b b</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#setMimeTypeTableFromFile"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->set the table mapping of file extensions to mime types by an external config file-</P-><P->The config file must follow the conventions of <EM->etc</EM->mime.types on a debian linux system,- that means all empty lines and all lines starting with a # are ignored. The other lines- must consist of a mime type followed by a possible empty list of extensions.- The list of extenstions and mime types overwrites the default list in the system state- of the IOStateArrow-</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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-Arrow-XmlRegex.html
@@ -1,1179 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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.XmlRegex</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-><SCRIPT SRC="haddock-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlRegex.html"->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.XmlRegex</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 CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"-><P->Regular Expression Matcher working on lists of XmlTrees-</P-><P->It's intendet to import this module with an explicit- import declaration for not spoiling the namespace- with these somewhat special 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"->data</SPAN-> <A HREF="#t%3AXmlRegex"->XmlRegex</A-> </TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AmkZero"->mkZero</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"->XmlRegex</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AmkUnit"->mkUnit</A-> :: <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"->XmlRegex</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AmkPrim"->mkPrim</A-> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A->) -> <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"->XmlRegex</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AmkPrimA"->mkPrimA</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-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"->XmlRegex</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AmkDot"->mkDot</A-> :: <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"->XmlRegex</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AmkStar"->mkStar</A-> :: <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"->XmlRegex</A-> -> <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"->XmlRegex</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AmkAlt"->mkAlt</A-> :: <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"->XmlRegex</A-> -> <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"->XmlRegex</A-> -> <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"->XmlRegex</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AmkSeq"->mkSeq</A-> :: <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"->XmlRegex</A-> -> <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"->XmlRegex</A-> -> <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"->XmlRegex</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AmkRep"->mkRep</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-> -> <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"->XmlRegex</A-> -> <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"->XmlRegex</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AmkRng"->mkRng</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-> -> <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"->XmlRegex</A-> -> <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"->XmlRegex</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AmkOpt"->mkOpt</A-> :: <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"->XmlRegex</A-> -> <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"->XmlRegex</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Anullable"->nullable</A-> :: <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"->XmlRegex</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Adelta"->delta</A-> :: <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"->XmlRegex</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"->XmlRegex</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AmatchXmlRegex"->matchXmlRegex</A-> :: <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"->XmlRegex</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AsplitXmlRegex"->splitXmlRegex</A-> :: <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"->XmlRegex</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A->, <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%3AscanXmlRegex"->scanXmlRegex</A-> :: <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"->XmlRegex</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> [<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%3AmatchRegexA"->matchRegexA</A-> :: <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"->XmlRegex</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-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</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-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AsplitRegexA"->splitRegexA</A-> :: <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"->XmlRegex</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-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</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-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A->, <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%3AscanRegexA"->scanRegexA</A-> :: <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"->XmlRegex</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-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</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-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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->data</SPAN-> <A NAME="t%3AXmlRegex"-></A-><B->XmlRegex</B-> </TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlRegex.html#XmlRegex"->Source</A-></TD-></TR-></TABLE-></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:XmlRegex')" ALT="show/hide"-> Instances</TD-></TR-><TR-><TD CLASS="body"-><DIV ID="i:XmlRegex" STYLE="display:block;"-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Show.html#t%3AShow"->Show</A-> <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"->XmlRegex</A-></TD-></TR-></TABLE-></DIV-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkZero"-></A-><B->mkZero</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"->XmlRegex</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlRegex.html#mkZero"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkUnit"-></A-><B->mkUnit</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"->XmlRegex</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlRegex.html#mkUnit"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkPrim"-></A-><B->mkPrim</B-> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A->) -> <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"->XmlRegex</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlRegex.html#mkPrim"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkPrimA"-></A-><B->mkPrimA</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-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"->XmlRegex</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlRegex.html#mkPrimA"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkDot"-></A-><B->mkDot</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"->XmlRegex</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlRegex.html#mkDot"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkStar"-></A-><B->mkStar</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"->XmlRegex</A-> -> <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"->XmlRegex</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlRegex.html#mkStar"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkAlt"-></A-><B->mkAlt</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"->XmlRegex</A-> -> <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"->XmlRegex</A-> -> <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"->XmlRegex</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlRegex.html#mkAlt"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkSeq"-></A-><B->mkSeq</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"->XmlRegex</A-> -> <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"->XmlRegex</A-> -> <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"->XmlRegex</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlRegex.html#mkSeq"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkRep"-></A-><B->mkRep</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-> -> <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"->XmlRegex</A-> -> <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"->XmlRegex</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlRegex.html#mkRep"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkRng"-></A-><B->mkRng</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-> -> <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"->XmlRegex</A-> -> <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"->XmlRegex</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlRegex.html#mkRng"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkOpt"-></A-><B->mkOpt</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"->XmlRegex</A-> -> <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"->XmlRegex</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlRegex.html#mkOpt"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Anullable"-></A-><B->nullable</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"->XmlRegex</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlRegex.html#nullable"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Adelta"-></A-><B->delta</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"->XmlRegex</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"->XmlRegex</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlRegex.html#delta"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmatchXmlRegex"-></A-><B->matchXmlRegex</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"->XmlRegex</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlRegex.html#matchXmlRegex"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->match a sequence of XML trees with a regular expression over trees-</P-><P->If the input matches, the result is Nothing, else Just an error message is returned-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AsplitXmlRegex"-></A-><B->splitXmlRegex</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"->XmlRegex</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A->, <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A->)</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlRegex.html#splitXmlRegex"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->split a sequence of XML trees into a pair of a a matching prefix and a rest-</P-><P->If there is no matching prefix, Nothing is returned-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AscanXmlRegex"-></A-><B->scanXmlRegex</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"->XmlRegex</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> [<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A->]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlRegex.html#scanXmlRegex"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->scan a sequence of XML trees and split it into parts matching the given regex-</P-><P->If the parts cannot be split because of a missing match, or because of the- empty sequence as match, Nothing is returned-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmatchRegexA"-></A-><B->matchRegexA</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"->XmlRegex</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-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</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-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlRegex.html#matchRegexA"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->check whether a sequence of XmlTrees match an Xml regular expression-</P-><P->The arrow for <TT-><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AmatchXmlRegex"->matchXmlRegex</A-></TT->.-</P-><P->The expession is build up from simple arrows acting as predicate (<TT-><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AmkPrimA"->mkPrimA</A-></TT->) for- an XmlTree and of the usual cobinators for sequence (<TT-><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AmkSeq"->mkSeq</A-></TT->), repetition- (<TT-><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AmkStar"->mkStar</A-></TT->, mkRep', <TT-><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AmkRng"->mkRng</A-></TT->) and choice (<TT-><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AmkAlt"->mkAlt</A-></TT->, <TT-><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AmkOpt"->mkOpt</A-></TT->)-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AsplitRegexA"-></A-><B->splitRegexA</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"->XmlRegex</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-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</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-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A->, <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A->)</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlRegex.html#splitRegexA"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->split the sequence of trees computed by the filter a into-</P-><P->The arrow for <TT-><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AsplitXmlRegex"->splitXmlRegex</A-></TT->.-</P-><P->a first part matching the regex and a rest,- if a prefix of the input sequence does not match the regex, the arrow fails- else the pair containing the result lists is returned-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AscanRegexA"-></A-><B->scanRegexA</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"->XmlRegex</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-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</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-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Arrow-XmlRegex.html#scanRegexA"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->scan the input sequence with a regex and give the result as a list of lists of trees back- the regex must at least match one input tree, so the empty sequence should not match the regex-</P-><P->The arrow for <TT-><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AscanXmlRegex"->scanXmlRegex</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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-Arrow.html
@@ -1,283 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-Arrow.html"->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 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-DOM-Interface.html"->Text.XML.HXT.DOM.Interface</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-XPath.html"->Text.XML.HXT.Arrow.XPath</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-Arrow-Pickle.html"->Text.XML.HXT.Arrow.Pickle</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="decl"->module <A HREF="Text-XML-HXT-Version.html"->Text.XML.HXT.Version</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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-DOM-FormatXmlTree.html
@@ -1,163 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-DOM-FormatXmlTree.html"->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-><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"->stable</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 CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"->Format a xml tree in tree representation-</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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AformatXmlTree"-></A-><B->formatXmlTree</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-FormatXmlTree.html#formatXmlTree"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AformatXmlContents"-></A-><B->formatXmlContents</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-FormatXmlTree.html#formatXmlContents"->Source</A-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-DOM-Interface.html
@@ -1,162 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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.Interface</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-><SCRIPT SRC="haddock-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-DOM-Interface.html"->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.Interface</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"->stable</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 CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"->The interface to the primitive DOM data types and constants- and utility functions-</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-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="decl"->module <A HREF="Text-XML-HXT-DOM-MimeTypes.html"->Text.XML.HXT.DOM.MimeTypes</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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-DOM-IsoLatinTables.html
@@ -1,444 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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.IsoLatinTables</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-><SCRIPT SRC="haddock-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-DOM-IsoLatinTables.html"->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.IsoLatinTables</FONT-></TD-></TR-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Aiso_8859_2"-></A-><B->iso_8859_2</B-> :: [(<A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A->, <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A->)]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-IsoLatinTables.html#iso_8859_2"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Aiso_8859_3"-></A-><B->iso_8859_3</B-> :: [(<A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A->, <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A->)]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-IsoLatinTables.html#iso_8859_3"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Aiso_8859_4"-></A-><B->iso_8859_4</B-> :: [(<A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A->, <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A->)]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-IsoLatinTables.html#iso_8859_4"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Aiso_8859_5"-></A-><B->iso_8859_5</B-> :: [(<A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A->, <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A->)]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-IsoLatinTables.html#iso_8859_5"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Aiso_8859_6"-></A-><B->iso_8859_6</B-> :: [(<A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A->, <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A->)]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-IsoLatinTables.html#iso_8859_6"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Aiso_8859_7"-></A-><B->iso_8859_7</B-> :: [(<A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A->, <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A->)]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-IsoLatinTables.html#iso_8859_7"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Aiso_8859_8"-></A-><B->iso_8859_8</B-> :: [(<A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A->, <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A->)]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-IsoLatinTables.html#iso_8859_8"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Aiso_8859_9"-></A-><B->iso_8859_9</B-> :: [(<A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A->, <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A->)]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-IsoLatinTables.html#iso_8859_9"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Aiso_8859_10"-></A-><B->iso_8859_10</B-> :: [(<A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A->, <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A->)]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-IsoLatinTables.html#iso_8859_10"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Aiso_8859_11"-></A-><B->iso_8859_11</B-> :: [(<A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A->, <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A->)]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-IsoLatinTables.html#iso_8859_11"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Aiso_8859_13"-></A-><B->iso_8859_13</B-> :: [(<A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A->, <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A->)]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-IsoLatinTables.html#iso_8859_13"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Aiso_8859_14"-></A-><B->iso_8859_14</B-> :: [(<A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A->, <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A->)]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-IsoLatinTables.html#iso_8859_14"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Aiso_8859_15"-></A-><B->iso_8859_15</B-> :: [(<A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A->, <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A->)]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-IsoLatinTables.html#iso_8859_15"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Aiso_8859_16"-></A-><B->iso_8859_16</B-> :: [(<A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A->, <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A->)]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-IsoLatinTables.html#iso_8859_16"->Source</A-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-DOM-MimeTypeDefaults.html
@@ -1,151 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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.MimeTypeDefaults</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-><SCRIPT SRC="haddock-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-DOM-MimeTypeDefaults.html"->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.MimeTypeDefaults</FONT-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"-><P->default mime type table-</P-><P->this file is generated from file <EM->etc</EM->mime.types-</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%3AmimeTypeDefaults"->mimeTypeDefaults</A-> :: [(<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->, <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmimeTypeDefaults"-></A-><B->mimeTypeDefaults</B-> :: [(<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->, <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->)]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-MimeTypeDefaults.html#mimeTypeDefaults"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->the table with the mapping from file name extensions to mime types-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="botbar"->Produced by <A HREF="http://www.haskell.org/haddock/"->Haddock</A-> version 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-DOM-MimeTypes.html
@@ -1,325 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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.MimeTypes</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-><SCRIPT SRC="haddock-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-DOM-MimeTypes.html"->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.MimeTypes</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 CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"->mime type related data and functions-</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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->type</SPAN-> <A NAME="t%3AMimeTypeTable"-></A-><B->MimeTypeTable</B-> = <A HREF="/usr/local/share/doc/ghc/libraries/containers/Data-Map.html#t%3AMap"->Map</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-MimeTypes.html#MimeTypeTable"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Aapplication_xml"-></A-><B->application_xml</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-MimeTypes.html#application_xml"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisHtmlMimeType"-></A-><B->isHtmlMimeType</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-MimeTypes.html#isHtmlMimeType"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisXmlMimeType"-></A-><B->isXmlMimeType</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-MimeTypes.html#isXmlMimeType"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AdefaultMimeTypeTable"-></A-><B->defaultMimeTypeTable</B-> :: <A HREF="Text-XML-HXT-DOM-MimeTypes.html#t%3AMimeTypeTable"->MimeTypeTable</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-MimeTypes.html#defaultMimeTypeTable"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AextensionToMimeType"-></A-><B->extensionToMimeType</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DOM-MimeTypes.html#t%3AMimeTypeTable"->MimeTypeTable</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-MimeTypes.html#extensionToMimeType"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AreadMimeTypeTable"-></A-><B->readMimeTypeTable</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/System-IO.html#t%3AFilePath"->FilePath</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/System-IO.html#t%3AIO"->IO</A-> <A HREF="Text-XML-HXT-DOM-MimeTypes.html#t%3AMimeTypeTable"->MimeTypeTable</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-MimeTypes.html#readMimeTypeTable"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AparseMimeTypeTable"-></A-><B->parseMimeTypeTable</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> [(<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->, <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->)]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-MimeTypes.html#parseMimeTypeTable"->Source</A-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-DOM-QualifiedName.html
@@ -1,2250 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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.QualifiedName</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-><SCRIPT SRC="haddock-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html"->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.QualifiedName</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"->stable</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 CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"->The core data types of the HXT DOM.-</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%3AQName"->QName</A-> </TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><SPAN CLASS="keyword"->type</SPAN-> <A HREF="#t%3AXName"->XName</A-> = Atom</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-> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"->XName</A-> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"->XName</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AmkQName"->mkQName</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AmkName"->mkName</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AmkNsName"->mkNsName</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AmkSNsName"->mkSNsName</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AmkPrefixLocalPart"->mkPrefixLocalPart</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AequivQName"->equivQName</A-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AequivUri"->equivUri</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AequalQNameBy"->equalQNameBy</A-> :: (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A->) -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AnamePrefix"->namePrefix</A-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AlocalPart"->localPart</A-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AnamespaceUri"->namespaceUri</A-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AnewXName"->newXName</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"->XName</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AnullXName"->nullXName</A-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"->XName</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AisNullXName"->isNullXName</A-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"->XName</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AmkQName%27"->mkQName'</A-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"->XName</A-> -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"->XName</A-> -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"->XName</A-> -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AnamePrefix%27"->namePrefix'</A-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"->XName</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AlocalPart%27"->localPart'</A-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"->XName</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AnamespaceUri%27"->namespaceUri'</A-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"->XName</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AsetNamePrefix%27"->setNamePrefix'</A-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"->XName</A-> -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AsetLocalPart%27"->setLocalPart'</A-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"->XName</A-> -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AsetNamespaceUri%27"->setNamespaceUri'</A-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"->XName</A-> -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AqualifiedName"->qualifiedName</A-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AuniversalName"->universalName</A-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AuniversalUri"->universalUri</A-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AbuildUniversalName"->buildUniversalName</A-> :: (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->) -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AnormalizeNsUri"->normalizeNsUri</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AsetNamespace"->setNamespace</A-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3ANsEnv"->NsEnv</A-> -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AisNCName"->isNCName</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AisWellformedQualifiedName"->isWellformedQualifiedName</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AisWellformedQName"->isWellformedQName</A-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AisWellformedNSDecl"->isWellformedNSDecl</A-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AisWellformedNameSpaceName"->isWellformedNameSpaceName</A-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AisNameSpaceName"->isNameSpaceName</A-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AisDeclaredNamespace"->isDeclaredNamespace</A-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxmlNamespaceXName"->xmlNamespaceXName</A-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"->XName</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxmlXName"->xmlXName</A-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"->XName</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxmlnsNamespaceXName"->xmlnsNamespaceXName</A-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"->XName</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxmlnsXName"->xmlnsXName</A-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"->XName</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-QualifiedName.html#t%3AQName"->QName</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AtoNsEnv"->toNsEnv</A-> :: <A HREF="Data-AssocList.html#t%3AAssocList"->AssocList</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3ANsEnv"->NsEnv</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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->data</SPAN-> <A NAME="t%3AQName"-></A-><B->QName</B-> </TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#QName"->Source</A-></TD-></TR-></TABLE-></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-QualifiedName.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 "prefix:localPart" and label the name with the apropriate namespace uri-</P-></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="/usr/local/share/doc/ghc/libraries/base/Data-Eq.html#t%3AEq"->Eq</A-> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Ord.html#t%3AOrd"->Ord</A-> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Read.html#t%3ARead"->Read</A-> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Show.html#t%3AShow"->Show</A-> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Typeable.html#t%3ATypeable"->Typeable</A-> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/parallel/Control-Parallel-Strategies.html#t%3ANFData"->NFData</A-> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-></TD-></TR-></TABLE-></DIV-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->type</SPAN-> <A NAME="t%3AXName"-></A-><B->XName</B-> = Atom</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#XName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->XML names are represented by Strings, but these strings do not mix up with normal strings.- Names are always reduced to normal form, and they are stored internally in a name cache- for sharing equal names by the same data structure-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->type</SPAN-> <A NAME="t%3ANsEnv"-></A-><B->NsEnv</B-> = <A HREF="Data-AssocList.html#t%3AAssocList"->AssocList</A-> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"->XName</A-> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"->XName</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#NsEnv"->Source</A-></TD-></TR-></TABLE-></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-QualifiedName.html#t%3AQName"->QName</A-></TT-> values in a tree-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkQName"-></A-><B->mkQName</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#mkQName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->constructs a complete qualified name with <TT-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AnamePrefix"->namePrefix</A-></TT->, <TT-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AlocalPart"->localPart</A-></TT-> and <TT-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AnamespaceUri"->namespaceUri</A-></TT->.- This function can be used to build not wellformed prefix:localpart names.- The XPath module uses wildcard names like <TT->xxx:*</TT->. These must be build with <TT-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkQName"->mkQName</A-></TT->- and not with mkName.-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkName"-></A-><B->mkName</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#mkName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->constructs a simple, namespace unaware name.- If the name is in <TT->prefix:localpart</TT-> form and the prefix is not empty- the name is split internally into- a prefix and a local part.-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkNsName"-></A-><B->mkNsName</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#mkNsName"->Source</A-></TD-></TR-></TABLE-></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-QualifiedName.html#v%3AmkName"->mkName</A-></TT->, <TT-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkPrefixLocalPart"->mkPrefixLocalPart</A-></TT->-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkSNsName"-></A-><B->mkSNsName</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#mkSNsName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->old name for <TT-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkName"->mkName</A-></TT->-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkPrefixLocalPart"-></A-><B->mkPrefixLocalPart</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#mkPrefixLocalPart"->Source</A-></TD-></TR-></TABLE-></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-QualifiedName.html#v%3AmkQName"->mkQName</A-></TT->, <TT-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkName"->mkName</A-></TT->-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AequivQName"-></A-><B->equivQName</B-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#equivQName"->Source</A-></TD-></TR-></TABLE-></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-QualifiedName.html#v%3AequalQNameBy"->equalQNameBy</A-></TT-> and <TT-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AequivUri"->equivUri</A-></TT->-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AequivUri"-></A-><B->equivUri</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#equivUri"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Comparison of normalized namespace URIs using <TT-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AnormalizeNsUri"->normalizeNsUri</A-></TT->-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AequalQNameBy"-></A-><B->equalQNameBy</B-> :: (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A->) -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#equalQNameBy"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->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- <TT-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AequivQName"->equivQName</A-></TT->-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AnamePrefix"-></A-><B->namePrefix</B-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#namePrefix"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AlocalPart"-></A-><B->localPart</B-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#localPart"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AnamespaceUri"-></A-><B->namespaceUri</B-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#namespaceUri"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AnewXName"-></A-><B->newXName</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"->XName</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#newXName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AnullXName"-></A-><B->nullXName</B-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"->XName</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#nullXName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisNullXName"-></A-><B->isNullXName</B-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"->XName</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#isNullXName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkQName%27"-></A-><B->mkQName'</B-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"->XName</A-> -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"->XName</A-> -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"->XName</A-> -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#mkQName%27"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AnamePrefix%27"-></A-><B->namePrefix'</B-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"->XName</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#namePrefix%27"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->access name prefix-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AlocalPart%27"-></A-><B->localPart'</B-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"->XName</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#localPart%27"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->access local part-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AnamespaceUri%27"-></A-><B->namespaceUri'</B-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"->XName</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#namespaceUri%27"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->access namespace uri-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AsetNamePrefix%27"-></A-><B->setNamePrefix'</B-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"->XName</A-> -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#setNamePrefix%27"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->set name prefix-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AsetLocalPart%27"-></A-><B->setLocalPart'</B-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"->XName</A-> -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#setLocalPart%27"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->set local part-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AsetNamespaceUri%27"-></A-><B->setNamespaceUri'</B-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"->XName</A-> -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#setNamespaceUri%27"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->set name prefix-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AqualifiedName"-></A-><B->qualifiedName</B-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#qualifiedName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->builds the full name "prefix:localPart", if prefix is not null, else the local part is the result-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AuniversalName"-></A-><B->universalName</B-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#universalName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->builds the "universal" name, that is the namespace uri surrounded with "{" and "}" followed by the local part- (specialisation of <TT-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AbuildUniversalName"->buildUniversalName</A-></TT->)-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AuniversalUri"-></A-><B->universalUri</B-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#universalUri"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->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 <TT-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AbuildUniversalName"->buildUniversalName</A-></TT->)-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AbuildUniversalName"-></A-><B->buildUniversalName</B-> :: (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->) -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#buildUniversalName"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AnormalizeNsUri"-></A-><B->normalizeNsUri</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#normalizeNsUri"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Normalization of URIs: Normalization is done by conversion into lowercase letters. A trailing "/" is ignored-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AsetNamespace"-></A-><B->setNamespace</B-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3ANsEnv"->NsEnv</A-> -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#setNamespace"->Source</A-></TD-></TR-></TABLE-></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-QualifiedName.html#v%3AisWellformedQName"->isWellformedQName</A-></TT-> and <TT-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AisWellformedQualifiedName"->isWellformedQualifiedName</A-></TT-> for error checking.-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisNCName"-></A-><B->isNCName</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#isNCName"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisWellformedQualifiedName"-></A-><B->isWellformedQualifiedName</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#isWellformedQualifiedName"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisWellformedQName"-></A-><B->isWellformedQName</B-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#isWellformedQName"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisWellformedNSDecl"-></A-><B->isWellformedNSDecl</B-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#isWellformedNSDecl"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->test whether an attribute name is a namesapce declaration name.- If this is not the case True is the result, else- the name must be a well formed namespace name:- All namespace prefixes starting with "xml" are reserved for XML related definitions.- predicate is used in filter valdateNamespaces.-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisWellformedNameSpaceName"-></A-><B->isWellformedNameSpaceName</B-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#isWellformedNameSpaceName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->test for a namespace name to be well formed-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisNameSpaceName"-></A-><B->isNameSpaceName</B-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#isNameSpaceName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->test whether a name is a namespace declaration attribute name-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisDeclaredNamespace"-></A-><B->isDeclaredNamespace</B-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#isDeclaredNamespace"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->predicate is used in filter valdateNamespaces.-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxmlNamespaceXName"-></A-><B->xmlNamespaceXName</B-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"->XName</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#xmlNamespaceXName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxmlXName"-></A-><B->xmlXName</B-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"->XName</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#xmlXName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxmlnsNamespaceXName"-></A-><B->xmlnsNamespaceXName</B-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"->XName</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#xmlnsNamespaceXName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxmlnsXName"-></A-><B->xmlnsXName</B-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"->XName</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#xmlnsXName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxmlnsQN"-></A-><B->xmlnsQN</B-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#xmlnsQN"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AtoNsEnv"-></A-><B->toNsEnv</B-> :: <A HREF="Data-AssocList.html#t%3AAssocList"->AssocList</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3ANsEnv"->NsEnv</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-QualifiedName.html#toNsEnv"->Source</A-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-DOM-ShowXml.html
@@ -1,219 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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.ShowXml</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-><SCRIPT SRC="haddock-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-DOM-ShowXml.html"->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.ShowXml</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"->stable</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 CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"->XML tree conversion to external 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%3Axshow"->xshow</A-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AshowElemType"->showElemType</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Axshow"-></A-><B->xshow</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-ShowXml.html#xshow"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->convert the result of a filter into a string-</P-><P->see also : xmlTreesToText for filter version, Text.XML.HXT.Parser.XmlParsec.xread for the inverse operation -</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AshowElemType"-></A-><B->showElemType</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-ShowXml.html#showElemType"->Source</A-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-DOM-TypeDefs.html
@@ -1,1422 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-DOM-TypeDefs.html"->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-><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"->stable</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 CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"->The core data types of the HXT DOM.-</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-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="decl"->| <A HREF="#v%3AXCharRef"->XCharRef</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-></TD-></TR-><TR-><TD CLASS="decl"->| <A HREF="#v%3AXEntityRef"->XEntityRef</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="decl"->| <A HREF="#v%3AXCmt"->XCmt</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="decl"->| <A HREF="#v%3AXCdata"->XCdata</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="decl"->| <A HREF="#v%3AXPi"->XPi</A-> <A HREF="Text-XML-HXT-DOM-QualifiedName.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-QualifiedName.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-QualifiedName.html#t%3AQName"->QName</A-></TD-></TR-><TR-><TD CLASS="decl"->| <A HREF="#v%3AXError"->XError</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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%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-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Ac_ok"->c_ok</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Ac_warn"->c_warn</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Ac_err"->c_err</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Ac_fatal"->c_fatal</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-></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-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-></TR-><TR-><TD CLASS="recfield"-><A HREF="#v%3AattrNodes"->attrNodes</A-> :: [<A HREF="Text-XML-HXT-DOM-QualifiedName.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-> = [(<A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</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"->module <A HREF="Text-XML-HXT-DOM-QualifiedName.html"->Text.XML.HXT.DOM.QualifiedName</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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-TypeDefs.html#XmlTree"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Node of xml tree representation-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-TypeDefs.html#XmlTrees"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->List of nodes of xml tree representation-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->data</SPAN-> <A NAME="t%3AXNode"-></A-><B->XNode</B-> </TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-TypeDefs.html#XNode"->Source</A-></TD-></TR-></TABLE-></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-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="rdoc"->ordinary text (leaf)-</TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3AXCharRef"-></A-><B->XCharRef</B-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-></TD-><TD CLASS="rdoc"->character reference (leaf)-</TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3AXEntityRef"-></A-><B->XEntityRef</B-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="rdoc"->entity reference (leaf)-</TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3AXCmt"-></A-><B->XCmt</B-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="rdoc"->comment (leaf)-</TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3AXCdata"-></A-><B->XCdata</B-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></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-QualifiedName.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 "version", "encoding", "standalone",- 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-QualifiedName.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-QualifiedName.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-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></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="/usr/local/share/doc/ghc/libraries/base/Data-Eq.html#t%3AEq"->Eq</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"->XNode</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Ord.html#t%3AOrd"->Ord</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"->XNode</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Read.html#t%3ARead"->Read</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"->XNode</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Show.html#t%3AShow"->Show</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"->XNode</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Typeable.html#t%3ATypeable"->Typeable</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"->XNode</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/parallel/Control-Parallel-Strategies.html#t%3ANFData"->NFData</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"->XNode</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="Text-XML-HXT-DOM-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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->data</SPAN-> <A NAME="t%3ADTDElem"-></A-><B->DTDElem</B-> </TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-TypeDefs.html#DTDElem"->Source</A-></TD-></TR-></TABLE-></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: "EMPTY" | "ANY" | "#PCDATA" | 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: "" | "?" | "*" | "+"-</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: "CDATA" | "ID" | "IDREF" | "IDREFS" | "ENTITY" | "ENTITIES" |-</P-><P->"NMTOKEN" | "NMTOKENS" |"NOTATION" | "ENUMTYPE"-</P-><P->kind: "<A NAME="REQUIRED%5C%22%20%7C%20%5C%22"-></A->IMPLIED" | "DEFAULT"-</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="/usr/local/share/doc/ghc/libraries/base/Data-Eq.html#t%3AEq"->Eq</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"->DTDElem</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Ord.html#t%3AOrd"->Ord</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"->DTDElem</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Read.html#t%3ARead"->Read</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"->DTDElem</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Show.html#t%3AShow"->Show</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"->DTDElem</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Typeable.html#t%3ATypeable"->Typeable</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"->DTDElem</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/parallel/Control-Parallel-Strategies.html#t%3ANFData"->NFData</A-> <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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->type</SPAN-> <A NAME="t%3AAttributes"-></A-><B->Attributes</B-> = <A HREF="Data-AssocList.html#t%3AAssocList"->AssocList</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-TypeDefs.html#Attributes"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Ac_ok"-></A-><B->c_ok</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-TypeDefs.html#c_ok"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->no error, everything is ok-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Ac_warn"-></A-><B->c_warn</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-TypeDefs.html#c_warn"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Error level for XError, type warning-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Ac_err"-></A-><B->c_err</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-TypeDefs.html#c_err"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Error level for XError, type error-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Ac_fatal"-></A-><B->c_fatal</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-TypeDefs.html#c_fatal"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Error level for XError, type fatal error-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->data</SPAN-> <A NAME="t%3AXmlNodeSet"-></A-><B->XmlNodeSet</B-> </TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-TypeDefs.html#XmlNodeSet"->Source</A-></TD-></TR-></TABLE-></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-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></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-QualifiedName.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"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Eq.html#t%3AEq"->Eq</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"->XmlNodeSet</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Show.html#t%3AShow"->Show</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"->XmlNodeSet</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Typeable.html#t%3ATypeable"->Typeable</A-> <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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->type</SPAN-> <A NAME="t%3AChildNodes"-></A-><B->ChildNodes</B-> = [(<A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A->, <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"->XmlNodeSet</A->)]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-TypeDefs.html#ChildNodes"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="decl"->module <A HREF="Text-XML-HXT-DOM-QualifiedName.html"->Text.XML.HXT.DOM.QualifiedName</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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-DOM-UTF8Decoding.html
@@ -1,258 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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.UTF8Decoding</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-><SCRIPT SRC="haddock-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-DOM-UTF8Decoding.html"->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.UTF8Decoding</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"->stable</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 CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"->Interface for Data.Char.UTF8 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"-><A HREF="#v%3AdecodeUtf8"->decodeUtf8</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->, [<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->])</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AdecodeUtf8EmbedErrors"->decodeUtf8EmbedErrors</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> [<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Either.html#t%3AEither"->Either</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A->]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AdecodeUtf8IgnoreErrors"->decodeUtf8IgnoreErrors</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AdecodeUtf8"-></A-><B->decodeUtf8</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->, [<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->])</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-UTF8Decoding.html#decodeUtf8"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->calls Data.Char.UTF8.decode for parsing and decoding UTF-8-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AdecodeUtf8EmbedErrors"-></A-><B->decodeUtf8EmbedErrors</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> [<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Either.html#t%3AEither"->Either</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A->]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-UTF8Decoding.html#decodeUtf8EmbedErrors"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AdecodeUtf8IgnoreErrors"-></A-><B->decodeUtf8IgnoreErrors</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-UTF8Decoding.html#decodeUtf8IgnoreErrors"->Source</A-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-DOM-Unicode.html
@@ -1,2317 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-DOM-Unicode.html"->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-><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"->Unicode Type declarations-</A-></DT-><DT-><A HREF="#2"->XML char 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 and UTF-8 Conversion 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"-><SPAN CLASS="keyword"->type</SPAN-> <A HREF="#t%3AUnicode"->Unicode</A-> = <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-></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-> = <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><SPAN CLASS="keyword"->type</SPAN-> <A HREF="#t%3AUTF8String"->UTF8String</A-> = <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><SPAN CLASS="keyword"->type</SPAN-> <A HREF="#t%3AUStringWithErrors"->UStringWithErrors</A-> = [<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Either.html#t%3AEither"->Either</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A->]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><SPAN CLASS="keyword"->type</SPAN-> <A HREF="#t%3ADecodingFct"->DecodingFct</A-> = <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> (<A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"->UString</A->, [<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->])</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><SPAN CLASS="keyword"->type</SPAN-> <A HREF="#t%3ADecodingFctEmbedErrors"->DecodingFctEmbedErrors</A-> = <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUStringWithErrors"->UStringWithErrors</A-></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-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></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-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></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-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></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-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></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-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></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-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></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-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></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-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></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-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></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-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></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-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></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-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></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-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></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-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></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-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></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-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</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%3ADecodingFct"->DecodingFct</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Autf8ToUnicodeEmbedErrors"->utf8ToUnicodeEmbedErrors</A-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3ADecodingFctEmbedErrors"->DecodingFctEmbedErrors</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Alatin1ToUnicode"->latin1ToUnicode</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <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-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <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-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <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-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <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-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <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-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <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-> -> <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-> -> <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-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></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-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></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-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></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-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AintToCharRef"->intToCharRef</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AintToCharRefHex"->intToCharRefHex</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AgetDecodingFct"->getDecodingFct</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3ADecodingFct"->DecodingFct</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AgetDecodingFctEmbedErrors"->getDecodingFctEmbedErrors</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3ADecodingFctEmbedErrors"->DecodingFctEmbedErrors</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AgetOutputEncodingFct"->getOutputEncodingFct</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <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-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AguessEncoding"->guessEncoding</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->type</SPAN-> <A NAME="t%3AUnicode"-></A-><B->Unicode</B-> = <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-Unicode.html#Unicode"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-Unicode.html#UString"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->the type for Unicode strings-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->type</SPAN-> <A NAME="t%3AUTF8Char"-></A-><B->UTF8Char</B-> = <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-Unicode.html#UTF8Char"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->type</SPAN-> <A NAME="t%3AUTF8String"-></A-><B->UTF8String</B-> = <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-Unicode.html#UTF8String"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->type</SPAN-> <A NAME="t%3AUStringWithErrors"-></A-><B->UStringWithErrors</B-> = [<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Either.html#t%3AEither"->Either</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A->]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-Unicode.html#UStringWithErrors"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->type</SPAN-> <A NAME="t%3ADecodingFct"-></A-><B->DecodingFct</B-> = <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> (<A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"->UString</A->, [<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->])</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-Unicode.html#DecodingFct"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Decoding function with a pair containing the result string and a list of decoding errors as result-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->type</SPAN-> <A NAME="t%3ADecodingFctEmbedErrors"-></A-><B->DecodingFctEmbedErrors</B-> = <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUStringWithErrors"->UStringWithErrors</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-Unicode.html#DecodingFctEmbedErrors"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Decoding function where decoding errors are interleaved with decoded characters-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="section1"-><A NAME="2"->XML char predicates-</A-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisXmlChar"-></A-><B->isXmlChar</B-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"->Unicode</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-Unicode.html#isXmlChar"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->checking for valid XML characters-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisXmlLatin1Char"-></A-><B->isXmlLatin1Char</B-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"->Unicode</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-Unicode.html#isXmlLatin1Char"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->test for a legal latin1 XML char-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisXmlSpaceChar"-></A-><B->isXmlSpaceChar</B-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"->Unicode</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-Unicode.html#isXmlSpaceChar"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->checking for XML space character: \n, \r, \t and " "-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisXml11SpaceChar"-></A-><B->isXml11SpaceChar</B-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"->Unicode</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-Unicode.html#isXml11SpaceChar"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisXmlNameChar"-></A-><B->isXmlNameChar</B-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"->Unicode</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-Unicode.html#isXmlNameChar"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->checking for XML name character-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisXmlNameStartChar"-></A-><B->isXmlNameStartChar</B-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"->Unicode</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-Unicode.html#isXmlNameStartChar"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisXmlNCNameChar"-></A-><B->isXmlNCNameChar</B-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"->Unicode</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-Unicode.html#isXmlNCNameChar"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->checking for XML NCName character: no ":" 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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisXmlNCNameStartChar"-></A-><B->isXmlNCNameStartChar</B-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"->Unicode</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-Unicode.html#isXmlNCNameStartChar"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->checking for XML NCName start character: no ":" 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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisXmlPubidChar"-></A-><B->isXmlPubidChar</B-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"->Unicode</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-Unicode.html#isXmlPubidChar"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->checking for XML public id character-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisXmlLetter"-></A-><B->isXmlLetter</B-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"->Unicode</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-Unicode.html#isXmlLetter"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->checking for XML letter-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisXmlBaseChar"-></A-><B->isXmlBaseChar</B-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"->Unicode</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-Unicode.html#isXmlBaseChar"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->checking for XML base charater-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisXmlIdeographicChar"-></A-><B->isXmlIdeographicChar</B-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"->Unicode</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-Unicode.html#isXmlIdeographicChar"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->checking for XML ideographic charater-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisXmlCombiningChar"-></A-><B->isXmlCombiningChar</B-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"->Unicode</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-Unicode.html#isXmlCombiningChar"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->checking for XML combining charater-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisXmlDigit"-></A-><B->isXmlDigit</B-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"->Unicode</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-Unicode.html#isXmlDigit"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->checking for XML digit-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisXmlExtender"-></A-><B->isXmlExtender</B-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"->Unicode</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-Unicode.html#isXmlExtender"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->checking for XML extender-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisXmlControlOrPermanentlyUndefined"-></A-><B->isXmlControlOrPermanentlyUndefined</B-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"->Unicode</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-Unicode.html#isXmlControlOrPermanentlyUndefined"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Autf8ToUnicode"-></A-><B->utf8ToUnicode</B-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3ADecodingFct"->DecodingFct</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-Unicode.html#utf8ToUnicode"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Autf8ToUnicodeEmbedErrors"-></A-><B->utf8ToUnicodeEmbedErrors</B-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3ADecodingFctEmbedErrors"->DecodingFctEmbedErrors</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-Unicode.html#utf8ToUnicodeEmbedErrors"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Alatin1ToUnicode"-></A-><B->latin1ToUnicode</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"->UString</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-Unicode.html#latin1ToUnicode"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->code conversion from latin1 to Unicode-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Aucs2ToUnicode"-></A-><B->ucs2ToUnicode</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"->UString</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-Unicode.html#ucs2ToUnicode"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Aucs2BigEndianToUnicode"-></A-><B->ucs2BigEndianToUnicode</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"->UString</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-Unicode.html#ucs2BigEndianToUnicode"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->UCS-2 big endian to Unicode conversion-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Aucs2LittleEndianToUnicode"-></A-><B->ucs2LittleEndianToUnicode</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"->UString</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-Unicode.html#ucs2LittleEndianToUnicode"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->UCS-2 little endian to Unicode conversion-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Autf16beToUnicode"-></A-><B->utf16beToUnicode</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"->UString</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-Unicode.html#utf16beToUnicode"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Autf16leToUnicode"-></A-><B->utf16leToUnicode</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"->UString</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-Unicode.html#utf16leToUnicode"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AunicodeCharToUtf8"-></A-><B->unicodeCharToUtf8</B-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"->Unicode</A-> -> <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUTF8String"->UTF8String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-Unicode.html#unicodeCharToUtf8"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AunicodeToUtf8"-></A-><B->unicodeToUtf8</B-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"->UString</A-> -> <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUTF8String"->UTF8String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-Unicode.html#unicodeToUtf8"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AunicodeToXmlEntity"-></A-><B->unicodeToXmlEntity</B-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"->UString</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-Unicode.html#unicodeToXmlEntity"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AunicodeToLatin1"-></A-><B->unicodeToLatin1</B-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"->UString</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-Unicode.html#unicodeToLatin1"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AunicodeRemoveNoneAscii"-></A-><B->unicodeRemoveNoneAscii</B-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"->UString</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-Unicode.html#unicodeRemoveNoneAscii"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AunicodeRemoveNoneLatin1"-></A-><B->unicodeRemoveNoneLatin1</B-> :: <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"->UString</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-Unicode.html#unicodeRemoveNoneLatin1"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AintToCharRef"-></A-><B->intToCharRef</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-Unicode.html#intToCharRef"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AintToCharRefHex"-></A-><B->intToCharRefHex</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-Unicode.html#intToCharRefHex"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetDecodingFct"-></A-><B->getDecodingFct</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3ADecodingFct"->DecodingFct</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-Unicode.html#getDecodingFct"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->the lookup function for selecting the decoding function-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetDecodingFctEmbedErrors"-></A-><B->getDecodingFctEmbedErrors</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3ADecodingFctEmbedErrors"->DecodingFctEmbedErrors</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-Unicode.html#getDecodingFctEmbedErrors"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->the lookup function for selecting the decoding function-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetOutputEncodingFct"-></A-><B->getOutputEncodingFct</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUString"->UString</A->)</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-Unicode.html#getOutputEncodingFct"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AnormalizeNL"-></A-><B->normalizeNL</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-Unicode.html#normalizeNL"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AguessEncoding"-></A-><B->guessEncoding</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-Unicode.html#guessEncoding"->Source</A-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-DOM-Util.html
@@ -1,1136 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-DOM-Util.html"->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 CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"->utility 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%3AstringTrim"->stringTrim</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AstringToUpper"->stringToUpper</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AnormalizeNumber"->normalizeNumber</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AnormalizeWhitespace"->normalizeWhitespace</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AnormalizeBlanks"->normalizeBlanks</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AescapeURI"->escapeURI</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AtextEscapeXml"->textEscapeXml</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AstringEscapeXml"->stringEscapeXml</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AattrEscapeXml"->attrEscapeXml</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AstringToInt"->stringToInt</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AstringToHexString"->stringToHexString</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AcharToHexString"->charToHexString</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AintToHexString"->intToHexString</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AhexStringToInt"->hexStringToInt</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AdecimalStringToInt"->decimalStringToInt</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Adoubles"->doubles</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Eq.html#t%3AEq"->Eq</A-> a => [a] -> [a]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Asingles"->singles</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Eq.html#t%3AEq"->Eq</A-> a => [a] -> [a]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AnoDoubles"->noDoubles</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Eq.html#t%3AEq"->Eq</A-> a => [a] -> [a]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Aswap"->swap</A-> :: (a, b) -> (b, a)</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3ApartitionEither"->partitionEither</A-> :: [<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Either.html#t%3AEither"->Either</A-> a b] -> ([a], [b])</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AtoMaybe"->toMaybe</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-> -> a -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> a</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Auncurry3"->uncurry3</A-> :: (a -> b -> c -> d) -> (a, b, c) -> d</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Auncurry4"->uncurry4</A-> :: (a -> b -> c -> d -> e) -> (a, b, c, d) -> e</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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AstringTrim"-></A-><B->stringTrim</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-Util.html#stringTrim"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AstringToUpper"-></A-><B->stringToUpper</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-Util.html#stringToUpper"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AnormalizeNumber"-></A-><B->normalizeNumber</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-Util.html#normalizeNumber"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Removes leading / trailing whitespaces and leading zeros-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AnormalizeWhitespace"-></A-><B->normalizeWhitespace</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-Util.html#normalizeWhitespace"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Reduce whitespace sequences to a single whitespace-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AnormalizeBlanks"-></A-><B->normalizeBlanks</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-Util.html#normalizeBlanks"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->replace all whitespace chars by blanks-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AescapeURI"-></A-><B->escapeURI</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-Util.html#escapeURI"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AtextEscapeXml"-></A-><B->textEscapeXml</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-Util.html#textEscapeXml"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->escape XML chars &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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AstringEscapeXml"-></A-><B->stringEscapeXml</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-Util.html#stringEscapeXml"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->escape XML chars &lt;, &gt;, &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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AattrEscapeXml"-></A-><B->attrEscapeXml</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-Util.html#attrEscapeXml"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AstringToInt"-></A-><B->stringToInt</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-Util.html#stringToInt"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AstringToHexString"-></A-><B->stringToHexString</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-Util.html#stringToHexString"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AcharToHexString"-></A-><B->charToHexString</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-Util.html#charToHexString"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AintToHexString"-></A-><B->intToHexString</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-Util.html#intToHexString"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AhexStringToInt"-></A-><B->hexStringToInt</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-Util.html#hexStringToInt"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AdecimalStringToInt"-></A-><B->decimalStringToInt</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-Util.html#decimalStringToInt"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Adoubles"-></A-><B->doubles</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Eq.html#t%3AEq"->Eq</A-> a => [a] -> [a]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-Util.html#doubles"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Asingles"-></A-><B->singles</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Eq.html#t%3AEq"->Eq</A-> a => [a] -> [a]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-Util.html#singles"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AnoDoubles"-></A-><B->noDoubles</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Eq.html#t%3AEq"->Eq</A-> a => [a] -> [a]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-Util.html#noDoubles"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->remove duplicates from list-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Aswap"-></A-><B->swap</B-> :: (a, b) -> (b, a)</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-Util.html#swap"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3ApartitionEither"-></A-><B->partitionEither</B-> :: [<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Either.html#t%3AEither"->Either</A-> a b] -> ([a], [b])</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-Util.html#partitionEither"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AtoMaybe"-></A-><B->toMaybe</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-> -> a -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-Util.html#toMaybe"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Auncurry3"-></A-><B->uncurry3</B-> :: (a -> b -> c -> d) -> (a, b, c) -> d</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-Util.html#uncurry3"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->mothers little helpers for to much curry-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Auncurry4"-></A-><B->uncurry4</B-> :: (a -> b -> c -> d -> e) -> (a, b, c, d) -> e</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-Util.html#uncurry4"->Source</A-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-DOM-XmlKeywords.html
@@ -1,569 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html"->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 CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"->Constants for XML keywords, for special attribute names- and special attribute values-</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_root"->t_root</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Aa_default"->a_default</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Av_1"->v_1</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Ak_cdata"->k_cdata</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AtransferProtocol"->transferProtocol</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AhttpPrefix"->httpPrefix</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AstringProtocol"->stringProtocol</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Aiso8859_1"->iso8859_1</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxmlNamespace"->xmlNamespace</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxmlnsNamespace"->xmlnsNamespace</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3ArelaxNamespace"->relaxNamespace</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></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-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3At_root"-></A-><B->t_root</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#t_root"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Aa_default"-></A-><B->a_default</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#a_default"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Av_1"-></A-><B->v_1</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#v_1"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Ak_cdata"-></A-><B->k_cdata</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#k_cdata"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AtransferProtocol"-></A-><B->transferProtocol</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#transferProtocol"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AhttpPrefix"-></A-><B->httpPrefix</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#httpPrefix"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AstringProtocol"-></A-><B->stringProtocol</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#stringProtocol"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Aiso8859_1"-></A-><B->iso8859_1</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#iso8859_1"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxmlNamespace"-></A-><B->xmlNamespace</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#xmlNamespace"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->the predefined namespace uri for xml: "http://www.w3.org/XML/1998/namespace"-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxmlnsNamespace"-></A-><B->xmlnsNamespace</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#xmlnsNamespace"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->the predefined namespace uri for xmlns: "http://www.w3.org/2000/xmlns/"-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3ArelaxNamespace"-></A-><B->relaxNamespace</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#relaxNamespace"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Relax NG namespace-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Aa_do_not_check_restrictions"-></A-><B->a_do_not_check_restrictions</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlKeywords.html#a_do_not_check_restrictions"->Source</A-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-DOM-XmlNode.html
@@ -1,1855 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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.XmlNode</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-><SCRIPT SRC="haddock-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-DOM-XmlNode.html"->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.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"->stable</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 CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"-><P->Interface for XmlArrow to basic data types NTree and XmlTree-</P-><P->If this module must be used in code working with arrows,- it should be imported qualified e.g. <TT->as XN</TT->, to prevent name clashes.-</P-><P->For code working on the "node and tree level" this module- is the interface for writing code without using the- constructor functions of <TT-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"->XNode</A-></TT-> and <TT-><A HREF="Data-Tree-NTree-TypeDefs.html#v%3ANTree"->NTree</A-></TT-> directly-</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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->class</SPAN-> <A NAME="t%3AXmlNode"-></A-><B->XmlNode</B-> a <SPAN CLASS="keyword"->where</SPAN-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#XmlNode"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisText"-></A-><B->isText</B-> :: a -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#isText"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisCharRef"-></A-><B->isCharRef</B-> :: a -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#isCharRef"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisEntityRef"-></A-><B->isEntityRef</B-> :: a -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#isEntityRef"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisCmt"-></A-><B->isCmt</B-> :: a -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#isCmt"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisCdata"-></A-><B->isCdata</B-> :: a -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#isCdata"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisPi"-></A-><B->isPi</B-> :: a -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#isPi"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisElem"-></A-><B->isElem</B-> :: a -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#isElem"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisRoot"-></A-><B->isRoot</B-> :: a -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#isRoot"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisDTD"-></A-><B->isDTD</B-> :: a -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#isDTD"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisAttr"-></A-><B->isAttr</B-> :: a -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#isAttr"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisError"-></A-><B->isError</B-> :: a -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#isError"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkText"-></A-><B->mkText</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#mkText"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkCharRef"-></A-><B->mkCharRef</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-> -> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#mkCharRef"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkEntityRef"-></A-><B->mkEntityRef</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#mkEntityRef"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkCmt"-></A-><B->mkCmt</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#mkCmt"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkCdata"-></A-><B->mkCdata</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#mkCdata"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkPi"-></A-><B->mkPi</B-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-> -> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#mkPi"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkError"-></A-><B->mkError</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#mkError"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetText"-></A-><B->getText</B-> :: a -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#getText"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetCharRef"-></A-><B->getCharRef</B-> :: a -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#getCharRef"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetEntityRef"-></A-><B->getEntityRef</B-> :: a -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#getEntityRef"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetCmt"-></A-><B->getCmt</B-> :: a -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#getCmt"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetCdata"-></A-><B->getCdata</B-> :: a -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#getCdata"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetPiName"-></A-><B->getPiName</B-> :: a -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#getPiName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetPiContent"-></A-><B->getPiContent</B-> :: a -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#getPiContent"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetElemName"-></A-><B->getElemName</B-> :: a -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#getElemName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetAttrl"-></A-><B->getAttrl</B-> :: a -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#getAttrl"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetDTDPart"-></A-><B->getDTDPart</B-> :: a -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"->DTDElem</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#getDTDPart"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetDTDAttrl"-></A-><B->getDTDAttrl</B-> :: a -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#getDTDAttrl"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetAttrName"-></A-><B->getAttrName</B-> :: a -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#getAttrName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetErrorLevel"-></A-><B->getErrorLevel</B-> :: a -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#getErrorLevel"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetErrorMsg"-></A-><B->getErrorMsg</B-> :: a -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#getErrorMsg"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetName"-></A-><B->getName</B-> :: a -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#getName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetQualifiedName"-></A-><B->getQualifiedName</B-> :: a -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#getQualifiedName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetUniversalName"-></A-><B->getUniversalName</B-> :: a -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#getUniversalName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetUniversalUri"-></A-><B->getUniversalUri</B-> :: a -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#getUniversalUri"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetLocalPart"-></A-><B->getLocalPart</B-> :: a -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#getLocalPart"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetNamePrefix"-></A-><B->getNamePrefix</B-> :: a -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#getNamePrefix"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetNamespaceUri"-></A-><B->getNamespaceUri</B-> :: a -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#getNamespaceUri"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AchangeText"-></A-><B->changeText</B-> :: (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->) -> a -> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#changeText"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AchangeCmt"-></A-><B->changeCmt</B-> :: (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->) -> a -> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#changeCmt"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AchangeName"-></A-><B->changeName</B-> :: (<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A->) -> a -> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#changeName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AchangeElemName"-></A-><B->changeElemName</B-> :: (<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A->) -> a -> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#changeElemName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AchangeAttrl"-></A-><B->changeAttrl</B-> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A->) -> a -> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#changeAttrl"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AchangeAttrName"-></A-><B->changeAttrName</B-> :: (<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A->) -> a -> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#changeAttrName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AchangePiName"-></A-><B->changePiName</B-> :: (<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A->) -> a -> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#changePiName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AchangeDTDAttrl"-></A-><B->changeDTDAttrl</B-> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</A->) -> a -> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#changeDTDAttrl"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AsetText"-></A-><B->setText</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> a -> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#setText"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AsetCmt"-></A-><B->setCmt</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> a -> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#setCmt"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AsetName"-></A-><B->setName</B-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> a -> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#setName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AsetElemName"-></A-><B->setElemName</B-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> a -> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#setElemName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AsetElemAttrl"-></A-><B->setElemAttrl</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-> -> a -> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#setElemAttrl"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AsetAttrName"-></A-><B->setAttrName</B-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> a -> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#setAttrName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AsetPiName"-></A-><B->setPiName</B-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> a -> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#setPiName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AsetDTDAttrl"-></A-><B->setDTDAttrl</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</A-> -> a -> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#setDTDAttrl"->Source</A-></TD-></TR-></TABLE-></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-DOM-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-DOM-XmlNode.html#t%3AXmlNode"->XmlNode</A-> a => <A HREF="Text-XML-HXT-DOM-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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkElementNode"-></A-><B->mkElementNode</B-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"->XNode</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#mkElementNode"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkAttrNode"-></A-><B->mkAttrNode</B-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"->XNode</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#mkAttrNode"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkDTDNode"-></A-><B->mkDTDNode</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-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"->XNode</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#mkDTDNode"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkElement"-></A-><B->mkElement</B-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-> -> <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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#mkElement"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkRoot"-></A-><B->mkRoot</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-> -> <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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#mkRoot"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkAttr"-></A-><B->mkAttr</B-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#mkAttr"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkDTDElem"-></A-><B->mkDTDElem</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-> -> <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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#mkDTDElem"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AaddAttr"-></A-><B->addAttr</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#addAttr"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmergeAttrl"-></A-><B->mergeAttrl</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlNode.html#mergeAttrl"->Source</A-></TD-></TR-></TABLE-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-DOM-XmlOptions.html
@@ -1,725 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-DOM-XmlOptions.html"->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 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-> :: [<A HREF="/usr/local/share/doc/ghc/libraries/base/System-Console-GetOpt.html#t%3AOptDescr"->OptDescr</A-> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->, <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->)]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3ArelaxOptions"->relaxOptions</A-> :: [<A HREF="/usr/local/share/doc/ghc/libraries/base/System-Console-GetOpt.html#t%3AOptDescr"->OptDescr</A-> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->, <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->)]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AoutputOptions"->outputOptions</A-> :: [<A HREF="/usr/local/share/doc/ghc/libraries/base/System-Console-GetOpt.html#t%3AOptDescr"->OptDescr</A-> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->, <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->)]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AgeneralOptions"->generalOptions</A-> :: [<A HREF="/usr/local/share/doc/ghc/libraries/base/System-Console-GetOpt.html#t%3AOptDescr"->OptDescr</A-> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->, <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->)]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AversionOptions"->versionOptions</A-> :: [<A HREF="/usr/local/share/doc/ghc/libraries/base/System-Console-GetOpt.html#t%3AOptDescr"->OptDescr</A-> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->, <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->)]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AshowOptions"->showOptions</A-> :: [<A HREF="/usr/local/share/doc/ghc/libraries/base/System-Console-GetOpt.html#t%3AOptDescr"->OptDescr</A-> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->, <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->)]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AselectOptions"->selectOptions</A-> :: [<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->] -> [<A HREF="/usr/local/share/doc/ghc/libraries/base/System-Console-GetOpt.html#t%3AOptDescr"->OptDescr</A-> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->, <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->)] -> [<A HREF="/usr/local/share/doc/ghc/libraries/base/System-Console-GetOpt.html#t%3AOptDescr"->OptDescr</A-> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->, <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->)]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AremoveOptions"->removeOptions</A-> :: [<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->] -> [<A HREF="/usr/local/share/doc/ghc/libraries/base/System-Console-GetOpt.html#t%3AOptDescr"->OptDescr</A-> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->, <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->)] -> [<A HREF="/usr/local/share/doc/ghc/libraries/base/System-Console-GetOpt.html#t%3AOptDescr"->OptDescr</A-> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->, <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->)]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AoptionIsSet"->optionIsSet</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AisTrueValue"->isTrueValue</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AinputOptions"-></A-><B->inputOptions</B-> :: [<A HREF="/usr/local/share/doc/ghc/libraries/base/System-Console-GetOpt.html#t%3AOptDescr"->OptDescr</A-> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->, <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->)]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlOptions.html#inputOptions"->Source</A-></TD-></TR-></TABLE-></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_trace</TT->, <TT->a_proxy</TT->, <TT->a_use_curl</TT->, <TT->a_do_not_use_curl</TT->, <TT->a_options_curl</TT->, <TT->a_encoding</TT->,- <TT->a_issue_errors</TT->, <TT->a_do_not_issue_errors</TT->, <TT->a_parse_html</TT->, <TT->a_parse_by_mimetype</TT->, <TT->a_tagsoup</TT-> <TT->a_issue_warnings</TT->, <TT->a_do_not_issue_warnings</TT->,- <TT->a_parse_xml</TT->, <TT->a_validate</TT->, <TT->a_do_not_validate</TT->, <TT->a_canonicalize</TT->, <TT->a_do_not_canonicalize</TT->,-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3ArelaxOptions"-></A-><B->relaxOptions</B-> :: [<A HREF="/usr/local/share/doc/ghc/libraries/base/System-Console-GetOpt.html#t%3AOptDescr"->OptDescr</A-> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->, <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->)]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlOptions.html#relaxOptions"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->available Relax NG validation options-</P-><P->defines options- <TT->a_check_restrictions</TT->, <TT->a_validate_externalRef</TT->, <TT->a_validate_include</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_do_not_validate_externalRef</TT->, <TT->a_do_not_validate_include</TT->-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AoutputOptions"-></A-><B->outputOptions</B-> :: [<A HREF="/usr/local/share/doc/ghc/libraries/base/System-Console-GetOpt.html#t%3AOptDescr"->OptDescr</A-> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->, <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->)]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlOptions.html#outputOptions"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->commonly useful options for XML output-</P-><P->defines options: <TT->a_indent</TT->, <TT->a_output_encoding</TT->, <TT->a_output_file</TT->, <TT->a_output_html</TT->-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgeneralOptions"-></A-><B->generalOptions</B-> :: [<A HREF="/usr/local/share/doc/ghc/libraries/base/System-Console-GetOpt.html#t%3AOptDescr"->OptDescr</A-> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->, <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->)]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlOptions.html#generalOptions"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->commonly useful options-</P-><P->defines options: <TT->a_verbose</TT->, <TT->a_help</TT->-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AversionOptions"-></A-><B->versionOptions</B-> :: [<A HREF="/usr/local/share/doc/ghc/libraries/base/System-Console-GetOpt.html#t%3AOptDescr"->OptDescr</A-> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->, <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->)]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlOptions.html#versionOptions"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->defines <TT->a_version</TT-> option-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AshowOptions"-></A-><B->showOptions</B-> :: [<A HREF="/usr/local/share/doc/ghc/libraries/base/System-Console-GetOpt.html#t%3AOptDescr"->OptDescr</A-> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->, <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->)]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlOptions.html#showOptions"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->debug output options-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AselectOptions"-></A-><B->selectOptions</B-> :: [<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->] -> [<A HREF="/usr/local/share/doc/ghc/libraries/base/System-Console-GetOpt.html#t%3AOptDescr"->OptDescr</A-> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->, <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->)] -> [<A HREF="/usr/local/share/doc/ghc/libraries/base/System-Console-GetOpt.html#t%3AOptDescr"->OptDescr</A-> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->, <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->)]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlOptions.html#selectOptions"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AremoveOptions"-></A-><B->removeOptions</B-> :: [<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->] -> [<A HREF="/usr/local/share/doc/ghc/libraries/base/System-Console-GetOpt.html#t%3AOptDescr"->OptDescr</A-> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->, <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->)] -> [<A HREF="/usr/local/share/doc/ghc/libraries/base/System-Console-GetOpt.html#t%3AOptDescr"->OptDescr</A-> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->, <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->)]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlOptions.html#removeOptions"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AoptionIsSet"-></A-><B->optionIsSet</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlOptions.html#optionIsSet"->Source</A-></TD-></TR-></TABLE-></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: "1", "True", "true", "yes", "Yes".-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisTrueValue"-></A-><B->isTrueValue</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlOptions.html#isTrueValue"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->check whether a string represents True-</P-><P->definition:-</P-><PRE-> isTrueValue = (`elem` ["1", "True", "true", "Yes", "yes"])-</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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-DTDValidation-AttributeValueValidation.html
@@ -1,267 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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.DTDValidation.AttributeValueValidation</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-><SCRIPT SRC="haddock-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-DTDValidation-AttributeValueValidation.html"->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.DTDValidation.AttributeValueValidation</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 CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"-><P->This module provides functions for validating attributes.-</P-><P->The main functions are:-</P-><UL-><LI-> Check if the attribute value meets the lexical constraints of its type-</LI-><LI-> Normalization of an attribute value-</LI-></UL-></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-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#t%3AXmlArrow"->XmlArrow</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AnormalizeAttributeValue"->normalizeAttributeValue</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AcheckAttributeValue"-></A-><B->checkAttributeValue</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#t%3AXmlArrow"->XmlArrow</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DTDValidation-AttributeValueValidation.html#checkAttributeValue"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AnormalizeAttributeValue"-></A-><B->normalizeAttributeValue</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DTDValidation-AttributeValueValidation.html#normalizeAttributeValue"->Source</A-></TD-></TR-></TABLE-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-DTDValidation-DTDValidation.html
@@ -1,244 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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.DTDValidation.DTDValidation</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-><SCRIPT SRC="haddock-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-DTDValidation-DTDValidation.html"->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.DTDValidation.DTDValidation</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 CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"-><P->This module provides functions for validating the DTD of XML documents- represented as XmlTree.-</P-><P->Unlike other popular XML validation tools the validation process returns- a list of errors instead of aborting after the first error was found.-</P-><P->Unlike validation of the document, the DTD branch is traversed four times:-</P-><UL-><LI-> Validation of Notations-</LI-><LI-> Validation of Unparsed Entities-</LI-><LI-> Validation of Element declarations-</LI-><LI-> Validation of Attribute declarations-</LI-></UL-></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-DTDValidation-TypeDefs.html#t%3AXmlArrow"->XmlArrow</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AvalidateDTD"->validateDTD</A-> :: <A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#t%3AXmlArrow"->XmlArrow</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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AremoveDoublicateDefs"-></A-><B->removeDoublicateDefs</B-> :: <A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#t%3AXmlArrow"->XmlArrow</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DTDValidation-DTDValidation.html#removeDoublicateDefs"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AvalidateDTD"-></A-><B->validateDTD</B-> :: <A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#t%3AXmlArrow"->XmlArrow</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DTDValidation-DTDValidation.html#validateDTD"->Source</A-></TD-></TR-></TABLE-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-DTDValidation-DocTransformation.html
@@ -1,207 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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.DTDValidation.DocTransformation</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-><SCRIPT SRC="haddock-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-DTDValidation-DocTransformation.html"->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.DTDValidation.DocTransformation</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 CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"-><P->This module provides functions for transforming XML documents represented as- XmlTree with respect to its DTD.-</P-><P->Transforming an XML document with respect to its DTD means:-</P-><UL-><LI-> add all attributes with default values-</LI-><LI-> normalize all attribute values-</LI-><LI-> sort all attributes in lexical order-</LI-></UL-><P->Note: Transformation should be started after validation.-</P-><P->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.-</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%3Atransform"->transform</A-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#t%3AXmlArrow"->XmlArrow</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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Atransform"-></A-><B->transform</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#t%3AXmlArrow"->XmlArrow</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DTDValidation-DocTransformation.html#transform"->Source</A-></TD-></TR-></TABLE-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-DTDValidation-DocValidation.html
@@ -1,194 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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.DTDValidation.DocValidation</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-><SCRIPT SRC="haddock-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-DTDValidation-DocValidation.html"->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.DTDValidation.DocValidation</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 CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"-><P->This module provides functions for validating XML Documents represented as- XmlTree.-</P-><P->Unlike other popular XML validation tools the validation process returns- a list of errors instead of aborting after the first error was found.-</P-><P->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.-</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%3AvalidateDoc"->validateDoc</A-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#t%3AXmlArrow"->XmlArrow</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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AvalidateDoc"-></A-><B->validateDoc</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#t%3AXmlArrow"->XmlArrow</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DTDValidation-DocValidation.html#validateDoc"->Source</A-></TD-></TR-></TABLE-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-DTDValidation-IdValidation.html
@@ -1,207 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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.DTDValidation.IdValidation</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-><SCRIPT SRC="haddock-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-DTDValidation-IdValidation.html"->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.DTDValidation.IdValidation</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 CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"-><P->This module provides functions for checking special ID<EM->IDREF</EM->IDREFS constraints.-</P-><P->Checking special ID/IDREF/IDREFS constraints means:-</P-><UL-><LI-> checking that all ID values are unique.-</LI-><LI-> checking that all IDREF/IDREFS values match the value of some ID attribute-</LI-></UL-><P->ID-Validation should be started before or after validating the document.-</P-><P->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.-</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%3AvalidateIds"->validateIds</A-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#t%3AXmlArrow"->XmlArrow</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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AvalidateIds"-></A-><B->validateIds</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#t%3AXmlArrow"->XmlArrow</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DTDValidation-IdValidation.html#validateIds"->Source</A-></TD-></TR-></TABLE-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-DTDValidation-RE.html
@@ -1,1174 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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.DTDValidation.RE</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-><SCRIPT SRC="haddock-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-DTDValidation-RE.html"->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.DTDValidation.RE</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 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-></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-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></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-DTDValidation-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-DTDValidation-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-DTDValidation-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-DTDValidation-RE.html#t%3ARE"->RE</A-> a) (<A HREF="Text-XML-HXT-DTDValidation-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-DTDValidation-RE.html#t%3ARE"->RE</A-> a) (<A HREF="Text-XML-HXT-DTDValidation-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-DTDValidation-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-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DTDValidation-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 -> <A HREF="Text-XML-HXT-DTDValidation-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-DTDValidation-RE.html#t%3ARE"->RE</A-> a -> <A HREF="Text-XML-HXT-DTDValidation-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-DTDValidation-RE.html#t%3ARE"->RE</A-> a -> <A HREF="Text-XML-HXT-DTDValidation-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-DTDValidation-RE.html#t%3ARE"->RE</A-> a -> <A HREF="Text-XML-HXT-DTDValidation-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-DTDValidation-RE.html#t%3ARE"->RE</A-> a -> <A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"->RE</A-> a -> <A HREF="Text-XML-HXT-DTDValidation-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-DTDValidation-RE.html#t%3ARE"->RE</A-> a -> <A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"->RE</A-> a -> <A HREF="Text-XML-HXT-DTDValidation-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-DTDValidation-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-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Show.html#t%3AShow"->Show</A-> a => <A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"->RE</A-> a -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Amatches"->matches</A-> :: (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Eq.html#t%3AEq"->Eq</A-> a, <A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Show.html#t%3AShow"->Show</A-> a) => <A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"->RE</A-> a -> [a] -> <A HREF="Text-XML-HXT-DTDValidation-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-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Show.html#t%3AShow"->Show</A-> a => <A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"->RE</A-> a -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AprintRE"->printRE</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Show.html#t%3AShow"->Show</A-> a => <A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"->RE</A-> a -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->data</SPAN-> <A NAME="t%3ARE"-></A-><B->RE</B-> a </TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DTDValidation-RE.html#RE"->Source</A-></TD-></TR-></TABLE-></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-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></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-DTDValidation-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-DTDValidation-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-DTDValidation-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-DTDValidation-RE.html#t%3ARE"->RE</A-> a) (<A HREF="Text-XML-HXT-DTDValidation-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-DTDValidation-RE.html#t%3ARE"->RE</A-> a) (<A HREF="Text-XML-HXT-DTDValidation-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"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Eq.html#t%3AEq"->Eq</A-> a => <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Eq.html#t%3AEq"->Eq</A-> (<A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"->RE</A-> a)</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Show.html#t%3AShow"->Show</A-> a => <A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Show.html#t%3AShow"->Show</A-> (<A HREF="Text-XML-HXT-DTDValidation-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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Are_unit"-></A-><B->re_unit</B-> :: <A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"->RE</A-> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DTDValidation-RE.html#re_unit"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Are_zero"-></A-><B->re_zero</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"->RE</A-> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DTDValidation-RE.html#re_zero"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Are_sym"-></A-><B->re_sym</B-> :: a -> <A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"->RE</A-> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DTDValidation-RE.html#re_sym"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Are_rep"-></A-><B->re_rep</B-> :: <A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"->RE</A-> a -> <A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"->RE</A-> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DTDValidation-RE.html#re_rep"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Are_plus"-></A-><B->re_plus</B-> :: <A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"->RE</A-> a -> <A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"->RE</A-> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DTDValidation-RE.html#re_plus"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Are_opt"-></A-><B->re_opt</B-> :: <A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"->RE</A-> a -> <A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"->RE</A-> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DTDValidation-RE.html#re_opt"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Are_seq"-></A-><B->re_seq</B-> :: <A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"->RE</A-> a -> <A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"->RE</A-> a -> <A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"->RE</A-> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DTDValidation-RE.html#re_seq"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Are_alt"-></A-><B->re_alt</B-> :: <A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"->RE</A-> a -> <A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"->RE</A-> a -> <A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"->RE</A-> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DTDValidation-RE.html#re_alt"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Are_dot"-></A-><B->re_dot</B-> :: <A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"->RE</A-> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DTDValidation-RE.html#re_dot"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AcheckRE"-></A-><B->checkRE</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Show.html#t%3AShow"->Show</A-> a => <A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"->RE</A-> a -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DTDValidation-RE.html#checkRE"->Source</A-></TD-></TR-></TABLE-></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?- -> 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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Amatches"-></A-><B->matches</B-> :: (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Eq.html#t%3AEq"->Eq</A-> a, <A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Show.html#t%3AShow"->Show</A-> a) => <A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"->RE</A-> a -> [a] -> <A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"->RE</A-> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DTDValidation-RE.html#matches"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Anullable"-></A-><B->nullable</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Show.html#t%3AShow"->Show</A-> a => <A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"->RE</A-> a -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DTDValidation-RE.html#nullable"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AprintRE"-></A-><B->printRE</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Show.html#t%3AShow"->Show</A-> a => <A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"->RE</A-> a -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DTDValidation-RE.html#printRE"->Source</A-></TD-></TR-></TABLE-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-DTDValidation-TypeDefs.html
@@ -1,1528 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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.DTDValidation.TypeDefs</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-><SCRIPT SRC="haddock-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-DTDValidation-TypeDefs.html"->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.DTDValidation.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 CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"->This module provides all datatypes for DTD validation-</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%3AXmlArrow"->XmlArrow</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-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><SPAN CLASS="keyword"->type</SPAN-> <A HREF="#t%3AXmlArrowS"->XmlArrowS</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-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Adtd_value"->dtd_value</A-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AisUnparsedEntity"->isUnparsedEntity</A-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"->ArrowDTD</A-> 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="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AhasDTDAttrValue"->hasDTDAttrValue</A-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"->ArrowDTD</A-> a => <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</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="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AisRequiredAttrKind"->isRequiredAttrKind</A-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"->ArrowDTD</A-> 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="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AisDefaultAttrKind"->isDefaultAttrKind</A-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"->ArrowDTD</A-> 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="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AisFixedAttrKind"->isFixedAttrKind</A-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"->ArrowDTD</A-> 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="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AisMixedContentElement"->isMixedContentElement</A-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"->ArrowDTD</A-> 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="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AisEmptyElement"->isEmptyElement</A-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"->ArrowDTD</A-> 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="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AisEnumAttrType"->isEnumAttrType</A-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"->ArrowDTD</A-> 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="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AisIdAttrType"->isIdAttrType</A-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"->ArrowDTD</A-> 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="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AisIdRefAttrType"->isIdRefAttrType</A-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"->ArrowDTD</A-> 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="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AisNotationAttrType"->isNotationAttrType</A-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"->ArrowDTD</A-> 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="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AisAttlistOfElement"->isAttlistOfElement</A-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"->ArrowDTD</A-> a => <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AvalueOfDTD"->valueOfDTD</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AvalueOf"->valueOf</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AgetDTDAttributes"->getDTDAttributes</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="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AisDTDDoctypeNode"->isDTDDoctypeNode</A-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AisDTDElementNode"->isDTDElementNode</A-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AisDTDAttlistNode"->isDTDAttlistNode</A-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AisDTDContentNode"->isDTDContentNode</A-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AisDTDNameNode"->isDTDNameNode</A-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AisElemNode"->isElemNode</A-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AnameOfAttr"->nameOfAttr</A-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AnameOfElem"->nameOfElem</A-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3A%24%24"->($$)</A-> :: <A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#t%3AXmlArrow"->XmlArrow</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-> -> <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%3AmsgToErr"->msgToErr</A-> :: (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->) -> <A HREF="Control-Arrow-ListArrow.html#t%3ALA"->LA</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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"->module <A HREF="Text-XML-HXT-DOM-Interface.html"->Text.XML.HXT.DOM.Interface</A-></TD-></TR-><TR-><TD CLASS="s8"-></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="s8"-></TD-></TR-><TR-><TD CLASS="decl"->module <A HREF="Control-Arrow-ArrowList.html"->Control.Arrow.ArrowList</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"->module <A HREF="Control-Arrow-ArrowIf.html"->Control.Arrow.ArrowIf</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"->module <A HREF="Control-Arrow-ArrowState.html"->Control.Arrow.ArrowState</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"->module <A HREF="Control-Arrow-ArrowTree.html"->Control.Arrow.ArrowTree</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"->module <A HREF="Control-Arrow-ListArrow.html"->Control.Arrow.ListArrow</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"->module <A HREF="Control-Arrow-StateListArrow.html"->Control.Arrow.StateListArrow</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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->type</SPAN-> <A NAME="t%3AXmlArrow"-></A-><B->XmlArrow</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-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DTDValidation-TypeDefs.html#XmlArrow"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->type</SPAN-> <A NAME="t%3AXmlArrowS"-></A-><B->XmlArrowS</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-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DTDValidation-TypeDefs.html#XmlArrowS"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Adtd_value"-></A-><B->dtd_value</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DTDValidation-TypeDefs.html#dtd_value"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisUnparsedEntity"-></A-><B->isUnparsedEntity</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"->ArrowDTD</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DTDValidation-TypeDefs.html#isUnparsedEntity"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AhasDTDAttrValue"-></A-><B->hasDTDAttrValue</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"->ArrowDTD</A-> a => <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DTDValidation-TypeDefs.html#hasDTDAttrValue"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisRequiredAttrKind"-></A-><B->isRequiredAttrKind</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"->ArrowDTD</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DTDValidation-TypeDefs.html#isRequiredAttrKind"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisDefaultAttrKind"-></A-><B->isDefaultAttrKind</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"->ArrowDTD</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DTDValidation-TypeDefs.html#isDefaultAttrKind"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisFixedAttrKind"-></A-><B->isFixedAttrKind</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"->ArrowDTD</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DTDValidation-TypeDefs.html#isFixedAttrKind"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisMixedContentElement"-></A-><B->isMixedContentElement</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"->ArrowDTD</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DTDValidation-TypeDefs.html#isMixedContentElement"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisEmptyElement"-></A-><B->isEmptyElement</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"->ArrowDTD</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DTDValidation-TypeDefs.html#isEmptyElement"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisEnumAttrType"-></A-><B->isEnumAttrType</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"->ArrowDTD</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DTDValidation-TypeDefs.html#isEnumAttrType"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisIdAttrType"-></A-><B->isIdAttrType</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"->ArrowDTD</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DTDValidation-TypeDefs.html#isIdAttrType"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisIdRefAttrType"-></A-><B->isIdRefAttrType</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"->ArrowDTD</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DTDValidation-TypeDefs.html#isIdRefAttrType"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisNotationAttrType"-></A-><B->isNotationAttrType</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"->ArrowDTD</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DTDValidation-TypeDefs.html#isNotationAttrType"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisAttlistOfElement"-></A-><B->isAttlistOfElement</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowDTD"->ArrowDTD</A-> a => <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DTDValidation-TypeDefs.html#isAttlistOfElement"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AvalueOfDTD"-></A-><B->valueOfDTD</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DTDValidation-TypeDefs.html#valueOfDTD"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AvalueOf"-></A-><B->valueOf</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DTDValidation-TypeDefs.html#valueOf"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetDTDAttributes"-></A-><B->getDTDAttributes</B-> :: <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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DTDValidation-TypeDefs.html#getDTDAttributes"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisDTDDoctypeNode"-></A-><B->isDTDDoctypeNode</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DTDValidation-TypeDefs.html#isDTDDoctypeNode"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisDTDElementNode"-></A-><B->isDTDElementNode</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DTDValidation-TypeDefs.html#isDTDElementNode"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisDTDAttlistNode"-></A-><B->isDTDAttlistNode</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DTDValidation-TypeDefs.html#isDTDAttlistNode"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisDTDContentNode"-></A-><B->isDTDContentNode</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DTDValidation-TypeDefs.html#isDTDContentNode"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisDTDNameNode"-></A-><B->isDTDNameNode</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DTDValidation-TypeDefs.html#isDTDNameNode"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisElemNode"-></A-><B->isElemNode</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DTDValidation-TypeDefs.html#isElemNode"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AnameOfAttr"-></A-><B->nameOfAttr</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DTDValidation-TypeDefs.html#nameOfAttr"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AnameOfElem"-></A-><B->nameOfElem</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DTDValidation-TypeDefs.html#nameOfElem"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3A%24%24"-></A-><B->($$)</B-> :: <A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#t%3AXmlArrow"->XmlArrow</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DTDValidation-TypeDefs.html#%24%24"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->infix operator for applying an arrow to a list of trees-</P-><UL-><LI-> 1.parameter f : the arrow-</LI-><LI-> 2.parameter ts : the list of trees-</LI-><LI-> returns : list of results-</LI-></UL-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmsgToErr"-></A-><B->msgToErr</B-> :: (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->) -> <A HREF="Control-Arrow-ListArrow.html#t%3ALA"->LA</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DTDValidation-TypeDefs.html#msgToErr"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->create an error message-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="decl"->module <A HREF="Text-XML-HXT-DOM-Interface.html"->Text.XML.HXT.DOM.Interface</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="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-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="botbar"->Produced by <A HREF="http://www.haskell.org/haddock/"->Haddock</A-> version 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-DTDValidation-Validation.html
@@ -1,425 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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.DTDValidation.Validation</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-><SCRIPT SRC="haddock-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-DTDValidation-Validation.html"->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.DTDValidation.Validation</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 CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"-><P->This module provides functions for validating XML documents represented as- XmlTree.-</P-><P->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->Note: The validation process has been split into validation and transformation!- If <TT->validate</TT-> did not report any errors, <TT->transform</TT->- should be called, to change the document the way a validating parser- is expected to do.-</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%3AgetDTDSubset"->getDTDSubset</A-> :: <A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#t%3AXmlArrow"->XmlArrow</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Avalidate"->validate</A-> :: <A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#t%3AXmlArrow"->XmlArrow</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AvalidateDTD"->validateDTD</A-> :: <A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#t%3AXmlArrow"->XmlArrow</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AvalidateDoc"->validateDoc</A-> :: <A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#t%3AXmlArrow"->XmlArrow</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AremoveDoublicateDefs"->removeDoublicateDefs</A-> :: <A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#t%3AXmlArrow"->XmlArrow</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Atransform"->transform</A-> :: <A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#t%3AXmlArrow"->XmlArrow</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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetDTDSubset"-></A-><B->getDTDSubset</B-> :: <A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#t%3AXmlArrow"->XmlArrow</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DTDValidation-Validation.html#getDTDSubset"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Avalidate"-></A-><B->validate</B-> :: <A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#t%3AXmlArrow"->XmlArrow</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DTDValidation-Validation.html#validate"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AvalidateDTD"-></A-><B->validateDTD</B-> :: <A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#t%3AXmlArrow"->XmlArrow</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DTDValidation-Validation.html#validateDTD"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AvalidateDoc"-></A-><B->validateDoc</B-> :: <A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#t%3AXmlArrow"->XmlArrow</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DTDValidation-Validation.html#validateDoc"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AremoveDoublicateDefs"-></A-><B->removeDoublicateDefs</B-> :: <A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#t%3AXmlArrow"->XmlArrow</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DTDValidation-Validation.html#removeDoublicateDefs"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Atransform"-></A-><B->transform</B-> :: <A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#t%3AXmlArrow"->XmlArrow</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DTDValidation-Validation.html#transform"->Source</A-></TD-></TR-></TABLE-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-DTDValidation-XmlRE.html
@@ -1,893 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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.DTDValidation.XmlRE</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-><SCRIPT SRC="haddock-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-DTDValidation-XmlRE.html"->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.DTDValidation.XmlRE</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 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-></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-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Show.html#t%3AShow"->Show</A-> a => <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"->RE</A-> a -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Amatches"->matches</A-> :: <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"->RE</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-> -> <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"->RE</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AprintRE"->printRE</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Show.html#t%3AShow"->Show</A-> a => <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"->RE</A-> a -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></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-DTDValidation-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-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DTDValidation-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 -> <A HREF="Text-XML-HXT-DTDValidation-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-DTDValidation-XmlRE.html#t%3ARE"->RE</A-> a -> <A HREF="Text-XML-HXT-DTDValidation-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-DTDValidation-XmlRE.html#t%3ARE"->RE</A-> a -> <A HREF="Text-XML-HXT-DTDValidation-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-DTDValidation-XmlRE.html#t%3ARE"->RE</A-> a -> <A HREF="Text-XML-HXT-DTDValidation-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-DTDValidation-XmlRE.html#t%3ARE"->RE</A-> a -> <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"->RE</A-> a -> <A HREF="Text-XML-HXT-DTDValidation-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-DTDValidation-XmlRE.html#t%3ARE"->RE</A-> a -> <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"->RE</A-> a -> <A HREF="Text-XML-HXT-DTDValidation-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-DTDValidation-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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->data</SPAN-> <A NAME="t%3ARE"-></A-><B->RE</B-> a </TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DTDValidation-RE.html#RE"->Source</A-></TD-></TR-></TABLE-></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"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Eq.html#t%3AEq"->Eq</A-> a => <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Eq.html#t%3AEq"->Eq</A-> (<A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"->RE</A-> a)</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Show.html#t%3AShow"->Show</A-> a => <A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Show.html#t%3AShow"->Show</A-> (<A HREF="Text-XML-HXT-DTDValidation-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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AcheckRE"-></A-><B->checkRE</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Show.html#t%3AShow"->Show</A-> a => <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"->RE</A-> a -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DTDValidation-RE.html#checkRE"->Source</A-></TD-></TR-></TABLE-></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?- -> 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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Amatches"-></A-><B->matches</B-> :: <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"->RE</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-> -> <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"->RE</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DTDValidation-XmlRE.html#matches"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AprintRE"-></A-><B->printRE</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Show.html#t%3AShow"->Show</A-> a => <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"->RE</A-> a -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DTDValidation-RE.html#printRE"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Are_unit"-></A-><B->re_unit</B-> :: <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"->RE</A-> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DTDValidation-RE.html#re_unit"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Are_zero"-></A-><B->re_zero</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"->RE</A-> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DTDValidation-RE.html#re_zero"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Are_sym"-></A-><B->re_sym</B-> :: a -> <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"->RE</A-> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DTDValidation-RE.html#re_sym"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Are_rep"-></A-><B->re_rep</B-> :: <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"->RE</A-> a -> <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"->RE</A-> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DTDValidation-RE.html#re_rep"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Are_plus"-></A-><B->re_plus</B-> :: <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"->RE</A-> a -> <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"->RE</A-> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DTDValidation-RE.html#re_plus"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Are_opt"-></A-><B->re_opt</B-> :: <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"->RE</A-> a -> <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"->RE</A-> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DTDValidation-RE.html#re_opt"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Are_seq"-></A-><B->re_seq</B-> :: <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"->RE</A-> a -> <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"->RE</A-> a -> <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"->RE</A-> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DTDValidation-RE.html#re_seq"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Are_alt"-></A-><B->re_alt</B-> :: <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"->RE</A-> a -> <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"->RE</A-> a -> <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"->RE</A-> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DTDValidation-RE.html#re_alt"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Are_dot"-></A-><B->re_dot</B-> :: <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"->RE</A-> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DTDValidation-RE.html#re_dot"->Source</A-></TD-></TR-></TABLE-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-IO-GetFILE.html
@@ -1,177 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-IO-GetFILE.html"->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-><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"->stable</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 CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"->The GET method for file protocol-</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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetStdinCont"-></A-><B->getStdinCont</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/System-IO.html#t%3AIO"->IO</A-> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Either.html#t%3AEither"->Either</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->)</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-IO-GetFILE.html#getStdinCont"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetCont"-></A-><B->getCont</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/System-IO.html#t%3AIO"->IO</A-> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Either.html#t%3AEither"->Either</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->)</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-IO-GetFILE.html#getCont"->Source</A-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-IO-GetHTTPLibCurl.html
@@ -1,120 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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.GetHTTPLibCurl</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-><SCRIPT SRC="haddock-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-IO-GetHTTPLibCurl.html"->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.GetHTTPLibCurl</FONT-></TD-></TR-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetCont"-></A-><B->getCont</B-> :: [(<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->, <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->)] -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/System-IO.html#t%3AIO"->IO</A-> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Either.html#t%3AEither"->Either</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> ([(<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->, <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->)], <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->))</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-IO-GetHTTPLibCurl.html#getCont"->Source</A-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-Parser-HtmlParsec.html
@@ -1,280 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-Parser-HtmlParsec.html"->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-><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"->stable</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 CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"-><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 Text.XML.HXT.Parser.HtmlParser- 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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AparseHtmlText"-></A-><B->parseHtmlText</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-HtmlParsec.html#parseHtmlText"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AparseHtmlDocument"-></A-><B->parseHtmlDocument</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-HtmlParsec.html#parseHtmlDocument"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AparseHtmlContent"-></A-><B->parseHtmlContent</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-HtmlParsec.html#parseHtmlContent"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisEmptyHtmlTag"-></A-><B->isEmptyHtmlTag</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-HtmlParsec.html#isEmptyHtmlTag"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisInnerHtmlTagOf"-></A-><B->isInnerHtmlTagOf</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-HtmlParsec.html#isInnerHtmlTagOf"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AemptyHtmlTags"-></A-><B->emptyHtmlTags</B-> :: [<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-HtmlParsec.html#emptyHtmlTags"->Source</A-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-Parser-ProtocolHandlerUtil.html
@@ -1,108 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-Parser-ProtocolHandlerUtil.html"->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 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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AparseContentType"-></A-><B->parseContentType</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AParser"->Parser</A-> [(<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->, <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->)]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-ProtocolHandlerUtil.html#parseContentType"->Source</A-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-Parser-TagSoup.html
@@ -1,150 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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.TagSoup</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-><SCRIPT SRC="haddock-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-Parser-TagSoup.html"->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.TagSoup</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 CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"->lasy HTML and simpe XML parser implemented with tagsoup- parsing is done with a very simple monadic top down parser-</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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AparseHtmlTagSoup"-></A-><B->parseHtmlTagSoup</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-TagSoup.html#parseHtmlTagSoup"->Source</A-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-Parser-XhtmlEntities.html
@@ -1,152 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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.XhtmlEntities</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-><SCRIPT SRC="haddock-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-Parser-XhtmlEntities.html"->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.XhtmlEntities</FONT-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"-><P->XHTML Entity References-</P-><P->This module defines a table of all- predefined XHTML entity references- for special or none ASCII chars including the- predefined XML entity refs-</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%3AxhtmlEntities"->xhtmlEntities</A-> :: [(<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->, <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxhtmlEntities"-></A-><B->xhtmlEntities</B-> :: [(<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->, <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A->)]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XhtmlEntities.html#xhtmlEntities"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->table with all XHTML entity refs and corresponding unicode values-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="botbar"->Produced by <A HREF="http://www.haskell.org/haddock/"->Haddock</A-> version 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-Parser-XmlCharParser.html
@@ -1,458 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-Parser-XmlCharParser.html"->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 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-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> 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-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> 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-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> 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-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> 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-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> 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-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> 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-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxmlChar"-></A-><B->xmlChar</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"->Unicode</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlCharParser.html#xmlChar"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->parse a single Unicode character-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxmlNameChar"-></A-><B->xmlNameChar</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"->Unicode</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlCharParser.html#xmlNameChar"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->parse a XML name character-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxmlNameStartChar"-></A-><B->xmlNameStartChar</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"->Unicode</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlCharParser.html#xmlNameStartChar"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->parse a XML name start character-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxmlNCNameChar"-></A-><B->xmlNCNameChar</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"->Unicode</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlCharParser.html#xmlNCNameChar"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->parse a XML NCName character-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxmlNCNameStartChar"-></A-><B->xmlNCNameStartChar</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"->Unicode</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlCharParser.html#xmlNCNameStartChar"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->parse a XML NCName start character-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxmlLetter"-></A-><B->xmlLetter</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUnicode"->Unicode</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlCharParser.html#xmlLetter"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->parse a XML letter character-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxmlSpaceChar"-></A-><B->xmlSpaceChar</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlCharParser.html#xmlSpaceChar"->Source</A-></TD-></TR-></TABLE-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-Parser-XmlDTDParser.html
@@ -1,395 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-Parser-XmlDTDParser.html"->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 CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"->Parsec parser for DTD declarations for ELEMENT, ATTLIST, ENTITY and NOTATION declarations-</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-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <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%3AparseXmlDTDdeclPart"->parseXmlDTDdeclPart</A-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <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%3AparseXmlDTDEntityValue"->parseXmlDTDEntityValue</A-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <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%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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AparseXmlDTDdecl"-></A-><B->parseXmlDTDdecl</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlDTDParser.html#parseXmlDTDdecl"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AparseXmlDTDdeclPart"-></A-><B->parseXmlDTDdeclPart</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlDTDParser.html#parseXmlDTDdeclPart"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AparseXmlDTDEntityValue"-></A-><B->parseXmlDTDEntityValue</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlDTDParser.html#parseXmlDTDEntityValue"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AelementDecl"-></A-><B->elementDecl</B-> :: SParser <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlDTDParser.html#elementDecl"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AattlistDecl"-></A-><B->attlistDecl</B-> :: SParser <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlDTDParser.html#attlistDecl"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AentityDecl"-></A-><B->entityDecl</B-> :: SParser <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlDTDParser.html#entityDecl"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AnotationDecl"-></A-><B->notationDecl</B-> :: SParser <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlDTDParser.html#notationDecl"->Source</A-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-Parser-XmlDTDTokenParser.html
@@ -1,342 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-Parser-XmlDTDTokenParser.html"->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 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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AdtdDeclTokenizer"-></A-><B->dtdDeclTokenizer</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlDTDTokenParser.html#dtdDeclTokenizer"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AdtdDeclStart"-></A-><B->dtdDeclStart</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlDTDTokenParser.html#dtdDeclStart"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AdtdDeclEnd"-></A-><B->dtdDeclEnd</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state ()</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlDTDTokenParser.html#dtdDeclEnd"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AdtdToken"-></A-><B->dtdToken</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlDTDTokenParser.html#dtdToken"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3ApeReference"-></A-><B->peReference</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlDTDTokenParser.html#peReference"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AattrValue"-></A-><B->attrValue</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlDTDTokenParser.html#attrValue"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AdtdChars"-></A-><B->dtdChars</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlDTDTokenParser.html#dtdChars"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Apercent"-></A-><B->percent</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlDTDTokenParser.html#percent"->Source</A-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-Parser-XmlEntities.html
@@ -1,150 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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.XmlEntities</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-><SCRIPT SRC="haddock-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-Parser-XmlEntities.html"->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.XmlEntities</FONT-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"-><P->Predefined XML Entity References-</P-><P->This module defines a table of all- predefined XML entity references-</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%3AxmlEntities"->xmlEntities</A-> :: [(<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->, <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxmlEntities"-></A-><B->xmlEntities</B-> :: [(<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->, <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A->)]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlEntities.html#xmlEntities"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->list of predefined XML entity names and their unicode values-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="botbar"->Produced by <A HREF="http://www.haskell.org/haddock/"->Haddock</A-> version 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-Parser-XmlParsec.html
@@ -1,1723 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html"->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 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-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</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%3AcharData%27"->charData'</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> 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-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> 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-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> 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-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> 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-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> 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-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</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%3Aprolog"->prolog</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</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%3AxMLDecl"->xMLDecl</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</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%3AxMLDecl%27"->xMLDecl'</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</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%3AversionInfo"->versionInfo</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</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%3Amisc"->misc</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> 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-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</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%3Amarkupdecl"->markupdecl</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</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%3AsDDecl"->sDDecl</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</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%3Aelement"->element</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> 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-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</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%3AcontentWithTextDecl"->contentWithTextDecl</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</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%3AtextDecl"->textDecl</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</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%3AencodingDecl"->encodingDecl</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</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%3Axread"->xread</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <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-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <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%3AparseXmlContent"->parseXmlContent</A-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <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%3AparseXmlDocEncodingSpec"->parseXmlDocEncodingSpec</A-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <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%3AparseXmlDocument"->parseXmlDocument</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <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-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <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%3AparseXmlEncodingSpec"->parseXmlEncodingSpec</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AParser"->Parser</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <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%3AparseXmlEntityEncodingSpec"->parseXmlEntityEncodingSpec</A-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <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%3AparseXmlGeneralEntityValue"->parseXmlGeneralEntityValue</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <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%3AparseXmlPart"->parseXmlPart</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AParser"->Parser</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <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%3AparseXmlText"->parseXmlText</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AParser"->Parser</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <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%3AparseNMToken"->parseNMToken</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <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%3AparseName"->parseName</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <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%3AremoveEncodingSpec"->removeEncodingSpec</A-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AcharData"-></A-><B->charData</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html#charData"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AcharData%27"-></A-><B->charData'</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html#charData%27"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Acomment"-></A-><B->comment</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html#comment"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3ApI"-></A-><B->pI</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html#pI"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AcDSect"-></A-><B->cDSect</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html#cDSect"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Adocument"-></A-><B->document</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html#document"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Adocument%27"-></A-><B->document'</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html#document%27"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Aprolog"-></A-><B->prolog</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html#prolog"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxMLDecl"-></A-><B->xMLDecl</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html#xMLDecl"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxMLDecl%27"-></A-><B->xMLDecl'</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html#xMLDecl%27"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AversionInfo"-></A-><B->versionInfo</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html#versionInfo"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Amisc"-></A-><B->misc</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html#misc"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Adoctypedecl"-></A-><B->doctypedecl</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html#doctypedecl"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Amarkupdecl"-></A-><B->markupdecl</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html#markupdecl"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AsDDecl"-></A-><B->sDDecl</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html#sDDecl"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Aelement"-></A-><B->element</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html#element"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Acontent"-></A-><B->content</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html#content"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AcontentWithTextDecl"-></A-><B->contentWithTextDecl</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html#contentWithTextDecl"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AtextDecl"-></A-><B->textDecl</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html#textDecl"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AencodingDecl"-></A-><B->encodingDecl</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html#encodingDecl"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Axread"-></A-><B->xread</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html#xread"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->the inverse function to <TT-><A HREF="Text-XML-HXT-DOM-ShowXml.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.-</P-><P->see also: <TT-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlContent"->parseXmlContent</A-></TT->-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AparseXmlAttrValue"-></A-><B->parseXmlAttrValue</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html#parseXmlAttrValue"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Parser for attribute values-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AparseXmlContent"-></A-><B->parseXmlContent</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html#parseXmlContent"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AparseXmlDocEncodingSpec"-></A-><B->parseXmlDocEncodingSpec</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html#parseXmlDocEncodingSpec"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AparseXmlDocument"-></A-><B->parseXmlDocument</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html#parseXmlDocument"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AparseXmlDTDPart"-></A-><B->parseXmlDTDPart</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html#parseXmlDTDPart"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Parser for parts of a DTD-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AparseXmlEncodingSpec"-></A-><B->parseXmlEncodingSpec</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AParser"->Parser</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html#parseXmlEncodingSpec"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AparseXmlEntityEncodingSpec"-></A-><B->parseXmlEntityEncodingSpec</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html#parseXmlEntityEncodingSpec"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AparseXmlGeneralEntityValue"-></A-><B->parseXmlGeneralEntityValue</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html#parseXmlGeneralEntityValue"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Parser for general entites-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AparseXmlPart"-></A-><B->parseXmlPart</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AParser"->Parser</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html#parseXmlPart"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AparseXmlText"-></A-><B->parseXmlText</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AParser"->Parser</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html#parseXmlText"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AparseNMToken"-></A-><B->parseNMToken</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html#parseNMToken"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Parser for NMTOKENs-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AparseName"-></A-><B->parseName</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html#parseName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Parser for XML names-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AremoveEncodingSpec"-></A-><B->removeEncodingSpec</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlParsec.html#removeEncodingSpec"->Source</A-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-Parser-XmlTokenParser.html
@@ -1,1428 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html"->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 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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AallBut"-></A-><B->allBut</B-> :: (<A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->) -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#allBut"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AallBut1"-></A-><B->allBut1</B-> :: (<A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->) -> (<A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A->) -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#allBut1"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AasciiLetter"-></A-><B->asciiLetter</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#asciiLetter"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AattrValue"-></A-><B->attrValue</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#attrValue"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AcharRef"-></A-><B->charRef</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#charRef"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Acomma"-></A-><B->comma</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state ()</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#comma"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AencName"-></A-><B->encName</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#encName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AentityRef"-></A-><B->entityRef</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#entityRef"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AentityValue"-></A-><B->entityValue</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#entityValue"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Akeyword"-></A-><B->keyword</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#keyword"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Akeywords"-></A-><B->keywords</B-> :: [<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->] -> <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#keywords"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Aname"-></A-><B->name</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#name"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Anames"-></A-><B->names</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state [<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#names"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AncName"-></A-><B->ncName</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#ncName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Anmtoken"-></A-><B->nmtoken</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#nmtoken"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Anmtokens"-></A-><B->nmtokens</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state [<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#nmtokens"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3ApeReference"-></A-><B->peReference</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#peReference"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3ApubidLiteral"-></A-><B->pubidLiteral</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#pubidLiteral"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AqName"-></A-><B->qName</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->, <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->)</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#qName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Aquoted"-></A-><B->quoted</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state a -> <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#quoted"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Areference"-></A-><B->reference</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#reference"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Aseparator"-></A-><B->separator</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state ()</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#separator"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AsingleChar"-></A-><B->singleChar</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#singleChar"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AsingleChars"-></A-><B->singleChars</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#singleChars"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AskipS"-></A-><B->skipS</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state ()</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#skipS"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AskipS0"-></A-><B->skipS0</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state ()</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#skipS0"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AsPace"-></A-><B->sPace</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#sPace"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AsPace0"-></A-><B->sPace0</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#sPace0"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Asq"-></A-><B->sq</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#sq"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AsystemLiteral"-></A-><B->systemLiteral</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#systemLiteral"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AversionNum"-></A-><B->versionNum</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#versionNum"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AconcRes"-></A-><B->concRes</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state [[a]] -> <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state [a]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#concRes"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkList"-></A-><B->mkList</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state a -> <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state [a]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#mkList"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AnameT"-></A-><B->nameT</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#nameT"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AnmtokenT"-></A-><B->nmtokenT</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#nmtokenT"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AentityValueT"-></A-><B->entityValueT</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#entityValueT"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AentityTokensT"-></A-><B->entityTokensT</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#entityTokensT"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AentityCharT"-></A-><B->entityCharT</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#entityCharT"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AattrValueT"-></A-><B->attrValueT</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#attrValueT"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AattrValueT%27"-></A-><B->attrValueT'</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#attrValueT%27"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AreferenceT"-></A-><B->referenceT</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#referenceT"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AcharRefT"-></A-><B->charRefT</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#charRefT"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AentityRefT"-></A-><B->entityRefT</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#entityRefT"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3ApeReferenceT"-></A-><B->peReferenceT</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#peReferenceT"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AsingleCharsT"-></A-><B->singleCharsT</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/parsec/Text-ParserCombinators-Parsec-Prim.html#t%3AGenParser"->GenParser</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> state <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Parser-XmlTokenParser.html#singleCharsT"->Source</A-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-RelaxNG-BasicArrows.html
@@ -1,2532 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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.BasicArrows</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-><SCRIPT SRC="haddock-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html"->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.BasicArrows</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 CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"-><P->Version : $Id$-</P-><P->Constants and basic arrows for Relax NG-</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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AhasRngName"-></A-><B->hasRngName</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#hasRngName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AcheckRngName"-></A-><B->checkRngName</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => [<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#checkRngName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AnoOfChildren"-></A-><B->noOfChildren</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => (<A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#noOfChildren"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisAttributeRef"-></A-><B->isAttributeRef</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isAttributeRef"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisAttributeRefTextListGroupInterleaveOneOrMoreEmpty"-></A-><B->isAttributeRefTextListGroupInterleaveOneOrMoreEmpty</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isAttributeRefTextListGroupInterleaveOneOrMoreEmpty"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisAttributeRefTextListInterleave"-></A-><B->isAttributeRefTextListInterleave</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isAttributeRefTextListInterleave"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisAttributeListGroupInterleaveOneOrMore"-></A-><B->isAttributeListGroupInterleaveOneOrMore</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isAttributeListGroupInterleaveOneOrMore"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisExternalRefInclude"-></A-><B->isExternalRefInclude</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isExternalRefInclude"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisNameNsNameValue"-></A-><B->isNameNsNameValue</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isNameNsNameValue"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisNameNsName"-></A-><B->isNameNsName</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isNameNsName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisNameAnyNameNsName"-></A-><B->isNameAnyNameNsName</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isNameAnyNameNsName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisDefineOneOrMoreZeroOrMoreOptionalListMixed"-></A-><B->isDefineOneOrMoreZeroOrMoreOptionalListMixed</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isDefineOneOrMoreZeroOrMoreOptionalListMixed"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisChoiceGroupInterleave"-></A-><B->isChoiceGroupInterleave</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isChoiceGroupInterleave"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisChoiceGroupInterleaveOneOrMore"-></A-><B->isChoiceGroupInterleaveOneOrMore</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isChoiceGroupInterleaveOneOrMore"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisGroupInterleave"-></A-><B->isGroupInterleave</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isGroupInterleave"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisRngAnyName"-></A-><B->isRngAnyName</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngAnyName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisRngAttribute"-></A-><B->isRngAttribute</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngAttribute"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisRngChoice"-></A-><B->isRngChoice</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngChoice"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisRngCombine"-></A-><B->isRngCombine</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngCombine"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisRngData"-></A-><B->isRngData</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngData"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisRngDefine"-></A-><B->isRngDefine</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngDefine"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisRngDiv"-></A-><B->isRngDiv</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngDiv"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisRngElement"-></A-><B->isRngElement</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngElement"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisRngEmpty"-></A-><B->isRngEmpty</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngEmpty"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisRngExcept"-></A-><B->isRngExcept</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngExcept"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisRngExternalRef"-></A-><B->isRngExternalRef</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngExternalRef"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisRngGrammar"-></A-><B->isRngGrammar</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngGrammar"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisRngGroup"-></A-><B->isRngGroup</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngGroup"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisRngInclude"-></A-><B->isRngInclude</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngInclude"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisRngInterleave"-></A-><B->isRngInterleave</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngInterleave"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisRngList"-></A-><B->isRngList</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngList"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisRngMixed"-></A-><B->isRngMixed</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngMixed"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisRngName"-></A-><B->isRngName</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisRngNotAllowed"-></A-><B->isRngNotAllowed</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngNotAllowed"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisRngNsName"-></A-><B->isRngNsName</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngNsName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisRngOneOrMore"-></A-><B->isRngOneOrMore</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngOneOrMore"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisRngOptional"-></A-><B->isRngOptional</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngOptional"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisRngParam"-></A-><B->isRngParam</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngParam"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisRngParentRef"-></A-><B->isRngParentRef</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngParentRef"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisRngRef"-></A-><B->isRngRef</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngRef"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisRngRelaxError"-></A-><B->isRngRelaxError</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngRelaxError"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisRngStart"-></A-><B->isRngStart</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngStart"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisRngText"-></A-><B->isRngText</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngText"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisRngType"-></A-><B->isRngType</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngType"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisRngValue"-></A-><B->isRngValue</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngValue"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisRngZeroOrMore"-></A-><B->isRngZeroOrMore</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngZeroOrMore"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkRngElement"-></A-><B->mkRngElement</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#mkRngElement"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkRngChoice"-></A-><B->mkRngChoice</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#mkRngChoice"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkRngDefine"-></A-><B->mkRngDefine</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#mkRngDefine"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkRngEmpty"-></A-><B->mkRngEmpty</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#mkRngEmpty"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkRngGrammar"-></A-><B->mkRngGrammar</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#mkRngGrammar"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkRngGroup"-></A-><B->mkRngGroup</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#mkRngGroup"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkRngInterleave"-></A-><B->mkRngInterleave</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#mkRngInterleave"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkRngName"-></A-><B->mkRngName</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#mkRngName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkRngNotAllowed"-></A-><B->mkRngNotAllowed</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#mkRngNotAllowed"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkRngOneOrMore"-></A-><B->mkRngOneOrMore</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#mkRngOneOrMore"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkRngRef"-></A-><B->mkRngRef</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#mkRngRef"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkRngRelaxError"-></A-><B->mkRngRelaxError</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#mkRngRelaxError"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkRngStart"-></A-><B->mkRngStart</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#mkRngStart"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkRngText"-></A-><B->mkRngText</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#mkRngText"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AsetRngName"-></A-><B->setRngName</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#setRngName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AsetRngNameDiv"-></A-><B->setRngNameDiv</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#setRngNameDiv"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AsetRngNameRef"-></A-><B->setRngNameRef</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#setRngNameRef"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisRngAttrAttribute"-></A-><B->isRngAttrAttribute</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngAttrAttribute"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisRngAttrCombine"-></A-><B->isRngAttrCombine</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngAttrCombine"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisRngAttrDatatypeLibrary"-></A-><B->isRngAttrDatatypeLibrary</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngAttrDatatypeLibrary"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisRngAttrHref"-></A-><B->isRngAttrHref</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngAttrHref"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisRngAttrName"-></A-><B->isRngAttrName</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngAttrName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisRngAttrNs"-></A-><B->isRngAttrNs</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngAttrNs"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisRngAttrType"-></A-><B->isRngAttrType</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#isRngAttrType"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AhasRngAttrAttribute"-></A-><B->hasRngAttrAttribute</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#hasRngAttrAttribute"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AhasRngAttrCombine"-></A-><B->hasRngAttrCombine</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#hasRngAttrCombine"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AhasRngAttrDatatypeLibrary"-></A-><B->hasRngAttrDatatypeLibrary</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#hasRngAttrDatatypeLibrary"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AhasRngAttrHref"-></A-><B->hasRngAttrHref</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#hasRngAttrHref"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AhasRngAttrName"-></A-><B->hasRngAttrName</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#hasRngAttrName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AhasRngAttrNs"-></A-><B->hasRngAttrNs</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#hasRngAttrNs"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AhasRngAttrType"-></A-><B->hasRngAttrType</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#hasRngAttrType"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetRngAttrAttribute"-></A-><B->getRngAttrAttribute</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#getRngAttrAttribute"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetRngAttrCombine"-></A-><B->getRngAttrCombine</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#getRngAttrCombine"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetRngAttrDatatypeLibrary"-></A-><B->getRngAttrDatatypeLibrary</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#getRngAttrDatatypeLibrary"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetRngAttrDescr"-></A-><B->getRngAttrDescr</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#getRngAttrDescr"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetRngAttrHref"-></A-><B->getRngAttrHref</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#getRngAttrHref"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetRngAttrName"-></A-><B->getRngAttrName</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#getRngAttrName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetRngAttrNs"-></A-><B->getRngAttrNs</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#getRngAttrNs"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetRngAttrType"-></A-><B->getRngAttrType</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> a => a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-BasicArrows.html#getRngAttrType"->Source</A-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-RelaxNG-CreatePattern.html
@@ -1,318 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-RelaxNG-CreatePattern.html"->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 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"-><A HREF="#v%3AfirstChild"->firstChild</A-> :: (<A HREF="Control-Arrow-ArrowTree.html#t%3AArrowTree"->ArrowTree</A-> a, <A HREF="Data-Tree-Class.html#t%3ATree"->Tree</A-> t) => a (t b) (t b)</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AlastChild"->lastChild</A-> :: (<A HREF="Control-Arrow-ArrowTree.html#t%3AArrowTree"->ArrowTree</A-> a, <A HREF="Data-Tree-Class.html#t%3ATree"->Tree</A-> t) => a (t b) (t b)</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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-CreatePattern.html#createPatternFromXmlTree"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-CreatePattern.html#createNameClass"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Creates a <TT-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANameClass"->NameClass</A-></TT-> from an "anyName"-, "nsName"- or "name"-Pattern, -</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AfirstChild"-></A-><B->firstChild</B-> :: (<A HREF="Control-Arrow-ArrowTree.html#t%3AArrowTree"->ArrowTree</A-> a, <A HREF="Data-Tree-Class.html#t%3ATree"->Tree</A-> t) => a (t b) (t b)</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-CreatePattern.html#firstChild"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Simple access arrows-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AlastChild"-></A-><B->lastChild</B-> :: (<A HREF="Control-Arrow-ArrowTree.html#t%3AArrowTree"->ArrowTree</A-> a, <A HREF="Data-Tree-Class.html#t%3ATree"->Tree</A-> t) => a (t b) (t b)</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-CreatePattern.html#lastChild"->Source</A-></TD-></TR-></TABLE-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-RelaxNG-DataTypeLibMysql.html
@@ -1,197 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibMysql.html"->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 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-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmysqlNS"-></A-><B->mysqlNS</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibMysql.html#mysqlNS"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Namespace of the MySQL datatype library-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmysqlDatatypeLib"-></A-><B->mysqlDatatypeLib</B-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeLibrary"->DatatypeLibrary</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibMysql.html#mysqlDatatypeLib"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->The main entry point to the MySQL datatype library.-</P-><P->The <TT->DTC</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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html
@@ -1,1377 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html"->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 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%3AerrorMsgEqual"->errorMsgEqual</A-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeName"->DatatypeName</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AerrorMsgDataTypeNotAllowed"->errorMsgDataTypeNotAllowed</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> [(<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->, <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->)] -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AerrorMsgDataTypeNotAllowed0"->errorMsgDataTypeNotAllowed0</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AerrorMsgDataTypeNotAllowed2"->errorMsgDataTypeNotAllowed2</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AerrorMsgDataLibQName"->errorMsgDataLibQName</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AerrorMsgParam"->errorMsgParam</A-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ALocalName"->LocalName</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Arng_maxLength"->rng_maxLength</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></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-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><SPAN CLASS="keyword"->type</SPAN-> <A HREF="#t%3AFunctionTable"->FunctionTable</A-> = [(<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->, <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A->)]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AstringValidFT"->stringValidFT</A-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3AFunctionTable"->FunctionTable</A-> -> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeName"->DatatypeName</A-> -> Integer -> Integer -> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AParamList"->ParamList</A-> -> <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckString"->CheckString</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AfctTableString"->fctTableString</A-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3AFunctionTable"->FunctionTable</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AfctTableList"->fctTableList</A-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3AFunctionTable"->FunctionTable</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AstringValid"->stringValid</A-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeName"->DatatypeName</A-> -> Integer -> Integer -> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AParamList"->ParamList</A-> -> <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckString"->CheckString</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AnumberValid"->numberValid</A-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeName"->DatatypeName</A-> -> Integer -> Integer -> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AParamList"->ParamList</A-> -> <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckString"->CheckString</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AnumParamValid"->numParamValid</A-> :: (Integer -> Integer -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A->) -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><SPAN CLASS="keyword"->data</SPAN-> <A HREF="#t%3ACheckA"->CheckA</A-> a b</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><SPAN CLASS="keyword"->type</SPAN-> <A HREF="#t%3ACheckString"->CheckString</A-> = <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"->CheckA</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><SPAN CLASS="keyword"->type</SPAN-> <A HREF="#t%3ACheckInteger"->CheckInteger</A-> = <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"->CheckA</A-> Integer Integer</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AperformCheck"->performCheck</A-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"->CheckA</A-> a b -> a -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Aok"->ok</A-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"->CheckA</A-> a a</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Afailure"->failure</A-> :: (a -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->) -> <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"->CheckA</A-> a b</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Aassert"->assert</A-> :: (a -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A->) -> (a -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->) -> <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"->CheckA</A-> a a</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AassertMaybe"->assertMaybe</A-> :: (a -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> b) -> (a -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->) -> <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"->CheckA</A-> a b</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AcheckWith"->checkWith</A-> :: (a -> b) -> <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"->CheckA</A-> b c -> <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"->CheckA</A-> 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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AerrorMsgEqual"-></A-><B->errorMsgEqual</B-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeName"->DatatypeName</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#errorMsgEqual"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AerrorMsgDataTypeNotAllowed"-></A-><B->errorMsgDataTypeNotAllowed</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> [(<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->, <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->)] -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#errorMsgDataTypeNotAllowed"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AerrorMsgDataTypeNotAllowed0"-></A-><B->errorMsgDataTypeNotAllowed0</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#errorMsgDataTypeNotAllowed0"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AerrorMsgDataTypeNotAllowed2"-></A-><B->errorMsgDataTypeNotAllowed2</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#errorMsgDataTypeNotAllowed2"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AerrorMsgDataLibQName"-></A-><B->errorMsgDataLibQName</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#errorMsgDataLibQName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AerrorMsgParam"-></A-><B->errorMsgParam</B-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ALocalName"->LocalName</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#errorMsgParam"->Source</A-></TD-></TR-></TABLE-></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 "Int" "21" "42" -> "Datatype Int with value = 21 expected, but value = 42 found"-</PRE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Arng_maxLength"-></A-><B->rng_maxLength</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#rng_maxLength"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->type</SPAN-> <A NAME="t%3AFunctionTable"-></A-><B->FunctionTable</B-> = [(<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->, <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A->)]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#FunctionTable"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Function table type-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AstringValidFT"-></A-><B->stringValidFT</B-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3AFunctionTable"->FunctionTable</A-> -> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeName"->DatatypeName</A-> -> Integer -> Integer -> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AParamList"->ParamList</A-> -> <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckString"->CheckString</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#stringValidFT"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AfctTableString"-></A-><B->fctTableString</B-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3AFunctionTable"->FunctionTable</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#fctTableString"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Function table for string tests,- XML document value is first operand, schema value second-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AfctTableList"-></A-><B->fctTableList</B-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3AFunctionTable"->FunctionTable</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#fctTableList"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Function table for list tests,- XML document value is first operand, schema value second-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AstringValid"-></A-><B->stringValid</B-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeName"->DatatypeName</A-> -> Integer -> Integer -> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AParamList"->ParamList</A-> -> <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckString"->CheckString</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#stringValid"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->Tests whether a "string" 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 : lower bound of the datatype range-</LI-><LI-> 3.parameter : upper bound of the datatype range (-1 = no upper bound) -</LI-><LI-> 4.parameter : list of parameters-</LI-><LI-> 5.parameter : datatype value to be checked-</LI-><LI-> return : Just "Errormessage" in case of an error, else Nothing-</LI-></UL-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AnumberValid"-></A-><B->numberValid</B-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeName"->DatatypeName</A-> -> Integer -> Integer -> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AParamList"->ParamList</A-> -> <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckString"->CheckString</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#numberValid"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->Tests whether a "numeric" 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 : lower bound of the datatype range-</LI-><LI-> 3.parameter : upper bound of the datatype range (-1 = no upper bound) -</LI-><LI-> 4.parameter : list of parameters-</LI-><LI-> 5.parameter : datatype value to be checked-</LI-><LI-> return : Just "Errormessage" in case of an error, else Nothing-</LI-></UL-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AnumParamValid"-></A-><B->numParamValid</B-> :: (Integer -> Integer -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A->) -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#numParamValid"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->tests whether a string value matches a numeric param-</P-><P->valid example:-</P-><PRE-> <data type="CHAR"> <param name="maxLength">5</param> </data>-</PRE-><P->invalid example:-</P-><PRE-> <data type="CHAR"> <param name="minLength">foo</param> </data>-</PRE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->data</SPAN-> <A NAME="t%3ACheckA"-></A-><B->CheckA</B-> a b </TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#CheckA"->Source</A-></TD-></TR-></TABLE-></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:CheckA')" ALT="show/hide"-> Instances</TD-></TR-><TR-><TD CLASS="body"-><DIV ID="i:CheckA" STYLE="display:block;"-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Arrow.html#t%3AArrow"->Arrow</A-> <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"->CheckA</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Arrow.html#t%3AArrowZero"->ArrowZero</A-> <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"->CheckA</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Arrow.html#t%3AArrowPlus"->ArrowPlus</A-> <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"->CheckA</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Category.html#t%3ACategory"->Category</A-> <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"->CheckA</A-></TD-></TR-></TABLE-></DIV-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->type</SPAN-> <A NAME="t%3ACheckString"-></A-><B->CheckString</B-> = <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"->CheckA</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#CheckString"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->type</SPAN-> <A NAME="t%3ACheckInteger"-></A-><B->CheckInteger</B-> = <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"->CheckA</A-> Integer Integer</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#CheckInteger"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AperformCheck"-></A-><B->performCheck</B-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"->CheckA</A-> a b -> a -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#performCheck"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->run a check and deliver Just an error message or Nothing-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Aok"-></A-><B->ok</B-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"->CheckA</A-> a a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#ok"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->every thing is fine-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Afailure"-></A-><B->failure</B-> :: (a -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->) -> <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"->CheckA</A-> a b</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#failure"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->always failure-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Aassert"-></A-><B->assert</B-> :: (a -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A->) -> (a -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->) -> <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"->CheckA</A-> a a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#assert"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->perform a simple check with a predicate p,- when the predicate holds, assert acts as identity,- else an error message is generated-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AassertMaybe"-></A-><B->assertMaybe</B-> :: (a -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> b) -> (a -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->) -> <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"->CheckA</A-> a b</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#assertMaybe"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->perform a simple check with a Maybe function, Nothing indicates error-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AcheckWith"-></A-><B->checkWith</B-> :: (a -> b) -> <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"->CheckA</A-> b c -> <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"->CheckA</A-> a a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#checkWith"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->perform a check, but convert the value before checking-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="botbar"->Produced by <A HREF="http://www.haskell.org/haddock/"->Haddock</A-> version 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-RelaxNG-DataTypeLibraries.html
@@ -1,292 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibraries.html"->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 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 an 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-> -> <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-> -> <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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AdatatypeLibraries"-></A-><B->datatypeLibraries</B-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeLibraries"->DatatypeLibraries</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibraries.html#datatypeLibraries"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AdatatypeEqual"-></A-><B->datatypeEqual</B-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AUri"->Uri</A-> -> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeEqual"->DatatypeEqual</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibraries.html#datatypeEqual"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AdatatypeAllows"-></A-><B->datatypeAllows</B-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AUri"->Uri</A-> -> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeAllows"->DatatypeAllows</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypeLibraries.html#datatypeAllows"->Source</A-></TD-></TR-></TABLE-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-RelaxNG-DataTypes.html
@@ -1,2787 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html"->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 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-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3ArelaxSchemaGrammarFile"->relaxSchemaGrammarFile</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Aa_relaxSimplificationChanges"->a_relaxSimplificationChanges</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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%3AcontextAttributes"->contextAttributes</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AcontextBaseAttr"->contextBaseAttr</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><SPAN CLASS="keyword"->type</SPAN-> <A HREF="#t%3AOldName"->OldName</A-> = <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><SPAN CLASS="keyword"->type</SPAN-> <A HREF="#t%3ANewName"->NewName</A-> = <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></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-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AContext"->Context</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AContext"->Context</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></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-> -> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AParamList"->ParamList</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AContext"->Context</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></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-> = <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><SPAN CLASS="keyword"->type</SPAN-> <A HREF="#t%3AParamName"->ParamName</A-> = <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></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-> = <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><SPAN CLASS="keyword"->type</SPAN-> <A HREF="#t%3ALocalName"->LocalName</A-> = <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></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->, <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->)]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><SPAN CLASS="keyword"->type</SPAN-> <A HREF="#t%3APrefix"->Prefix</A-> = <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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-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"-><A HREF="#v%3AshowDatatype"->showDatatype</A-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatype"->Datatype</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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%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-> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AErrMessage"->ErrMessage</A-></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-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> <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"-><SPAN CLASS="keyword"->data</SPAN-> <A HREF="#t%3AErrMessage"->ErrMessage</A-> = <A HREF="#v%3AErrMsg"->ErrMsg</A-> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AErrLevel"->ErrLevel</A-> [<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><SPAN CLASS="keyword"->type</SPAN-> <A HREF="#t%3AErrLevel"->ErrLevel</A-> = <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AnotAllowed"->notAllowed</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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%3AnotAllowed1"->notAllowed1</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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%3AnotAllowed2"->notAllowed2</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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%3AnotAllowedN"->notAllowedN</A-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AErrLevel"->ErrLevel</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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%3AmergeNotAllowed"->mergeNotAllowed</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-> -> <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%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-> -> <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%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-> -> <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%3AoneOrMore"->oneOrMore</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="s8"-></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-> -> <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%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-> -> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"->Pattern</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%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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3ArelaxSchemaFile"-></A-><B->relaxSchemaFile</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#relaxSchemaFile"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3ArelaxSchemaGrammarFile"-></A-><B->relaxSchemaGrammarFile</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#relaxSchemaGrammarFile"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Aa_relaxSimplificationChanges"-></A-><B->a_relaxSimplificationChanges</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#a_relaxSimplificationChanges"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->type</SPAN-> <A NAME="t%3AEnv"-></A-><B->Env</B-> = [(<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->, <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A->)]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#Env"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AcontextAttributes"-></A-><B->contextAttributes</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#contextAttributes"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->Start of a context attribute value - (see also: Text.XML.HXT.RelaxNG.Simplification.simplificationStep1)-</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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AcontextBaseAttr"-></A-><B->contextBaseAttr</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#contextBaseAttr"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->type</SPAN-> <A NAME="t%3AOldName"-></A-><B->OldName</B-> = <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#OldName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->type</SPAN-> <A NAME="t%3ANewName"-></A-><B->NewName</B-> = <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#NewName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#NamePair"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#RefList"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AContext"->Context</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AContext"->Context</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#DatatypeEqual"->Source</A-></TD-></TR-></TABLE-></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 "errorMessage" in case of an error else Nothing.-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-> -> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AParamList"->ParamList</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AContext"->Context</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#DatatypeAllows"->Source</A-></TD-></TR-></TABLE-></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 "errorMessage" in case of an error else Nothing.-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#DatatypeLibraries"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->List of all supported datatype libraries-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#DatatypeLibrary"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->type</SPAN-> <A NAME="t%3ADatatypeName"-></A-><B->DatatypeName</B-> = <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#DatatypeName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->type</SPAN-> <A NAME="t%3AParamName"-></A-><B->ParamName</B-> = <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#ParamName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#AllowedParams"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#AllowedDatatypes"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->data</SPAN-> <A NAME="t%3ADatatypeCheck"-></A-><B->DatatypeCheck</B-> </TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#DatatypeCheck"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->type</SPAN-> <A NAME="t%3AUri"-></A-><B->Uri</B-> = <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#Uri"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->type</SPAN-> <A NAME="t%3ALocalName"-></A-><B->LocalName</B-> = <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#LocalName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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->, <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->)]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#ParamList"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->type</SPAN-> <A NAME="t%3APrefix"-></A-><B->Prefix</B-> = <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#Prefix"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#Context"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#Datatype"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AshowDatatype"-></A-><B->showDatatype</B-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatype"->Datatype</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#showDatatype"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->data</SPAN-> <A NAME="t%3ANameClass"-></A-><B->NameClass</B-> </TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#NameClass"->Source</A-></TD-></TR-></TABLE-></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-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></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"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Eq.html#t%3AEq"->Eq</A-> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANameClass"->NameClass</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Show.html#t%3AShow"->Show</A-> <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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->data</SPAN-> <A NAME="t%3APattern"-></A-><B->Pattern</B-> </TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#Pattern"->Source</A-></TD-></TR-></TABLE-></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-> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AErrMessage"->ErrMessage</A-></TD-><TD CLASS="rdoc"-></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-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> <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"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Show.html#t%3AShow"->Show</A-> <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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->data</SPAN-> <A NAME="t%3AErrMessage"-></A-><B->ErrMessage</B-> </TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#ErrMessage"->Source</A-></TD-></TR-></TABLE-></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%3AErrMsg"-></A-><B->ErrMsg</B-> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AErrLevel"->ErrLevel</A-> [<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->]</TD-><TD CLASS="rdoc"-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="section4"-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:ErrMessage')" ALT="show/hide"-> Instances</TD-></TR-><TR-><TD CLASS="body"-><DIV ID="i:ErrMessage" STYLE="display:block;"-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Show.html#t%3AShow"->Show</A-> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AErrMessage"->ErrMessage</A-></TD-></TR-></TABLE-></DIV-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->type</SPAN-> <A NAME="t%3AErrLevel"-></A-><B->ErrLevel</B-> = <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#ErrLevel"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AnotAllowed"-></A-><B->notAllowed</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"->Pattern</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#notAllowed"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->smart constructor for NotAllowed-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AnotAllowed1"-></A-><B->notAllowed1</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"->Pattern</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#notAllowed1"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AnotAllowed2"-></A-><B->notAllowed2</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"->Pattern</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#notAllowed2"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AnotAllowedN"-></A-><B->notAllowedN</B-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AErrLevel"->ErrLevel</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"->Pattern</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#notAllowedN"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmergeNotAllowed"-></A-><B->mergeNotAllowed</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-> -> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"->Pattern</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#mergeNotAllowed"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->merge error messages-</P-><P->If error levels are different, the more important is taken,- if level is 2 (max level) both error messages are taken- else the 1. error mesage is taken-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-> -> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"->Pattern</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#choice"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->smart constructor for Choice-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-> -> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"->Pattern</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#group"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->smart constructor for Group-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AoneOrMore"-></A-><B->oneOrMore</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="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#oneOrMore"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->smart constructor for OneOrMore-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-> -> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"->Pattern</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#interleave"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->smart constructor for Interleave-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-> -> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"->Pattern</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#after"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->smart constructor for After-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->data</SPAN-> <A NAME="t%3AContentType"-></A-><B->ContentType</B-> </TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-DataTypes.html#ContentType"->Source</A-></TD-></TR-></TABLE-></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"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Eq.html#t%3AEq"->Eq</A-> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AContentType"->ContentType</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Ord.html#t%3AOrd"->Ord</A-> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AContentType"->ContentType</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Show.html#t%3AShow"->Show</A-> <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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-RelaxNG-PatternFunctions.html
@@ -1,802 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-RelaxNG-PatternFunctions.html"->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 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-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></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-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></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-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></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-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></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-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></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-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></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-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></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-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></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-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></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-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></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-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></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-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></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-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></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-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></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-> -> [<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-> -> <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-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisRelaxEmpty"-></A-><B->isRelaxEmpty</B-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"->Pattern</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-PatternFunctions.html#isRelaxEmpty"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisRelaxNotAllowed"-></A-><B->isRelaxNotAllowed</B-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"->Pattern</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-PatternFunctions.html#isRelaxNotAllowed"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisRelaxText"-></A-><B->isRelaxText</B-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"->Pattern</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-PatternFunctions.html#isRelaxText"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisRelaxChoice"-></A-><B->isRelaxChoice</B-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"->Pattern</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-PatternFunctions.html#isRelaxChoice"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisRelaxInterleave"-></A-><B->isRelaxInterleave</B-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"->Pattern</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-PatternFunctions.html#isRelaxInterleave"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisRelaxGroup"-></A-><B->isRelaxGroup</B-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"->Pattern</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-PatternFunctions.html#isRelaxGroup"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisRelaxOneOrMore"-></A-><B->isRelaxOneOrMore</B-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"->Pattern</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-PatternFunctions.html#isRelaxOneOrMore"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisRelaxList"-></A-><B->isRelaxList</B-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"->Pattern</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-PatternFunctions.html#isRelaxList"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisRelaxData"-></A-><B->isRelaxData</B-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"->Pattern</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-PatternFunctions.html#isRelaxData"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisRelaxDataExcept"-></A-><B->isRelaxDataExcept</B-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"->Pattern</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-PatternFunctions.html#isRelaxDataExcept"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisRelaxValue"-></A-><B->isRelaxValue</B-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"->Pattern</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-PatternFunctions.html#isRelaxValue"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisRelaxAttribute"-></A-><B->isRelaxAttribute</B-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"->Pattern</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-PatternFunctions.html#isRelaxAttribute"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisRelaxElement"-></A-><B->isRelaxElement</B-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"->Pattern</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-PatternFunctions.html#isRelaxElement"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisRelaxAfter"-></A-><B->isRelaxAfter</B-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"->Pattern</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-PatternFunctions.html#isRelaxAfter"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetChildrenPattern"-></A-><B->getChildrenPattern</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="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-PatternFunctions.html#getChildrenPattern"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetNameClassFromPattern"-></A-><B->getNameClassFromPattern</B-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"->Pattern</A-> -> <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANameClass"->NameClass</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-PatternFunctions.html#getNameClassFromPattern"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Returns the nameclass of a element- or attribute pattern.- Otherwise <TT->NCError</TT-> is returned.-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetPatternName"-></A-><B->getPatternName</B-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3APattern"->Pattern</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-PatternFunctions.html#getPatternName"->Source</A-></TD-></TR-></TABLE-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-RelaxNG-PatternToString.html
@@ -1,472 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-RelaxNG-PatternToString.html"->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 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-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></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-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></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-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></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-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></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-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></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-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-PatternToString.html#patternToStringTree"->Source</A-></TD-></TR-></TABLE-></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-> <define name="baz">- <element name="baz">- ... <ref name="baz"/> ...- </element>- </define>-</PRE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-PatternToString.html#patternToFormatedString"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-PatternToString.html#xmlTreeToPatternStringTree"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-PatternToString.html#xmlTreeToPatternFormatedString"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-PatternToString.html#xmlTreeToPatternString"->Source</A-></TD-></TR-></TABLE-></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 ("","token") "abc"- ("foo","www.bar.baz")]))(Data ("http://www.mysql.com","VARCHAR")- [("length","2"),("maxLength","5")])) (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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AnameClassToString"-></A-><B->nameClassToString</B-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANameClass"->NameClass</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-PatternToString.html#nameClassToString"->Source</A-></TD-></TR-></TABLE-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-RelaxNG-Schema.html
@@ -1,139 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Schema.html"->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 CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"->Don't edit this module, it's generated by RelaxSchemaToXmlTree-</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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3ArelaxSchemaTree"-></A-><B->relaxSchemaTree</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Schema.html#relaxSchemaTree"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3ArelaxSchemaArrow"-></A-><B->relaxSchemaArrow</B-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"->ArrowList</A-> a => a b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Schema.html#relaxSchemaArrow"->Source</A-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-RelaxNG-SchemaGrammar.html
@@ -1,139 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-RelaxNG-SchemaGrammar.html"->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 CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"->Don't edit this module, it's generated by RelaxSchemaToXmlTree-</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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3ArelaxSchemaTree"-></A-><B->relaxSchemaTree</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-SchemaGrammar.html#relaxSchemaTree"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3ArelaxSchemaArrow"-></A-><B->relaxSchemaArrow</B-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"->ArrowList</A-> a => a b <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-SchemaGrammar.html#relaxSchemaArrow"->Source</A-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-RelaxNG-Simplification.html
@@ -1,245 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Simplification.html"->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-><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"->stable</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 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-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</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-><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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AcreateSimpleForm"-></A-><B->createSimpleForm</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Simplification.html#createSimpleForm"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Simplification.html#getErrors"->Source</A-></TD-></TR-></TABLE-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-RelaxNG-Unicode-Blocks.html
@@ -1,148 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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.Unicode.Blocks</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-><SCRIPT SRC="haddock-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-Blocks.html"->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.Unicode.Blocks</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 CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"-><P->Version : $Id$-</P-><P->Unicode Code Blocks-</P-><P->don't edit this module- it's generated from 'http://www.unicode.org/Public/UNIDATA/Blocks.txt'-</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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AcodeBlocks"-></A-><B->codeBlocks</B-> :: [(<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->, (<A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A->, <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A->))]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-Blocks.html#codeBlocks"->Source</A-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-RelaxNG-Unicode-CharProps.html
@@ -1,1056 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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.Unicode.CharProps</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-><SCRIPT SRC="haddock-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html"->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.Unicode.CharProps</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 CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"-><P->Version : $Id$-</P-><P->Unicode character properties-</P-><P->don't edit this module- it's generated from 'http://www.unicode.org/Public/UNIDATA/UnicodeData.txt'-</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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisUnicodeC"-></A-><B->isUnicodeC</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodeC"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisUnicodeCc"-></A-><B->isUnicodeCc</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodeCc"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisUnicodeCf"-></A-><B->isUnicodeCf</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodeCf"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisUnicodeCo"-></A-><B->isUnicodeCo</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodeCo"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisUnicodeCs"-></A-><B->isUnicodeCs</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodeCs"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisUnicodeL"-></A-><B->isUnicodeL</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodeL"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisUnicodeLl"-></A-><B->isUnicodeLl</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodeLl"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisUnicodeLm"-></A-><B->isUnicodeLm</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodeLm"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisUnicodeLo"-></A-><B->isUnicodeLo</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodeLo"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisUnicodeLt"-></A-><B->isUnicodeLt</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodeLt"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisUnicodeLu"-></A-><B->isUnicodeLu</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodeLu"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisUnicodeM"-></A-><B->isUnicodeM</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodeM"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisUnicodeMc"-></A-><B->isUnicodeMc</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodeMc"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisUnicodeMe"-></A-><B->isUnicodeMe</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodeMe"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisUnicodeMn"-></A-><B->isUnicodeMn</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodeMn"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisUnicodeN"-></A-><B->isUnicodeN</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodeN"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisUnicodeNd"-></A-><B->isUnicodeNd</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodeNd"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisUnicodeNl"-></A-><B->isUnicodeNl</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodeNl"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisUnicodeNo"-></A-><B->isUnicodeNo</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodeNo"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisUnicodeP"-></A-><B->isUnicodeP</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodeP"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisUnicodePc"-></A-><B->isUnicodePc</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodePc"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisUnicodePd"-></A-><B->isUnicodePd</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodePd"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisUnicodePe"-></A-><B->isUnicodePe</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodePe"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisUnicodePf"-></A-><B->isUnicodePf</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodePf"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisUnicodePi"-></A-><B->isUnicodePi</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodePi"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisUnicodePo"-></A-><B->isUnicodePo</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodePo"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisUnicodePs"-></A-><B->isUnicodePs</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodePs"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisUnicodeS"-></A-><B->isUnicodeS</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodeS"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisUnicodeSc"-></A-><B->isUnicodeSc</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodeSc"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisUnicodeSk"-></A-><B->isUnicodeSk</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodeSk"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisUnicodeSm"-></A-><B->isUnicodeSm</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodeSm"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisUnicodeSo"-></A-><B->isUnicodeSo</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodeSo"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisUnicodeZ"-></A-><B->isUnicodeZ</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodeZ"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisUnicodeZl"-></A-><B->isUnicodeZl</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodeZl"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisUnicodeZp"-></A-><B->isUnicodeZp</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodeZp"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisUnicodeZs"-></A-><B->isUnicodeZs</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html#isUnicodeZs"->Source</A-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-RelaxNG-Utils.html
@@ -1,661 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Utils.html"->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-><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"->stable</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 CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"->Helper functions for RelaxNG validation-</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-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AcompareURI"->compareURI</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AnormalizeURI"->normalizeURI</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AisNumber"->isNumber</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AisNmtoken"->isNmtoken</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AisName"->isName</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AformatStringList"->formatStringList</A-> :: (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->) -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> [<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->] -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AformatStringListPatt"->formatStringListPatt</A-> :: [<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->] -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AformatStringListId"->formatStringListId</A-> :: [<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->] -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AformatStringListQuot"->formatStringListQuot</A-> :: [<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->] -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AformatStringListPairs"->formatStringListPairs</A-> :: [(<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->, <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->)] -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AformatStringListArr"->formatStringListArr</A-> :: [<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->] -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisRelaxAnyURI"-></A-><B->isRelaxAnyURI</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Utils.html#isRelaxAnyURI"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AcompareURI"-></A-><B->compareURI</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Utils.html#compareURI"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AnormalizeURI"-></A-><B->normalizeURI</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Utils.html#normalizeURI"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Converts all letters to the corresponding lower-case letter - and removes a trailing "/" -</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisNumber"-></A-><B->isNumber</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Utils.html#isNumber"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisNmtoken"-></A-><B->isNmtoken</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Utils.html#isNmtoken"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisName"-></A-><B->isName</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Utils.html#isName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AformatStringList"-></A-><B->formatStringList</B-> :: (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->) -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> [<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->] -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Utils.html#formatStringList"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AformatStringListPatt"-></A-><B->formatStringListPatt</B-> :: [<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->] -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Utils.html#formatStringListPatt"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->Formats a list of strings into a single string.-The first parameter formats the elements, the 2. is inserted-between two elements.-</P-><P->example:-</P-><PRE-> formatStringList show ", " ["foo", "bar", "baz"] -> "foo", "bar", "baz"-</PRE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AformatStringListId"-></A-><B->formatStringListId</B-> :: [<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->] -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Utils.html#formatStringListId"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AformatStringListQuot"-></A-><B->formatStringListQuot</B-> :: [<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->] -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Utils.html#formatStringListQuot"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AformatStringListPairs"-></A-><B->formatStringListPairs</B-> :: [(<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->, <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->)] -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Utils.html#formatStringListPairs"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AformatStringListArr"-></A-><B->formatStringListArr</B-> :: [<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->] -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Utils.html#formatStringListArr"->Source</A-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-RelaxNG-Validation.html
@@ -1,550 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Validation.html"->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-><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"->stable</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 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 "An algorithm for RELAX NG validation" 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-> -> <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-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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-><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-> -> <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-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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-><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-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <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 => a <A HREF="Text-XML-HXT-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-> -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-> -> <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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Validation.html#validateWithRelaxAndHandleErrors"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Validation.html#validateDocWithRelax"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AvalidateRelax"-></A-><B->validateRelax</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Validation.html#validateRelax"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AvalidateXMLDoc"-></A-><B->validateXMLDoc</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Validation.html#validateXMLDoc"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AreadForRelax"-></A-><B->readForRelax</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Validation.html#readForRelax"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AnormalizeForRelaxValidation"-></A-><B->normalizeForRelaxValidation</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"->ArrowXml</A-> 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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Validation.html#normalizeForRelaxValidation"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->normalize a document for validation with Relax NG: remove all namespace declaration 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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Acontains"-></A-><B->contains</B-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANameClass"->NameClass</A-> -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Validation.html#contains"->Source</A-></TD-></TR-></TABLE-></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-QualifiedName.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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-RelaxNG-Validator.html
@@ -1,788 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Validator.html"->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 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-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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%3AvalidateDocumentWithRelax"->validateDocumentWithRelax</A-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</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-><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-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <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-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <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-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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-><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-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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-><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-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AvalidateDocumentWithRelaxSchema"-></A-><B->validateDocumentWithRelaxSchema</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Validator.html#validateDocumentWithRelaxSchema"->Source</A-></TD-></TR-></TABLE-></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_check_restrictions</TT-> : check Relax NG schema restrictions when simplifying the schema (default: on)-</LI-><LI-> <TT->a_validate_externalRef</TT-> : validate a Relax NG schema referenced by a externalRef-Pattern (default: on)-</LI-><LI-> <TT->a_validate_include</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, "0")] "testSchema.rng"-</PRE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AvalidateDocumentWithRelax"-></A-><B->validateDocumentWithRelax</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Validator.html#validateDocumentWithRelax"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Avalidate"-></A-><B->validate</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Validator.html#validate"->Source</A-></TD-></TR-></TABLE-></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_do_not_validate_externalRef</TT-> : do not validate a Relax NG schema referenced by a externalRef-Pattern-</LI-><LI-> <TT->a_validate_externalRef</TT-> : validate a Relax NG schema referenced by a externalRef-Pattern (default)-</LI-><LI-> <TT->a_do_not_validate_include</TT-> : do not validate a Relax NG schema referenced by a include-Pattern-</LI-><LI-> <TT->a_validate_include</TT-> : validate a Relax NG schema referenced by a include-Pattern (default)-</LI-><LI-> <TT->a_output_changes</TT-> : output Pattern transformations in case of an error-</LI-><LI-> <TT->a_do_not_collect_errors</TT-> : stop Relax NG simplification after the first error has occurred-</LI-><LI-> all Text.XML.HXT.Arrow.ReadDocument.readDocument options-</LI-></UL-><P->example:-</P-><PRE-> validate [(a_do_not_check_restrictions, "1")] "test.xml" "testSchema.rng"-</PRE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AvalidateSchema"-></A-><B->validateSchema</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Validator.html#validateSchema"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AvalidateWithSpezification"-></A-><B->validateWithSpezification</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Validator.html#validateWithSpezification"->Source</A-></TD-></TR-></TABLE-></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- >>>- ( validateWithSpezification [] "foo.xml" "foo.rng"- &&&- validateWithSpezification [] "bar.xml" "bar.rng"- )-</PRE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AvalidateSchemaWithSpezification"-></A-><B->validateSchemaWithSpezification</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Validator.html#validateSchemaWithSpezification"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AvalidateWithoutSpezification"-></A-><B->validateWithoutSpezification</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-Validator.html#validateWithoutSpezification"->Source</A-></TD-></TR-></TABLE-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html
@@ -1,289 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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.XmlSchema.DataTypeLibW3C</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-><SCRIPT SRC="haddock-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html"->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.XmlSchema.DataTypeLibW3C</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 CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"-><P->Version : $Id$-</P-><P->Datatype library for the W3C XML schema datatypes-</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%3Aw3cNS"->w3cNS</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></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-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Axsd_normalizedString"->xsd_normalizedString</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Axsd_maxLength"->xsd_maxLength</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Aw3cNS"-></A-><B->w3cNS</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#w3cNS"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Aw3cDatatypeLib"-></A-><B->w3cDatatypeLib</B-> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeLibrary"->DatatypeLibrary</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#w3cDatatypeLib"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->The main entry point to the W3C XML schema datatype library.-</P-><P->The <TT->DTC</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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Axsd_normalizedString"-></A-><B->xsd_normalizedString</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#xsd_normalizedString"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Axsd_maxLength"-></A-><B->xsd_maxLength</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#xsd_maxLength"->Source</A-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-RelaxNG-XmlSchema-Regex.html
@@ -1,1157 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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.XmlSchema.Regex</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-><SCRIPT SRC="haddock-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-Regex.html"->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.XmlSchema.Regex</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 CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"-><P->W3C XML Schema Regular Expression Matcher-</P-><P->Grammar can be found under <A HREF="http://www.w3.org/TR/xmlschema11-2/#regexs"->http://www.w3.org/TR/xmlschema11-2/#regexs</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"-><SPAN CLASS="keyword"->data</SPAN-> <A HREF="#t%3ARegex"->Regex</A-> </TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Achars"->chars</A-> :: (<A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A->) -> [<A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A->]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AcharRngs"->charRngs</A-> :: [<A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A->] -> [(<A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A->, <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A->)]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AmkZero"->mkZero</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"->Regex</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AmkUnit"->mkUnit</A-> :: <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"->Regex</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AmkSym"->mkSym</A-> :: (<A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A->) -> <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"->Regex</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AmkSym1"->mkSym1</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> -> <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"->Regex</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AmkSymRng"->mkSymRng</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> -> <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"->Regex</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AmkDot"->mkDot</A-> :: <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"->Regex</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AmkStar"->mkStar</A-> :: <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"->Regex</A-> -> <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"->Regex</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AmkAlt"->mkAlt</A-> :: <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"->Regex</A-> -> <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"->Regex</A-> -> <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"->Regex</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AmkSeq"->mkSeq</A-> :: <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"->Regex</A-> -> <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"->Regex</A-> -> <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"->Regex</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AmkRep"->mkRep</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-> -> <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"->Regex</A-> -> <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"->Regex</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AmkRng"->mkRng</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-> -> <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"->Regex</A-> -> <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"->Regex</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AmkOpt"->mkOpt</A-> :: <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"->Regex</A-> -> <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"->Regex</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AmkDif"->mkDif</A-> :: <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"->Regex</A-> -> <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"->Regex</A-> -> <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"->Regex</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AmkCompl"->mkCompl</A-> :: <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"->Regex</A-> -> <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"->Regex</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AisZero"->isZero</A-> :: <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"->Regex</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Anullable"->nullable</A-> :: <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"->Regex</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Adelta"->delta</A-> :: <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"->Regex</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> -> <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"->Regex</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AmatchWithRE"->matchWithRE</A-> :: <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"->Regex</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3A%3C%26%26%3E"->(<&&>)</A-> :: (<A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A->) -> (<A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A->) -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3A%3C%7C%7C%3E"->(<||>)</A-> :: (<A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A->) -> (<A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A->) -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->data</SPAN-> <A NAME="t%3ARegex"-></A-><B->Regex</B-> </TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#Regex"->Source</A-></TD-></TR-></TABLE-></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:Regex')" ALT="show/hide"-> Instances</TD-></TR-><TR-><TD CLASS="body"-><DIV ID="i:Regex" STYLE="display:block;"-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Show.html#t%3AShow"->Show</A-> <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"->Regex</A-></TD-></TR-></TABLE-></DIV-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Achars"-></A-><B->chars</B-> :: (<A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A->) -> [<A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A->]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#chars"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->enumerate all chars specified by a predicate-</P-><P->this function is expensive, it should only be used for testing-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AcharRngs"-></A-><B->charRngs</B-> :: [<A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A->] -> [(<A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A->, <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A->)]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#charRngs"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkZero"-></A-><B->mkZero</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"->Regex</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#mkZero"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkUnit"-></A-><B->mkUnit</B-> :: <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"->Regex</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#mkUnit"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkSym"-></A-><B->mkSym</B-> :: (<A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A->) -> <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"->Regex</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#mkSym"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkSym1"-></A-><B->mkSym1</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> -> <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"->Regex</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#mkSym1"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkSymRng"-></A-><B->mkSymRng</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> -> <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"->Regex</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#mkSymRng"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkDot"-></A-><B->mkDot</B-> :: <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"->Regex</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#mkDot"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkStar"-></A-><B->mkStar</B-> :: <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"->Regex</A-> -> <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"->Regex</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#mkStar"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkAlt"-></A-><B->mkAlt</B-> :: <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"->Regex</A-> -> <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"->Regex</A-> -> <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"->Regex</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#mkAlt"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkSeq"-></A-><B->mkSeq</B-> :: <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"->Regex</A-> -> <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"->Regex</A-> -> <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"->Regex</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#mkSeq"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkRep"-></A-><B->mkRep</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-> -> <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"->Regex</A-> -> <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"->Regex</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#mkRep"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkRng"-></A-><B->mkRng</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-> -> <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"->Regex</A-> -> <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"->Regex</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#mkRng"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkOpt"-></A-><B->mkOpt</B-> :: <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"->Regex</A-> -> <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"->Regex</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#mkOpt"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkDif"-></A-><B->mkDif</B-> :: <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"->Regex</A-> -> <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"->Regex</A-> -> <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"->Regex</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#mkDif"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkCompl"-></A-><B->mkCompl</B-> :: <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"->Regex</A-> -> <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"->Regex</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#mkCompl"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisZero"-></A-><B->isZero</B-> :: <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"->Regex</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#isZero"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Anullable"-></A-><B->nullable</B-> :: <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"->Regex</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#nullable"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Adelta"-></A-><B->delta</B-> :: <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"->Regex</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> -> <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"->Regex</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#delta"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmatchWithRE"-></A-><B->matchWithRE</B-> :: <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"->Regex</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#matchWithRE"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3A%3C%26%26%3E"-></A-><B->(<&&>)</B-> :: (<A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A->) -> (<A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A->) -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#%3C%26%26%3E"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3A%3C%7C%7C%3E"-></A-><B->(<||>)</B-> :: (<A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A->) -> (<A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A->) -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"->Char</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#%3C%7C%7C%3E"->Source</A-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-RelaxNG-XmlSchema-RegexMatch.html
@@ -1,820 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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.XmlSchema.RegexMatch</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-><SCRIPT SRC="haddock-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-RegexMatch.html"->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.XmlSchema.RegexMatch</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 CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"-><P->Convenient functions for W3C XML Schema Regular Expression Matcher.- For internals see Text.XML.HXT.RelaxNG.XmlSchema.Regex-</P-><P->Grammar can be found under <A HREF="http://www.w3.org/TR/xmlschema11-2/#regexs"->http://www.w3.org/TR/xmlschema11-2/#regexs</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"-><A HREF="#v%3AmatchRE"->matchRE</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AsplitRE"->splitRE</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->, <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->)</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AsedRE"->sedRE</A-> :: (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->) -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AtokenizeRE"->tokenizeRE</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> [<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AtokenizeRE%27"->tokenizeRE'</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> [<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Either.html#t%3AEither"->Either</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Amatch"->match</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Atokenize"->tokenize</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> [<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Atokenize%27"->tokenize'</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> [<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Either.html#t%3AEither"->Either</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Ased"->sed</A-> :: (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->) -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Asplit"->split</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->, <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmatchRE"-></A-><B->matchRE</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-RegexMatch.html#matchRE"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->match a string with a regular expression-</P-><P->First argument is the regex, second the input string,- if the regex is not well formed, <TT->Nothing</TT-> is returned,- else <TT->Just</TT-> the match result-</P-><P->Examples:-</P-><PRE-> matchRE "x*" "xxx" = Just True- matchRE "x" "xxx" = Just False- matchRE "[" "xxx" = Nothing-</PRE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AsplitRE"-></A-><B->splitRE</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->, <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->)</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-RegexMatch.html#splitRE"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->split a string by taking the longest prefix matching a regular expression-</P-><P-><TT->Nothing</TT-> is returned in case of a syntactically wrong regex string- or in case there is no matching prefix, else the pair of prefix and rest is returned-</P-><P->examples:-</P-><PRE-> splitRE "a*b" "abc" = Just ("ab","c")- splitRE "a*" "bc" = Just ("", "bc")- splitRE "a+" "bc" = Nothing- splitRE "[" "abc" = Nothing-</PRE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AsedRE"-></A-><B->sedRE</B-> :: (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->) -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-RegexMatch.html#sedRE"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->sed like editing function-</P-><P->All matching tokens are edited by the 1. argument, the editing function,- all other chars remain as they are-</P-><P->examples:-</P-><PRE-> sedRE (const "b") "a" "xaxax" = Just "xbxbx"- sedRE (\ x -> x ++ x) "a" "xax" = Just "xaax"- sedRE undefined "[" undefined = Nothing-</PRE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AtokenizeRE"-></A-><B->tokenizeRE</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> [<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-RegexMatch.html#tokenizeRE"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->split a string into tokens (words) by giving a regular expression- which all tokens must match-</P-><P->This can be used for simple tokenizers.- The words in the result list contain at least one char.- All none matching chars are discarded. If the given regex contains syntax errors,- <TT->Nothing</TT-> is returned-</P-><P->examples:-</P-><PRE-> tokenizeRE "a*b" "" = Just []- tokenizeRE "a*b" "abc" = Just ["ab"]- tokenizeRE "a*b" "abaab ab" = Just ["ab","aab","ab"]-- tokenizeRE "[a-z]{2,}|[0-9]{2,}|[0-9]+[.][0-9]+" "ab123 456.7abc"- = Just ["ab","123","456.7","abc"]-- tokenizeRE "[a-z]*|[0-9]{2,}|[0-9]+[.][0-9]+" "cab123 456.7abc"- = Just ["cab","123","456.7","abc"]-- tokenizeRE "[^ \t\n\r]*" "abc def\t\n\rxyz"- = Just ["abc","def","xyz"]-- tokenizeRE "[^ \t\n\r]*" = words-</PRE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AtokenizeRE%27"-></A-><B->tokenizeRE'</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> [<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Either.html#t%3AEither"->Either</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-RegexMatch.html#tokenizeRE%27"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->split a string into tokens and delimierter by giving a regular expression- wich all tokens must match-</P-><P->This is a generalisation of the above <TT-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-RegexMatch.html#v%3AtokenizeRE"->tokenizeRE</A-></TT-> functions.- The none matching char sequences are marked with <TT->Left</TT->, the matching ones are marked with <TT->Right</TT->-</P-><P->If the regular expression contains syntax errors <TT->Nothing</TT-> is returned-</P-><P->The following Law holds:-</P-><PRE-> concat . map (either id id) . fromJust . tokenizeRE' re == id-</PRE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Amatch"-></A-><B->match</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-RegexMatch.html#match"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->convenient function for matchRE-</P-><P->syntax errors in R.E. are interpreted as no match found-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Atokenize"-></A-><B->tokenize</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> [<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-RegexMatch.html#tokenize"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->convenient function for tokenizeRE a string-</P-><P->syntax errors in R.E. result in an empty list-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Atokenize%27"-></A-><B->tokenize'</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> [<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Either.html#t%3AEither"->Either</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-RegexMatch.html#tokenize%27"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->convenient function for tokenizeRE'-</P-><P->When the regular expression contains errors <TT->[Left input]</TT-> is returned, that means tokens are found-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Ased"-></A-><B->sed</B-> :: (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->) -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-RegexMatch.html#sed"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->convenient function for sedRE-</P-><P->When the regular expression contains errors, sed is the identity, else- the funtionality is like <TT-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-RegexMatch.html#v%3AsedRE"->sedRE</A-></TT->-</P-><PRE-> sed undefined "[" == id-</PRE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Asplit"-></A-><B->split</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->, <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->)</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-RegexMatch.html#split"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->convenient function for splitRE-</P-><P->syntax errors in R.E. are interpreted as no matching prefix found-</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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-RelaxNG-XmlSchema-RegexParser.html
@@ -1,149 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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.XmlSchema.RegexParser</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-><SCRIPT SRC="haddock-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-RegexParser.html"->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.XmlSchema.RegexParser</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 CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"-><P->W3C XML Schema Regular Expression Parser-</P-><P->This parser supports the full W3C standard, the- complete grammar can be found under <A HREF="http://www.w3.org/TR/xmlschema11-2/#regexs"->http://www.w3.org/TR/xmlschema11-2/#regexs</A->-</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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AparseRegex"-></A-><B->parseRegex</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Either.html#t%3AEither"->Either</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"->Regex</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-RelaxNG-XmlSchema-RegexParser.html#parseRegex"->Source</A-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-RelaxNG.html
@@ -1,152 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-RelaxNG.html"->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 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="decl"->module <A HREF="Text-XML-HXT-RelaxNG-XmlSchema-RegexMatch.html"->Text.XML.HXT.RelaxNG.XmlSchema.RegexMatch</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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-Version.html
@@ -1,104 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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.Version</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-><SCRIPT SRC="haddock-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-Version.html"->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.Version</FONT-></TD-></TR-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Ahxt_version"-></A-><B->hxt_version</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-Version.html#hxt_version"->Source</A-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
@@ -1,419 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-XPath-NavTree.html"->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 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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AparentAxis"-></A-><B->parentAxis</B-> :: <A HREF="Data-NavTree.html#t%3ANavTree"->NavTree</A-> a -> [<A HREF="Data-NavTree.html#t%3ANavTree"->NavTree</A-> a]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-NavTree.html#parentAxis"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AancestorAxis"-></A-><B->ancestorAxis</B-> :: <A HREF="Data-NavTree.html#t%3ANavTree"->NavTree</A-> a -> [<A HREF="Data-NavTree.html#t%3ANavTree"->NavTree</A-> a]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-NavTree.html#ancestorAxis"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AancestorOrSelfAxis"-></A-><B->ancestorOrSelfAxis</B-> :: <A HREF="Data-NavTree.html#t%3ANavTree"->NavTree</A-> a -> [<A HREF="Data-NavTree.html#t%3ANavTree"->NavTree</A-> a]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-NavTree.html#ancestorOrSelfAxis"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AchildAxis"-></A-><B->childAxis</B-> :: <A HREF="Data-NavTree.html#t%3ANavTree"->NavTree</A-> a -> [<A HREF="Data-NavTree.html#t%3ANavTree"->NavTree</A-> a]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-NavTree.html#childAxis"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AdescendantAxis"-></A-><B->descendantAxis</B-> :: <A HREF="Data-NavTree.html#t%3ANavTree"->NavTree</A-> a -> [<A HREF="Data-NavTree.html#t%3ANavTree"->NavTree</A-> a]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-NavTree.html#descendantAxis"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AdescendantOrSelfAxis"-></A-><B->descendantOrSelfAxis</B-> :: <A HREF="Data-NavTree.html#t%3ANavTree"->NavTree</A-> a -> [<A HREF="Data-NavTree.html#t%3ANavTree"->NavTree</A-> a]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-NavTree.html#descendantOrSelfAxis"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AfollowingSiblingAxis"-></A-><B->followingSiblingAxis</B-> :: <A HREF="Data-NavTree.html#t%3ANavTree"->NavTree</A-> a -> [<A HREF="Data-NavTree.html#t%3ANavTree"->NavTree</A-> a]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-NavTree.html#followingSiblingAxis"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AprecedingSiblingAxis"-></A-><B->precedingSiblingAxis</B-> :: <A HREF="Data-NavTree.html#t%3ANavTree"->NavTree</A-> a -> [<A HREF="Data-NavTree.html#t%3ANavTree"->NavTree</A-> a]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-NavTree.html#precedingSiblingAxis"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AselfAxis"-></A-><B->selfAxis</B-> :: <A HREF="Data-NavTree.html#t%3ANavTree"->NavTree</A-> a -> [<A HREF="Data-NavTree.html#t%3ANavTree"->NavTree</A-> a]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-NavTree.html#selfAxis"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AfollowingAxis"-></A-><B->followingAxis</B-> :: <A HREF="Data-NavTree.html#t%3ANavTree"->NavTree</A-> a -> [<A HREF="Data-NavTree.html#t%3ANavTree"->NavTree</A-> a]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-NavTree.html#followingAxis"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AprecedingAxis"-></A-><B->precedingAxis</B-> :: <A HREF="Data-NavTree.html#t%3ANavTree"->NavTree</A-> a -> [<A HREF="Data-NavTree.html#t%3ANavTree"->NavTree</A-> a]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-NavTree.html#precedingAxis"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-> -> [<A HREF="Data-NavTree.html#t%3ANavTree"->NavTree</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"->XNode</A->]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-NavTree.html#attributeAxis"->Source</A-></TD-></TR-></TABLE-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-XPath-XPathArithmetic.html
@@ -1,348 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-XPath-XPathArithmetic.html"->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 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-> -> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"->XPathValue</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%3AxPathMod"->xPathMod</A-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AOp"->Op</A-> -> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"->XPathValue</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%3AxPathDiv"->xPathDiv</A-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AOp"->Op</A-> -> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"->XPathValue</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%3AxPathAdd"->xPathAdd</A-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AOp"->Op</A-> -> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"->XPathValue</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%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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxPathMulti"-></A-><B->xPathMulti</B-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AOp"->Op</A-> -> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"->XPathValue</A-> -> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"->XPathFilter</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-XPathArithmetic.html#xPathMulti"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Multiplication-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxPathMod"-></A-><B->xPathMod</B-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AOp"->Op</A-> -> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"->XPathValue</A-> -> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"->XPathFilter</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-XPathArithmetic.html#xPathMod"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Modulo-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxPathDiv"-></A-><B->xPathDiv</B-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AOp"->Op</A-> -> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"->XPathValue</A-> -> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"->XPathFilter</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-XPathArithmetic.html#xPathDiv"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxPathAdd"-></A-><B->xPathAdd</B-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AOp"->Op</A-> -> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"->XPathValue</A-> -> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"->XPathFilter</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-XPathArithmetic.html#xPathAdd"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxPathUnary"-></A-><B->xPathUnary</B-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"->XPathFilter</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-XPathArithmetic.html#xPathUnary"->Source</A-></TD-></TR-></TABLE-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-XPath-XPathDataTypes.html
@@ -1,3034 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-XPath-XPathDataTypes.html"->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-><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 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-> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"->Expr</A->) (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> <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-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AFloat"->Float</A-></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-QualifiedName.html#t%3AQName"->QName</A-></TD-></TR-><TR-><TD CLASS="decl"->| <A HREF="#v%3API"->PI</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></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-> = <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><SPAN CLASS="keyword"->type</SPAN-> <A HREF="#t%3ALocalName"->LocalName</A-> = <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></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-> = <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><SPAN CLASS="keyword"->type</SPAN-> <A HREF="#t%3AFctName"->FctName</A-> = <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></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-> = <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><SPAN CLASS="keyword"->type</SPAN-> <A HREF="#t%3AConLen"->ConLen</A-> = <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-></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-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></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-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-></TR-><TR-><TD CLASS="decl"->| <A HREF="#v%3AXPVError"->XPVError</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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%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-> -> <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-QualifiedName.html#t%3AQName"->QName</A->, <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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%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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->data</SPAN-> <A NAME="t%3AExpr"-></A-><B->Expr</B-> </TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-XPathDataTypes.html#Expr"->Source</A-></TD-></TR-></TABLE-></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-> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"->Expr</A->) (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> <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"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Eq.html#t%3AEq"->Eq</A-> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"->Expr</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Show.html#t%3AShow"->Show</A-> <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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->data</SPAN-> <A NAME="t%3AOp"-></A-><B->Op</B-> </TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-XPathDataTypes.html#Op"->Source</A-></TD-></TR-></TABLE-></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"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Eq.html#t%3AEq"->Eq</A-> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AOp"->Op</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Show.html#t%3AShow"->Show</A-> <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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->data</SPAN-> <A NAME="t%3AXPNumber"-></A-><B->XPNumber</B-> </TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-XPathDataTypes.html#XPNumber"->Source</A-></TD-></TR-></TABLE-></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-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AFloat"->Float</A-></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"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Eq.html#t%3AEq"->Eq</A-> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPNumber"->XPNumber</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Ord.html#t%3AOrd"->Ord</A-> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPNumber"->XPNumber</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Show.html#t%3AShow"->Show</A-> <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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->data</SPAN-> <A NAME="t%3ALocationPath"-></A-><B->LocationPath</B-> </TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-XPathDataTypes.html#LocationPath"->Source</A-></TD-></TR-></TABLE-></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"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Eq.html#t%3AEq"->Eq</A-> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ALocationPath"->LocationPath</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Show.html#t%3AShow"->Show</A-> <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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->data</SPAN-> <A NAME="t%3APath"-></A-><B->Path</B-> </TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-XPathDataTypes.html#Path"->Source</A-></TD-></TR-></TABLE-></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"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Eq.html#t%3AEq"->Eq</A-> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3APath"->Path</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Show.html#t%3AShow"->Show</A-> <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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->data</SPAN-> <A NAME="t%3AXStep"-></A-><B->XStep</B-> </TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-XPathDataTypes.html#XStep"->Source</A-></TD-></TR-></TABLE-></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"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Eq.html#t%3AEq"->Eq</A-> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXStep"->XStep</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Show.html#t%3AShow"->Show</A-> <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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->data</SPAN-> <A NAME="t%3AAxisSpec"-></A-><B->AxisSpec</B-> </TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-XPathDataTypes.html#AxisSpec"->Source</A-></TD-></TR-></TABLE-></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"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Eq.html#t%3AEq"->Eq</A-> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AAxisSpec"->AxisSpec</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Show.html#t%3AShow"->Show</A-> <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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->data</SPAN-> <A NAME="t%3ANodeTest"-></A-><B->NodeTest</B-> </TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-XPathDataTypes.html#NodeTest"->Source</A-></TD-></TR-></TABLE-></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-QualifiedName.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-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></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"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Eq.html#t%3AEq"->Eq</A-> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANodeTest"->NodeTest</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Show.html#t%3AShow"->Show</A-> <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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->data</SPAN-> <A NAME="t%3AXPathNode"-></A-><B->XPathNode</B-> </TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-XPathDataTypes.html#XPathNode"->Source</A-></TD-></TR-></TABLE-></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"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Eq.html#t%3AEq"->Eq</A-> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathNode"->XPathNode</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Show.html#t%3AShow"->Show</A-> <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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-XPathDataTypes.html#Name"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->type</SPAN-> <A NAME="t%3ANamePrefix"-></A-><B->NamePrefix</B-> = <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-XPathDataTypes.html#NamePrefix"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->type</SPAN-> <A NAME="t%3ALocalName"-></A-><B->LocalName</B-> = <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-XPathDataTypes.html#LocalName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-XPathDataTypes.html#VarName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Variable name-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->type</SPAN-> <A NAME="t%3ALiteral"-></A-><B->Literal</B-> = <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-XPathDataTypes.html#Literal"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->a string-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->type</SPAN-> <A NAME="t%3AFctName"-></A-><B->FctName</B-> = <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-XPathDataTypes.html#FctName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Function name-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-XPathDataTypes.html#FctArguments"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Function arguments-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-XPathDataTypes.html#Context"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Evaluation context-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->type</SPAN-> <A NAME="t%3AConPos"-></A-><B->ConPos</B-> = <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-XPathDataTypes.html#ConPos"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Context position-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->type</SPAN-> <A NAME="t%3AConLen"-></A-><B->ConLen</B-> = <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-XPathDataTypes.html#ConLen"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Context length-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-XPathDataTypes.html#ConNode"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Context node-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->data</SPAN-> <A NAME="t%3AXPathValue"-></A-><B->XPathValue</B-> </TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-XPathDataTypes.html#XPathValue"->Source</A-></TD-></TR-></TABLE-></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-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></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-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="rdoc"->string value-</TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3AXPVError"-></A-><B->XPVError</B-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></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"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Eq.html#t%3AEq"->Eq</A-> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"->XPathValue</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Ord.html#t%3AOrd"->Ord</A-> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"->XPathValue</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Show.html#t%3AShow"->Show</A-> <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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-XPathDataTypes.html#NavXmlTree"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Node of navigable tree representation-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-XPathDataTypes.html#NavXmlTrees"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->List of nodes of navigable tree representation-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-XPathDataTypes.html#NodeSet"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-> -> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"->XPathValue</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-XPathDataTypes.html#XPathFilter"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-XPathDataTypes.html#VarTab"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->type</SPAN-> <A NAME="t%3AKeyTab"-></A-><B->KeyTab</B-> = [(<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A->, <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->, <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANavXmlTree"->NavXmlTree</A->)]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-XPathDataTypes.html#KeyTab"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-XPathDataTypes.html#Env"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AvarEnv"-></A-><B->varEnv</B-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AEnv"->Env</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-XPathDataTypes.html#varEnv"->Source</A-></TD-></TR-></TABLE-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-XPath-XPathEval.html
@@ -1,545 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-XPath-XPathEval.html"->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 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-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <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%3AgetXPathWithNsEnv"->getXPathWithNsEnv</A-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <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%3AgetXPathSubTrees"->getXPathSubTrees</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <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%3AgetXPathSubTreesWithNsEnv"->getXPathSubTreesWithNsEnv</A-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <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%3AgetXPathNodeSet"->getXPathNodeSet</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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%3AgetXPathNodeSetWithNsEnv"->getXPathNodeSetWithNsEnv</A-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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%3AevalExpr"->evalExpr</A-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AEnv"->Env</A-> -> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AContext"->Context</A-> -> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"->Expr</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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetXPath"-></A-><B->getXPath</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-XPathEval.html#getXPath"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetXPathWithNsEnv"-></A-><B->getXPathWithNsEnv</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-XPathEval.html#getXPathWithNsEnv"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetXPathSubTrees"-></A-><B->getXPathSubTrees</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-XPathEval.html#getXPathSubTrees"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetXPathSubTreesWithNsEnv"-></A-><B->getXPathSubTreesWithNsEnv</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-XPathEval.html#getXPathSubTreesWithNsEnv"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetXPathNodeSet"-></A-><B->getXPathNodeSet</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-XPathEval.html#getXPathNodeSet"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetXPathNodeSetWithNsEnv"-></A-><B->getXPathNodeSetWithNsEnv</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"->Attributes</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-XPathEval.html#getXPathNodeSetWithNsEnv"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AevalExpr"-></A-><B->evalExpr</B-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AEnv"->Env</A-> -> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AContext"->Context</A-> -> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"->Expr</A-> -> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"->XPathFilter</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-XPathEval.html#evalExpr"->Source</A-></TD-></TR-></TABLE-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-XPath-XPathFct.html
@@ -1,804 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-XPath-XPathFct.html"->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-><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 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-> -> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AEnv"->Env</A-> -> [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"->XPathValue</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"-><A HREF="#v%3AevalFct"->evalFct</A-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AFctName"->FctName</A-> -> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AEnv"->Env</A-> -> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AContext"->Context</A-> -> [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"->XPathValue</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"-><A HREF="#v%3AtoXValue"->toXValue</A-> :: <A HREF="Text-XML-HXT-XPath-XPathFct.html#t%3AXFct"->XFct</A-> -> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AContext"->Context</A-> -> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AEnv"->Env</A-> -> [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"->XPathValue</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"-><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-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</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%3AstringValue"->stringValue</A-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANavXmlTree"->NavXmlTree</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"-><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-> -> [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANavXmlTree"->NavXmlTree</A->] -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></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-> -> <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-> -> <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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-> -> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AEnv"->Env</A-> -> [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"->XPathValue</A->] -> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"->XPathValue</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-XPathFct.html#XFct"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AevalFct"-></A-><B->evalFct</B-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AFctName"->FctName</A-> -> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AEnv"->Env</A-> -> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AContext"->Context</A-> -> [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"->XPathValue</A->] -> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"->XPathValue</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-XPathFct.html#evalFct"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AtoXValue"-></A-><B->toXValue</B-> :: <A HREF="Text-XML-HXT-XPath-XPathFct.html#t%3AXFct"->XFct</A-> -> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AContext"->Context</A-> -> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AEnv"->Env</A-> -> [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"->XPathValue</A->] -> [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"->XPathValue</A->]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-XPathFct.html#toXValue"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Axnumber"-></A-><B->xnumber</B-> :: <A HREF="Text-XML-HXT-XPath-XPathFct.html#t%3AXFct"->XFct</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-XPathFct.html#xnumber"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Axboolean"-></A-><B->xboolean</B-> :: <A HREF="Text-XML-HXT-XPath-XPathFct.html#t%3AXFct"->XFct</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-XPathFct.html#xboolean"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Axstring"-></A-><B->xstring</B-> :: <A HREF="Text-XML-HXT-XPath-XPathFct.html#t%3AXFct"->XFct</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-XPathFct.html#xstring"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetConvFct"-></A-><B->getConvFct</B-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"->XPathValue</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> <A HREF="Text-XML-HXT-XPath-XPathFct.html#t%3AXFct"->XFct</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-XPathFct.html#getConvFct"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AstringValue"-></A-><B->stringValue</B-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANavXmlTree"->NavXmlTree</A-> -> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"->XPathValue</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-XPathFct.html#stringValue"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AremDups"-></A-><B->remDups</B-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"->XPathFilter</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-XPathFct.html#remDups"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisNotInNodeList"-></A-><B->isNotInNodeList</B-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANavXmlTree"->NavXmlTree</A-> -> [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANavXmlTree"->NavXmlTree</A->] -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-XPathFct.html#isNotInNodeList"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Check whether a node is not a part of a node list. Needed to implement matching & testing in xslt.-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AcreateDocumentOrder"-></A-><B->createDocumentOrder</B-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"->XPathFilter</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-XPathFct.html#createDocumentOrder"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AcreateDocumentOrderReverse"-></A-><B->createDocumentOrderReverse</B-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathFilter"->XPathFilter</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-XPathFct.html#createDocumentOrderReverse"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetVarTab"-></A-><B->getVarTab</B-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AEnv"->Env</A-> -> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AVarTab"->VarTab</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-XPathFct.html#getVarTab"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetKeyTab"-></A-><B->getKeyTab</B-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AEnv"->Env</A-> -> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AKeyTab"->KeyTab</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-XPathFct.html#getKeyTab"->Source</A-></TD-></TR-></TABLE-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-XPath-XPathKeywords.html
@@ -1,144 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-XPath-XPathKeywords.html"->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 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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Aa_ancestor_or_self"-></A-><B->a_ancestor_or_self</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-XPathKeywords.html#a_ancestor_or_self"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3An_text"-></A-><B->n_text</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-XPathKeywords.html#n_text"->Source</A-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-XPath-XPathParser.html
@@ -1,231 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-XPath-XPathParser.html"->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 CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"->the XPath Parser-</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-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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"-><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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AparseNumber"-></A-><B->parseNumber</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"->XPathValue</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-XPathParser.html#parseNumber"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AparseXPath"-></A-><B->parseXPath</B-> :: XParser <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"->Expr</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-XPathParser.html#parseXPath"->Source</A-></TD-></TR-></TABLE-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-XPath-XPathToNodeSet.html
@@ -1,186 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-XPath-XPathToNodeSet.html"->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 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-> -> <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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxPValue2NodeSet"-></A-><B->xPValue2NodeSet</B-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"->XPathValue</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"->XmlNodeSet</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-XPathToNodeSet.html#xPValue2NodeSet"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AemptyNodeSet"-></A-><B->emptyNodeSet</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"->XmlNodeSet</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-XPathToNodeSet.html#emptyNodeSet"->Source</A-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-XPath-XPathToString.html
@@ -1,380 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-XPath-XPathToString.html"->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-><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 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-> -> 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-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></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-> -> <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-> -> 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->] -> 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] -> [<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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Aexpr2XPathTree"-></A-><B->expr2XPathTree</B-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"->Expr</A-> -> XPathTree</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-XPathToString.html#expr2XPathTree"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxPValue2String"-></A-><B->xPValue2String</B-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"->XPathValue</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-XPathToString.html#xPValue2String"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxPValue2XmlTrees"-></A-><B->xPValue2XmlTrees</B-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPathValue"->XPathValue</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"->XmlTrees</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-XPathToString.html#xPValue2XmlTrees"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Convert a a XPath-value into XmlTrees.-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Ant2XPathTree"-></A-><B->nt2XPathTree</B-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANodeTest"->NodeTest</A-> -> XPathTree</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-XPathToString.html#nt2XPathTree"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Apred2XPathTree"-></A-><B->pred2XPathTree</B-> :: [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"->Expr</A->] -> XPathTree</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-XPathToString.html#pred2XPathTree"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AtoXPathTree"-></A-><B->toXPathTree</B-> :: [<A HREF="Data-NavTree.html#t%3ANavTree"->NavTree</A-> a] -> [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"->NTree</A-> a]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XPath-XPathToString.html#toXPathTree"->Source</A-></TD-></TR-></TABLE-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-XPath.html
@@ -1,125 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-XPath.html"->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 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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-XSLT-Application.html
@@ -1,217 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-XSLT-Application.html"->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 CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"-><P->Version : $Id: Application.hs,v 1.7 2007<EM->05</EM->02 06:41:05 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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AapplyStylesheet"-></A-><B->applyStylesheet</B-> :: <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ACompiledStylesheet"->CompiledStylesheet</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> [<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A->]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-Application.html#applyStylesheet"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AapplyStylesheetWParams"-></A-><B->applyStylesheetWParams</B-> :: <A HREF="Text-XML-HXT-XSLT-Application.html#t%3AXPathParams"->XPathParams</A-> -> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ACompiledStylesheet"->CompiledStylesheet</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> [<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A->]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-Application.html#applyStylesheetWParams"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->type</SPAN-> <A NAME="t%3AXPathParams"-></A-><B->XPathParams</B-> = <A HREF="/usr/local/share/doc/ghc/libraries/containers/Data-Map.html#t%3AMap"->Map</A-> <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="declbut"-><A HREF="src/Text-XML-HXT-XSLT-Application.html#XPathParams"->Source</A-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-XSLT-Common.html
@@ -1,1348 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-XSLT-Common.html"->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 CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"->Common imports and functions for HXSLT-</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-XmlNode.html"->Text.XML.HXT.DOM.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-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-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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AfilterTree"-></A-><B->filterTree</B-> :: <A HREF="Data-Tree-Class.html#t%3ATree"->Tree</A-> t => (a -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A->) -> t a -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> (t a)</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-Common.html#filterTree"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmapTreeCtx"-></A-><B->mapTreeCtx</B-> :: <A HREF="Data-Tree-Class.html#t%3ATree"->Tree</A-> t => (c -> a -> (c, b)) -> c -> t a -> t b</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-Common.html#mapTreeCtx"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AfilterTreeCtx"-></A-><B->filterTreeCtx</B-> :: <A HREF="Data-Tree-Class.html#t%3ATree"->Tree</A-> t => (c -> a -> (c, <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A->)) -> c -> t a -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> (t a)</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-Common.html#filterTreeCtx"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AzipTreeWith"-></A-><B->zipTreeWith</B-> :: <A HREF="Data-Tree-Class.html#t%3ATree"->Tree</A-> t => (a -> b -> c) -> t a -> t b -> t c</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-Common.html#zipTreeWith"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AzipTree"-></A-><B->zipTree</B-> :: <A HREF="Data-Tree-Class.html#t%3ATree"->Tree</A-> t => t a -> t b -> t (a, b)</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-Common.html#zipTree"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AunzipTree"-></A-><B->unzipTree</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AFunctor"->Functor</A-> t => t (a, b) -> (t a, t b)</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-Common.html#unzipTree"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AshowTrees"-></A-><B->showTrees</B-> :: [<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A->] -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-Common.html#showTrees"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisElemType"-></A-><B->isElemType</B-> :: <A HREF="Text-XML-HXT-DOM-XmlNode.html#t%3AXmlNode"->XmlNode</A-> n => <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> n -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-Common.html#isElemType"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisAttrType"-></A-><B->isAttrType</B-> :: <A HREF="Text-XML-HXT-DOM-XmlNode.html#t%3AXmlNode"->XmlNode</A-> n => <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> n -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-Common.html#isAttrType"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisWhitespaceNode"-></A-><B->isWhitespaceNode</B-> :: <A HREF="Text-XML-HXT-DOM-XmlNode.html#t%3AXmlNode"->XmlNode</A-> n => n -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-Common.html#isWhitespaceNode"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AcollectTextnodes"-></A-><B->collectTextnodes</B-> :: [<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A->] -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-Common.html#collectTextnodes"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AtryFetchAttribute"-></A-><B->tryFetchAttribute</B-> :: <A HREF="Text-XML-HXT-DOM-XmlNode.html#t%3AXmlNode"->XmlNode</A-> n => n -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-Common.html#tryFetchAttribute"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AfetchAttributeWDefault"-></A-><B->fetchAttributeWDefault</B-> :: <A HREF="Text-XML-HXT-DOM-XmlNode.html#t%3AXmlNode"->XmlNode</A-> n => n -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-Common.html#fetchAttributeWDefault"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AfetchAttribute"-></A-><B->fetchAttribute</B-> :: <A HREF="Text-XML-HXT-DOM-XmlNode.html#t%3AXmlNode"->XmlNode</A-> n => n -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-Common.html#fetchAttribute"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AhasAttribute"-></A-><B->hasAttribute</B-> :: <A HREF="Text-XML-HXT-DOM-XmlNode.html#t%3AXmlNode"->XmlNode</A-> n => n -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-Common.html#hasAttribute"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AsetAttribute"-></A-><B->setAttribute</B-> :: <A HREF="Text-XML-HXT-DOM-XmlNode.html#t%3AXmlNode"->XmlNode</A-> n => <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> n -> n</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-Common.html#setAttribute"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->data</SPAN-> <A NAME="t%3AExName"-></A-><B->ExName</B-> </TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-Common.html#ExName"->Source</A-></TD-></TR-></TABLE-></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-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></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"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Eq.html#t%3AEq"->Eq</A-> <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"->ExName</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Ord.html#t%3AOrd"->Ord</A-> <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"->ExName</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Show.html#t%3AShow"->Show</A-> <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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkExName"-></A-><B->mkExName</B-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"->ExName</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-Common.html#mkExName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AexUri"-></A-><B->exUri</B-> :: <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"->ExName</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-Common.html#exUri"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AparseExName"-></A-><B->parseExName</B-> :: <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AUriMapping"->UriMapping</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"->ExName</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-Common.html#parseExName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->type</SPAN-> <A NAME="t%3AUriMapping"-></A-><B->UriMapping</B-> = <A HREF="/usr/local/share/doc/ghc/libraries/containers/Data-Map.html#t%3AMap"->Map</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-Common.html#UriMapping"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetUriMap"-></A-><B->getUriMap</B-> :: <A HREF="Text-XML-HXT-DOM-XmlNode.html#t%3AXmlNode"->XmlNode</A-> n => n -> <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AUriMapping"->UriMapping</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-Common.html#getUriMap"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AsetUriMap"-></A-><B->setUriMap</B-> :: <A HREF="Text-XML-HXT-DOM-XmlNode.html#t%3AXmlNode"->XmlNode</A-> n => <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AUriMapping"->UriMapping</A-> -> n -> n</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-Common.html#setUriMap"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AuriMap2Attrs"-></A-><B->uriMap2Attrs</B-> :: <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AUriMapping"->UriMapping</A-> -> [<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A->]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-Common.html#uriMap2Attrs"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AexpandNSDecls"-></A-><B->expandNSDecls</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-Common.html#expandNSDecls"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AlookupPrefix"-></A-><B->lookupPrefix</B-> :: <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AUriMapping"->UriMapping</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-Common.html#lookupPrefix"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisNsAttr"-></A-><B->isNsAttr</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-Common.html#isNsAttr"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkLiteralExpr"-></A-><B->mkLiteralExpr</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"->Expr</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-Common.html#mkLiteralExpr"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkStringExpr"-></A-><B->mkStringExpr</B-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"->Expr</A-> -> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"->Expr</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-Common.html#mkStringExpr"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkBoolExpr"-></A-><B->mkBoolExpr</B-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"->Expr</A-> -> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"->Expr</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-Common.html#mkBoolExpr"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkTrueExpr"-></A-><B->mkTrueExpr</B-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"->Expr</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-Common.html#mkTrueExpr"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AconcatExpr"-></A-><B->concatExpr</B-> :: [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"->Expr</A->] -> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"->Expr</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-Common.html#concatExpr"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AsplitExpr"-></A-><B->splitExpr</B-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"->Expr</A-> -> [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"->Expr</A->]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-Common.html#splitExpr"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AunionExpr"-></A-><B->unionExpr</B-> :: [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"->Expr</A->] -> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"->Expr</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-Common.html#unionExpr"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AsplitMatchByPrio"-></A-><B->splitMatchByPrio</B-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"->Expr</A-> -> [(<A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AFloat"->Float</A->, <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"->Expr</A->)]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-Common.html#splitMatchByPrio"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AcomputePriority"-></A-><B->computePriority</B-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"->Expr</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AFloat"->Float</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-Common.html#computePriority"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AcomputeNTestPriority"-></A-><B->computeNTestPriority</B-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANodeTest"->NodeTest</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AFloat"->Float</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-Common.html#computeNTestPriority"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisMatchExpr"-></A-><B->isMatchExpr</B-> :: <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"->Expr</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-Common.html#isMatchExpr"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AfromJustErr"-></A-><B->fromJustErr</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> a -> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-Common.html#fromJustErr"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AreadWDefault"-></A-><B->readWDefault</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Read.html#t%3ARead"->Read</A-> a => a -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> a</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-Common.html#readWDefault"->Source</A-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-XSLT-Compilation.html
@@ -1,165 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-XSLT-Compilation.html"->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 CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"->The compilation functions for XSLT stylesheets-</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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AprepareXSLTDocument"-></A-><B->prepareXSLTDocument</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-Compilation.html#prepareXSLTDocument"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AassembleStylesheet"-></A-><B->assembleStylesheet</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ACompiledStylesheet"->CompiledStylesheet</A->] -> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ACompiledStylesheet"->CompiledStylesheet</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-Compilation.html#assembleStylesheet"->Source</A-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-XSLT-CompiledStylesheet.html
@@ -1,2160 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html"->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 CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"-><P->Version : $Id: CompiledStylesheet.hs,v 1.3 2007<EM->05</EM->02 06:41: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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->data</SPAN-> <A NAME="t%3ACompiledStylesheet"-></A-><B->CompiledStylesheet</B-> </TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#CompiledStylesheet"->Source</A-></TD-></TR-></TABLE-></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->] (<A HREF="/usr/local/share/doc/ghc/libraries/containers/Data-Map.html#t%3AMap"->Map</A-> <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"->ExName</A-> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANamedRule"->NamedRule</A->) (<A HREF="/usr/local/share/doc/ghc/libraries/containers/Data-Map.html#t%3AMap"->Map</A-> <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="/usr/local/share/doc/ghc/libraries/containers/Data-Map.html#t%3AMap"->Map</A-> <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"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Show.html#t%3AShow"->Show</A-> <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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetMatchRules"-></A-><B->getMatchRules</B-> :: <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ACompiledStylesheet"->CompiledStylesheet</A-> -> [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AMatchRule"->MatchRule</A->]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#getMatchRules"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetNamedRules"-></A-><B->getNamedRules</B-> :: <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ACompiledStylesheet"->CompiledStylesheet</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/containers/Data-Map.html#t%3AMap"->Map</A-> <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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#getNamedRules"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetVariables"-></A-><B->getVariables</B-> :: <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ACompiledStylesheet"->CompiledStylesheet</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/containers/Data-Map.html#t%3AMap"->Map</A-> <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="declbut"-><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#getVariables"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetAttributeSets"-></A-><B->getAttributeSets</B-> :: <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ACompiledStylesheet"->CompiledStylesheet</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/containers/Data-Map.html#t%3AMap"->Map</A-> <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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#getAttributeSets"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetStrips"-></A-><B->getStrips</B-> :: <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ACompiledStylesheet"->CompiledStylesheet</A-> -> [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStrips"->Strips</A->]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#getStrips"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetAliases"-></A-><B->getAliases</B-> :: <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ACompiledStylesheet"->CompiledStylesheet</A-> -> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANSAliasing"->NSAliasing</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#getAliases"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->data</SPAN-> <A NAME="t%3AMatchRule"-></A-><B->MatchRule</B-> </TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#MatchRule"->Source</A-></TD-></TR-></TABLE-></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-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AFloat"->Float</A-> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> <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="/usr/local/share/doc/ghc/libraries/base/Text-Show.html#t%3AShow"->Show</A-> <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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetRulePrio"-></A-><B->getRulePrio</B-> :: <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AMatchRule"->MatchRule</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AFloat"->Float</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#getRulePrio"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetRuleMode"-></A-><B->getRuleMode</B-> :: <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AMatchRule"->MatchRule</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"->ExName</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#getRuleMode"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetRuleImports"-></A-><B->getRuleImports</B-> :: <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AMatchRule"->MatchRule</A-> -> [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AMatchRule"->MatchRule</A->]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#getRuleImports"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->data</SPAN-> <A NAME="t%3ANamedRule"-></A-><B->NamedRule</B-> </TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#NamedRule"->Source</A-></TD-></TR-></TABLE-></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="/usr/local/share/doc/ghc/libraries/base/Text-Show.html#t%3AShow"->Show</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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetRuleName"-></A-><B->getRuleName</B-> :: <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANamedRule"->NamedRule</A-> -> <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"->ExName</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#getRuleName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->data</SPAN-> <A NAME="t%3AVariable"-></A-><B->Variable</B-> </TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#Variable"->Source</A-></TD-></TR-></TABLE-></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-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-> <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"->ExName</A-> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Either.html#t%3AEither"->Either</A-> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"->Expr</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: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"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Show.html#t%3AShow"->Show</A-> <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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AgetVarName"-></A-><B->getVarName</B-> :: <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AVariable"->Variable</A-> -> <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"->ExName</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#getVarName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisParam"-></A-><B->isParam</B-> :: <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AVariable"->Variable</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#isParam"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->newtype</SPAN-> <A NAME="t%3AUsedAttribSets"-></A-><B->UsedAttribSets</B-> </TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#UsedAttribSets"->Source</A-></TD-></TR-></TABLE-></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"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Show.html#t%3AShow"->Show</A-> <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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->data</SPAN-> <A NAME="t%3AAttributeSet"-></A-><B->AttributeSet</B-> </TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#AttributeSet"->Source</A-></TD-></TR-></TABLE-></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"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Show.html#t%3AShow"->Show</A-> <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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#NTest"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AparseNTest"-></A-><B->parseNTest</B-> :: <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AUriMapping"->UriMapping</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANTest"->NTest</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#parseNTest"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->type</SPAN-> <A NAME="t%3AStrips"-></A-><B->Strips</B-> = <A HREF="/usr/local/share/doc/ghc/libraries/containers/Data-Map.html#t%3AMap"->Map</A-> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANTest"->NTest</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#Strips"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AlookupStrip"-></A-><B->lookupStrip</B-> :: <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"->ExName</A-> -> [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStrips"->Strips</A->] -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#lookupStrip"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AlookupStrip1"-></A-><B->lookupStrip1</B-> :: <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"->ExName</A-> -> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStrips"->Strips</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#lookupStrip1"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AfeedSpaces"-></A-><B->feedSpaces</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-> -> [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANTest"->NTest</A->] -> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStrips"->Strips</A-> -> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStrips"->Strips</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#feedSpaces"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AfeedPreserves"-></A-><B->feedPreserves</B-> :: [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANTest"->NTest</A->] -> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStrips"->Strips</A-> -> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStrips"->Strips</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#feedPreserves"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AstripDocument"-></A-><B->stripDocument</B-> :: [<A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3AStrips"->Strips</A->] -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#stripDocument"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AstripStylesheet"-></A-><B->stripStylesheet</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#stripStylesheet"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AstripSpaces"-></A-><B->stripSpaces</B-> :: (<A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"->XNode</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A->) -> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-> -> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"->XmlTree</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#stripSpaces"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->type</SPAN-> <A NAME="t%3ANSAliasing"-></A-><B->NSAliasing</B-> = <A HREF="/usr/local/share/doc/ghc/libraries/containers/Data-Map.html#t%3AMap"->Map</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#NSAliasing"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AaddAlias"-></A-><B->addAlias</B-> :: <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AUriMapping"->UriMapping</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANSAliasing"->NSAliasing</A-> -> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANSAliasing"->NSAliasing</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#addAlias"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AlookupAlias"-></A-><B->lookupAlias</B-> :: <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANSAliasing"->NSAliasing</A-> -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#lookupAlias"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AaliasUriMapping"-></A-><B->aliasUriMapping</B-> :: <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANSAliasing"->NSAliasing</A-> -> <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AUriMapping"->UriMapping</A-> -> <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AUriMapping"->UriMapping</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#aliasUriMapping"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->data</SPAN-> <A NAME="t%3ATemplate"-></A-><B->Template</B-> </TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#Template"->Source</A-></TD-></TR-></TABLE-></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-> <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</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%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-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></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-> (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ASelectExpr"->SelectExpr</A->) (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"->ExName</A->) (<A HREF="/usr/local/share/doc/ghc/libraries/containers/Data-Map.html#t%3AMap"->Map</A-> <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-> (<A HREF="/usr/local/share/doc/ghc/libraries/containers/Data-Map.html#t%3AMap"->Map</A-> <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"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Show.html#t%3AShow"->Show</A-> <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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->data</SPAN-> <A NAME="t%3ASortKey"-></A-><B->SortKey</B-> </TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#SortKey"->Source</A-></TD-></TR-></TABLE-></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"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Show.html#t%3AShow"->Show</A-> <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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->data</SPAN-> <A NAME="t%3AWhen"-></A-><B->When</B-> </TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#When"->Source</A-></TD-></TR-></TABLE-></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"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Show.html#t%3AShow"->Show</A-> <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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->data</SPAN-> <A NAME="t%3AComputedQName"-></A-><B->ComputedQName</B-> </TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#ComputedQName"->Source</A-></TD-></TR-></TABLE-></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-QualifiedName.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"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Show.html#t%3AShow"->Show</A-> <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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->newtype</SPAN-> <A NAME="t%3ASelectExpr"-></A-><B->SelectExpr</B-> </TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#SelectExpr"->Source</A-></TD-></TR-></TABLE-></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"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Show.html#t%3AShow"->Show</A-> <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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->newtype</SPAN-> <A NAME="t%3ATestExpr"-></A-><B->TestExpr</B-> </TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#TestExpr"->Source</A-></TD-></TR-></TABLE-></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"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Show.html#t%3AShow"->Show</A-> <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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->newtype</SPAN-> <A NAME="t%3AStringExpr"-></A-><B->StringExpr</B-> </TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#StringExpr"->Source</A-></TD-></TR-></TABLE-></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"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Show.html#t%3AShow"->Show</A-> <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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->newtype</SPAN-> <A NAME="t%3AMatchExpr"-></A-><B->MatchExpr</B-> </TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#MatchExpr"->Source</A-></TD-></TR-></TABLE-></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"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Show.html#t%3AShow"->Show</A-> <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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-XSLT-Names.html
@@ -1,314 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-XSLT-Names.html"->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 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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxsltPrefix"-></A-><B->xsltPrefix</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-Names.html#xsltPrefix"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxsltUri"-></A-><B->xsltUri</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-Names.html#xsltUri"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkXsltName"-></A-><B->mkXsltName</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-Names.html#mkXsltName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkXsltAttribName"-></A-><B->mkXsltAttribName</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-Names.html#mkXsltAttribName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxsltStylesheet"-></A-><B->xsltStylesheet</B-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-Names.html#xsltStylesheet"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxsltSelect"-></A-><B->xsltSelect</B-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-Names.html#xsltSelect"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxsltVersionLRE"-></A-><B->xsltVersionLRE</B-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-Names.html#xsltVersionLRE"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxmlSpace"-></A-><B->xmlSpace</B-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-Names.html#xmlSpace"->Source</A-></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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/Text-XML-HXT-XSLT-XsltArrows.html
@@ -1,435 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/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-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-XSLT-XsltArrows.html"->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 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-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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%3AxsltApplyStylesheet"->xsltApplyStylesheet</A-> :: <A HREF="Text-XML-HXT-XSLT-XsltArrows.html#t%3ACompiledStylesheet"->CompiledStylesheet</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-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AxsltApplyStylesheetFromURI"->xsltApplyStylesheetFromURI</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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-><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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-XsltArrows.html#xsltCompileStylesheet"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxsltCompileStylesheetFromURI"-></A-><B->xsltCompileStylesheetFromURI</B-> :: <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOSArrow"->IOSArrow</A-> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> <A HREF="Text-XML-HXT-XSLT-XsltArrows.html#t%3ACompiledStylesheet"->CompiledStylesheet</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-XsltArrows.html#xsltCompileStylesheetFromURI"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxsltApplyStylesheet"-></A-><B->xsltApplyStylesheet</B-> :: <A HREF="Text-XML-HXT-XSLT-XsltArrows.html#t%3ACompiledStylesheet"->CompiledStylesheet</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-XsltArrows.html#xsltApplyStylesheet"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AxsltApplyStylesheetFromURI"-></A-><B->xsltApplyStylesheetFromURI</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</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-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-XsltArrows.html#xsltApplyStylesheetFromURI"->Source</A-></TD-></TR-></TABLE-></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="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->data</SPAN-> <A NAME="t%3ACompiledStylesheet"-></A-><B->CompiledStylesheet</B-> </TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-XSLT-CompiledStylesheet.html#CompiledStylesheet"->Source</A-></TD-></TR-></TABLE-></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"-><A HREF="/usr/local/share/doc/ghc/libraries/base/Text-Show.html#t%3AShow"->Show</A-> <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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/doc-index.html
@@ -1,15878 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">-<!--Rendered using the Haskell Html Library v0.2-->-<HTML-><HEAD-><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"-><TITLE->hxt-8.3.0: A collection of tools for processing XML with Haskell. (Index)</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-><SCRIPT SRC="haddock-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="index.html"->Contents</A-></TD-><TD CLASS="topbut"-><A HREF="doc-index.html"->Index</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD COLSPAN="2" STYLE="padding-top:5px;"-><FORM onsubmit="full_search(); return false;" ACTION=""->Search: <INPUT ID="searchbox" onkeyup="quick_search()"-> <INPUT VALUE="Search" TYPE="submit"-> <SPAN ID="searchmsg"-> </SPAN-></FORM-></TD-></TR-><TR-><TD-><TABLE ID="indexlist" CELLPADDING="0" CELLSPACING="5"-><TR CLASS="indexrow"-><TD CLASS="indexentry"->$$</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3A%24%24"->Text.XML.HXT.DTDValidation.TypeDefs</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->$<</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C"->Control.Arrow.ArrowList</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->$<$</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C%24"->Control.Arrow.ArrowList</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->$<<</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C%3C"->Control.Arrow.ArrowList</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->$<<<</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C%3C%3C"->Control.Arrow.ArrowList</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->$<<<<</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C%3C%3C%3C"->Control.Arrow.ArrowList</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->&&&</TD-><TD CLASS="indexlinks"->Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->&&&&</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3A%26%26%26%26"->Text.XML.HXT.Arrow.XPathSimple</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->***</TD-><TD CLASS="indexlinks"->Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->+++</TD-><TD CLASS="indexlinks"->Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->/></TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowTree.html#v%3A%2F%3E"->Control.Arrow.ArrowTree</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->:-></TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowIf.html#v%3A%3A-%3E"->Control.Arrow.ArrowIf</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"-><&&></TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3A%3C%26%26%3E"->Text.XML.HXT.RelaxNG.XmlSchema.Regex</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"-><+></TD-><TD CLASS="indexlinks"->Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"-><+>></TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3A%3C%2B%3E%3E"->Text.XML.HXT.Arrow.XPathSimple</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"-></</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowTree.html#v%3A%3C%2F"->Control.Arrow.ArrowTree</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"-><<<</TD-><TD CLASS="indexlinks"->Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"-><<^</TD-><TD CLASS="indexlinks"->Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"-><||></TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3A%3C%7C%7C%3E"->Text.XML.HXT.RelaxNG.XmlSchema.Regex</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->>.</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowList.html#v%3A%3E."->Control.Arrow.ArrowList</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->>>.</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowList.html#v%3A%3E%3E."->Control.Arrow.ArrowList</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->>>></TD-><TD CLASS="indexlinks"->Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->>>>></TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3A%3E%3E%3E%3E"->Text.XML.HXT.Arrow.XPathSimple</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->>>^</TD-><TD CLASS="indexlinks"->Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->accessState</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowState.html#v%3AaccessState"->Control.Arrow.ArrowState</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->addAtt</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AaddAtt"->Text.XML.HXT.Arrow.Pickle.Xml</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->addAttr</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AaddAttr"->Text.XML.HXT.DOM.XmlNode</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AaddAttr"->Text.XML.HXT.Arrow.XmlArrow</A->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->addCont</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AaddCont"->Text.XML.HXT.Arrow.Pickle.Xml</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->After</TD-><TD CLASS="indexlinks"->Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->allBut</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AallBut"->Text.XML.HXT.Parser.XmlTokenParser</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->allBut1</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AallBut1"->Text.XML.HXT.Parser.XmlTokenParser</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->Alt</TD-><TD CLASS="indexlinks"->Text.XML.HXT.Arrow.Pickle.Schema</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->Any</TD-><TD CLASS="indexlinks"->Text.XML.HXT.Arrow.Pickle.Schema</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->AnyName</TD-><TD CLASS="indexlinks"->Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->AnyNameExcept</TD-><TD CLASS="indexlinks"->Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->app</TD-><TD CLASS="indexlinks"->Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->application_xhtml</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.MimeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->application_xml</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-MimeTypes.html#v%3Aapplication_xml"->Text.XML.HXT.DOM.MimeTypes</A->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->application_xml_dtd</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.MimeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->application_xml_external_parsed_entity</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.MimeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->applyA</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowList.html#v%3AapplyA"->Control.Arrow.ArrowList</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->appPickle</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AappPickle"->Text.XML.HXT.Arrow.Pickle.Xml</A->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AappPickle"->Text.XML.HXT.Arrow.Pickle</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->appUnPickle</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AappUnPickle"->Text.XML.HXT.Arrow.Pickle.Xml</A->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AappUnPickle"->Text.XML.HXT.Arrow.Pickle</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->arr</TD-><TD CLASS="indexlinks"->Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->arr2</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowList.html#v%3Aarr2"->Control.Arrow.ArrowList</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->arr2A</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowList.html#v%3Aarr2A"->Control.Arrow.ArrowList</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->arr2L</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowList.html#v%3Aarr2L"->Control.Arrow.ArrowList</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->arr3</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowList.html#v%3Aarr3"->Control.Arrow.ArrowList</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->arr4</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowList.html#v%3Aarr4"->Control.Arrow.ArrowList</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->arrL</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowList.html#v%3AarrL"->Control.Arrow.ArrowList</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->Arrow</TD-><TD CLASS="indexlinks"->Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->ArrowApply</TD-><TD CLASS="indexlinks"->Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->ArrowChoice</TD-><TD CLASS="indexlinks"->Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->ArrowIf</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowIf.html#t%3AArrowIf"->Control.Arrow.ArrowIf</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->ArrowList</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"->Control.Arrow.ArrowList</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->ArrowLoop</TD-><TD CLASS="indexlinks"->Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->ArrowMonad</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Data Constructor)</TD-><TD CLASS="indexlinks"->Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Type/Class)</TD-><TD CLASS="indexlinks"->Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->ArrowNF</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowNF.html#t%3AArrowNF"->Control.Arrow.ArrowNF</A->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->ArrowPlus</TD-><TD CLASS="indexlinks"->Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->ArrowState</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowState.html#t%3AArrowState"->Control.Arrow.ArrowState</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->ArrowTree</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowTree.html#t%3AArrowTree"->Control.Arrow.ArrowTree</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->ArrowZero</TD-><TD CLASS="indexlinks"->Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->asciiLetter</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AasciiLetter"->Text.XML.HXT.Parser.XmlTokenParser</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->assert</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3Aassert"->Text.XML.HXT.RelaxNG.DataTypeLibUtils</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->assertMaybe</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3AassertMaybe"->Text.XML.HXT.RelaxNG.DataTypeLibUtils</A-></TD-></TR-><TR CLASS="indexrow"-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->Atom</TD-><TD CLASS="indexlinks"-><A HREF="Data-Atom.html#t%3AAtom"->Data.Atom</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->attrDec</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#v%3AattrDec"->Text.XML.HXT.Arrow.Pickle.DTD</A-></TD-></TR-><TR CLASS="indexrow"-><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.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->AttribSet</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.CompiledStylesheet</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->Attribute</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (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 CLASS="indexrow"-><TD CLASS="indexannot"->2 (Data Constructor)</TD-><TD CLASS="indexlinks"->Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->3 (Data Constructor)</TD-><TD CLASS="indexlinks"->Text.XML.HXT.Arrow.Pickle.Schema</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->attributes</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3Aattributes"->Text.XML.HXT.Arrow.Pickle.Xml</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->attrValue</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AattrValue"->Text.XML.HXT.Parser.XmlTokenParser</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlDTDTokenParser.html#v%3AattrValue"->Text.XML.HXT.Parser.XmlDTDTokenParser</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->attrValueT</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AattrValueT"->Text.XML.HXT.Parser.XmlTokenParser</A-></TD-></TR-><TR CLASS="indexrow"-><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-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->a_addDTD</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3Aa_addDTD"->Text.XML.HXT.Arrow.Pickle</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_ancestor</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XPath.XPathKeywords</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->a_attribute</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XPath.XPathKeywords</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_canonicalize</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_check_namespaces</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_check_restrictions</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_child</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XPath.XPathKeywords</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_collect_errors</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_column</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_contentLength</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_default_baseuri</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_descendant</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XPath.XPathKeywords</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_descendant_or_self</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XPath.XPathKeywords</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_do_not_canonicalize</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_do_not_check_namespaces</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_do_not_collect_errors</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_do_not_issue_errors</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_do_not_issue_warnings</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_do_not_preserve_comment</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_do_not_remove_whitespace</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_do_not_use_curl</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_do_not_validate</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_do_not_validate_externalRef</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_do_not_validate_include</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_encoding</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_error</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_error_log</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_following</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XPath.XPathKeywords</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_following_sibling</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XPath.XPathKeywords</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_help</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_ignore_encoding_errors</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_ignore_none_xml_contents</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_indent</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_issue_errors</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_issue_warnings</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_kind</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_line</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_mime_types</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_modifier</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_module</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_name</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_namespace</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XPath.XPathKeywords</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_no_empty_elements</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_no_xml_pi</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_numberOfErrors</TD-><TD CLASS="indexlinks"->Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_options_curl</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_output_changes</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_output_encoding</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_output_file</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_output_html</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_output_xml</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_parent</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XPath.XPathKeywords</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_parse_by_mimetype</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_parse_html</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_parse_xml</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_peref</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_preceding</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XPath.XPathKeywords</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_preceding_sibling</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XPath.XPathKeywords</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_preserve_comment</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_propagate_errors</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_proxy</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->a_relax_schema</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_remove_whitespace</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_self</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XPath.XPathKeywords</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_show_haskell</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_show_tree</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_source</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_standalone</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_status</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_strict_input</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_tagsoup</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_trace</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_type</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_url</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_use_curl</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_validate</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_validate_externalRef</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_validate_include</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_value</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_verbose</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_version</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_xml</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->a_xmlns</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->bar</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Abar"->Text.XML.HXT.Parser.XmlTokenParser</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->buildUniversalName</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AbuildUniversalName"->Text.XML.HXT.DOM.QualifiedName</A->, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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</TD-></TR-><TR CLASS="indexrow"-><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.NavTree, Text.XML.HXT.DOM.XmlNode, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->catA</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowList.html#v%3AcatA"->Control.Arrow.ArrowList</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->cDSect</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AcDSect"->Text.XML.HXT.Parser.XmlParsec</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->changeAttrl</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AchangeAttrl"->Text.XML.HXT.DOM.XmlNode</A->, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AchangeAttrl"->Text.XML.HXT.Arrow.XmlArrow</A->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->changeAttrName</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AchangeAttrName"->Text.XML.HXT.DOM.XmlNode</A->, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AchangeAttrName"->Text.XML.HXT.Arrow.XmlArrow</A->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->changeChildren</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-Class.html#v%3AchangeChildren"->Data.Tree.Class</A->, Data.Tree.NTree.TypeDefs, Data.NavTree, Text.XML.HXT.DOM.XmlNode, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowTree.html#v%3AchangeChildren"->Control.Arrow.ArrowTree</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->changeCmt</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AchangeCmt"->Text.XML.HXT.DOM.XmlNode</A->, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AchangeCmt"->Text.XML.HXT.Arrow.XmlArrow</A->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->changeDTDAttrl</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AchangeDTDAttrl"->Text.XML.HXT.DOM.XmlNode</A->, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->changeElemName</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AchangeElemName"->Text.XML.HXT.DOM.XmlNode</A->, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AchangeElemName"->Text.XML.HXT.Arrow.XmlArrow</A->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->changeName</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AchangeName"->Text.XML.HXT.DOM.XmlNode</A->, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->changeNode</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-Class.html#v%3AchangeNode"->Data.Tree.Class</A->, Data.Tree.NTree.TypeDefs, Data.NavTree, Text.XML.HXT.DOM.XmlNode, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowTree.html#v%3AchangeNode"->Control.Arrow.ArrowTree</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->changePiName</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AchangePiName"->Text.XML.HXT.DOM.XmlNode</A->, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AchangePiName"->Text.XML.HXT.Arrow.XmlArrow</A->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->changeState</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowState.html#v%3AchangeState"->Control.Arrow.ArrowState</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->changeText</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AchangeText"->Text.XML.HXT.DOM.XmlNode</A->, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AchangeText"->Text.XML.HXT.Arrow.XmlArrow</A->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->CharData</TD-><TD CLASS="indexlinks"->Text.XML.HXT.Arrow.Pickle.Schema</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->charData</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AcharData"->Text.XML.HXT.Parser.XmlParsec</A-></TD-></TR-><TR CLASS="indexrow"-><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-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->charRef</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AcharRef"->Text.XML.HXT.Parser.XmlTokenParser</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AcharRef"->Text.XML.HXT.Arrow.XmlArrow</A->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->charRefT</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AcharRefT"->Text.XML.HXT.Parser.XmlTokenParser</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->charRngs</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3AcharRngs"->Text.XML.HXT.RelaxNG.XmlSchema.Regex</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->chars</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3Achars"->Text.XML.HXT.RelaxNG.XmlSchema.Regex</A-></TD-></TR-><TR CLASS="indexrow"-><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.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->CheckA</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"->Text.XML.HXT.RelaxNG.DataTypeLibUtils</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->checkAM</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#v%3AcheckAM"->Text.XML.HXT.Arrow.Pickle.DTD</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->checkAMC</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#v%3AcheckAMC"->Text.XML.HXT.Arrow.Pickle.DTD</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->checkAttributeValue</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DTDValidation-AttributeValueValidation.html#v%3AcheckAttributeValue"->Text.XML.HXT.DTDValidation.AttributeValueValidation</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->checkAttrModell</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#v%3AcheckAttrModell"->Text.XML.HXT.Arrow.Pickle.DTD</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->checkContentModell</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#v%3AcheckContentModell"->Text.XML.HXT.Arrow.Pickle.DTD</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->checkErr</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#v%3AcheckErr"->Text.XML.HXT.Arrow.Pickle.DTD</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->CheckInteger</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckInteger"->Text.XML.HXT.RelaxNG.DataTypeLibUtils</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->checkPickler</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AcheckPickler"->Text.XML.HXT.Arrow.Pickle</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->checkRE</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3AcheckRE"->Text.XML.HXT.DTDValidation.RE</A->, <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#v%3AcheckRE"->Text.XML.HXT.DTDValidation.XmlRE</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->checkRngName</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AcheckRngName"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->CheckString</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckString"->Text.XML.HXT.RelaxNG.DataTypeLibUtils</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->checkWith</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3AcheckWith"->Text.XML.HXT.RelaxNG.DataTypeLibUtils</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->Choice</TD-><TD CLASS="indexlinks"->Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->choiceA</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowIf.html#v%3AchoiceA"->Control.Arrow.ArrowIf</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->closesHtmlTag</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-HtmlParsec.html#v%3AclosesHtmlTag"->Text.XML.HXT.Parser.HtmlParsec</A-></TD-></TR-><TR CLASS="indexrow"-><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.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->codeBlocks</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-Unicode-Blocks.html#v%3AcodeBlocks"->Text.XML.HXT.RelaxNG.Unicode.Blocks</A-></TD-></TR-><TR CLASS="indexrow"-><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</TD-></TR-><TR CLASS="indexrow"-><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</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->comma</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Acomma"->Text.XML.HXT.Parser.XmlTokenParser</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->comment</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Acomment"->Text.XML.HXT.Parser.XmlParsec</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->compBool</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompBool"->Text.XML.HXT.Arrow.XPathSimple</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->compBoolExpr</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompBoolExpr"->Text.XML.HXT.Arrow.XPathSimple</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->compFP</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompFP"->Text.XML.HXT.Arrow.XPathSimple</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->compGenExpr</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompGenExpr"->Text.XML.HXT.Arrow.XPathSimple</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->compIntExpr</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompIntExpr"->Text.XML.HXT.Arrow.XPathSimple</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->compLP</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompLP"->Text.XML.HXT.Arrow.XPathSimple</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->compNameT</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompNameT"->Text.XML.HXT.Arrow.XPathSimple</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->compNT</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompNT"->Text.XML.HXT.Arrow.XPathSimple</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->compNTA</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompNTA"->Text.XML.HXT.Arrow.XPathSimple</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->compNTE</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompNTE"->Text.XML.HXT.Arrow.XPathSimple</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->compNumber</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompNumber"->Text.XML.HXT.Arrow.XPathSimple</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->compNumberExpr</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompNumberExpr"->Text.XML.HXT.Arrow.XPathSimple</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->compPath</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompPath"->Text.XML.HXT.Arrow.XPathSimple</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->compPred</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompPred"->Text.XML.HXT.Arrow.XPathSimple</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->compPred1</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompPred1"->Text.XML.HXT.Arrow.XPathSimple</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->CompQName</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.CompiledStylesheet</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->compRelPathExpr</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompRelPathExpr"->Text.XML.HXT.Arrow.XPathSimple</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->compString</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompString"->Text.XML.HXT.Arrow.XPathSimple</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->compStringExpr</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompStringExpr"->Text.XML.HXT.Arrow.XPathSimple</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->CompStylesheet</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.CompiledStylesheet</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->compXP</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompXP"->Text.XML.HXT.Arrow.XPathSimple</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->compXPath</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompXPath"->Text.XML.HXT.Arrow.XPathSimple</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->compXS</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompXS"->Text.XML.HXT.Arrow.XPathSimple</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->concRes</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AconcRes"->Text.XML.HXT.Parser.XmlTokenParser</A-></TD-></TR-><TR CLASS="indexrow"-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->constA</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowList.html#v%3AconstA"->Control.Arrow.ArrowList</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->constL</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowList.html#v%3AconstL"->Control.Arrow.ArrowList</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->containing</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowIf.html#v%3Acontaining"->Control.Arrow.ArrowIf</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->content</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Acontent"->Text.XML.HXT.Parser.XmlParsec</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->contents</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3Acontents"->Text.XML.HXT.Arrow.Pickle.Xml</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->contentWithTextDecl</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AcontentWithTextDecl"->Text.XML.HXT.Parser.XmlParsec</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->Context</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (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 CLASS="indexrow"-><TD CLASS="indexannot"->2 (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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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-><TR CLASS="indexrow"-><TD CLASS="indexentry"->CTComplex</TD-><TD CLASS="indexlinks"->Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->CTEmpty</TD-><TD CLASS="indexlinks"->Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->CTNone</TD-><TD CLASS="indexlinks"->Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->CTSimple</TD-><TD CLASS="indexlinks"->Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD-></TR-><TR CLASS="indexrow"-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->Data</TD-><TD CLASS="indexlinks"->Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->DataExcept</TD-><TD CLASS="indexlinks"->Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->DataTypeDescr</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ADataTypeDescr"->Text.XML.HXT.Arrow.Pickle.Schema</A->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3ADataTypeDescr"->Text.XML.HXT.Arrow.Pickle</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->deadEndStreet</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AdeadEndStreet"->Text.XML.HXT.Arrow.XPathSimple</A-></TD-></TR-><TR CLASS="indexrow"-><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.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->decode</TD-><TD CLASS="indexlinks"-><A HREF="Data-Char-UTF8.html#v%3Adecode"->Data.Char.UTF8</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->decodeEmbedErrors</TD-><TD CLASS="indexlinks"-><A HREF="Data-Char-UTF8.html#v%3AdecodeEmbedErrors"->Data.Char.UTF8</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->decodeOne</TD-><TD CLASS="indexlinks"-><A HREF="Data-Char-UTF8.html#v%3AdecodeOne"->Data.Char.UTF8</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->decodeUtf8</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-UTF8Decoding.html#v%3AdecodeUtf8"->Text.XML.HXT.DOM.UTF8Decoding</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->decodeUtf8EmbedErrors</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-UTF8Decoding.html#v%3AdecodeUtf8EmbedErrors"->Text.XML.HXT.DOM.UTF8Decoding</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->decodeUtf8IgnoreErrors</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-UTF8Decoding.html#v%3AdecodeUtf8IgnoreErrors"->Text.XML.HXT.DOM.UTF8Decoding</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->DecodingFct</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-Unicode.html#t%3ADecodingFct"->Text.XML.HXT.DOM.Unicode</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->DecodingFctEmbedErrors</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-Unicode.html#t%3ADecodingFctEmbedErrors"->Text.XML.HXT.DOM.Unicode</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->deep</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowTree.html#v%3Adeep"->Control.Arrow.ArrowTree</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->deep'</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3Adeep%27"->Text.XML.HXT.Arrow.XPathSimple</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->deepest</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowTree.html#v%3Adeepest"->Control.Arrow.ArrowTree</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->defaultMimeTypeTable</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-MimeTypes.html#v%3AdefaultMimeTypeTable"->Text.XML.HXT.DOM.MimeTypes</A->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->defineOrigName</TD-><TD CLASS="indexlinks"->Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD-></TR-><TR CLASS="indexrow"-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->delta</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3Adelta"->Text.XML.HXT.RelaxNG.XmlSchema.Regex</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3Adelta"->Text.XML.HXT.Arrow.XmlRegex</A-></TD-></TR-><TR CLASS="indexrow"-><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.NavTree, Text.XML.HXT.DOM.XmlNode, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->doctypedecl</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Adoctypedecl"->Text.XML.HXT.Parser.XmlParsec</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->document</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Adocument"->Text.XML.HXT.Parser.XmlParsec</A-></TD-></TR-><TR CLASS="indexrow"-><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-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->dq</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Adq"->Text.XML.HXT.Parser.XmlTokenParser</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->dropCont</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AdropCont"->Text.XML.HXT.Arrow.Pickle.Xml</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->DTC</TD-><TD CLASS="indexlinks"->Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->DTDdescr</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Type/Class)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#t%3ADTDdescr"->Text.XML.HXT.Arrow.Pickle.DTD</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Data Constructor)</TD-><TD CLASS="indexlinks"->Text.XML.HXT.Arrow.Pickle.DTD</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->dtdDescr</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#v%3AdtdDescr"->Text.XML.HXT.Arrow.Pickle.DTD</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->dtdDescrToXml</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#v%3AdtdDescrToXml"->Text.XML.HXT.Arrow.Pickle.DTD</A-></TD-></TR-><TR CLASS="indexrow"-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->DTDescr</TD-><TD CLASS="indexlinks"->Text.XML.HXT.Arrow.Pickle.Schema</TD-></TR-><TR CLASS="indexrow"-><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-><TR CLASS="indexrow"-><TD CLASS="indexentry"->dtd_default</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3Adtd_default"->Text.XML.HXT.DTDValidation.TypeDefs</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->dtd_kind</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3Adtd_kind"->Text.XML.HXT.DTDValidation.TypeDefs</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->dtd_modifier</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3Adtd_modifier"->Text.XML.HXT.DTDValidation.TypeDefs</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->dtd_name</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3Adtd_name"->Text.XML.HXT.DTDValidation.TypeDefs</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->dtd_type</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3Adtd_type"->Text.XML.HXT.DTDValidation.TypeDefs</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->dtd_value</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3Adtd_value"->Text.XML.HXT.DTDValidation.TypeDefs</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->dtLib</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AdtLib"->Text.XML.HXT.Arrow.Pickle.Schema</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->dtName</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AdtName"->Text.XML.HXT.Arrow.Pickle.Schema</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->dtParams</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AdtParams"->Text.XML.HXT.Arrow.Pickle.Schema</A-></TD-></TR-><TR CLASS="indexrow"-><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.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->Element</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Data Constructor)</TD-><TD CLASS="indexlinks"->Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Data Constructor)</TD-><TD CLASS="indexlinks"->Text.XML.HXT.Arrow.Pickle.Schema</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->element</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Aelement"->Text.XML.HXT.Parser.XmlParsec</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->elementDeclarations</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#v%3AelementDeclarations"->Text.XML.HXT.Arrow.Pickle.DTD</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->elementDecs</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#v%3AelementDecs"->Text.XML.HXT.Arrow.Pickle.DTD</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->elemName</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#v%3AelemName"->Text.XML.HXT.Arrow.Pickle.DTD</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->elemNames</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#v%3AelemNames"->Text.XML.HXT.Arrow.Pickle.DTD</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->ElemRef</TD-><TD CLASS="indexlinks"->Text.XML.HXT.Arrow.Pickle.Schema</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->elemRefs</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#v%3AelemRefs"->Text.XML.HXT.Arrow.Pickle.DTD</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->Empty</TD-><TD CLASS="indexlinks"->Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->emptyHtmlTags</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-HtmlParsec.html#v%3AemptyHtmlTags"->Text.XML.HXT.Parser.HtmlParsec</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->emptySt</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AemptySt"->Text.XML.HXT.Arrow.Pickle.Xml</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->encName</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AencName"->Text.XML.HXT.Parser.XmlTokenParser</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->encode</TD-><TD CLASS="indexlinks"-><A HREF="Data-Char-UTF8.html#v%3Aencode"->Data.Char.UTF8</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->encodeOne</TD-><TD CLASS="indexlinks"-><A HREF="Data-Char-UTF8.html#v%3AencodeOne"->Data.Char.UTF8</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->encodingDecl</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AencodingDecl"->Text.XML.HXT.Parser.XmlParsec</A-></TD-></TR-><TR CLASS="indexrow"-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->entityCharT</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AentityCharT"->Text.XML.HXT.Parser.XmlTokenParser</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->entityRef</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AentityRef"->Text.XML.HXT.Parser.XmlTokenParser</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AentityRef"->Text.XML.HXT.Arrow.XmlArrow</A->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->entityRefT</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AentityRefT"->Text.XML.HXT.Parser.XmlTokenParser</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->entityTokensT</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AentityTokensT"->Text.XML.HXT.Parser.XmlTokenParser</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->entityValue</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AentityValue"->Text.XML.HXT.Parser.XmlTokenParser</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->entityValueT</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AentityValueT"->Text.XML.HXT.Parser.XmlTokenParser</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->Env</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (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 CLASS="indexrow"-><TD CLASS="indexannot"->2 (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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->eq</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Aeq"->Text.XML.HXT.Parser.XmlTokenParser</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->equalNodeSet</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AequalNodeSet"->Text.XML.HXT.Arrow.XPathSimple</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->equalQNameBy</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AequalQNameBy"->Text.XML.HXT.DOM.QualifiedName</A->, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->equivQName</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AequivQName"->Text.XML.HXT.DOM.QualifiedName</A->, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->equivUri</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AequivUri"->Text.XML.HXT.DOM.QualifiedName</A->, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->ErrLevel</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AErrLevel"->Text.XML.HXT.RelaxNG.DataTypes</A->, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->ErrMessage</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AErrMessage"->Text.XML.HXT.RelaxNG.DataTypes</A->, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->ErrMsg</TD-><TD CLASS="indexlinks"->Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->Error</TD-><TD CLASS="indexlinks"-><A HREF="Data-Char-UTF8.html#t%3AError"->Data.Char.UTF8</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->errorMsgDataLibQName</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3AerrorMsgDataLibQName"->Text.XML.HXT.RelaxNG.DataTypeLibUtils</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->errorMsgDataTypeNotAllowed</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3AerrorMsgDataTypeNotAllowed"->Text.XML.HXT.RelaxNG.DataTypeLibUtils</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->errorMsgDataTypeNotAllowed0</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3AerrorMsgDataTypeNotAllowed0"->Text.XML.HXT.RelaxNG.DataTypeLibUtils</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->errorMsgDataTypeNotAllowed2</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3AerrorMsgDataTypeNotAllowed2"->Text.XML.HXT.RelaxNG.DataTypeLibUtils</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->errorMsgParam</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3AerrorMsgParam"->Text.XML.HXT.RelaxNG.DataTypeLibUtils</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->ExName</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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-><TR CLASS="indexrow"-><TD CLASS="indexentry"->extensionToMimeType</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-MimeTypes.html#v%3AextensionToMimeType"->Text.XML.HXT.DOM.MimeTypes</A->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->failure</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3Afailure"->Text.XML.HXT.RelaxNG.DataTypeLibUtils</A-></TD-></TR-><TR CLASS="indexrow"-><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.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->fctTableList</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3AfctTableList"->Text.XML.HXT.RelaxNG.DataTypeLibUtils</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->fctTableString</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3AfctTableString"->Text.XML.HXT.RelaxNG.DataTypeLibUtils</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->feedStrips</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.CompiledStylesheet</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->filterA</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowIf.html#v%3AfilterA"->Control.Arrow.ArrowIf</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->first</TD-><TD CLASS="indexlinks"->Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->firstChild</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-CreatePattern.html#v%3AfirstChild"->Text.XML.HXT.RelaxNG.CreatePattern</A->, Text.XML.HXT.RelaxNG</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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.NavTree, Text.XML.HXT.DOM.XmlNode, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->formatNTreeF</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-NTree-TypeDefs.html#v%3AformatNTreeF"->Data.Tree.NTree.TypeDefs</A->, Data.NavTree, Text.XML.HXT.DOM.XmlNode, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->formatStringListArr</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-Utils.html#v%3AformatStringListArr"->Text.XML.HXT.RelaxNG.Utils</A->, Text.XML.HXT.RelaxNG.DataTypeLibUtils</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->formatStringListId</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-Utils.html#v%3AformatStringListId"->Text.XML.HXT.RelaxNG.Utils</A->, Text.XML.HXT.RelaxNG.DataTypeLibUtils</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->formatStringListPairs</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-Utils.html#v%3AformatStringListPairs"->Text.XML.HXT.RelaxNG.Utils</A->, Text.XML.HXT.RelaxNG.DataTypeLibUtils</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->formatStringListPatt</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-Utils.html#v%3AformatStringListPatt"->Text.XML.HXT.RelaxNG.Utils</A->, Text.XML.HXT.RelaxNG.DataTypeLibUtils</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->formatStringListQuot</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-Utils.html#v%3AformatStringListQuot"->Text.XML.HXT.RelaxNG.Utils</A->, Text.XML.HXT.RelaxNG.DataTypeLibUtils</TD-></TR-><TR CLASS="indexrow"-><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.NavTree, Text.XML.HXT.DOM.XmlNode, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->formatXmlContents</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-FormatXmlTree.html#v%3AformatXmlContents"->Text.XML.HXT.DOM.FormatXmlTree</A-></TD-></TR-><TR CLASS="indexrow"-><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.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->foundErr</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#v%3AfoundErr"->Text.XML.HXT.Arrow.Pickle.DTD</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->fromLA</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ListArrow.html#v%3AfromLA"->Control.Arrow.ListArrow</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->fromSLA</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-StateListArrow.html#v%3AfromSLA"->Control.Arrow.StateListArrow</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->FunctionTable</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3AFunctionTable"->Text.XML.HXT.RelaxNG.DataTypeLibUtils</A-></TD-></TR-><TR CLASS="indexrow"-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->getAllParamsString</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetAllParamsString"->Text.XML.HXT.Arrow.XmlIOStateArrow</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->getAtt</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AgetAtt"->Text.XML.HXT.Arrow.Pickle.Xml</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->getAttrl</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetAttrl"->Text.XML.HXT.DOM.XmlNode</A->, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetAttrl"->Text.XML.HXT.Arrow.XmlArrow</A->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->getAttrl'</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AgetAttrl%27"->Text.XML.HXT.Arrow.XPathSimple</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->getAttrName</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetAttrName"->Text.XML.HXT.DOM.XmlNode</A->, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetAttrName"->Text.XML.HXT.Arrow.XmlArrow</A->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->getCdata</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetCdata"->Text.XML.HXT.DOM.XmlNode</A->, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetCdata"->Text.XML.HXT.Arrow.XmlArrow</A->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->getCharRef</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetCharRef"->Text.XML.HXT.DOM.XmlNode</A->, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetCharRef"->Text.XML.HXT.Arrow.XmlArrow</A->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->getChildren</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-Class.html#v%3AgetChildren"->Data.Tree.Class</A->, Data.Tree.NTree.TypeDefs, Data.NavTree, Text.XML.HXT.DOM.XmlNode, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowTree.html#v%3AgetChildren"->Control.Arrow.ArrowTree</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->getChildren'</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AgetChildren%27"->Text.XML.HXT.Arrow.XPathSimple</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->getCmt</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetCmt"->Text.XML.HXT.DOM.XmlNode</A->, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetCmt"->Text.XML.HXT.Arrow.XmlArrow</A->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->getCont</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-IO-GetHTTPLibCurl.html#v%3AgetCont"->Text.XML.HXT.IO.GetHTTPLibCurl</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->3 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AgetCont"->Text.XML.HXT.Arrow.Pickle.Xml</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->getDecodingFct</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AgetDecodingFct"->Text.XML.HXT.DOM.Unicode</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->getDecodingFctEmbedErrors</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AgetDecodingFctEmbedErrors"->Text.XML.HXT.DOM.Unicode</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->getDTDAttributes</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AgetDTDAttributes"->Text.XML.HXT.DTDValidation.TypeDefs</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->getDTDAttrl</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetDTDAttrl"->Text.XML.HXT.DOM.XmlNode</A->, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetDTDAttrl"->Text.XML.HXT.Arrow.XmlArrow</A->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->getDTDPart</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetDTDPart"->Text.XML.HXT.DOM.XmlNode</A->, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetDTDPart"->Text.XML.HXT.Arrow.XmlArrow</A->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->getDTDSubset</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DTDValidation-Validation.html#v%3AgetDTDSubset"->Text.XML.HXT.DTDValidation.Validation</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->getElemAndAttrNodeSet</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AgetElemAndAttrNodeSet"->Text.XML.HXT.Arrow.XPath</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->getElemName</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetElemName"->Text.XML.HXT.DOM.XmlNode</A->, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetElemName"->Text.XML.HXT.Arrow.XmlArrow</A->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->getElemNodeSet</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AgetElemNodeSet"->Text.XML.HXT.Arrow.XPath</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->getEntityRef</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetEntityRef"->Text.XML.HXT.DOM.XmlNode</A->, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetEntityRef"->Text.XML.HXT.Arrow.XmlArrow</A->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->getErrorLevel</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetErrorLevel"->Text.XML.HXT.DOM.XmlNode</A->, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetErrorLevel"->Text.XML.HXT.Arrow.XmlArrow</A->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->getErrorMsg</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetErrorMsg"->Text.XML.HXT.DOM.XmlNode</A->, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetErrorMsg"->Text.XML.HXT.Arrow.XmlArrow</A->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->getFromNodeSet</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AgetFromNodeSet"->Text.XML.HXT.Arrow.XPath</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->getLocalPart</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetLocalPart"->Text.XML.HXT.DOM.XmlNode</A->, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetLocalPart"->Text.XML.HXT.Arrow.XmlArrow</A->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->getName</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetName"->Text.XML.HXT.DOM.XmlNode</A->, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetName"->Text.XML.HXT.Arrow.XmlArrow</A->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->getNamePrefix</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetNamePrefix"->Text.XML.HXT.DOM.XmlNode</A->, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetNamePrefix"->Text.XML.HXT.Arrow.XmlArrow</A->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->getNamespaceUri</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetNamespaceUri"->Text.XML.HXT.DOM.XmlNode</A->, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetNamespaceUri"->Text.XML.HXT.Arrow.XmlArrow</A->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->getNode</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-Class.html#v%3AgetNode"->Data.Tree.Class</A->, Data.Tree.NTree.TypeDefs, Data.NavTree, Text.XML.HXT.DOM.XmlNode, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowTree.html#v%3AgetNode"->Control.Arrow.ArrowTree</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->getPiContent</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetPiContent"->Text.XML.HXT.DOM.XmlNode</A->, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetPiContent"->Text.XML.HXT.Arrow.XmlArrow</A->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->getPiName</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetPiName"->Text.XML.HXT.DOM.XmlNode</A->, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetPiName"->Text.XML.HXT.Arrow.XmlArrow</A->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->getQualifiedName</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetQualifiedName"->Text.XML.HXT.DOM.XmlNode</A->, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->getRngAttrAttribute</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AgetRngAttrAttribute"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->getRngAttrCombine</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AgetRngAttrCombine"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->getRngAttrDatatypeLibrary</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AgetRngAttrDatatypeLibrary"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->getRngAttrDescr</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AgetRngAttrDescr"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->getRngAttrHref</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AgetRngAttrHref"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->getRngAttrName</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AgetRngAttrName"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->getRngAttrNs</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AgetRngAttrNs"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->getRngAttrType</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AgetRngAttrType"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->getState</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowState.html#v%3AgetState"->Control.Arrow.ArrowState</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->getText</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetText"->Text.XML.HXT.DOM.XmlNode</A->, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetText"->Text.XML.HXT.Arrow.XmlArrow</A->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->getUniversalName</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetUniversalName"->Text.XML.HXT.DOM.XmlNode</A->, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetUniversalName"->Text.XML.HXT.Arrow.XmlArrow</A->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->getUniversalUri</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AgetUniversalUri"->Text.XML.HXT.DOM.XmlNode</A->, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AgetUniversalUri"->Text.XML.HXT.Arrow.XmlArrow</A->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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</TD-></TR-><TR CLASS="indexrow"-><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</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->getXP</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AgetXP"->Text.XML.HXT.Arrow.XPathSimple</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->getXPathNodeSet</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (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 CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AgetXPathNodeSet"->Text.XML.HXT.Arrow.XPath</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->getXPathTrees</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AgetXPathTrees"->Text.XML.HXT.Arrow.XPath</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AgetXPathTrees"->Text.XML.HXT.Arrow.XPathSimple</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->getXPathTreesInDoc</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AgetXPathTreesInDoc"->Text.XML.HXT.Arrow.XPath</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AgetXPathTreesInDoc"->Text.XML.HXT.Arrow.XPathSimple</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->getXPathTreesInDocWithNsEnv</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AgetXPathTreesInDocWithNsEnv"->Text.XML.HXT.Arrow.XPath</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AgetXPathTreesInDocWithNsEnv"->Text.XML.HXT.Arrow.XPathSimple</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->getXPathTreesWithNsEnv</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AgetXPathTreesWithNsEnv"->Text.XML.HXT.Arrow.XPath</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AgetXPathTreesWithNsEnv"->Text.XML.HXT.Arrow.XPathSimple</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->getXPathTreesWithNsEnvSimple</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AgetXPathTreesWithNsEnvSimple"->Text.XML.HXT.Arrow.XPathSimple</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->Group</TD-><TD CLASS="indexlinks"->Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->gt</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Agt"->Text.XML.HXT.Parser.XmlTokenParser</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->guards</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowIf.html#v%3Aguards"->Control.Arrow.ArrowIf</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->guards'</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3Aguards%27"->Text.XML.HXT.Arrow.XPathSimple</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->guardsP</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowIf.html#v%3AguardsP"->Control.Arrow.ArrowIf</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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-><TR CLASS="indexrow"-><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.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->hasDTDAttrValue</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AhasDTDAttrValue"->Text.XML.HXT.DTDValidation.TypeDefs</A-></TD-></TR-><TR CLASS="indexrow"-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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</TD-></TR-><TR CLASS="indexrow"-><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.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->hasRngAttrAttribute</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AhasRngAttrAttribute"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->hasRngAttrCombine</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AhasRngAttrCombine"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->hasRngAttrDatatypeLibrary</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AhasRngAttrDatatypeLibrary"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->hasRngAttrHref</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AhasRngAttrHref"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->hasRngAttrName</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AhasRngAttrName"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->hasRngAttrNs</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AhasRngAttrNs"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->hasRngAttrType</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AhasRngAttrType"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->hasRngName</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AhasRngName"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><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.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->hxt_version</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Version.html#v%3Ahxt_version"->Text.XML.HXT.Version</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->ifA</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowIf.html#v%3AifA"->Control.Arrow.ArrowIf</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->ifP</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowIf.html#v%3AifP"->Control.Arrow.ArrowIf</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->IfThen</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowIf.html#t%3AIfThen"->Control.Arrow.ArrowIf</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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</TD-></TR-><TR CLASS="indexrow"-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->insertChildrenAfter</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowTree.html#v%3AinsertChildrenAfter"->Control.Arrow.ArrowTree</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->insertChildrenAt</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowTree.html#v%3AinsertChildrenAt"->Control.Arrow.ArrowTree</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->insertTreeTemplate</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowTree.html#v%3AinsertTreeTemplate"->Control.Arrow.ArrowTree</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->Interleave</TD-><TD CLASS="indexlinks"->Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->IOLA</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->IOSLA</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->isA</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowList.html#v%3AisA"->Control.Arrow.ArrowList</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isAttlistOfElement</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AisAttlistOfElement"->Text.XML.HXT.DTDValidation.TypeDefs</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->isAttr</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AisAttr"->Text.XML.HXT.DOM.XmlNode</A->, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisAttr"->Text.XML.HXT.Arrow.XmlArrow</A->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isAttributeListGroupInterleaveOneOrMore</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisAttributeListGroupInterleaveOneOrMore"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isAttributeRef</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisAttributeRef"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isAttributeRefTextListGroupInterleaveOneOrMoreEmpty</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisAttributeRefTextListGroupInterleaveOneOrMoreEmpty"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isAttributeRefTextListInterleave</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisAttributeRefTextListInterleave"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->isCdata</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AisCdata"->Text.XML.HXT.DOM.XmlNode</A->, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisCdata"->Text.XML.HXT.Arrow.XmlArrow</A->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->isCharRef</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AisCharRef"->Text.XML.HXT.DOM.XmlNode</A->, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisCharRef"->Text.XML.HXT.Arrow.XmlArrow</A->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isChoiceGroupInterleave</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisChoiceGroupInterleave"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isChoiceGroupInterleaveOneOrMore</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisChoiceGroupInterleaveOneOrMore"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->isCmt</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AisCmt"->Text.XML.HXT.DOM.XmlNode</A->, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisCmt"->Text.XML.HXT.Arrow.XmlArrow</A->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isDeclaredNamespace</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AisDeclaredNamespace"->Text.XML.HXT.DOM.QualifiedName</A->, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isDefaultAttrKind</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AisDefaultAttrKind"->Text.XML.HXT.DTDValidation.TypeDefs</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isDefineOneOrMoreZeroOrMoreOptionalListMixed</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisDefineOneOrMoreZeroOrMoreOptionalListMixed"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->isDTD</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AisDTD"->Text.XML.HXT.DOM.XmlNode</A->, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisDTD"->Text.XML.HXT.Arrow.XmlArrow</A->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isDTDAttlistNode</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AisDTDAttlistNode"->Text.XML.HXT.DTDValidation.TypeDefs</A-></TD-></TR-><TR CLASS="indexrow"-><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.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isDTDContentNode</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AisDTDContentNode"->Text.XML.HXT.DTDValidation.TypeDefs</A-></TD-></TR-><TR CLASS="indexrow"-><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.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isDTDDoctypeNode</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AisDTDDoctypeNode"->Text.XML.HXT.DTDValidation.TypeDefs</A-></TD-></TR-><TR CLASS="indexrow"-><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.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isDTDElementNode</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AisDTDElementNode"->Text.XML.HXT.DTDValidation.TypeDefs</A-></TD-></TR-><TR CLASS="indexrow"-><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.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isDTDNameNode</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AisDTDNameNode"->Text.XML.HXT.DTDValidation.TypeDefs</A-></TD-></TR-><TR CLASS="indexrow"-><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.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->isElem</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AisElem"->Text.XML.HXT.DOM.XmlNode</A->, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisElem"->Text.XML.HXT.Arrow.XmlArrow</A->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isElemNode</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AisElemNode"->Text.XML.HXT.DTDValidation.TypeDefs</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->isEmptyElement</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AisEmptyElement"->Text.XML.HXT.DTDValidation.TypeDefs</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isEmptyHtmlTag</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-HtmlParsec.html#v%3AisEmptyHtmlTag"->Text.XML.HXT.Parser.HtmlParsec</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->isEntityRef</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AisEntityRef"->Text.XML.HXT.DOM.XmlNode</A->, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisEntityRef"->Text.XML.HXT.Arrow.XmlArrow</A->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isEnumAttrType</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AisEnumAttrType"->Text.XML.HXT.DTDValidation.TypeDefs</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->isError</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AisError"->Text.XML.HXT.DOM.XmlNode</A->, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisError"->Text.XML.HXT.Arrow.XmlArrow</A->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isExternalRefInclude</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisExternalRefInclude"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isFixedAttrKind</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AisFixedAttrKind"->Text.XML.HXT.DTDValidation.TypeDefs</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isGroupInterleave</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisGroupInterleave"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isHtmlMimeType</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-MimeTypes.html#v%3AisHtmlMimeType"->Text.XML.HXT.DOM.MimeTypes</A->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isIdAttrType</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AisIdAttrType"->Text.XML.HXT.DTDValidation.TypeDefs</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isIdRefAttrType</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AisIdRefAttrType"->Text.XML.HXT.DTDValidation.TypeDefs</A-></TD-></TR-><TR CLASS="indexrow"-><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.NavTree, Text.XML.HXT.DOM.XmlNode, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isInnerHtmlTagOf</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-HtmlParsec.html#v%3AisInnerHtmlTagOf"->Text.XML.HXT.Parser.HtmlParsec</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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.NavTree, Text.XML.HXT.DOM.XmlNode, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->isMixedContentElement</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AisMixedContentElement"->Text.XML.HXT.DTDValidation.TypeDefs</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isName</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-Utils.html#v%3AisName"->Text.XML.HXT.RelaxNG.Utils</A->, Text.XML.HXT.RelaxNG.DataTypeLibUtils</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isNameAnyNameNsName</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisNameAnyNameNsName"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isNameNsName</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisNameNsName"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isNameNsNameValue</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisNameNsNameValue"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->isNameSpaceName</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AisNameSpaceName"->Text.XML.HXT.DOM.QualifiedName</A->, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isNCName</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AisNCName"->Text.XML.HXT.DOM.QualifiedName</A->, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isNmtoken</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-Utils.html#v%3AisNmtoken"->Text.XML.HXT.RelaxNG.Utils</A->, Text.XML.HXT.RelaxNG.DataTypeLibUtils</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isNotationAttrType</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AisNotationAttrType"->Text.XML.HXT.DTDValidation.TypeDefs</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->isNullXName</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AisNullXName"->Text.XML.HXT.DOM.QualifiedName</A->, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isNumber</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-Utils.html#v%3AisNumber"->Text.XML.HXT.RelaxNG.Utils</A->, Text.XML.HXT.RelaxNG.DataTypeLibUtils</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->iso8859_1</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aiso8859_1"->Text.XML.HXT.DOM.XmlKeywords</A->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->iso8859_10</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->iso8859_11</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->iso8859_13</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->iso8859_14</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->iso8859_15</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->iso8859_16</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->iso8859_2</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->iso8859_3</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->iso8859_4</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->iso8859_5</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->iso8859_6</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->iso8859_7</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->iso8859_8</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->iso8859_9</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isoLatin1</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->iso_8859_10</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-IsoLatinTables.html#v%3Aiso_8859_10"->Text.XML.HXT.DOM.IsoLatinTables</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->iso_8859_11</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-IsoLatinTables.html#v%3Aiso_8859_11"->Text.XML.HXT.DOM.IsoLatinTables</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->iso_8859_13</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-IsoLatinTables.html#v%3Aiso_8859_13"->Text.XML.HXT.DOM.IsoLatinTables</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->iso_8859_14</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-IsoLatinTables.html#v%3Aiso_8859_14"->Text.XML.HXT.DOM.IsoLatinTables</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->iso_8859_15</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-IsoLatinTables.html#v%3Aiso_8859_15"->Text.XML.HXT.DOM.IsoLatinTables</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->iso_8859_16</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-IsoLatinTables.html#v%3Aiso_8859_16"->Text.XML.HXT.DOM.IsoLatinTables</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->iso_8859_2</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-IsoLatinTables.html#v%3Aiso_8859_2"->Text.XML.HXT.DOM.IsoLatinTables</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->iso_8859_3</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-IsoLatinTables.html#v%3Aiso_8859_3"->Text.XML.HXT.DOM.IsoLatinTables</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->iso_8859_4</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-IsoLatinTables.html#v%3Aiso_8859_4"->Text.XML.HXT.DOM.IsoLatinTables</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->iso_8859_5</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-IsoLatinTables.html#v%3Aiso_8859_5"->Text.XML.HXT.DOM.IsoLatinTables</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->iso_8859_6</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-IsoLatinTables.html#v%3Aiso_8859_6"->Text.XML.HXT.DOM.IsoLatinTables</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->iso_8859_7</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-IsoLatinTables.html#v%3Aiso_8859_7"->Text.XML.HXT.DOM.IsoLatinTables</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->iso_8859_8</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-IsoLatinTables.html#v%3Aiso_8859_8"->Text.XML.HXT.DOM.IsoLatinTables</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->iso_8859_9</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-IsoLatinTables.html#v%3Aiso_8859_9"->Text.XML.HXT.DOM.IsoLatinTables</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->isPi</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AisPi"->Text.XML.HXT.DOM.XmlNode</A->, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisPi"->Text.XML.HXT.Arrow.XmlArrow</A->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->isRequiredAttrKind</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AisRequiredAttrKind"->Text.XML.HXT.DTDValidation.TypeDefs</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isRngAnyName</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngAnyName"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isRngAttrAttribute</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngAttrAttribute"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isRngAttrCombine</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngAttrCombine"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isRngAttrDatatypeLibrary</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngAttrDatatypeLibrary"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isRngAttrHref</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngAttrHref"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isRngAttribute</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngAttribute"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isRngAttrName</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngAttrName"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isRngAttrNs</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngAttrNs"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isRngAttrType</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngAttrType"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isRngChoice</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngChoice"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isRngCombine</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngCombine"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isRngData</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngData"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isRngDefine</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngDefine"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isRngDiv</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngDiv"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isRngElement</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngElement"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isRngEmpty</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngEmpty"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isRngExcept</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngExcept"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isRngExternalRef</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngExternalRef"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isRngGrammar</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngGrammar"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isRngGroup</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngGroup"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isRngInclude</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngInclude"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isRngInterleave</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngInterleave"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isRngList</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngList"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isRngMixed</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngMixed"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isRngName</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngName"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isRngNotAllowed</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngNotAllowed"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isRngNsName</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngNsName"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isRngOneOrMore</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngOneOrMore"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isRngOptional</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngOptional"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isRngParam</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngParam"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isRngParentRef</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngParentRef"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isRngRef</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngRef"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isRngRelaxError</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngRelaxError"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isRngStart</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngStart"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isRngText</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngText"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isRngType</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngType"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isRngValue</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngValue"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isRngZeroOrMore</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AisRngZeroOrMore"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->isRoot</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AisRoot"->Text.XML.HXT.DOM.XmlNode</A->, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisRoot"->Text.XML.HXT.Arrow.XmlArrow</A->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isScAttr</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AisScAttr"->Text.XML.HXT.Arrow.Pickle.Schema</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isScCharData</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AisScCharData"->Text.XML.HXT.Arrow.Pickle.Schema</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isScElem</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AisScElem"->Text.XML.HXT.Arrow.Pickle.Schema</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isScElemRef</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AisScElemRef"->Text.XML.HXT.Arrow.Pickle.Schema</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isScEnum</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AisScEnum"->Text.XML.HXT.Arrow.Pickle.Schema</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isScFixed</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AisScFixed"->Text.XML.HXT.Arrow.Pickle.Schema</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isScList</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AisScList"->Text.XML.HXT.Arrow.Pickle.Schema</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isScOpt</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AisScOpt"->Text.XML.HXT.Arrow.Pickle.Schema</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isScSARE</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AisScSARE"->Text.XML.HXT.Arrow.Pickle.Schema</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isScXsd</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AisScXsd"->Text.XML.HXT.Arrow.Pickle.Schema</A-></TD-></TR-><TR CLASS="indexrow"-><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</TD-></TR-><TR CLASS="indexrow"-><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</TD-></TR-><TR CLASS="indexrow"-><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</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->isText</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AisText"->Text.XML.HXT.DOM.XmlNode</A->, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisText"->Text.XML.HXT.Arrow.XmlArrow</A->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isTrueValue</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlOptions.html#v%3AisTrueValue"->Text.XML.HXT.DOM.XmlOptions</A->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isUnicodeC</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeC"->Text.XML.HXT.RelaxNG.Unicode.CharProps</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isUnicodeCc</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeCc"->Text.XML.HXT.RelaxNG.Unicode.CharProps</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isUnicodeCf</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeCf"->Text.XML.HXT.RelaxNG.Unicode.CharProps</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isUnicodeCo</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeCo"->Text.XML.HXT.RelaxNG.Unicode.CharProps</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isUnicodeCs</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeCs"->Text.XML.HXT.RelaxNG.Unicode.CharProps</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isUnicodeL</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeL"->Text.XML.HXT.RelaxNG.Unicode.CharProps</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isUnicodeLl</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeLl"->Text.XML.HXT.RelaxNG.Unicode.CharProps</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isUnicodeLm</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeLm"->Text.XML.HXT.RelaxNG.Unicode.CharProps</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isUnicodeLo</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeLo"->Text.XML.HXT.RelaxNG.Unicode.CharProps</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isUnicodeLt</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeLt"->Text.XML.HXT.RelaxNG.Unicode.CharProps</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isUnicodeLu</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeLu"->Text.XML.HXT.RelaxNG.Unicode.CharProps</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isUnicodeM</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeM"->Text.XML.HXT.RelaxNG.Unicode.CharProps</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isUnicodeMc</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeMc"->Text.XML.HXT.RelaxNG.Unicode.CharProps</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isUnicodeMe</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeMe"->Text.XML.HXT.RelaxNG.Unicode.CharProps</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isUnicodeMn</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeMn"->Text.XML.HXT.RelaxNG.Unicode.CharProps</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isUnicodeN</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeN"->Text.XML.HXT.RelaxNG.Unicode.CharProps</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isUnicodeNd</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeNd"->Text.XML.HXT.RelaxNG.Unicode.CharProps</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isUnicodeNl</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeNl"->Text.XML.HXT.RelaxNG.Unicode.CharProps</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isUnicodeNo</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeNo"->Text.XML.HXT.RelaxNG.Unicode.CharProps</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isUnicodeP</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeP"->Text.XML.HXT.RelaxNG.Unicode.CharProps</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isUnicodePc</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodePc"->Text.XML.HXT.RelaxNG.Unicode.CharProps</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isUnicodePd</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodePd"->Text.XML.HXT.RelaxNG.Unicode.CharProps</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isUnicodePe</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodePe"->Text.XML.HXT.RelaxNG.Unicode.CharProps</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isUnicodePf</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodePf"->Text.XML.HXT.RelaxNG.Unicode.CharProps</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isUnicodePi</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodePi"->Text.XML.HXT.RelaxNG.Unicode.CharProps</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isUnicodePo</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodePo"->Text.XML.HXT.RelaxNG.Unicode.CharProps</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isUnicodePs</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodePs"->Text.XML.HXT.RelaxNG.Unicode.CharProps</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isUnicodeS</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeS"->Text.XML.HXT.RelaxNG.Unicode.CharProps</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isUnicodeSc</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeSc"->Text.XML.HXT.RelaxNG.Unicode.CharProps</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isUnicodeSk</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeSk"->Text.XML.HXT.RelaxNG.Unicode.CharProps</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isUnicodeSm</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeSm"->Text.XML.HXT.RelaxNG.Unicode.CharProps</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isUnicodeSo</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeSo"->Text.XML.HXT.RelaxNG.Unicode.CharProps</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isUnicodeZ</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeZ"->Text.XML.HXT.RelaxNG.Unicode.CharProps</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isUnicodeZl</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeZl"->Text.XML.HXT.RelaxNG.Unicode.CharProps</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isUnicodeZp</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeZp"->Text.XML.HXT.RelaxNG.Unicode.CharProps</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isUnicodeZs</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html#v%3AisUnicodeZs"->Text.XML.HXT.RelaxNG.Unicode.CharProps</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isUnparsedEntity</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AisUnparsedEntity"->Text.XML.HXT.DTDValidation.TypeDefs</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isWellformedNameSpaceName</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AisWellformedNameSpaceName"->Text.XML.HXT.DOM.QualifiedName</A->, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isWellformedNSDecl</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AisWellformedNSDecl"->Text.XML.HXT.DOM.QualifiedName</A->, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isWellformedQName</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AisWellformedQName"->Text.XML.HXT.DOM.QualifiedName</A->, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isWellformedQualifiedName</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AisWellformedQualifiedName"->Text.XML.HXT.DOM.QualifiedName</A->, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isWhiteSpace</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AisWhiteSpace"->Text.XML.HXT.Arrow.XmlArrow</A->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->isXmlMimeType</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-MimeTypes.html#v%3AisXmlMimeType"->Text.XML.HXT.DOM.MimeTypes</A->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->isZero</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3AisZero"->Text.XML.HXT.RelaxNG.XmlSchema.Regex</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->keyword</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Akeyword"->Text.XML.HXT.Parser.XmlTokenParser</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->keywords</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Akeywords"->Text.XML.HXT.Parser.XmlTokenParser</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->Kleisli</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Data Constructor)</TD-><TD CLASS="indexlinks"->Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Type/Class)</TD-><TD CLASS="indexlinks"->Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->k_any</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->k_default</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->k_empty</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->k_entities</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->k_entity</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->k_enumeration</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->k_fixed</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->k_id</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->k_idref</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->k_idrefs</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->k_ignore</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->k_implied</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->k_include</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->k_ndata</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->k_nmtoken</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->k_nmtokens</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->k_notation</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->k_pcdata</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->k_peref</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->k_public</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->k_required</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->k_system</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->LA</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Type/Class)</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ListArrow.html#t%3ALA"->Control.Arrow.ListArrow</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Data Constructor)</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ListArrow.html#v%3ALA"->Control.Arrow.ListArrow</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->lastChild</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-CreatePattern.html#v%3AlastChild"->Text.XML.HXT.RelaxNG.CreatePattern</A->, Text.XML.HXT.RelaxNG</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->left</TD-><TD CLASS="indexlinks"->Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->leftApp</TD-><TD CLASS="indexlinks"->Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->List</TD-><TD CLASS="indexlinks"->Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->listA</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowList.html#v%3AlistA"->Control.Arrow.ArrowList</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->LiteralQName</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.CompiledStylesheet</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->LocalName</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (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 CLASS="indexrow"-><TD CLASS="indexannot"->2 (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 CLASS="indexrow"-><TD CLASS="indexentry"->localPart</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AlocalPart"->Text.XML.HXT.DOM.QualifiedName</A->, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->localPart'</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AlocalPart%27"->Text.XML.HXT.DOM.QualifiedName</A->, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->loop</TD-><TD CLASS="indexlinks"->Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->lpar</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Alpar"->Text.XML.HXT.Parser.XmlTokenParser</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->lt</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Alt"->Text.XML.HXT.Parser.XmlTokenParser</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->markupdecl</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Amarkupdecl"->Text.XML.HXT.Parser.XmlParsec</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->match</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-RegexMatch.html#v%3Amatch"->Text.XML.HXT.RelaxNG.XmlSchema.RegexMatch</A->, Text.XML.HXT.RelaxNG</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->matches</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3Amatches"->Text.XML.HXT.DTDValidation.RE</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#v%3Amatches"->Text.XML.HXT.DTDValidation.XmlRE</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->MatchExpr</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexannot"->2 (Data Constructor)</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.CompiledStylesheet</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->matchRE</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-RegexMatch.html#v%3AmatchRE"->Text.XML.HXT.RelaxNG.XmlSchema.RegexMatch</A->, Text.XML.HXT.RelaxNG</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->matchRegexA</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AmatchRegexA"->Text.XML.HXT.Arrow.XmlRegex</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->matchWithRE</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3AmatchWithRE"->Text.XML.HXT.RelaxNG.XmlSchema.Regex</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->matchXmlRegex</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AmatchXmlRegex"->Text.XML.HXT.Arrow.XmlRegex</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->MatRule</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.CompiledStylesheet</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->mergeA</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowList.html#v%3AmergeA"->Control.Arrow.ArrowList</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->mergeAttrl</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AmergeAttrl"->Text.XML.HXT.DOM.XmlNode</A->, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->mergeNotAllowed</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3AmergeNotAllowed"->Text.XML.HXT.RelaxNG.DataTypes</A->, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->mimeTypeDefaults</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-MimeTypeDefaults.html#v%3AmimeTypeDefaults"->Text.XML.HXT.DOM.MimeTypeDefaults</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->MimeTypeTable</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-MimeTypes.html#t%3AMimeTypeTable"->Text.XML.HXT.DOM.MimeTypes</A->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->misc</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Amisc"->Text.XML.HXT.Parser.XmlParsec</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->mk</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3Amk"->Text.XML.HXT.Arrow.XPathSimple</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->mkAlt</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3AmkAlt"->Text.XML.HXT.RelaxNG.XmlSchema.Regex</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AmkAlt"->Text.XML.HXT.Arrow.XmlRegex</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->mkAttr</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AmkAttr"->Text.XML.HXT.DOM.XmlNode</A->, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkAttr"->Text.XML.HXT.Arrow.XmlArrow</A->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->mkAttrNode</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AmkAttrNode"->Text.XML.HXT.DOM.XmlNode</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->mkCdata</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AmkCdata"->Text.XML.HXT.DOM.XmlNode</A->, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkCdata"->Text.XML.HXT.Arrow.XmlArrow</A->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->mkCharRef</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AmkCharRef"->Text.XML.HXT.DOM.XmlNode</A->, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkCharRef"->Text.XML.HXT.Arrow.XmlArrow</A->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->mkCmt</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AmkCmt"->Text.XML.HXT.DOM.XmlNode</A->, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkCmt"->Text.XML.HXT.Arrow.XmlArrow</A->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->mkCompl</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3AmkCompl"->Text.XML.HXT.RelaxNG.XmlSchema.Regex</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->mkDif</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3AmkDif"->Text.XML.HXT.RelaxNG.XmlSchema.Regex</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->mkDot</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3AmkDot"->Text.XML.HXT.RelaxNG.XmlSchema.Regex</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AmkDot"->Text.XML.HXT.Arrow.XmlRegex</A-></TD-></TR-><TR CLASS="indexrow"-><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.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->mkDTDElem</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AmkDTDElem"->Text.XML.HXT.DOM.XmlNode</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkDTDElem"->Text.XML.HXT.Arrow.XmlArrow</A->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->mkDTDNode</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AmkDTDNode"->Text.XML.HXT.DOM.XmlNode</A-></TD-></TR-><TR CLASS="indexrow"-><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.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->mkElement</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AmkElement"->Text.XML.HXT.DOM.XmlNode</A->, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkElement"->Text.XML.HXT.Arrow.XmlArrow</A->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->mkElementNode</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AmkElementNode"->Text.XML.HXT.DOM.XmlNode</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->mkEntityRef</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AmkEntityRef"->Text.XML.HXT.DOM.XmlNode</A->, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkEntityRef"->Text.XML.HXT.Arrow.XmlArrow</A->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->mkError</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AmkError"->Text.XML.HXT.DOM.XmlNode</A->, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkError"->Text.XML.HXT.Arrow.XmlArrow</A->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->mkLeaf</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-Class.html#v%3AmkLeaf"->Data.Tree.Class</A->, Data.Tree.NTree.TypeDefs, Data.NavTree, Text.XML.HXT.DOM.XmlNode, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowTree.html#v%3AmkLeaf"->Control.Arrow.ArrowTree</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->mkList</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AmkList"->Text.XML.HXT.Parser.XmlTokenParser</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->mkName</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkName"->Text.XML.HXT.DOM.QualifiedName</A->, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->mkNsName</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkNsName"->Text.XML.HXT.DOM.QualifiedName</A->, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->mkOpt</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3AmkOpt"->Text.XML.HXT.RelaxNG.XmlSchema.Regex</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AmkOpt"->Text.XML.HXT.Arrow.XmlRegex</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->mkPi</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AmkPi"->Text.XML.HXT.DOM.XmlNode</A->, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkPi"->Text.XML.HXT.Arrow.XmlArrow</A->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->mkPrefixLocalPart</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkPrefixLocalPart"->Text.XML.HXT.DOM.QualifiedName</A->, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->mkPrim</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AmkPrim"->Text.XML.HXT.Arrow.XmlRegex</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->mkPrimA</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AmkPrimA"->Text.XML.HXT.Arrow.XmlRegex</A-></TD-></TR-><TR CLASS="indexrow"-><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.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->mkQName</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkQName"->Text.XML.HXT.DOM.QualifiedName</A->, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->mkQName'</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkQName%27"->Text.XML.HXT.DOM.QualifiedName</A->, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->mkRep</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3AmkRep"->Text.XML.HXT.RelaxNG.XmlSchema.Regex</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AmkRep"->Text.XML.HXT.Arrow.XmlRegex</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->mkRng</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3AmkRng"->Text.XML.HXT.RelaxNG.XmlSchema.Regex</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AmkRng"->Text.XML.HXT.Arrow.XmlRegex</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->mkRngChoice</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AmkRngChoice"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->mkRngDefine</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AmkRngDefine"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->mkRngElement</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AmkRngElement"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->mkRngEmpty</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AmkRngEmpty"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->mkRngGrammar</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AmkRngGrammar"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->mkRngGroup</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AmkRngGroup"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->mkRngInterleave</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AmkRngInterleave"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->mkRngName</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AmkRngName"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->mkRngNotAllowed</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AmkRngNotAllowed"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->mkRngOneOrMore</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AmkRngOneOrMore"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->mkRngRef</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AmkRngRef"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->mkRngRelaxError</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AmkRngRelaxError"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->mkRngStart</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AmkRngStart"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->mkRngText</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AmkRngText"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->mkRoot</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AmkRoot"->Text.XML.HXT.DOM.XmlNode</A->, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->mkSeq</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3AmkSeq"->Text.XML.HXT.RelaxNG.XmlSchema.Regex</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AmkSeq"->Text.XML.HXT.Arrow.XmlRegex</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->mkSNsName</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkSNsName"->Text.XML.HXT.DOM.QualifiedName</A->, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->mkStar</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3AmkStar"->Text.XML.HXT.RelaxNG.XmlSchema.Regex</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AmkStar"->Text.XML.HXT.Arrow.XmlRegex</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->mkSym</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3AmkSym"->Text.XML.HXT.RelaxNG.XmlSchema.Regex</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->mkSym1</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3AmkSym1"->Text.XML.HXT.RelaxNG.XmlSchema.Regex</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->mkSymRng</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3AmkSymRng"->Text.XML.HXT.RelaxNG.XmlSchema.Regex</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->mkText</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AmkText"->Text.XML.HXT.DOM.XmlNode</A->, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AmkText"->Text.XML.HXT.Arrow.XmlArrow</A->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->mkTree</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-Class.html#v%3AmkTree"->Data.Tree.Class</A->, Data.Tree.NTree.TypeDefs, Data.NavTree, Text.XML.HXT.DOM.XmlNode, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowTree.html#v%3AmkTree"->Control.Arrow.ArrowTree</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->mkUnit</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3AmkUnit"->Text.XML.HXT.RelaxNG.XmlSchema.Regex</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AmkUnit"->Text.XML.HXT.Arrow.XmlRegex</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->MkVar</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.CompiledStylesheet</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->mkZero</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3AmkZero"->Text.XML.HXT.RelaxNG.XmlSchema.Regex</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AmkZero"->Text.XML.HXT.Arrow.XmlRegex</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->msgToErr</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AmsgToErr"->Text.XML.HXT.DTDValidation.TypeDefs</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->multi</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowTree.html#v%3Amulti"->Control.Arrow.ArrowTree</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->multi'</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3Amulti%27"->Text.XML.HXT.Arrow.XPathSimple</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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-><TR CLASS="indexrow"-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->Name</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (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 CLASS="indexrow"-><TD CLASS="indexannot"->2 (Data Constructor)</TD-><TD CLASS="indexlinks"->Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->3 (Type/Class)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3AName"->Text.XML.HXT.Arrow.Pickle.Schema</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->name</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Aname"->Text.XML.HXT.Parser.XmlTokenParser</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->NameClassChoice</TD-><TD CLASS="indexlinks"->Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->nameOfAttr</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AnameOfAttr"->Text.XML.HXT.DTDValidation.TypeDefs</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->nameOfElem</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AnameOfElem"->Text.XML.HXT.DTDValidation.TypeDefs</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->namePrefix</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AnamePrefix"->Text.XML.HXT.DOM.QualifiedName</A->, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->namePrefix'</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AnamePrefix%27"->Text.XML.HXT.DOM.QualifiedName</A->, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->names</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Anames"->Text.XML.HXT.Parser.XmlTokenParser</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->namespaceUri</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AnamespaceUri"->Text.XML.HXT.DOM.QualifiedName</A->, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->namespaceUri'</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AnamespaceUri%27"->Text.XML.HXT.DOM.QualifiedName</A->, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->nameT</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AnameT"->Text.XML.HXT.Parser.XmlTokenParser</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->NamRule</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.CompiledStylesheet</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->NCError</TD-><TD CLASS="indexlinks"->Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->ncName</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AncName"->Text.XML.HXT.Parser.XmlTokenParser</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->neg</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowIf.html#v%3Aneg"->Control.Arrow.ArrowIf</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->newAtom</TD-><TD CLASS="indexlinks"-><A HREF="Data-Atom.html#v%3AnewAtom"->Data.Atom</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->newXName</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AnewXName"->Text.XML.HXT.DOM.QualifiedName</A->, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->nextState</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowState.html#v%3AnextState"->Control.Arrow.ArrowState</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->nmtoken</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Anmtoken"->Text.XML.HXT.Parser.XmlTokenParser</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->nmtokens</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Anmtokens"->Text.XML.HXT.Parser.XmlTokenParser</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->nmtokenT</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AnmtokenT"->Text.XML.HXT.Parser.XmlTokenParser</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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.NavTree, Text.XML.HXT.DOM.XmlNode, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->none</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowList.html#v%3Anone"->Control.Arrow.ArrowList</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->noOfChildren</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AnoOfChildren"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->normalizeAttributeValue</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DTDValidation-AttributeValueValidation.html#v%3AnormalizeAttributeValue"->Text.XML.HXT.DTDValidation.AttributeValueValidation</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->normalizeBlanks</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-Util.html#v%3AnormalizeBlanks"->Text.XML.HXT.DOM.Util</A->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->normalizeNsUri</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AnormalizeNsUri"->Text.XML.HXT.DOM.QualifiedName</A->, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->NotAllowed</TD-><TD CLASS="indexlinks"->Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->notAllowed1</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3AnotAllowed1"->Text.XML.HXT.RelaxNG.DataTypes</A->, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->notAllowed2</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3AnotAllowed2"->Text.XML.HXT.RelaxNG.DataTypes</A->, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->notAllowedN</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3AnotAllowedN"->Text.XML.HXT.RelaxNG.DataTypes</A->, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD-></TR-><TR CLASS="indexrow"-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->notContaining</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowIf.html#v%3AnotContaining"->Control.Arrow.ArrowIf</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->NsEnv</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3ANsEnv"->Text.XML.HXT.DOM.QualifiedName</A->, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->NsName</TD-><TD CLASS="indexlinks"->Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->NsNameExcept</TD-><TD CLASS="indexlinks"->Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->NTree</TD-></TR-><TR CLASS="indexrow"-><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.NavTree, Text.XML.HXT.DOM.XmlNode, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes</TD-></TR-><TR CLASS="indexrow"-><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.NavTree, Text.XML.HXT.DOM.XmlNode, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->NTrees</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTrees"->Data.Tree.NTree.TypeDefs</A->, Data.NavTree, Text.XML.HXT.DOM.XmlNode, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->nullable</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3Anullable"->Text.XML.HXT.RelaxNG.XmlSchema.Regex</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3Anullable"->Text.XML.HXT.DTDValidation.RE</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->3 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3Anullable"->Text.XML.HXT.Arrow.XmlRegex</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->nullXName</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AnullXName"->Text.XML.HXT.DOM.QualifiedName</A->, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->numberValid</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3AnumberValid"->Text.XML.HXT.RelaxNG.DataTypeLibUtils</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->numParamValid</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3AnumParamValid"->Text.XML.HXT.RelaxNG.DataTypeLibUtils</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->n_comment</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XPath.XPathKeywords</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->n_node</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XPath.XPathKeywords</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->n_processing_instruction</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XPath.XPathKeywords</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->ok</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3Aok"->Text.XML.HXT.RelaxNG.DataTypeLibUtils</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->OneOrMore</TD-><TD CLASS="indexlinks"->Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->orElse</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowIf.html#v%3AorElse"->Control.Arrow.ArrowIf</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->parseHtmlContent</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-HtmlParsec.html#v%3AparseHtmlContent"->Text.XML.HXT.Parser.HtmlParsec</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseHtmlContent"->Text.XML.HXT.Arrow.ParserInterface</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->parseHtmlDocument</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-HtmlParsec.html#v%3AparseHtmlDocument"->Text.XML.HXT.Parser.HtmlParsec</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (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 CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->parseHtmlTagSoup</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-TagSoup.html#v%3AparseHtmlTagSoup"->Text.XML.HXT.Parser.TagSoup</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseHtmlTagSoup"->Text.XML.HXT.Arrow.ParserInterface</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->parseHtmlText</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-HtmlParsec.html#v%3AparseHtmlText"->Text.XML.HXT.Parser.HtmlParsec</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->parseMimeTypeTable</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-MimeTypes.html#v%3AparseMimeTypeTable"->Text.XML.HXT.DOM.MimeTypes</A->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->parseName</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseName"->Text.XML.HXT.Parser.XmlParsec</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->parseNMToken</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseNMToken"->Text.XML.HXT.Parser.XmlParsec</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->parseRegex</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-RegexParser.html#v%3AparseRegex"->Text.XML.HXT.RelaxNG.XmlSchema.RegexParser</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->parseXmlAttrValue</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlAttrValue"->Text.XML.HXT.Parser.XmlParsec</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseXmlAttrValue"->Text.XML.HXT.Arrow.ParserInterface</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->parseXmlContent</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlContent"->Text.XML.HXT.Parser.XmlParsec</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseXmlContent"->Text.XML.HXT.Arrow.ParserInterface</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->parseXmlDocEncodingSpec</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlDocEncodingSpec"->Text.XML.HXT.Parser.XmlParsec</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseXmlDocEncodingSpec"->Text.XML.HXT.Arrow.ParserInterface</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->parseXmlDocument</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlDocument"->Text.XML.HXT.Parser.XmlParsec</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (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 CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->parseXmlDTDdecl</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlDTDParser.html#v%3AparseXmlDTDdecl"->Text.XML.HXT.Parser.XmlDTDParser</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseXmlDTDdecl"->Text.XML.HXT.Arrow.ParserInterface</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->parseXmlDTDdeclPart</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlDTDParser.html#v%3AparseXmlDTDdeclPart"->Text.XML.HXT.Parser.XmlDTDParser</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseXmlDTDdeclPart"->Text.XML.HXT.Arrow.ParserInterface</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->parseXmlDTDEntityValue</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlDTDParser.html#v%3AparseXmlDTDEntityValue"->Text.XML.HXT.Parser.XmlDTDParser</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseXmlDTDEntityValue"->Text.XML.HXT.Arrow.ParserInterface</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->parseXmlDTDPart</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlDTDPart"->Text.XML.HXT.Parser.XmlParsec</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseXmlDTDPart"->Text.XML.HXT.Arrow.ParserInterface</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->parseXmlEncodingSpec</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlEncodingSpec"->Text.XML.HXT.Parser.XmlParsec</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->parseXmlEntityEncodingSpec</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlEntityEncodingSpec"->Text.XML.HXT.Parser.XmlParsec</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseXmlEntityEncodingSpec"->Text.XML.HXT.Arrow.ParserInterface</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->parseXmlGeneralEntityValue</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlGeneralEntityValue"->Text.XML.HXT.Parser.XmlParsec</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseXmlGeneralEntityValue"->Text.XML.HXT.Arrow.ParserInterface</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->parseXmlPart</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlPart"->Text.XML.HXT.Parser.XmlParsec</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->parseXmlText</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AparseXmlText"->Text.XML.HXT.Parser.XmlParsec</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->partitionA</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowIf.html#v%3ApartitionA"->Control.Arrow.ArrowIf</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->partitionEither</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-Util.html#v%3ApartitionEither"->Text.XML.HXT.DOM.Util</A->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->peReference</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3ApeReference"->Text.XML.HXT.Parser.XmlTokenParser</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlDTDTokenParser.html#v%3ApeReference"->Text.XML.HXT.Parser.XmlDTDTokenParser</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->peReferenceT</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3ApeReferenceT"->Text.XML.HXT.Parser.XmlTokenParser</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->perform</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowList.html#v%3Aperform"->Control.Arrow.ArrowList</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->performCheck</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3AperformCheck"->Text.XML.HXT.RelaxNG.DataTypeLibUtils</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->pI</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3ApI"->Text.XML.HXT.Parser.XmlParsec</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->pickleDoc</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3ApickleDoc"->Text.XML.HXT.Arrow.Pickle.Xml</A->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3ApickleDoc"->Text.XML.HXT.Arrow.Pickle</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->prepareContents</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-WriteDocument.html#v%3AprepareContents"->Text.XML.HXT.Arrow.WriteDocument</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->preventEmptyElements</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3ApreventEmptyElements"->Text.XML.HXT.Arrow.Edit</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->printRE</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3AprintRE"->Text.XML.HXT.DTDValidation.RE</A->, <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#v%3AprintRE"->Text.XML.HXT.DTDValidation.XmlRE</A-></TD-></TR-><TR CLASS="indexrow"-><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.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->processBottomUp</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowTree.html#v%3AprocessBottomUp"->Control.Arrow.ArrowTree</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->processBottomUpWhenNot</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowTree.html#v%3AprocessBottomUpWhenNot"->Control.Arrow.ArrowTree</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->processChildren</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowTree.html#v%3AprocessChildren"->Control.Arrow.ArrowTree</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->processFromNodeSet</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AprocessFromNodeSet"->Text.XML.HXT.Arrow.XPath</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->processTopDown</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowTree.html#v%3AprocessTopDown"->Control.Arrow.ArrowTree</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->processTopDownUntil</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowTree.html#v%3AprocessTopDownUntil"->Control.Arrow.ArrowTree</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->processXPathTrees</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AprocessXPathTrees"->Text.XML.HXT.Arrow.XPath</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->processXPathTreesWithNsEnv</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AprocessXPathTreesWithNsEnv"->Text.XML.HXT.Arrow.XPath</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->prolog</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Aprolog"->Text.XML.HXT.Parser.XmlParsec</A-></TD-></TR-><TR CLASS="indexrow"-><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</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->propagateNamespaces</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3ApropagateNamespaces"->Text.XML.HXT.Arrow.Namespace</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->PU</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Type/Class)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"->Text.XML.HXT.Arrow.Pickle.Xml</A->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3APU"->Text.XML.HXT.Arrow.Pickle</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Data Constructor)</TD-><TD CLASS="indexlinks"->Text.XML.HXT.Arrow.Pickle.Xml, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3APU"->Text.XML.HXT.Arrow.Pickle</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->pubidLiteral</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3ApubidLiteral"->Text.XML.HXT.Parser.XmlTokenParser</A-></TD-></TR-><TR CLASS="indexrow"-><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</TD-></TR-><TR CLASS="indexrow"-><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</TD-></TR-><TR CLASS="indexrow"-><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</TD-></TR-><TR CLASS="indexrow"-><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.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->QName</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->Text.XML.HXT.DOM.QualifiedName</A->, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->qName</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AqName"->Text.XML.HXT.Parser.XmlTokenParser</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->qualifiedName</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AqualifiedName"->Text.XML.HXT.DOM.QualifiedName</A->, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->quoted</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Aquoted"->Text.XML.HXT.Parser.XmlTokenParser</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->RE</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DTDValidation-RE.html#t%3ARE"->Text.XML.HXT.DTDValidation.RE</A->, <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#t%3ARE"->Text.XML.HXT.DTDValidation.XmlRE</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->readMimeTypeTable</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-MimeTypes.html#v%3AreadMimeTypeTable"->Text.XML.HXT.DOM.MimeTypes</A->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->reference</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Areference"->Text.XML.HXT.Parser.XmlTokenParser</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->referenceT</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AreferenceT"->Text.XML.HXT.Parser.XmlTokenParser</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->Regex</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#t%3ARegex"->Text.XML.HXT.RelaxNG.XmlSchema.Regex</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->relaxSchemaArrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->relaxSchemaTree</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->remAttrDec</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#v%3AremAttrDec"->Text.XML.HXT.Arrow.Pickle.DTD</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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</TD-></TR-><TR CLASS="indexrow"-><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</TD-></TR-><TR CLASS="indexrow"-><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.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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</TD-></TR-><TR CLASS="indexrow"-><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</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->removeDoublicateDefs</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DTDValidation-DTDValidation.html#v%3AremoveDoublicateDefs"->Text.XML.HXT.DTDValidation.DTDValidation</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DTDValidation-Validation.html#v%3AremoveDoublicateDefs"->Text.XML.HXT.DTDValidation.Validation</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->removeEncodingSpec</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AremoveEncodingSpec"->Text.XML.HXT.Parser.XmlParsec</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AremoveEncodingSpec"->Text.XML.HXT.Arrow.ParserInterface</A-></TD-></TR-><TR CLASS="indexrow"-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->Rep</TD-><TD CLASS="indexlinks"->Text.XML.HXT.Arrow.Pickle.Schema</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->replaceChildren</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowTree.html#v%3AreplaceChildren"->Control.Arrow.ArrowTree</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->returnA</TD-><TD CLASS="indexlinks"->Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->RE_ALT</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3ARE_ALT"->Text.XML.HXT.DTDValidation.RE</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->re_alt</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3Are_alt"->Text.XML.HXT.DTDValidation.RE</A->, <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#v%3Are_alt"->Text.XML.HXT.DTDValidation.XmlRE</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->RE_DOT</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3ARE_DOT"->Text.XML.HXT.DTDValidation.RE</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->re_dot</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3Are_dot"->Text.XML.HXT.DTDValidation.RE</A->, <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#v%3Are_dot"->Text.XML.HXT.DTDValidation.XmlRE</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->RE_OPT</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3ARE_OPT"->Text.XML.HXT.DTDValidation.RE</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->re_opt</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3Are_opt"->Text.XML.HXT.DTDValidation.RE</A->, <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#v%3Are_opt"->Text.XML.HXT.DTDValidation.XmlRE</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->RE_PLUS</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3ARE_PLUS"->Text.XML.HXT.DTDValidation.RE</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->re_plus</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3Are_plus"->Text.XML.HXT.DTDValidation.RE</A->, <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#v%3Are_plus"->Text.XML.HXT.DTDValidation.XmlRE</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->RE_REP</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3ARE_REP"->Text.XML.HXT.DTDValidation.RE</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->re_rep</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3Are_rep"->Text.XML.HXT.DTDValidation.RE</A->, <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#v%3Are_rep"->Text.XML.HXT.DTDValidation.XmlRE</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->RE_SEQ</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3ARE_SEQ"->Text.XML.HXT.DTDValidation.RE</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->re_seq</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3Are_seq"->Text.XML.HXT.DTDValidation.RE</A->, <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#v%3Are_seq"->Text.XML.HXT.DTDValidation.XmlRE</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->RE_SYM</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3ARE_SYM"->Text.XML.HXT.DTDValidation.RE</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->re_sym</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3Are_sym"->Text.XML.HXT.DTDValidation.RE</A->, <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#v%3Are_sym"->Text.XML.HXT.DTDValidation.XmlRE</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->RE_UNIT</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3ARE_UNIT"->Text.XML.HXT.DTDValidation.RE</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->re_unit</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3Are_unit"->Text.XML.HXT.DTDValidation.RE</A->, <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#v%3Are_unit"->Text.XML.HXT.DTDValidation.XmlRE</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->RE_ZERO</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3ARE_ZERO"->Text.XML.HXT.DTDValidation.RE</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->re_zero</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DTDValidation-RE.html#v%3Are_zero"->Text.XML.HXT.DTDValidation.RE</A->, <A HREF="Text-XML-HXT-DTDValidation-XmlRE.html#v%3Are_zero"->Text.XML.HXT.DTDValidation.XmlRE</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->right</TD-><TD CLASS="indexlinks"->Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->rnfA</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowNF.html#v%3ArnfA"->Control.Arrow.ArrowNF</A->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->rng_length</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3Arng_length"->Text.XML.HXT.RelaxNG.DataTypeLibUtils</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->rng_maxExclusive</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3Arng_maxExclusive"->Text.XML.HXT.RelaxNG.DataTypeLibUtils</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->rng_maxInclusive</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3Arng_maxInclusive"->Text.XML.HXT.RelaxNG.DataTypeLibUtils</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->rng_maxLength</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3Arng_maxLength"->Text.XML.HXT.RelaxNG.DataTypeLibUtils</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->rng_minExclusive</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3Arng_minExclusive"->Text.XML.HXT.RelaxNG.DataTypeLibUtils</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->rng_minInclusive</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3Arng_minInclusive"->Text.XML.HXT.RelaxNG.DataTypeLibUtils</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->rng_minLength</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3Arng_minLength"->Text.XML.HXT.RelaxNG.DataTypeLibUtils</A-></TD-></TR-><TR CLASS="indexrow"-><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.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->rpar</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Arpar"->Text.XML.HXT.Parser.XmlTokenParser</A-></TD-></TR-><TR CLASS="indexrow"-><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</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->runKleisli</TD-><TD CLASS="indexlinks"->Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->runLA</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ListArrow.html#v%3ArunLA"->Control.Arrow.ListArrow</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->runSLA</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-StateListArrow.html#v%3ArunSLA"->Control.Arrow.StateListArrow</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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-><TR CLASS="indexrow"-><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.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->scAlt</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AscAlt"->Text.XML.HXT.Arrow.Pickle.Schema</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->scAlts</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AscAlts"->Text.XML.HXT.Arrow.Pickle.Schema</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->scanRegexA</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AscanRegexA"->Text.XML.HXT.Arrow.XmlRegex</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->scanXmlRegex</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AscanXmlRegex"->Text.XML.HXT.Arrow.XmlRegex</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->scAttr</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AscAttr"->Text.XML.HXT.Arrow.Pickle.Schema</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->scAttrToXml</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#v%3AscAttrToXml"->Text.XML.HXT.Arrow.Pickle.DTD</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->scCont</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#v%3AscCont"->Text.XML.HXT.Arrow.Pickle.DTD</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->scConts</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#v%3AscConts"->Text.XML.HXT.Arrow.Pickle.DTD</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->scContToXml</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#v%3AscContToXml"->Text.XML.HXT.Arrow.Pickle.DTD</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->scDT</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AscDT"->Text.XML.HXT.Arrow.Pickle.Schema</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->scDTxsd</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AscDTxsd"->Text.XML.HXT.Arrow.Pickle.Schema</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->scElem</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AscElem"->Text.XML.HXT.Arrow.Pickle.Schema</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->scEmpty</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AscEmpty"->Text.XML.HXT.Arrow.Pickle.Schema</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->scEnum</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AscEnum"->Text.XML.HXT.Arrow.Pickle.Schema</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->scFixed</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AscFixed"->Text.XML.HXT.Arrow.Pickle.Schema</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->Schema</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchema"->Text.XML.HXT.Arrow.Pickle.Schema</A->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3ASchema"->Text.XML.HXT.Arrow.Pickle</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->Schemas</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#t%3ASchemas"->Text.XML.HXT.Arrow.Pickle.Schema</A->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3ASchemas"->Text.XML.HXT.Arrow.Pickle</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->scList</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AscList"->Text.XML.HXT.Arrow.Pickle.Schema</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->scList1</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AscList1"->Text.XML.HXT.Arrow.Pickle.Schema</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->scNmtoken</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AscNmtoken"->Text.XML.HXT.Arrow.Pickle.Schema</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->scNmtokens</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AscNmtokens"->Text.XML.HXT.Arrow.Pickle.Schema</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->scNull</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AscNull"->Text.XML.HXT.Arrow.Pickle.Schema</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->scOpt</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AscOpt"->Text.XML.HXT.Arrow.Pickle.Schema</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->scOption</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AscOption"->Text.XML.HXT.Arrow.Pickle.Schema</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->scRep</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AscRep"->Text.XML.HXT.Arrow.Pickle.Schema</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->scSeq</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AscSeq"->Text.XML.HXT.Arrow.Pickle.Schema</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->scSeqs</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AscSeqs"->Text.XML.HXT.Arrow.Pickle.Schema</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->scString</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AscString"->Text.XML.HXT.Arrow.Pickle.Schema</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->scString1</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AscString1"->Text.XML.HXT.Arrow.Pickle.Schema</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->scWrap</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html#v%3AscWrap"->Text.XML.HXT.Arrow.Pickle.DTD</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->sc_1</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3Asc_1"->Text.XML.HXT.Arrow.Pickle.Schema</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->sc_dt</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3Asc_dt"->Text.XML.HXT.Arrow.Pickle.Schema</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->sc_l</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3Asc_l"->Text.XML.HXT.Arrow.Pickle.Schema</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->sc_lb</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3Asc_lb"->Text.XML.HXT.Arrow.Pickle.Schema</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->sc_n</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3Asc_n"->Text.XML.HXT.Arrow.Pickle.Schema</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->sc_ub</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3Asc_ub"->Text.XML.HXT.Arrow.Pickle.Schema</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->sDDecl</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AsDDecl"->Text.XML.HXT.Parser.XmlParsec</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->second</TD-><TD CLASS="indexlinks"->Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->sed</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-RegexMatch.html#v%3Ased"->Text.XML.HXT.RelaxNG.XmlSchema.RegexMatch</A->, Text.XML.HXT.RelaxNG</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->sedRE</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-RegexMatch.html#v%3AsedRE"->Text.XML.HXT.RelaxNG.XmlSchema.RegexMatch</A->, Text.XML.HXT.RelaxNG</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->SelectExpr</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexannot"->2 (Data Constructor)</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.CompiledStylesheet</TD-></TR-><TR CLASS="indexrow"-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->semi</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Asemi"->Text.XML.HXT.Parser.XmlTokenParser</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->separator</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Aseparator"->Text.XML.HXT.Parser.XmlTokenParser</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->Seq</TD-><TD CLASS="indexlinks"->Text.XML.HXT.Arrow.Pickle.Schema</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->seqA</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowList.html#v%3AseqA"->Control.Arrow.ArrowList</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->setAttrName</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AsetAttrName"->Text.XML.HXT.DOM.XmlNode</A->, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AsetAttrName"->Text.XML.HXT.Arrow.XmlArrow</A->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->setChildren</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-Class.html#v%3AsetChildren"->Data.Tree.Class</A->, Data.Tree.NTree.TypeDefs, Data.NavTree, Text.XML.HXT.DOM.XmlNode, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowTree.html#v%3AsetChildren"->Control.Arrow.ArrowTree</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->setCmt</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AsetCmt"->Text.XML.HXT.DOM.XmlNode</A->, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->setDTDAttrl</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AsetDTDAttrl"->Text.XML.HXT.DOM.XmlNode</A->, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><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.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->setElemAttrl</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AsetElemAttrl"->Text.XML.HXT.DOM.XmlNode</A->, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->setElemName</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AsetElemName"->Text.XML.HXT.DOM.XmlNode</A->, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AsetElemName"->Text.XML.HXT.Arrow.XmlArrow</A->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->setLocalPart'</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AsetLocalPart%27"->Text.XML.HXT.DOM.QualifiedName</A->, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->setMimeTypeTable</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AsetMimeTypeTable"->Text.XML.HXT.Arrow.XmlIOStateArrow</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->setMimeTypeTableFromFile</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AsetMimeTypeTableFromFile"->Text.XML.HXT.Arrow.XmlIOStateArrow</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->setName</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AsetName"->Text.XML.HXT.DOM.XmlNode</A->, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->setNamePrefix'</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AsetNamePrefix%27"->Text.XML.HXT.DOM.QualifiedName</A->, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->setNamespace</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AsetNamespace"->Text.XML.HXT.DOM.QualifiedName</A->, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->setNamespaceUri'</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AsetNamespaceUri%27"->Text.XML.HXT.DOM.QualifiedName</A->, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->setNode</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-Class.html#v%3AsetNode"->Data.Tree.Class</A->, Data.Tree.NTree.TypeDefs, Data.NavTree, Text.XML.HXT.DOM.XmlNode, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowTree.html#v%3AsetNode"->Control.Arrow.ArrowTree</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->setPiName</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AsetPiName"->Text.XML.HXT.DOM.XmlNode</A->, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3AsetPiName"->Text.XML.HXT.Arrow.XmlArrow</A->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->setRngName</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AsetRngName"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->setRngNameDiv</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AsetRngNameDiv"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->setRngNameRef</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-BasicArrows.html#v%3AsetRngNameRef"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->setState</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowState.html#v%3AsetState"->Control.Arrow.ArrowState</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->setText</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlNode.html#v%3AsetText"->Text.XML.HXT.DOM.XmlNode</A->, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><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</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->share</TD-><TD CLASS="indexlinks"-><A HREF="Data-Atom.html#v%3Ashare"->Data.Atom</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->showDatatype</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3AshowDatatype"->Text.XML.HXT.RelaxNG.DataTypes</A->, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->showElemType</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-ShowXml.html#v%3AshowElemType"->Text.XML.HXT.DOM.ShowXml</A-></TD-></TR-><TR CLASS="indexrow"-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->showTrees</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AshowTrees"->Text.XML.HXT.XSLT.Common</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->single</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowList.html#v%3Asingle"->Control.Arrow.ArrowList</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->singleChar</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AsingleChar"->Text.XML.HXT.Parser.XmlTokenParser</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->singleChars</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AsingleChars"->Text.XML.HXT.Parser.XmlTokenParser</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->singleCharsT</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AsingleCharsT"->Text.XML.HXT.Parser.XmlTokenParser</A-></TD-></TR-><TR CLASS="indexrow"-><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.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->skipS</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AskipS"->Text.XML.HXT.Parser.XmlTokenParser</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->skipS0</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AskipS0"->Text.XML.HXT.Parser.XmlTokenParser</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->SLA</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Type/Class)</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-StateListArrow.html#t%3ASLA"->Control.Arrow.StateListArrow</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Data Constructor)</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-StateListArrow.html#v%3ASLA"->Control.Arrow.StateListArrow</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->SortK</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.CompiledStylesheet</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->sPace</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AsPace"->Text.XML.HXT.Parser.XmlTokenParser</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->sPace0</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AsPace0"->Text.XML.HXT.Parser.XmlTokenParser</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->spanA</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowIf.html#v%3AspanA"->Control.Arrow.ArrowIf</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->split</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-RegexMatch.html#v%3Asplit"->Text.XML.HXT.RelaxNG.XmlSchema.RegexMatch</A->, Text.XML.HXT.RelaxNG</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->splitRE</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-RegexMatch.html#v%3AsplitRE"->Text.XML.HXT.RelaxNG.XmlSchema.RegexMatch</A->, Text.XML.HXT.RelaxNG</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->splitRegexA</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AsplitRegexA"->Text.XML.HXT.Arrow.XmlRegex</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->splitXmlRegex</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#v%3AsplitXmlRegex"->Text.XML.HXT.Arrow.XmlRegex</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->sq</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3Asq"->Text.XML.HXT.Parser.XmlTokenParser</A-></TD-></TR-><TR CLASS="indexrow"-><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.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->St</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Type/Class)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt"->Text.XML.HXT.Arrow.Pickle.Xml</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Data Constructor)</TD-><TD CLASS="indexlinks"->Text.XML.HXT.Arrow.Pickle.Xml</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->strictA</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowNF.html#v%3AstrictA"->Control.Arrow.ArrowNF</A->, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->StringExpr</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexannot"->2 (Data Constructor)</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.CompiledStylesheet</TD-></TR-><TR CLASS="indexrow"-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->stringValid</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3AstringValid"->Text.XML.HXT.RelaxNG.DataTypeLibUtils</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->stringValidFT</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3AstringValidFT"->Text.XML.HXT.RelaxNG.DataTypeLibUtils</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->substEntityRefs</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AsubstEntityRefs"->Text.XML.HXT.Arrow.ParserInterface</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->swap</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-Util.html#v%3Aswap"->Text.XML.HXT.DOM.Util</A->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->systemLiteral</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AsystemLiteral"->Text.XML.HXT.Parser.XmlTokenParser</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->tagA</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowIf.html#v%3AtagA"->Control.Arrow.ArrowIf</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->TemplApply</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.CompiledStylesheet</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->TemplApplyImports</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.CompiledStylesheet</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->TemplAttribute</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.CompiledStylesheet</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->TemplCall</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.CompiledStylesheet</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->TemplChoose</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.CompiledStylesheet</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->TemplComment</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.CompiledStylesheet</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->TemplComposite</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.CompiledStylesheet</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->TemplCopy</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.CompiledStylesheet</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->TemplCopyOf</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.CompiledStylesheet</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->TemplElement</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.CompiledStylesheet</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->TemplForEach</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.CompiledStylesheet</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->TemplMessage</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.CompiledStylesheet</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->TemplProcInstr</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.CompiledStylesheet</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->TemplText</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.CompiledStylesheet</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->TemplValueOf</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.CompiledStylesheet</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->TemplVariable</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.CompiledStylesheet</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->TestExpr</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexannot"->2 (Data Constructor)</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.CompiledStylesheet</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->Text</TD-><TD CLASS="indexlinks"->Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->textDecl</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AtextDecl"->Text.XML.HXT.Parser.XmlParsec</A-></TD-></TR-><TR CLASS="indexrow"-><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.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->text_html</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.MimeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->text_xml</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.MimeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->text_xml_external_parsed_entity</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.MimeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->thePicklerDTD</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AthePicklerDTD"->Text.XML.HXT.Arrow.Pickle</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->theSchema</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AtheSchema"->Text.XML.HXT.Arrow.Pickle.Xml</A->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AtheSchema"->Text.XML.HXT.Arrow.Pickle</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->this</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowList.html#v%3Athis"->Control.Arrow.ArrowList</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->this'</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3Athis%27"->Text.XML.HXT.Arrow.XPathSimple</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->this''</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3Athis%27%27"->Text.XML.HXT.Arrow.XPathSimple</A-></TD-></TR-><TR CLASS="indexrow"-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->tokenize</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-RegexMatch.html#v%3Atokenize"->Text.XML.HXT.RelaxNG.XmlSchema.RegexMatch</A->, Text.XML.HXT.RelaxNG</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->tokenize'</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-RegexMatch.html#v%3Atokenize%27"->Text.XML.HXT.RelaxNG.XmlSchema.RegexMatch</A->, Text.XML.HXT.RelaxNG</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->tokenizeRE</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-RegexMatch.html#v%3AtokenizeRE"->Text.XML.HXT.RelaxNG.XmlSchema.RegexMatch</A->, Text.XML.HXT.RelaxNG</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->tokenizeRE'</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-RegexMatch.html#v%3AtokenizeRE%27"->Text.XML.HXT.RelaxNG.XmlSchema.RegexMatch</A->, Text.XML.HXT.RelaxNG</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->toMaybe</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-Util.html#v%3AtoMaybe"->Text.XML.HXT.DOM.Util</A->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->toNsEnv</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AtoNsEnv"->Text.XML.HXT.DOM.QualifiedName</A->, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->toNumber</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AtoNumber"->Text.XML.HXT.Arrow.XPathSimple</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->toThis</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AtoThis"->Text.XML.HXT.Arrow.XPathSimple</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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</TD-></TR-><TR CLASS="indexrow"-><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</TD-></TR-><TR CLASS="indexrow"-><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</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->traceValue</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AtraceValue"->Text.XML.HXT.Arrow.XmlIOStateArrow</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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</TD-></TR-><TR CLASS="indexrow"-><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</TD-></TR-><TR CLASS="indexrow"-><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</TD-></TR-><TR CLASS="indexrow"-><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</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->transferDefaultURI</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->transferEncoding</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->transferMessage</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->transferMimeType</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->transferPrefix</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->transferStatus</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->transferURI</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->transferVersion</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->transform</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DTDValidation-DocTransformation.html#v%3Atransform"->Text.XML.HXT.DTDValidation.DocTransformation</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DTDValidation-Validation.html#v%3Atransform"->Text.XML.HXT.DTDValidation.Validation</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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.NavTree, Text.XML.HXT.DOM.XmlNode, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, <A HREF="Control-Arrow-ArrowTree.html#t%3ATree"->Control.Arrow.ArrowTree</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->tryGetXPath</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AtryGetXPath"->Text.XML.HXT.Arrow.XPathSimple</A-></TD-></TR-><TR CLASS="indexrow"-><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.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->t_xml</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->ucs2</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->uncurry3</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-Util.html#v%3Auncurry3"->Text.XML.HXT.DOM.Util</A->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->uncurry4</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-Util.html#v%3Auncurry4"->Text.XML.HXT.DOM.Util</A->, Text.XML.HXT.DOM.Interface, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->unicodeString</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->universalName</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AuniversalName"->Text.XML.HXT.DOM.QualifiedName</A->, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->universalUri</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AuniversalUri"->Text.XML.HXT.DOM.QualifiedName</A->, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->unlistA</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowList.html#v%3AunlistA"->Control.Arrow.ArrowList</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->unpickleDoc</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AunpickleDoc"->Text.XML.HXT.Arrow.Pickle.Xml</A->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AunpickleDoc"->Text.XML.HXT.Arrow.Pickle</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->unwrap</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3Aunwrap"->Text.XML.HXT.Arrow.XPathSimple</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->usAscii</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->UsedAttribSets</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexannot"->2 (Data Constructor)</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.CompiledStylesheet</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->UStringWithErrors</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-Unicode.html#t%3AUStringWithErrors"->Text.XML.HXT.DOM.Unicode</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->utf16</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->utf16be</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->utf16le</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->utf8</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->utf8ToUnicodeEmbedErrors</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3Autf8ToUnicodeEmbedErrors"->Text.XML.HXT.DOM.Unicode</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->validate</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DTDValidation-Validation.html#v%3Avalidate"->Text.XML.HXT.DTDValidation.Validation</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (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 CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->validateDoc</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DTDValidation-DocValidation.html#v%3AvalidateDoc"->Text.XML.HXT.DTDValidation.DocValidation</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DTDValidation-Validation.html#v%3AvalidateDoc"->Text.XML.HXT.DTDValidation.Validation</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->3 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AvalidateDoc"->Text.XML.HXT.Arrow.ParserInterface</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->validateDTD</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DTDValidation-DTDValidation.html#v%3AvalidateDTD"->Text.XML.HXT.DTDValidation.DTDValidation</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DTDValidation-Validation.html#v%3AvalidateDTD"->Text.XML.HXT.DTDValidation.Validation</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->validateIds</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DTDValidation-IdValidation.html#v%3AvalidateIds"->Text.XML.HXT.DTDValidation.IdValidation</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->validateNamespaces</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Namespace.html#v%3AvalidateNamespaces"->Text.XML.HXT.Arrow.Namespace</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->Value</TD-><TD CLASS="indexlinks"->Text.XML.HXT.RelaxNG.DataTypes, Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.RelaxNG</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->valueOf</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AvalueOf"->Text.XML.HXT.DTDValidation.TypeDefs</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->valueOfDTD</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#v%3AvalueOfDTD"->Text.XML.HXT.DTDValidation.TypeDefs</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->versionInfo</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AversionInfo"->Text.XML.HXT.Parser.XmlParsec</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->versionNum</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlTokenParser.html#v%3AversionNum"->Text.XML.HXT.Parser.XmlTokenParser</A-></TD-></TR-><TR CLASS="indexrow"-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->v_0</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->v_any</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->v_children</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->v_choice</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->v_empty</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->v_mixed</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->v_no</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->v_null</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->v_option</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->v_pcdata</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->v_plus</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->v_seq</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->v_star</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->v_yes</TD-><TD CLASS="indexlinks"->Text.XML.HXT.DOM.XmlKeywords, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->w3cDatatypeLib</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Aw3cDatatypeLib"->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->w3cNS</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Aw3cNS"->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A-></TD-></TR-><TR CLASS="indexrow"-><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.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->when</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowIf.html#v%3Awhen"->Control.Arrow.ArrowIf</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->whenNot</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowIf.html#v%3AwhenNot"->Control.Arrow.ArrowIf</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->whenNotP</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowIf.html#v%3AwhenNotP"->Control.Arrow.ArrowIf</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->whenP</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowIf.html#v%3AwhenP"->Control.Arrow.ArrowIf</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->WhenPart</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.CompiledStylesheet</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->withDefault</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowList.html#v%3AwithDefault"->Control.Arrow.ArrowList</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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</TD-></TR-><TR CLASS="indexrow"-><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-><TR CLASS="indexrow"-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->xhtmlEntities</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XhtmlEntities.html#v%3AxhtmlEntities"->Text.XML.HXT.Parser.XhtmlEntities</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xIndex</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AxIndex"->Text.XML.HXT.Arrow.XPathSimple</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->XIOState</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->xio_mimeTypes</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3Axio_mimeTypes"->Text.XML.HXT.Arrow.XmlIOStateArrow</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->XmlArrow</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#t%3AXmlArrow"->Text.XML.HXT.DTDValidation.TypeDefs</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->XmlArrowS</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html#t%3AXmlArrowS"->Text.XML.HXT.DTDValidation.TypeDefs</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->xMLDecl</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AxMLDecl"->Text.XML.HXT.Parser.XmlParsec</A-></TD-></TR-><TR CLASS="indexrow"-><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-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xmlEntities</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlEntities.html#v%3AxmlEntities"->Text.XML.HXT.Parser.XmlEntities</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xmlNamespaceXName</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AxmlNamespaceXName"->Text.XML.HXT.DOM.QualifiedName</A->, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->XmlNode</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlNode.html#t%3AXmlNode"->Text.XML.HXT.DOM.XmlNode</A->, Text.XML.HXT.XSLT.Common</TD-></TR-><TR CLASS="indexrow"-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xmlnsNamespaceXName</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AxmlnsNamespaceXName"->Text.XML.HXT.DOM.QualifiedName</A->, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xmlnsQN</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AxmlnsQN"->Text.XML.HXT.DOM.QualifiedName</A->, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xmlnsXName</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AxmlnsXName"->Text.XML.HXT.DOM.QualifiedName</A->, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->XmlPickler</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3AXmlPickler"->Text.XML.HXT.Arrow.Pickle.Xml</A->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#t%3AXmlPickler"->Text.XML.HXT.Arrow.Pickle</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->XmlRegex</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlRegex.html#t%3AXmlRegex"->Text.XML.HXT.Arrow.XmlRegex</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->xmlXName</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AxmlXName"->Text.XML.HXT.DOM.QualifiedName</A->, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->XName</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"->Text.XML.HXT.DOM.QualifiedName</A->, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->xNumber'</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AxNumber%27"->Text.XML.HXT.Arrow.XPathSimple</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xp4Tuple</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3Axp4Tuple"->Text.XML.HXT.Arrow.Pickle.Xml</A->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3Axp4Tuple"->Text.XML.HXT.Arrow.Pickle</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xp5Tuple</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3Axp5Tuple"->Text.XML.HXT.Arrow.Pickle.Xml</A->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3Axp5Tuple"->Text.XML.HXT.Arrow.Pickle</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xp6Tuple</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3Axp6Tuple"->Text.XML.HXT.Arrow.Pickle.Xml</A->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3Axp6Tuple"->Text.XML.HXT.Arrow.Pickle</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xpAddFixedAttr</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpAddFixedAttr"->Text.XML.HXT.Arrow.Pickle.Xml</A->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpAddFixedAttr"->Text.XML.HXT.Arrow.Pickle</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xpAlt</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpAlt"->Text.XML.HXT.Arrow.Pickle.Xml</A->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpAlt"->Text.XML.HXT.Arrow.Pickle</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->XPArrow</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"->Text.XML.HXT.Arrow.XPathSimple</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->xpAttr</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpAttr"->Text.XML.HXT.Arrow.Pickle.Xml</A->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpAttr"->Text.XML.HXT.Arrow.Pickle</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xpAttrFixed</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpAttrFixed"->Text.XML.HXT.Arrow.Pickle.Xml</A->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpAttrFixed"->Text.XML.HXT.Arrow.Pickle</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xpAttrImplied</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpAttrImplied"->Text.XML.HXT.Arrow.Pickle.Xml</A->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpAttrImplied"->Text.XML.HXT.Arrow.Pickle</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xpAttrQN</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpAttrQN"->Text.XML.HXT.Arrow.Pickle.Xml</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xpChoice</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpChoice"->Text.XML.HXT.Arrow.Pickle.Xml</A->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpChoice"->Text.XML.HXT.Arrow.Pickle</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->xpCondSeq</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpCondSeq"->Text.XML.HXT.Arrow.Pickle.Xml</A->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpCondSeq"->Text.XML.HXT.Arrow.Pickle</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xpDefault</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpDefault"->Text.XML.HXT.Arrow.Pickle.Xml</A->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpDefault"->Text.XML.HXT.Arrow.Pickle</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xpElem</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpElem"->Text.XML.HXT.Arrow.Pickle.Xml</A->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpElem"->Text.XML.HXT.Arrow.Pickle</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xpElemQN</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpElemQN"->Text.XML.HXT.Arrow.Pickle.Xml</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xpElemWithAttrValue</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpElemWithAttrValue"->Text.XML.HXT.Arrow.Pickle.Xml</A->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpElemWithAttrValue"->Text.XML.HXT.Arrow.Pickle</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xpickle</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3Axpickle"->Text.XML.HXT.Arrow.Pickle.Xml</A->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3Axpickle"->Text.XML.HXT.Arrow.Pickle</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xpickleDocument</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpickleDocument"->Text.XML.HXT.Arrow.Pickle</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xpickleDTD</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpickleDTD"->Text.XML.HXT.Arrow.Pickle</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xpickleVal</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpickleVal"->Text.XML.HXT.Arrow.Pickle</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xpickleWriteDTD</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpickleWriteDTD"->Text.XML.HXT.Arrow.Pickle</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xpLift</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpLift"->Text.XML.HXT.Arrow.Pickle.Xml</A->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpLift"->Text.XML.HXT.Arrow.Pickle</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xpLiftMaybe</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpLiftMaybe"->Text.XML.HXT.Arrow.Pickle.Xml</A->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpLiftMaybe"->Text.XML.HXT.Arrow.Pickle</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xpList</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpList"->Text.XML.HXT.Arrow.Pickle.Xml</A->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpList"->Text.XML.HXT.Arrow.Pickle</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xpList1</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpList1"->Text.XML.HXT.Arrow.Pickle.Xml</A->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpList1"->Text.XML.HXT.Arrow.Pickle</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xpMap</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpMap"->Text.XML.HXT.Arrow.Pickle.Xml</A->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpMap"->Text.XML.HXT.Arrow.Pickle</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->xpOption</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpOption"->Text.XML.HXT.Arrow.Pickle.Xml</A->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpOption"->Text.XML.HXT.Arrow.Pickle</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xpPair</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpPair"->Text.XML.HXT.Arrow.Pickle.Xml</A->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpPair"->Text.XML.HXT.Arrow.Pickle</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->xpPrim</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpPrim"->Text.XML.HXT.Arrow.Pickle.Xml</A->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpPrim"->Text.XML.HXT.Arrow.Pickle</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xpSeq</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpSeq"->Text.XML.HXT.Arrow.Pickle.Xml</A->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpSeq"->Text.XML.HXT.Arrow.Pickle</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xpText</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpText"->Text.XML.HXT.Arrow.Pickle.Xml</A->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpText"->Text.XML.HXT.Arrow.Pickle</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xpText0</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpText0"->Text.XML.HXT.Arrow.Pickle.Xml</A->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpText0"->Text.XML.HXT.Arrow.Pickle</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xpText0DT</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpText0DT"->Text.XML.HXT.Arrow.Pickle.Xml</A->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpText0DT"->Text.XML.HXT.Arrow.Pickle</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xpTextDT</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpTextDT"->Text.XML.HXT.Arrow.Pickle.Xml</A->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpTextDT"->Text.XML.HXT.Arrow.Pickle</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->xpTree</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpTree"->Text.XML.HXT.Arrow.Pickle.Xml</A->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpTree"->Text.XML.HXT.Arrow.Pickle</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xpTrees</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpTrees"->Text.XML.HXT.Arrow.Pickle.Xml</A->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpTrees"->Text.XML.HXT.Arrow.Pickle</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xpTriple</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpTriple"->Text.XML.HXT.Arrow.Pickle.Xml</A->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpTriple"->Text.XML.HXT.Arrow.Pickle</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xpUnit</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpUnit"->Text.XML.HXT.Arrow.Pickle.Xml</A->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpUnit"->Text.XML.HXT.Arrow.Pickle</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->xpWrap</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpWrap"->Text.XML.HXT.Arrow.Pickle.Xml</A->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpWrap"->Text.XML.HXT.Arrow.Pickle</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xpWrapMaybe</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpWrapMaybe"->Text.XML.HXT.Arrow.Pickle.Xml</A->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpWrapMaybe"->Text.XML.HXT.Arrow.Pickle</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xpXmlText</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpXmlText"->Text.XML.HXT.Arrow.Pickle.Xml</A->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpXmlText"->Text.XML.HXT.Arrow.Pickle</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xpZero</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AxpZero"->Text.XML.HXT.Arrow.Pickle.Xml</A->, <A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxpZero"->Text.XML.HXT.Arrow.Pickle</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->xread</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Axread"->Text.XML.HXT.Parser.XmlParsec</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (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 CLASS="indexrow"-><TD CLASS="indexentry"->xsdParam</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html#v%3AxsdParam"->Text.XML.HXT.Arrow.Pickle.Schema</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsd_anyURI</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_anyURI"->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsd_base64Binary</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_base64Binary"->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsd_decimal</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_decimal"->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsd_ENTITIES</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_ENTITIES"->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsd_ENTITY</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_ENTITY"->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsd_enumeration</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_enumeration"->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsd_fractionDigits</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_fractionDigits"->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsd_hexBinary</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_hexBinary"->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsd_ID</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_ID"->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsd_IDREF</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_IDREF"->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsd_IDREFS</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_IDREFS"->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsd_language</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_language"->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsd_length</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_length"->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsd_maxExclusive</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_maxExclusive"->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsd_maxInclusive</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_maxInclusive"->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsd_maxLength</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_maxLength"->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsd_minExclusive</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_minExclusive"->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsd_minInclusive</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_minInclusive"->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsd_minLength</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_minLength"->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsd_Name</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_Name"->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsd_NCName</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_NCName"->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsd_NMTOKEN</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_NMTOKEN"->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsd_NMTOKENS</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_NMTOKENS"->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsd_normalizedString</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_normalizedString"->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsd_NOTATION</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_NOTATION"->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsd_pattern</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_pattern"->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsd_QName</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_QName"->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsd_string</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_string"->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsd_token</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_token"->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsd_totalDigits</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_totalDigits"->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->xshow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-ShowXml.html#v%3Axshow"->Text.XML.HXT.DOM.ShowXml</A-></TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Axshow"->Text.XML.HXT.Arrow.XmlArrow</A->, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xshowEscapeXml</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AxshowEscapeXml"->Text.XML.HXT.Arrow.Edit</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsltApplyImports</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.Names</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->xsltApplyTemplates</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.Names</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsltAttribute</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.Names</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsltAttributeSet</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.Names</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsltCallTemplate</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.Names</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsltChoose</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.Names</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsltComment</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.Names</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->xsltCopy</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.Names</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsltCopyOf</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.Names</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsltDataType</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.Names</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsltElement</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.Names</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsltElements</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.Names</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsltExlcudeResultPrefixes</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.Names</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsltExlcudeResultPrefixesLRE</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.Names</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsltExtensionElementPrefixes</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.Names</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsltExtensionElementPrefixesLRE</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.Names</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsltForEach</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.Names</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsltHRef</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.Names</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsltIf</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.Names</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsltImport</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.Names</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsltInclude</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.Names</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsltMatch</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.Names</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsltMessage</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.Names</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsltMode</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.Names</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsltName</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.Names</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsltNamespace</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.Names</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsltNamespaceAlias</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.Names</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsltOrder</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.Names</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsltOtherwise</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.Names</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsltParam</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.Names</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->xsltPreserveSpace</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.Names</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsltPriority</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.Names</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsltProcInstr</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.Names</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsltResultPrefix</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.Names</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->xsltSort</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.Names</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsltStripSpace</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.Names</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->xsltStylesheetPrefix</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.Names</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsltTemplate</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.Names</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsltTerminate</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.Names</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsltTest</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.Names</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsltText</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.Names</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsltTransform</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.Names</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->xsltUseAttributeSets</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.Names</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsltUseAttributeSetsLRE</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.Names</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsltValueOf</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.Names</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsltVariable</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.Names</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsltVersion</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.Names</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->xsltWhen</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.Names</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xsltWithParam</TD-><TD CLASS="indexlinks"->Text.XML.HXT.XSLT.Names</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><TD CLASS="indexentry"->xString</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AxString"->Text.XML.HXT.Arrow.XPathSimple</A-></TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xunpickleDocument</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxunpickleDocument"->Text.XML.HXT.Arrow.Pickle</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->xunpickleVal</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AxunpickleVal"->Text.XML.HXT.Arrow.Pickle</A->, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->zeroArrow</TD-><TD CLASS="indexlinks"->Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><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 CLASS="indexrow"-><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-><TR CLASS="indexrow"-><TD CLASS="indexentry"->^<<</TD-><TD CLASS="indexlinks"->Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->^>></TD-><TD CLASS="indexlinks"->Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->|||</TD-><TD CLASS="indexlinks"->Text.XML.HXT.RelaxNG.DataTypeLibUtils, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD-></TR-></TABLE-></TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/haddock-util.js
@@ -1,133 +0,0 @@-// 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";- }-}---var max_results = 75; // 50 is not enough to search for map in the base libraries-var shown_range = null;-var last_search = null;--function quick_search()-{- perform_search(false);-}--function full_search()-{- perform_search(true);-}---function perform_search(full)-{- var text = document.getElementById("searchbox").value.toLowerCase();- if (text == last_search && !full) return;- last_search = text;- - var table = document.getElementById("indexlist");- var status = document.getElementById("searchmsg");- var children = table.firstChild.childNodes;- - // first figure out the first node with the prefix- var first = bisect(-1);- var last = (first == -1 ? -1 : bisect(1));-- if (first == -1)- {- table.className = "";- status.innerHTML = "No results found, displaying all";- }- else if (first == 0 && last == children.length - 1)- {- table.className = "";- status.innerHTML = "";- }- else if (last - first >= max_results && !full)- {- table.className = "";- status.innerHTML = "More than " + max_results + ", press Search to display";- }- else- {- // decide what you need to clear/show- if (shown_range)- setclass(shown_range[0], shown_range[1], "indexrow");- setclass(first, last, "indexshow");- shown_range = [first, last];- table.className = "indexsearch";- status.innerHTML = "";- }-- - function setclass(first, last, status)- {- for (var i = first; i <= last; i++)- {- children[i].className = status;- }- }- - - // do a binary search, treating 0 as ...- // return either -1 (no 0's found) or location of most far match- function bisect(dir)- {- var first = 0, finish = children.length - 1;- var mid, success = false;-- while (finish - first > 3)- {- mid = Math.floor((finish + first) / 2);-- var i = checkitem(mid);- if (i == 0) i = dir;- if (i == -1)- finish = mid;- else- first = mid;- }- var a = (dir == 1 ? first : finish);- var b = (dir == 1 ? finish : first);- for (var i = b; i != a - dir; i -= dir)- {- if (checkitem(i) == 0) return i;- }- return -1;- } - - - // from an index, decide what the result is- // 0 = match, -1 is lower, 1 is higher- function checkitem(i)- {- var s = getitem(i).toLowerCase().substr(0, text.length);- if (s == text) return 0;- else return (s > text ? -1 : 1);- }- - - // from an index, get its string- // this abstracts over alternates- function getitem(i)- {- for ( ; i >= 0; i--)- {- var s = children[i].firstChild.firstChild.data;- if (s.indexOf(' ') == -1)- return s;- }- return ""; // should never be reached- }-}
− doc/hdoc/haddock.css
@@ -1,267 +0,0 @@-/* -------- 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;- }--TD.topdecl {- padding: 2px;- background-color: #f0f0f0;- font-family: monospace;- vertical-align: top;-}--TABLE.declbar {- border-spacing: 0px;- }--TD.declname {- width: 100%;- }--TD.declbut {- padding-left: 5px;- padding-right: 5px;- border-left-width: 1px;- border-left-color: #000099;- border-left-style: solid;- white-space: nowrap;- font-size: small;- }--/* - 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-}--TABLE.indexsearch TR.indexrow {- display: none;-}-TABLE.indexsearch TR.indexshow {- display: table-row;-}--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/haskell_icon.gif
binary file changed (911 → absent bytes)
− doc/hdoc/hxt.haddock
binary file changed (676391 → absent bytes)
− doc/hdoc/index.html
@@ -1,1435 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">-<!--Rendered using the Haskell Html Library v0.2-->-<HTML-><HEAD-><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"-><TITLE->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-><SCRIPT SRC="haddock-util.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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><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"->hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD-></TR-><TR-><TD CLASS="doc"->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. It contains a validating XML parser, a HTML parser, namespace support, an XPath expression evaluator, an XSLT library, a RelaxNG schema validator and funtions for serialization and deserialization of user defined data. The libraray make extensive use of the arrow approach for processing XML.-</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-ArrowNF.html"->Control.Arrow.ArrowNF</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-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-></TABLE-></TD-></TR-><TR-><TD STYLE="width: 50em"-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:2')" 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:2" 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-Atom.html"->Data.Atom</A-></TD-><TD-></TD-><TD-></TD-></TR-><TR-><TD STYLE="width: 48em"-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:3')" ALT="show/hide"->Char</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="Data-Char-UTF8.html"->Data.Char.UTF8</A-></TD-><TD-></TD-><TD-></TD-></TR-></TABLE-></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-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"->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:6" STYLE="display:block;"-><TR-><TD STYLE="width: 48em"-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:7')" 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:7" STYLE="display:block;"-><TR-><TD STYLE="width: 46em"-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:8')" 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:8" STYLE="display:block;"-><TR-><TD STYLE="width: 44em"-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:9')" 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:9" STYLE="display:block;"-><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="width: 42em"-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:10')" ALT="show/hide"-><A HREF="Text-XML-HXT-Arrow-Pickle.html"->Text.XML.HXT.Arrow.Pickle</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: 40em"-><A HREF="Text-XML-HXT-Arrow-Pickle-DTD.html"->Text.XML.HXT.Arrow.Pickle.DTD</A-></TD-><TD-></TD-><TD-></TD-></TR-><TR-><TD STYLE="padding-left: 1.25em;width: 40em"-><A HREF="Text-XML-HXT-Arrow-Pickle-Schema.html"->Text.XML.HXT.Arrow.Pickle.Schema</A-></TD-><TD-></TD-><TD-></TD-></TR-><TR-><TD STYLE="padding-left: 1.25em;width: 40em"-><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html"->Text.XML.HXT.Arrow.Pickle.Xml</A-></TD-><TD-></TD-><TD-></TD-></TR-></TABLE-></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-XPath.html"->Text.XML.HXT.Arrow.XPath</A-></TD-><TD-></TD-><TD-></TD-></TR-><TR-><TD STYLE="padding-left: 1.25em;width: 42em"-><A HREF="Text-XML-HXT-Arrow-XPathSimple.html"->Text.XML.HXT.Arrow.XPathSimple</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-XmlRegex.html"->Text.XML.HXT.Arrow.XmlRegex</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-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-Interface.html"->Text.XML.HXT.DOM.Interface</A-></TD-><TD-></TD-><TD-></TD-></TR-><TR-><TD STYLE="padding-left: 1.25em;width: 42em"-><A HREF="Text-XML-HXT-DOM-IsoLatinTables.html"->Text.XML.HXT.DOM.IsoLatinTables</A-></TD-><TD-></TD-><TD-></TD-></TR-><TR-><TD STYLE="padding-left: 1.25em;width: 42em"-><A HREF="Text-XML-HXT-DOM-MimeTypeDefaults.html"->Text.XML.HXT.DOM.MimeTypeDefaults</A-></TD-><TD-></TD-><TD-></TD-></TR-><TR-><TD STYLE="padding-left: 1.25em;width: 42em"-><A HREF="Text-XML-HXT-DOM-MimeTypes.html"->Text.XML.HXT.DOM.MimeTypes</A-></TD-><TD-></TD-><TD-></TD-></TR-><TR-><TD STYLE="padding-left: 1.25em;width: 42em"-><A HREF="Text-XML-HXT-DOM-QualifiedName.html"->Text.XML.HXT.DOM.QualifiedName</A-></TD-><TD-></TD-><TD-></TD-></TR-><TR-><TD STYLE="padding-left: 1.25em;width: 42em"-><A HREF="Text-XML-HXT-DOM-ShowXml.html"->Text.XML.HXT.DOM.ShowXml</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-UTF8Decoding.html"->Text.XML.HXT.DOM.UTF8Decoding</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-XmlNode.html"->Text.XML.HXT.DOM.XmlNode</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-></TABLE-></TD-></TR-><TR-><TD STYLE="width: 44em"-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:12')" ALT="show/hide"->DTDValidation</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-DTDValidation-AttributeValueValidation.html"->Text.XML.HXT.DTDValidation.AttributeValueValidation</A-></TD-><TD-></TD-><TD-></TD-></TR-><TR-><TD STYLE="padding-left: 1.25em;width: 42em"-><A HREF="Text-XML-HXT-DTDValidation-DTDValidation.html"->Text.XML.HXT.DTDValidation.DTDValidation</A-></TD-><TD-></TD-><TD-></TD-></TR-><TR-><TD STYLE="padding-left: 1.25em;width: 42em"-><A HREF="Text-XML-HXT-DTDValidation-DocTransformation.html"->Text.XML.HXT.DTDValidation.DocTransformation</A-></TD-><TD-></TD-><TD-></TD-></TR-><TR-><TD STYLE="padding-left: 1.25em;width: 42em"-><A HREF="Text-XML-HXT-DTDValidation-DocValidation.html"->Text.XML.HXT.DTDValidation.DocValidation</A-></TD-><TD-></TD-><TD-></TD-></TR-><TR-><TD STYLE="padding-left: 1.25em;width: 42em"-><A HREF="Text-XML-HXT-DTDValidation-IdValidation.html"->Text.XML.HXT.DTDValidation.IdValidation</A-></TD-><TD-></TD-><TD-></TD-></TR-><TR-><TD STYLE="padding-left: 1.25em;width: 42em"-><A HREF="Text-XML-HXT-DTDValidation-RE.html"->Text.XML.HXT.DTDValidation.RE</A-></TD-><TD-></TD-><TD-></TD-></TR-><TR-><TD STYLE="padding-left: 1.25em;width: 42em"-><A HREF="Text-XML-HXT-DTDValidation-TypeDefs.html"->Text.XML.HXT.DTDValidation.TypeDefs</A-></TD-><TD-></TD-><TD-></TD-></TR-><TR-><TD STYLE="padding-left: 1.25em;width: 42em"-><A HREF="Text-XML-HXT-DTDValidation-Validation.html"->Text.XML.HXT.DTDValidation.Validation</A-></TD-><TD-></TD-><TD-></TD-></TR-><TR-><TD STYLE="padding-left: 1.25em;width: 42em"-><A HREF="Text-XML-HXT-DTDValidation-XmlRE.html"->Text.XML.HXT.DTDValidation.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"->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-GetHTTPLibCurl.html"->Text.XML.HXT.IO.GetHTTPLibCurl</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"->Parser</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-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-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-TagSoup.html"->Text.XML.HXT.Parser.TagSoup</A-></TD-><TD-></TD-><TD-></TD-></TR-><TR-><TD STYLE="padding-left: 1.25em;width: 42em"-><A HREF="Text-XML-HXT-Parser-XhtmlEntities.html"->Text.XML.HXT.Parser.XhtmlEntities</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-XmlEntities.html"->Text.XML.HXT.Parser.XmlEntities</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-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-BasicArrows.html"->Text.XML.HXT.RelaxNG.BasicArrows</A-></TD-><TD-></TD-><TD-></TD-></TR-><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-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="width: 42em"-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:16')" ALT="show/hide"->Unicode</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: 40em"-><A HREF="Text-XML-HXT-RelaxNG-Unicode-Blocks.html"->Text.XML.HXT.RelaxNG.Unicode.Blocks</A-></TD-><TD-></TD-><TD-></TD-></TR-><TR-><TD STYLE="padding-left: 1.25em;width: 40em"-><A HREF="Text-XML-HXT-RelaxNG-Unicode-CharProps.html"->Text.XML.HXT.RelaxNG.Unicode.CharProps</A-></TD-><TD-></TD-><TD-></TD-></TR-></TABLE-></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-><TR-><TD STYLE="width: 42em"-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:17')" ALT="show/hide"->XmlSchema</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: 40em"-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html"->Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A-></TD-><TD-></TD-><TD-></TD-></TR-><TR-><TD STYLE="padding-left: 1.25em;width: 40em"-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html"->Text.XML.HXT.RelaxNG.XmlSchema.Regex</A-></TD-><TD-></TD-><TD-></TD-></TR-><TR-><TD STYLE="padding-left: 1.25em;width: 40em"-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-RegexMatch.html"->Text.XML.HXT.RelaxNG.XmlSchema.RegexMatch</A-></TD-><TD-></TD-><TD-></TD-></TR-><TR-><TD STYLE="padding-left: 1.25em;width: 40em"-><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-RegexParser.html"->Text.XML.HXT.RelaxNG.XmlSchema.RegexParser</A-></TD-><TD-></TD-><TD-></TD-></TR-></TABLE-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD STYLE="padding-left: 1.25em;width: 44em"-><A HREF="Text-XML-HXT-Version.html"->Text.XML.HXT.Version</A-></TD-><TD-></TD-><TD-></TD-></TR-><TR-><TD STYLE="width: 44em"-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:18')" 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:18" 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:19')" 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:19" 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 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
− doc/hdoc/minus.gif
binary file changed (56 → absent bytes)
− doc/hdoc/plus.gif
binary file changed (59 → absent bytes)
− doc/hdoc/src/Control-Arrow-ArrowIO.html
@@ -1,81 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Control.Arrow.ArrowIO-<a name="line-5"></a> Copyright : Copyright (C) 2005 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)-<a name="line-9"></a> Stability : experimental-<a name="line-10"></a> Portability: portable-<a name="line-11"></a> Version : $Id: ArrowIO.hs,v 1.6 2005/09/02 17:09:39 hxml Exp $-<a name="line-12"></a>-<a name="line-13"></a>Lifting of IO actions to arrows-<a name="line-14"></a>-<a name="line-15"></a>-}</span>-<a name="line-16"></a>-<a name="line-17"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-18"></a>-<a name="line-19"></a><span class='keyword'>module</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowIO</span>-<a name="line-20"></a> <span class='layout'>(</span> <span class='conid'>ArrowIO</span><span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span>-<a name="line-21"></a> <span class='layout'>,</span> <span class='conid'>ArrowIOIf</span><span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span>-<a name="line-22"></a> <span class='layout'>)</span>-<a name="line-23"></a><span class='keyword'>where</span>-<a name="line-24"></a>-<a name="line-25"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span>-<a name="line-26"></a>-<a name="line-27"></a><span class='comment'>-- | the interface for converting an IO action into an arrow</span>-<a name="line-28"></a>-<a name="line-29"></a><a name="ArrowIO"></a><span class='keyword'>class</span> <span class='conid'>Arrow</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='conid'>ArrowIO</span> <span class='varid'>a</span> <span class='keyword'>where</span>-<a name="line-30"></a>-<a name="line-31"></a> <span class='comment'>-- | construct an arrow from an IO action</span>-<a name="line-32"></a> <span class='varid'>arrIO</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>b</span> <span class='keyglyph'>-></span> <span class='conid'>IO</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span>-<a name="line-33"></a>-<a name="line-34"></a> <span class='comment'>-- | construct an arrow from an IO action without any parameter</span>-<a name="line-35"></a> <span class='varid'>arrIO0</span> <span class='keyglyph'>::</span> <span class='conid'>IO</span> <span class='varid'>c</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span>-<a name="line-36"></a> <span class='varid'>arrIO0</span> <span class='varid'>f</span> <span class='keyglyph'>=</span> <span class='varid'>arrIO</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varid'>f</span><span class='layout'>)</span>-<a name="line-37"></a>-<a name="line-38"></a> <span class='comment'>-- | construction of a 2 argument arrow from a binary IO action</span>-<a name="line-39"></a> <span class='comment'>-- |</span>-<a name="line-40"></a> <span class='comment'>-- | example: @ a1 &&& a2 >>> arr2 f @</span>-<a name="line-41"></a>-<a name="line-42"></a> <span class='varid'>arrIO2</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>b1</span> <span class='keyglyph'>-></span> <span class='varid'>b2</span> <span class='keyglyph'>-></span> <span class='conid'>IO</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>b1</span><span class='layout'>,</span> <span class='varid'>b2</span><span class='layout'>)</span> <span class='varid'>c</span>-<a name="line-43"></a> <span class='varid'>arrIO2</span> <span class='varid'>f</span> <span class='keyglyph'>=</span> <span class='varid'>arrIO</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>x1</span><span class='layout'>,</span> <span class='varid'>x2</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>f</span> <span class='varid'>x1</span> <span class='varid'>x2</span><span class='layout'>)</span>-<a name="line-44"></a>-<a name="line-45"></a> <span class='comment'>-- | construction of a 3 argument arrow from a 3-ary IO action</span>-<a name="line-46"></a> <span class='comment'>-- |</span>-<a name="line-47"></a> <span class='comment'>-- | example: @ a1 &&& a2 &&& a3 >>> arr3 f @</span>-<a name="line-48"></a>-<a name="line-49"></a> <span class='varid'>arrIO3</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>b1</span> <span class='keyglyph'>-></span> <span class='varid'>b2</span> <span class='keyglyph'>-></span> <span class='varid'>b3</span> <span class='keyglyph'>-></span> <span class='conid'>IO</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>b1</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>b2</span><span class='layout'>,</span> <span class='varid'>b3</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varid'>c</span>-<a name="line-50"></a> <span class='varid'>arrIO3</span> <span class='varid'>f</span> <span class='keyglyph'>=</span> <span class='varid'>arrIO</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>x1</span><span class='layout'>,</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>x2</span><span class='layout'>,</span> <span class='varid'>x3</span><span class='layout'>)</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>f</span> <span class='varid'>x1</span> <span class='varid'>x2</span> <span class='varid'>x3</span><span class='layout'>)</span>-<a name="line-51"></a>-<a name="line-52"></a> <span class='comment'>-- | construction of a 4 argument arrow from a 4-ary IO action</span>-<a name="line-53"></a> <span class='comment'>-- |</span>-<a name="line-54"></a> <span class='comment'>-- | example: @ a1 &&& a2 &&& a3 &&& a4 >>> arr4 f @</span>-<a name="line-55"></a>-<a name="line-56"></a> <span class='varid'>arrIO4</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>b1</span> <span class='keyglyph'>-></span> <span class='varid'>b2</span> <span class='keyglyph'>-></span> <span class='varid'>b3</span> <span class='keyglyph'>-></span> <span class='varid'>b4</span> <span class='keyglyph'>-></span> <span class='conid'>IO</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>b1</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>b2</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>b3</span><span class='layout'>,</span> <span class='varid'>b4</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varid'>c</span>-<a name="line-57"></a> <span class='varid'>arrIO4</span> <span class='varid'>f</span> <span class='keyglyph'>=</span> <span class='varid'>arrIO</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>x1</span><span class='layout'>,</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>x2</span><span class='layout'>,</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>x3</span><span class='layout'>,</span> <span class='varid'>x4</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>f</span> <span class='varid'>x1</span> <span class='varid'>x2</span> <span class='varid'>x3</span> <span class='varid'>x4</span><span class='layout'>)</span>-<a name="line-58"></a>-<a name="line-59"></a>-<a name="line-60"></a><span class='comment'>-- | the interface for converting an IO predicate into a list arrow</span>-<a name="line-61"></a>-<a name="line-62"></a><a name="ArrowIOIf"></a><span class='keyword'>class</span> <span class='layout'>(</span><span class='conid'>Arrow</span> <span class='varid'>a</span><span class='layout'>,</span> <span class='conid'>ArrowIO</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>=></span> <span class='conid'>ArrowIOIf</span> <span class='varid'>a</span> <span class='keyword'>where</span>-<a name="line-63"></a>-<a name="line-64"></a> <span class='comment'>-- | builds an arrow from an IO predicate</span>-<a name="line-65"></a> <span class='comment'>--</span>-<a name="line-66"></a> <span class='comment'>-- if the predicate holds, the single list containing the input is returned, else the empty list,</span>-<a name="line-67"></a> <span class='comment'>-- similar to 'Control.Arrow.ArrowList.isA'</span>-<a name="line-68"></a>-<a name="line-69"></a> <span class='varid'>isIOA</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>b</span> <span class='keyglyph'>-></span> <span class='conid'>IO</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>b</span>-<a name="line-70"></a>-<a name="line-71"></a><span class='comment'>-- ------------------------------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Control-Arrow-ArrowIf.html
@@ -1,168 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Control.Arrow.ArrowIf-<a name="line-5"></a> Copyright : Copyright (C) 2005 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)-<a name="line-9"></a> Stability : experimental-<a name="line-10"></a> Portability: portable-<a name="line-11"></a> Version : $Id: ArrowIf.hs,v 1.8 2006/05/04 14:17:53 hxml Exp $-<a name="line-12"></a>-<a name="line-13"></a>Conditionals for List Arrows-<a name="line-14"></a>-<a name="line-15"></a>This module defines conditional combinators for list arrows.-<a name="line-16"></a>-<a name="line-17"></a>The empty list as result represents False, none empty lists True.-<a name="line-18"></a>-<a name="line-19"></a>-}</span>-<a name="line-20"></a>-<a name="line-21"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-22"></a>-<a name="line-23"></a><span class='keyword'>module</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowIf</span>-<a name="line-24"></a> <span class='layout'>(</span> <span class='keyword'>module</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowIf</span>-<a name="line-25"></a> <span class='layout'>)</span>-<a name="line-26"></a><span class='keyword'>where</span>-<a name="line-27"></a>-<a name="line-28"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span>-<a name="line-29"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowList</span>-<a name="line-30"></a>-<a name="line-31"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>List</span>-<a name="line-32"></a> <span class='layout'>(</span> <span class='varid'>partition</span> <span class='layout'>)</span>-<a name="line-33"></a>-<a name="line-34"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-35"></a>-<a name="line-36"></a><span class='comment'>-- | The interface for arrows as conditionals.</span>-<a name="line-37"></a><span class='comment'>--</span>-<a name="line-38"></a><span class='comment'>-- Requires list arrows because False is represented as empty list, True as none empty lists.</span>-<a name="line-39"></a><span class='comment'>--</span>-<a name="line-40"></a><span class='comment'>-- Only 'ifA' and 'orElse' don't have default implementations</span>-<a name="line-41"></a>-<a name="line-42"></a><a name="ArrowIf"></a><span class='keyword'>class</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='conid'>ArrowIf</span> <span class='varid'>a</span> <span class='keyword'>where</span>-<a name="line-43"></a>-<a name="line-44"></a> <span class='comment'>-- | if lifted to arrows</span>-<a name="line-45"></a>-<a name="line-46"></a> <span class='varid'>ifA</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>d</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>d</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>d</span>-<a name="line-47"></a>-<a name="line-48"></a> <span class='comment'>-- | shortcut: @ ifP p = ifA (isA p) @</span>-<a name="line-49"></a>-<a name="line-50"></a> <span class='varid'>ifP</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>b</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>d</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>d</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>d</span>-<a name="line-51"></a> <span class='varid'>ifP</span> <span class='varid'>p</span> <span class='keyglyph'>=</span> <span class='varid'>ifA</span> <span class='layout'>(</span><span class='varid'>isA</span> <span class='varid'>p</span><span class='layout'>)</span>-<a name="line-52"></a>-<a name="line-53"></a> <span class='comment'>-- | negation: @ neg f = ifA f none this @</span>-<a name="line-54"></a>-<a name="line-55"></a> <span class='varid'>neg</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>b</span>-<a name="line-56"></a> <span class='varid'>neg</span> <span class='varid'>f</span> <span class='keyglyph'>=</span> <span class='varid'>ifA</span> <span class='varid'>f</span> <span class='varid'>none</span> <span class='varid'>this</span>-<a name="line-57"></a>-<a name="line-58"></a> <span class='comment'>-- | @ f \`when\` g @ : when the predicate g holds, f is applied, else the identity filter this</span>-<a name="line-59"></a>-<a name="line-60"></a> <span class='varid'>when</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>b</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>b</span>-<a name="line-61"></a> <span class='varid'>f</span> <span class='varop'>`when`</span> <span class='varid'>g</span> <span class='keyglyph'>=</span> <span class='varid'>ifA</span> <span class='varid'>g</span> <span class='varid'>f</span> <span class='varid'>this</span>-<a name="line-62"></a>-<a name="line-63"></a> <span class='comment'>-- | shortcut: @ f \`whenP\` p = f \`when\` (isA p) @</span>-<a name="line-64"></a>-<a name="line-65"></a> <span class='varid'>whenP</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>b</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='varid'>b</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>b</span>-<a name="line-66"></a> <span class='varid'>f</span> <span class='varop'>`whenP`</span> <span class='varid'>g</span> <span class='keyglyph'>=</span> <span class='varid'>ifP</span> <span class='varid'>g</span> <span class='varid'>f</span> <span class='varid'>this</span>-<a name="line-67"></a>-<a name="line-68"></a> <span class='comment'>-- | @ f \`whenNot\` g @ : when the predicate g does not hold, f is applied, else the identity filter this</span>-<a name="line-69"></a>-<a name="line-70"></a> <span class='varid'>whenNot</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>b</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>b</span>-<a name="line-71"></a> <span class='varid'>f</span> <span class='varop'>`whenNot`</span> <span class='varid'>g</span> <span class='keyglyph'>=</span> <span class='varid'>ifA</span> <span class='varid'>g</span> <span class='varid'>this</span> <span class='varid'>f</span>-<a name="line-72"></a>-<a name="line-73"></a> <span class='comment'>-- | like 'whenP'</span>-<a name="line-74"></a>-<a name="line-75"></a> <span class='varid'>whenNotP</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>b</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='varid'>b</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>b</span>-<a name="line-76"></a> <span class='varid'>f</span> <span class='varop'>`whenNotP`</span> <span class='varid'>g</span> <span class='keyglyph'>=</span> <span class='varid'>ifP</span> <span class='varid'>g</span> <span class='varid'>this</span> <span class='varid'>f</span>-<a name="line-77"></a>-<a name="line-78"></a> <span class='comment'>-- | @ g \`guards\` f @ : when the predicate g holds, f is applied, else none</span>-<a name="line-79"></a>-<a name="line-80"></a> <span class='varid'>guards</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>d</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>d</span>-<a name="line-81"></a> <span class='varid'>f</span> <span class='varop'>`guards`</span> <span class='varid'>g</span> <span class='keyglyph'>=</span> <span class='varid'>ifA</span> <span class='varid'>f</span> <span class='varid'>g</span> <span class='varid'>none</span>-<a name="line-82"></a>-<a name="line-83"></a> <span class='comment'>-- | like 'whenP'</span>-<a name="line-84"></a>-<a name="line-85"></a> <span class='varid'>guardsP</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>b</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>d</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>d</span>-<a name="line-86"></a> <span class='varid'>f</span> <span class='varop'>`guardsP`</span> <span class='varid'>g</span> <span class='keyglyph'>=</span> <span class='varid'>ifP</span> <span class='varid'>f</span> <span class='varid'>g</span> <span class='varid'>none</span>-<a name="line-87"></a>-<a name="line-88"></a> <span class='comment'>-- | shortcut for @ f `guards` this @</span>-<a name="line-89"></a>-<a name="line-90"></a> <span class='varid'>filterA</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>b</span>-<a name="line-91"></a> <span class='varid'>filterA</span> <span class='varid'>f</span> <span class='keyglyph'>=</span> <span class='varid'>ifA</span> <span class='varid'>f</span> <span class='varid'>this</span> <span class='varid'>none</span>-<a name="line-92"></a>-<a name="line-93"></a> <span class='comment'>-- | @ f \`containing\` g @ : keep only those results from f for which g holds</span>-<a name="line-94"></a> <span class='comment'>--</span>-<a name="line-95"></a> <span class='comment'>-- definition: @ f \`containing\` g = f >>> g \`guards\` this @</span>-<a name="line-96"></a>-<a name="line-97"></a> <span class='varid'>containing</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>c</span> <span class='varid'>d</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span>-<a name="line-98"></a> <span class='varid'>f</span> <span class='varop'>`containing`</span> <span class='varid'>g</span> <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varop'>>>></span> <span class='varid'>g</span> <span class='varop'>`guards`</span> <span class='varid'>this</span>-<a name="line-99"></a>-<a name="line-100"></a> <span class='comment'>-- | @ f \`notContaining\` g @ : keep only those results from f for which g does not hold</span>-<a name="line-101"></a> <span class='comment'>--</span>-<a name="line-102"></a> <span class='comment'>-- definition: @ f \`notContaining\` g = f >>> ifA g none this @</span>-<a name="line-103"></a>-<a name="line-104"></a> <span class='varid'>notContaining</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>c</span> <span class='varid'>d</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span>-<a name="line-105"></a> <span class='varid'>f</span> <span class='varop'>`notContaining`</span> <span class='varid'>g</span> <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varop'>>>></span> <span class='varid'>ifA</span> <span class='varid'>g</span> <span class='varid'>none</span> <span class='varid'>this</span>-<a name="line-106"></a>-<a name="line-107"></a> <span class='comment'>-- | @ f \`orElse\` g @ : directional choice: if f succeeds, the result of f is the result, else g is applied</span>-<a name="line-108"></a> <span class='varid'>orElse</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span>-<a name="line-109"></a>-<a name="line-110"></a> <span class='comment'>-- | generalisation of 'orElse' for multi way branches like in case expressions.</span>-<a name="line-111"></a> <span class='comment'>--</span>-<a name="line-112"></a> <span class='comment'>-- An auxiliary data type 'IfThen' with an infix constructor ':->' is used for writing multi way branches</span>-<a name="line-113"></a> <span class='comment'>--</span>-<a name="line-114"></a> <span class='comment'>-- example: @ choiceA [ p1 :-> e1, p2 :-> e2, this :-> default ] @</span>-<a name="line-115"></a> <span class='varid'>choiceA</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>IfThen</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>d</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>d</span>-<a name="line-116"></a> <span class='varid'>choiceA</span> <span class='keyglyph'>=</span> <span class='varid'>foldr</span> <span class='varid'>ifA'</span> <span class='varid'>none</span>-<a name="line-117"></a> <span class='keyword'>where</span>-<a name="line-118"></a> <span class='varid'>ifA'</span> <span class='layout'>(</span><span class='varid'>g</span> <span class='conop'>:-></span> <span class='varid'>f</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>ifA</span> <span class='varid'>g</span> <span class='varid'>f</span>-<a name="line-119"></a>-<a name="line-120"></a>-<a name="line-121"></a> <span class='comment'>-- | tag a value with Left or Right, if arrow has success, input is tagged with Left, else with Right</span>-<a name="line-122"></a> <span class='varid'>tagA</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='layout'>(</span><span class='conid'>Either</span> <span class='varid'>b</span> <span class='varid'>b</span><span class='layout'>)</span>-<a name="line-123"></a> <span class='varid'>tagA</span> <span class='varid'>p</span> <span class='keyglyph'>=</span> <span class='varid'>ifA</span> <span class='varid'>p</span> <span class='layout'>(</span><span class='varid'>arr</span> <span class='conid'>Left</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>arr</span> <span class='conid'>Right</span><span class='layout'>)</span>-<a name="line-124"></a>-<a name="line-125"></a>-<a name="line-126"></a> <span class='comment'>-- | split a list value with an arrow and returns a pair of lists.</span>-<a name="line-127"></a> <span class='comment'>-- This is the arrow version of 'span'. The arrow is deterministic.</span>-<a name="line-128"></a> <span class='comment'>--</span>-<a name="line-129"></a> <span class='comment'>-- example: @ runLA (spanA (isA (\/= \'-\'))) \"abc-def\" @ gives @ [(\"abc\",\"-def\")] @ as result</span>-<a name="line-130"></a>-<a name="line-131"></a> <span class='varid'>spanA</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>b</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span> <span class='layout'>(</span><span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>,</span><span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-132"></a> <span class='varid'>spanA</span> <span class='varid'>p</span> <span class='keyglyph'>=</span> <span class='varid'>ifA</span> <span class='layout'>(</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>take</span> <span class='num'>1</span><span class='layout'>)</span> <span class='varop'>>>></span> <span class='varid'>p</span> <span class='layout'>)</span>-<a name="line-133"></a> <span class='layout'>(</span> <span class='varid'>arr</span> <span class='varid'>head</span> <span class='varop'>&&&</span> <span class='layout'>(</span><span class='varid'>arr</span> <span class='varid'>tail</span> <span class='varop'>>>></span> <span class='varid'>spanA</span> <span class='varid'>p</span><span class='layout'>)</span>-<a name="line-134"></a> <span class='varop'>>>></span>-<a name="line-135"></a> <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>x</span><span class='layout'>,</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>xs</span><span class='layout'>,</span><span class='varid'>ys</span><span class='layout'>)</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='varid'>x</span> <span class='conop'>:</span> <span class='varid'>xs</span><span class='layout'>,</span> <span class='varid'>ys</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-136"></a> <span class='layout'>)</span>-<a name="line-137"></a> <span class='layout'>(</span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>l</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='conid'>[]</span><span class='layout'>,</span><span class='varid'>l</span><span class='layout'>)</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-138"></a>-<a name="line-139"></a> <span class='comment'>-- | partition a list of values into a pair of lists</span>-<a name="line-140"></a> <span class='comment'>--</span>-<a name="line-141"></a> <span class='comment'>-- This is the arrow Version of 'Data.List.partition'</span>-<a name="line-142"></a>-<a name="line-143"></a> <span class='varid'>partitionA</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>b</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span> <span class='layout'>(</span><span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>,</span><span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-144"></a> <span class='varid'>partitionA</span> <span class='varid'>p</span> <span class='keyglyph'>=</span> <span class='varid'>listA</span> <span class='layout'>(</span> <span class='varid'>arrL</span> <span class='varid'>id</span> <span class='varop'>>>></span> <span class='varid'>tagA</span> <span class='varid'>p</span> <span class='layout'>)</span>-<a name="line-145"></a> <span class='varop'>>>^</span>-<a name="line-146"></a> <span class='layout'>(</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>l1</span><span class='layout'>,</span> <span class='varid'>l2</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='varid'>unTag</span> <span class='varid'>l1</span><span class='layout'>,</span> <span class='varid'>unTag</span> <span class='varid'>l2</span><span class='layout'>)</span> <span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>partition</span> <span class='layout'>(</span><span class='varid'>isLeft</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-147"></a> <span class='keyword'>where</span>-<a name="line-148"></a> <span class='varid'>isLeft</span> <span class='layout'>(</span><span class='conid'>Left</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-149"></a> <span class='varid'>isLeft</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-150"></a> <span class='varid'>unTag</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>either</span> <span class='varid'>id</span> <span class='varid'>id</span><span class='layout'>)</span>-<a name="line-151"></a>-<a name="line-152"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-153"></a>-<a name="line-154"></a><span class='comment'>-- | an auxiliary data type for 'choiceA'</span>-<a name="line-155"></a>-<a name="line-156"></a><a name="IfThen"></a><span class='keyword'>data</span> <span class='conid'>IfThen</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='keyglyph'>=</span> <span class='varid'>a</span> <span class='conop'>:-></span> <span class='varid'>b</span>-<a name="line-157"></a>-<a name="line-158"></a><span class='comment'>-- ------------------------------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Control-Arrow-ArrowList.html
@@ -1,356 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Control.Arrow.ArrowList-<a name="line-5"></a> Copyright : Copyright (C) 2005 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)-<a name="line-9"></a> Stability : experimental-<a name="line-10"></a> Portability: portable-<a name="line-11"></a> Version : $Id: ArrowList.hs,v 1.11 2006/06/01 12:59:04 hxml Exp $-<a name="line-12"></a>-<a name="line-13"></a>The List Arrow Class-<a name="line-14"></a>-<a name="line-15"></a>This module defines the interface for list arrows.-<a name="line-16"></a>-<a name="line-17"></a>A list arrow is a function, that gives a list of results-<a name="line-18"></a>for a given argument. A single element result represents a normal function.-<a name="line-19"></a>An empty list oven indicates, the function is undefined for the given argument.-<a name="line-20"></a>The empty list may also represent False, none empty lists True.-<a name="line-21"></a>A list with more than one element gives all results for a nondeterministic function.-<a name="line-22"></a>-<a name="line-23"></a>-}</span>-<a name="line-24"></a>-<a name="line-25"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-26"></a>-<a name="line-27"></a><span class='keyword'>module</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowList</span>-<a name="line-28"></a> <span class='layout'>(</span> <span class='conid'>ArrowList</span><span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span>-<a name="line-29"></a> <span class='layout'>)</span>-<a name="line-30"></a><span class='keyword'>where</span>-<a name="line-31"></a>-<a name="line-32"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span>-<a name="line-33"></a>-<a name="line-34"></a><span class='keyword'>infixl</span> <span class='num'>8</span> <span class='varop'>>>.</span><span class='layout'>,</span> <span class='varop'>>.</span>-<a name="line-35"></a>-<a name="line-36"></a><span class='keyword'>infixl</span> <span class='num'>2</span> <span class='varop'>$<</span><span class='layout'>,</span> <span class='varop'>$<<</span><span class='layout'>,</span> <span class='varop'>$<<<</span><span class='layout'>,</span> <span class='varop'>$<<<<</span>-<a name="line-37"></a><span class='keyword'>infixl</span> <span class='num'>2</span> <span class='varop'>$<$</span>-<a name="line-38"></a>-<a name="line-39"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-40"></a>-<a name="line-41"></a><span class='comment'>-- | The interface for list arrows</span>-<a name="line-42"></a><span class='comment'>--</span>-<a name="line-43"></a><span class='comment'>-- Only 'mkA', 'arr2A', 'isA' '(>>.)' don't have default implementations</span>-<a name="line-44"></a>-<a name="line-45"></a><a name="ArrowList"></a><span class='keyword'>class</span> <span class='layout'>(</span><span class='conid'>Arrow</span> <span class='varid'>a</span><span class='layout'>,</span> <span class='conid'>ArrowPlus</span> <span class='varid'>a</span><span class='layout'>,</span> <span class='conid'>ArrowZero</span> <span class='varid'>a</span><span class='layout'>,</span> <span class='conid'>ArrowApply</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>=></span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyword'>where</span>-<a name="line-46"></a>-<a name="line-47"></a> <span class='comment'>-- | construction of a 2 argument arrow from a binary function</span>-<a name="line-48"></a> <span class='comment'>-- |</span>-<a name="line-49"></a> <span class='comment'>-- | example: @ a1 &&& a2 >>> arr2 f @</span>-<a name="line-50"></a>-<a name="line-51"></a> <span class='varid'>arr2</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>b1</span> <span class='keyglyph'>-></span> <span class='varid'>b2</span> <span class='keyglyph'>-></span> <span class='varid'>c</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>b1</span><span class='layout'>,</span> <span class='varid'>b2</span><span class='layout'>)</span> <span class='varid'>c</span>-<a name="line-52"></a> <span class='varid'>arr2</span> <span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='varop'>.</span> <span class='varid'>uncurry</span>-<a name="line-53"></a>-<a name="line-54"></a> <span class='comment'>-- | construction of a 3 argument arrow from a 3-ary function</span>-<a name="line-55"></a> <span class='comment'>-- |</span>-<a name="line-56"></a> <span class='comment'>-- | example: @ a1 &&& a2 &&& a3 >>> arr3 f @</span>-<a name="line-57"></a>-<a name="line-58"></a> <span class='varid'>arr3</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>b1</span> <span class='keyglyph'>-></span> <span class='varid'>b2</span> <span class='keyglyph'>-></span> <span class='varid'>b3</span> <span class='keyglyph'>-></span> <span class='varid'>c</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>b1</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>b2</span><span class='layout'>,</span> <span class='varid'>b3</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varid'>c</span>-<a name="line-59"></a> <span class='varid'>arr3</span> <span class='varid'>f</span> <span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>x1</span><span class='layout'>,</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>x2</span><span class='layout'>,</span> <span class='varid'>x3</span><span class='layout'>)</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>f</span> <span class='varid'>x1</span> <span class='varid'>x2</span> <span class='varid'>x3</span><span class='layout'>)</span>-<a name="line-60"></a>-<a name="line-61"></a> <span class='comment'>-- | construction of a 4 argument arrow from a 4-ary function</span>-<a name="line-62"></a> <span class='comment'>-- |</span>-<a name="line-63"></a> <span class='comment'>-- | example: @ a1 &&& a2 &&& a3 &&& a4 >>> arr4 f @</span>-<a name="line-64"></a>-<a name="line-65"></a> <span class='varid'>arr4</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>b1</span> <span class='keyglyph'>-></span> <span class='varid'>b2</span> <span class='keyglyph'>-></span> <span class='varid'>b3</span> <span class='keyglyph'>-></span> <span class='varid'>b4</span> <span class='keyglyph'>-></span> <span class='varid'>c</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>b1</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>b2</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>b3</span><span class='layout'>,</span> <span class='varid'>b4</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varid'>c</span>-<a name="line-66"></a> <span class='varid'>arr4</span> <span class='varid'>f</span> <span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>x1</span><span class='layout'>,</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>x2</span><span class='layout'>,</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>x3</span><span class='layout'>,</span> <span class='varid'>x4</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>f</span> <span class='varid'>x1</span> <span class='varid'>x2</span> <span class='varid'>x3</span> <span class='varid'>x4</span><span class='layout'>)</span>-<a name="line-67"></a>-<a name="line-68"></a> <span class='comment'>-- | construction of a 2 argument arrow from a singe argument arrow</span>-<a name="line-69"></a>-<a name="line-70"></a> <span class='varid'>arr2A</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>b</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>c</span> <span class='varid'>d</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>b</span><span class='layout'>,</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='varid'>d</span>-<a name="line-71"></a>-<a name="line-72"></a> <span class='comment'>-- | constructor for a list arrow from a function with a list as result</span>-<a name="line-73"></a>-<a name="line-74"></a> <span class='varid'>arrL</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>b</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span>-<a name="line-75"></a>-<a name="line-76"></a> <span class='comment'>-- | constructor for a list arrow with 2 arguments</span>-<a name="line-77"></a>-<a name="line-78"></a> <span class='varid'>arr2L</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>b</span> <span class='keyglyph'>-></span> <span class='varid'>c</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='varid'>d</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>b</span><span class='layout'>,</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='varid'>d</span>-<a name="line-79"></a> <span class='varid'>arr2L</span> <span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='varop'>.</span> <span class='varid'>uncurry</span>-<a name="line-80"></a>-<a name="line-81"></a> <span class='comment'>-- | constructor for a const arrow: @ constA = arr . const @</span>-<a name="line-82"></a>-<a name="line-83"></a> <span class='varid'>constA</span> <span class='keyglyph'>::</span> <span class='varid'>c</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span>-<a name="line-84"></a> <span class='varid'>constA</span> <span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='varop'>.</span> <span class='varid'>const</span>-<a name="line-85"></a>-<a name="line-86"></a> <span class='comment'>-- | constructor for a const arrow: @ constL = arrL . const @</span>-<a name="line-87"></a>-<a name="line-88"></a> <span class='varid'>constL</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span>-<a name="line-89"></a> <span class='varid'>constL</span> <span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='varop'>.</span> <span class='varid'>const</span>-<a name="line-90"></a>-<a name="line-91"></a> <span class='comment'>-- | builds an arrow from a predicate.</span>-<a name="line-92"></a> <span class='comment'>-- If the predicate holds, the single list containing the input is returned, else the empty list</span>-<a name="line-93"></a>-<a name="line-94"></a> <span class='varid'>isA</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>b</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>b</span>-<a name="line-95"></a>-<a name="line-96"></a> <span class='comment'>-- | combinator for converting the result of a list arrow into another list</span>-<a name="line-97"></a> <span class='comment'>--</span>-<a name="line-98"></a> <span class='comment'>-- example: @ foo >>. reverse @ reverses the the result of foo</span>-<a name="line-99"></a> <span class='comment'>--</span>-<a name="line-100"></a> <span class='comment'>-- example: @ foo >>. take 1 @ constructs a deterministic version of foo by deleting all further results</span>-<a name="line-101"></a>-<a name="line-102"></a> <span class='layout'>(</span><span class='varop'>>>.</span><span class='layout'>)</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='varid'>d</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>d</span>-<a name="line-103"></a>-<a name="line-104"></a> <span class='comment'>-- | combinator for converting the result of an arrow into a single element result</span>-<a name="line-105"></a>-<a name="line-106"></a> <span class='layout'>(</span><span class='varop'>>.</span><span class='layout'>)</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='varid'>d</span> <span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>d</span>-<a name="line-107"></a> <span class='varid'>af</span> <span class='varop'>>.</span> <span class='varid'>f</span> <span class='keyglyph'>=</span> <span class='varid'>af</span> <span class='varop'>>>.</span> <span class='layout'>(</span><span class='layout'>(</span><span class='conop'>:</span><span class='conid'>[]</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>f</span><span class='layout'>)</span>-<a name="line-108"></a>-<a name="line-109"></a> <span class='comment'>-- | combinator for converting an arrow into a determinstic version with all results collected in a single element list</span>-<a name="line-110"></a> <span class='comment'>--</span>-<a name="line-111"></a> <span class='comment'>-- @ listA af = af >>. (:[]) @</span>-<a name="line-112"></a> <span class='comment'>--</span>-<a name="line-113"></a> <span class='comment'>-- this is useful when the list of results computed by an arrow must be manipulated (e.g. sorted)</span>-<a name="line-114"></a> <span class='comment'>--</span>-<a name="line-115"></a> <span class='comment'>-- example for sorting the results of a filter</span>-<a name="line-116"></a> <span class='comment'>--</span>-<a name="line-117"></a> <span class='comment'>-- > collectAndSort :: a b c -> a b c</span>-<a name="line-118"></a> <span class='comment'>-- ></span>-<a name="line-119"></a> <span class='comment'>-- > collectAndSort collect = listA collect >>> arrL sort</span>-<a name="line-120"></a>-<a name="line-121"></a> <span class='varid'>listA</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span>-<a name="line-122"></a> <span class='varid'>listA</span> <span class='varid'>af</span> <span class='keyglyph'>=</span> <span class='varid'>af</span> <span class='varop'>>>.</span> <span class='layout'>(</span><span class='conop'>:</span><span class='conid'>[]</span><span class='layout'>)</span>-<a name="line-123"></a>-<a name="line-124"></a> <span class='comment'>-- | the inverse of 'listA'</span>-<a name="line-125"></a> <span class='comment'>--</span>-<a name="line-126"></a> <span class='comment'>-- @ listA af >>> unlistA = af @</span>-<a name="line-127"></a> <span class='comment'>--</span>-<a name="line-128"></a> <span class='comment'>-- unlistA is defined as @ arrL id @</span>-<a name="line-129"></a>-<a name="line-130"></a> <span class='varid'>unlistA</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span> <span class='varid'>b</span>-<a name="line-131"></a> <span class='varid'>unlistA</span> <span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='varid'>id</span>-<a name="line-132"></a>-<a name="line-133"></a> <span class='comment'>-- | the identity arrow, alias for returnA</span>-<a name="line-134"></a>-<a name="line-135"></a> <span class='varid'>this</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>b</span>-<a name="line-136"></a> <span class='varid'>this</span> <span class='keyglyph'>=</span> <span class='varid'>returnA</span>-<a name="line-137"></a>-<a name="line-138"></a> <span class='comment'>-- | the zero arrow, alias for zeroArrow</span>-<a name="line-139"></a>-<a name="line-140"></a> <span class='varid'>none</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span>-<a name="line-141"></a> <span class='varid'>none</span> <span class='keyglyph'>=</span> <span class='varid'>zeroArrow</span>-<a name="line-142"></a>-<a name="line-143"></a> <span class='comment'>-- | converts an arrow, that may fail, into an arrow that always succeeds</span>-<a name="line-144"></a> <span class='comment'>--</span>-<a name="line-145"></a> <span class='comment'>-- example: @ withDefault none \"abc\" @ is equivalent to @ constA \"abc\" @</span>-<a name="line-146"></a>-<a name="line-147"></a> <span class='varid'>withDefault</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span> <span class='keyglyph'>-></span> <span class='varid'>c</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span>-<a name="line-148"></a> <span class='varid'>withDefault</span> <span class='varid'>a</span> <span class='varid'>d</span> <span class='keyglyph'>=</span> <span class='varid'>a</span> <span class='varop'>>>.</span> <span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>x</span> <span class='keyword'>then</span> <span class='keyglyph'>[</span><span class='varid'>d</span><span class='keyglyph'>]</span> <span class='keyword'>else</span> <span class='varid'>x</span>-<a name="line-149"></a>-<a name="line-150"></a> <span class='comment'>-- | makes a list arrow deterministic, the number of results is at most 1</span>-<a name="line-151"></a> <span class='comment'>--</span>-<a name="line-152"></a> <span class='comment'>-- definition</span>-<a name="line-153"></a> <span class='comment'>--</span>-<a name="line-154"></a> <span class='comment'>-- > single f = f >>. take 1</span>-<a name="line-155"></a> <span class='comment'>--</span>-<a name="line-156"></a> <span class='comment'>-- examples with strings:</span>-<a name="line-157"></a> <span class='comment'>--</span>-<a name="line-158"></a> <span class='comment'>-- > runLA ( single none ) "x" == []</span>-<a name="line-159"></a> <span class='comment'>-- > runLA ( single this ) "x" == ["x"]</span>-<a name="line-160"></a> <span class='comment'>-- > runLA ( single</span>-<a name="line-161"></a> <span class='comment'>-- > (constA "y"</span>-<a name="line-162"></a> <span class='comment'>-- > <+> this ) ) "x" == ["y"]</span>-<a name="line-163"></a>-<a name="line-164"></a> <span class='varid'>single</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span>-<a name="line-165"></a> <span class='varid'>single</span> <span class='varid'>f</span> <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varop'>>>.</span> <span class='varid'>take</span> <span class='num'>1</span>-<a name="line-166"></a>-<a name="line-167"></a> <span class='comment'>-- | compute an arrow from the input and apply the arrow to this input</span>-<a name="line-168"></a> <span class='comment'>--</span>-<a name="line-169"></a> <span class='comment'>-- definition: @ (f &&& this) >>> app @</span>-<a name="line-170"></a> <span class='comment'>--</span>-<a name="line-171"></a> <span class='comment'>-- in a point free style, there is no way to use an argument in 2 places,</span>-<a name="line-172"></a> <span class='comment'>-- this is a combinator for simulating this. first the argument is used to compute an arrow,</span>-<a name="line-173"></a> <span class='comment'>-- then this new arrow is applied to the input</span>-<a name="line-174"></a> <span class='comment'>--</span>-<a name="line-175"></a> <span class='comment'>-- applyA coresponds to: @ apply f x = let g = f x in g x @</span>-<a name="line-176"></a> <span class='comment'>--</span>-<a name="line-177"></a> <span class='comment'>-- see also: '$<', '$<<', '$<<<', '$<<<<', '$<$'</span>-<a name="line-178"></a>-<a name="line-179"></a> <span class='varid'>applyA</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span>-<a name="line-180"></a> <span class='varid'>applyA</span> <span class='varid'>f</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>f</span> <span class='varop'>&&&</span> <span class='varid'>this</span><span class='layout'>)</span> <span class='varop'>>>></span> <span class='varid'>app</span>-<a name="line-181"></a>-<a name="line-182"></a> <span class='comment'>-- | compute the parameter for an arrow with extra parameters from the input</span>-<a name="line-183"></a> <span class='comment'>-- and apply the arrow for all parameter values to the input</span>-<a name="line-184"></a> <span class='comment'>--</span>-<a name="line-185"></a> <span class='comment'>-- a kind of \"function call\" for arrows, useful for joining arrows</span>-<a name="line-186"></a> <span class='comment'>--</span>-<a name="line-187"></a> <span class='comment'>-- > infixl 2 ($<)</span>-<a name="line-188"></a> <span class='comment'>--</span>-<a name="line-189"></a> <span class='comment'>-- definition:</span>-<a name="line-190"></a> <span class='comment'>--</span>-<a name="line-191"></a> <span class='comment'>-- > g $< f = applyA (f >>> arr g)</span>-<a name="line-192"></a> <span class='comment'>--</span>-<a name="line-193"></a> <span class='comment'>-- if @f@ fails, the whole arrow fails, e.g. @ g \$\< none == none @</span>-<a name="line-194"></a> <span class='comment'>--</span>-<a name="line-195"></a> <span class='comment'>-- if @f@ computes n values and @g@ is deterministic, the whole arrow computes n values</span>-<a name="line-196"></a> <span class='comment'>--</span>-<a name="line-197"></a> <span class='comment'>-- examples with simple list arrows with strings</span>-<a name="line-198"></a> <span class='comment'>--</span>-<a name="line-199"></a> <span class='comment'>-- > prefixString :: String -> a String String</span>-<a name="line-200"></a> <span class='comment'>-- > prefixString s = arr (s++)</span>-<a name="line-201"></a> <span class='comment'>-- ></span>-<a name="line-202"></a> <span class='comment'>-- > runLA ( prefixString $< none ) "x" == []</span>-<a name="line-203"></a> <span class='comment'>-- > runLA ( prefixString $< constA "y" ) "x" == ["yx"]</span>-<a name="line-204"></a> <span class='comment'>-- > runLA ( prefixString $< this ) "x" == ["xx"]</span>-<a name="line-205"></a> <span class='comment'>-- > runLA ( prefixString $< constA "y"</span>-<a name="line-206"></a> <span class='comment'>-- > <+> constA "z" ) "x" == ["yx","zx"]</span>-<a name="line-207"></a> <span class='comment'>-- > runLA ( prefixString $< constA "y"</span>-<a name="line-208"></a> <span class='comment'>-- > <+> this</span>-<a name="line-209"></a> <span class='comment'>-- > <+> constA "z" ) "x" == ["yx","xx","zx"]</span>-<a name="line-210"></a> <span class='comment'>--</span>-<a name="line-211"></a> <span class='comment'>-- see also: 'applyA', '$<<', '$<<<', '$<<<<', '$<$'</span>-<a name="line-212"></a>-<a name="line-213"></a> <span class='layout'>(</span><span class='varop'>$<</span><span class='layout'>)</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>c</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>d</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>d</span>-<a name="line-214"></a> <span class='varid'>g</span> <span class='varop'>$<</span> <span class='varid'>f</span> <span class='keyglyph'>=</span> <span class='varid'>applyA</span> <span class='layout'>(</span><span class='varid'>f</span> <span class='varop'>>>></span> <span class='varid'>arr</span> <span class='varid'>g</span><span class='layout'>)</span>-<a name="line-215"></a>-<a name="line-216"></a> <span class='comment'>-- | binary version of '$<'</span>-<a name="line-217"></a> <span class='comment'>--</span>-<a name="line-218"></a> <span class='comment'>-- example with simple list arrows with strings</span>-<a name="line-219"></a> <span class='comment'>--</span>-<a name="line-220"></a> <span class='comment'>-- > infixString :: String -> String -> a String String</span>-<a name="line-221"></a> <span class='comment'>-- > infixString s1 s2</span>-<a name="line-222"></a> <span class='comment'>-- > = arr (\ s -> s1 ++ s ++ s2)</span>-<a name="line-223"></a> <span class='comment'>-- ></span>-<a name="line-224"></a> <span class='comment'>-- > runLA ( infixString $<< constA "y" &&& constA "z" ) "x" = ["yxz"]</span>-<a name="line-225"></a> <span class='comment'>-- > runLA ( infixString $<< this &&& this ) "x" = ["xxx"]</span>-<a name="line-226"></a> <span class='comment'>-- > runLA ( infixString $<< constA "y"</span>-<a name="line-227"></a> <span class='comment'>-- > &&& (constA "z" <+> this) ) "x" = ["yxz", "yxx"]</span>-<a name="line-228"></a>-<a name="line-229"></a> <span class='layout'>(</span><span class='varop'>$<<</span><span class='layout'>)</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>c1</span> <span class='keyglyph'>-></span> <span class='varid'>c2</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>d</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='layout'>(</span><span class='varid'>c1</span><span class='layout'>,</span> <span class='varid'>c2</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>d</span>-<a name="line-230"></a> <span class='varid'>f</span> <span class='varop'>$<<</span> <span class='varid'>g</span> <span class='keyglyph'>=</span> <span class='varid'>applyA</span> <span class='layout'>(</span><span class='varid'>g</span> <span class='varop'>>>></span> <span class='varid'>arr2</span> <span class='varid'>f</span><span class='layout'>)</span>-<a name="line-231"></a>-<a name="line-232"></a> <span class='comment'>-- | version of '$<' for arrows with 3 extra parameters</span>-<a name="line-233"></a> <span class='comment'>--</span>-<a name="line-234"></a> <span class='comment'>-- typical usage</span>-<a name="line-235"></a> <span class='comment'>--</span>-<a name="line-236"></a> <span class='comment'>-- > f $<<< g1 &&& g2 &&& g3</span>-<a name="line-237"></a>-<a name="line-238"></a> <span class='layout'>(</span><span class='varop'>$<<<</span><span class='layout'>)</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>c1</span> <span class='keyglyph'>-></span> <span class='varid'>c2</span> <span class='keyglyph'>-></span> <span class='varid'>c3</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>d</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='layout'>(</span><span class='varid'>c1</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>c2</span><span class='layout'>,</span> <span class='varid'>c3</span><span class='layout'>)</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>d</span>-<a name="line-239"></a> <span class='varid'>f</span> <span class='varop'>$<<<</span> <span class='varid'>g</span> <span class='keyglyph'>=</span> <span class='varid'>applyA</span> <span class='layout'>(</span><span class='varid'>g</span> <span class='varop'>>>></span> <span class='varid'>arr3</span> <span class='varid'>f</span><span class='layout'>)</span>-<a name="line-240"></a>-<a name="line-241"></a> <span class='comment'>-- | version of '$<' for arrows with 4 extra parameters</span>-<a name="line-242"></a> <span class='comment'>--</span>-<a name="line-243"></a> <span class='comment'>-- typical usage</span>-<a name="line-244"></a> <span class='comment'>--</span>-<a name="line-245"></a> <span class='comment'>-- > f $<<<< g1 &&& g2 &&& g3 &&& g4</span>-<a name="line-246"></a>-<a name="line-247"></a> <span class='layout'>(</span><span class='varop'>$<<<<</span><span class='layout'>)</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>c1</span> <span class='keyglyph'>-></span> <span class='varid'>c2</span> <span class='keyglyph'>-></span> <span class='varid'>c3</span> <span class='keyglyph'>-></span> <span class='varid'>c4</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>d</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='layout'>(</span><span class='varid'>c1</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>c2</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>c3</span><span class='layout'>,</span> <span class='varid'>c4</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>d</span>-<a name="line-248"></a> <span class='varid'>f</span> <span class='varop'>$<<<<</span> <span class='varid'>g</span> <span class='keyglyph'>=</span> <span class='varid'>applyA</span> <span class='layout'>(</span><span class='varid'>g</span> <span class='varop'>>>></span> <span class='varid'>arr4</span> <span class='varid'>f</span><span class='layout'>)</span>-<a name="line-249"></a>-<a name="line-250"></a> <span class='comment'>-- | compute the parameter for an arrow @f@ with an extra parameter by an arrow @g@</span>-<a name="line-251"></a> <span class='comment'>-- and apply all the results from @g@ sequentially to the input</span>-<a name="line-252"></a> <span class='comment'>--</span>-<a name="line-253"></a> <span class='comment'>-- > infixl 2 ($<$)</span>-<a name="line-254"></a> <span class='comment'>--</span>-<a name="line-255"></a> <span class='comment'>-- typical usage:</span>-<a name="line-256"></a> <span class='comment'>--</span>-<a name="line-257"></a> <span class='comment'>-- > g :: a b c</span>-<a name="line-258"></a> <span class='comment'>-- > g = ...</span>-<a name="line-259"></a> <span class='comment'>-- ></span>-<a name="line-260"></a> <span class='comment'>-- > f :: c -> a b b</span>-<a name="line-261"></a> <span class='comment'>-- > f x = ... x ...</span>-<a name="line-262"></a> <span class='comment'>-- ></span>-<a name="line-263"></a> <span class='comment'>-- > f $<$ g</span>-<a name="line-264"></a> <span class='comment'>--</span>-<a name="line-265"></a> <span class='comment'>-- @f@ computes the extra parameters for @g@ from the input of type @b@ and @g@ is applied with this</span>-<a name="line-266"></a> <span class='comment'>-- parameter to the input. This allows programming in a point wise style in @g@, which becomes</span>-<a name="line-267"></a> <span class='comment'>-- neccessary, when a value is needed more than once.</span>-<a name="line-268"></a> <span class='comment'>--</span>-<a name="line-269"></a> <span class='comment'>-- this combinator is useful, when transforming a single value (document) step by step,</span>-<a name="line-270"></a> <span class='comment'>-- with @g@ for collecting the data for all steps, and @f@ for transforming the input step by step</span>-<a name="line-271"></a> <span class='comment'>--</span>-<a name="line-272"></a> <span class='comment'>-- if @g@ is deterministic (computes exactly one result),</span>-<a name="line-273"></a> <span class='comment'>-- @ g $\<$ f == g $\< f @ holds</span>-<a name="line-274"></a> <span class='comment'>--</span>-<a name="line-275"></a> <span class='comment'>-- if @g@ fails, @ f $<$ g == this @</span>-<a name="line-276"></a> <span class='comment'>--</span>-<a name="line-277"></a> <span class='comment'>-- if @g@ computes more than one result, @f@ is applied sequentially to the input for every result from @g@</span>-<a name="line-278"></a> <span class='comment'>--</span>-<a name="line-279"></a> <span class='comment'>-- examples with simple list arrows with strings</span>-<a name="line-280"></a> <span class='comment'>--</span>-<a name="line-281"></a> <span class='comment'>-- > prefixString :: String -> a String String</span>-<a name="line-282"></a> <span class='comment'>-- > prefixString s = arr (s++)</span>-<a name="line-283"></a> <span class='comment'>-- ></span>-<a name="line-284"></a> <span class='comment'>-- > runLA ( prefixString $<$ none ) "x" == ["x"]</span>-<a name="line-285"></a> <span class='comment'>-- > runLA ( prefixString $<$ constA "y" ) "x" == ["yx"]</span>-<a name="line-286"></a> <span class='comment'>-- > runLA ( prefixString $<$ constA "y" <+> constA "z" ) "x" == ["zyx"]</span>-<a name="line-287"></a> <span class='comment'>-- > runLA ( prefixString $<$ constA "y" <+> this</span>-<a name="line-288"></a> <span class='comment'>-- > <+> constA "z" ) "x" == ["zxyx"]</span>-<a name="line-289"></a> <span class='comment'>--</span>-<a name="line-290"></a> <span class='comment'>-- example with two extra parameter</span>-<a name="line-291"></a> <span class='comment'>--</span>-<a name="line-292"></a> <span class='comment'>-- > g1 :: a b c1</span>-<a name="line-293"></a> <span class='comment'>-- > g2 :: a b c2</span>-<a name="line-294"></a> <span class='comment'>-- ></span>-<a name="line-295"></a> <span class='comment'>-- > f :: (c1, c2) -> a b b</span>-<a name="line-296"></a> <span class='comment'>-- > f (x1, x2) = ... x1 ... x2 ... </span>-<a name="line-297"></a> <span class='comment'>-- ></span>-<a name="line-298"></a> <span class='comment'>-- > f $<$ g1 &&& g2</span>-<a name="line-299"></a> <span class='comment'>--</span>-<a name="line-300"></a> <span class='comment'>-- see also: 'applyA', '$<'</span>-<a name="line-301"></a>-<a name="line-302"></a> <span class='layout'>(</span><span class='varop'>$<$</span><span class='layout'>)</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>c</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>b</span><span class='layout'>)</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>b</span>-<a name="line-303"></a> <span class='varid'>g</span> <span class='varop'>$<$</span> <span class='varid'>f</span> <span class='keyglyph'>=</span> <span class='varid'>applyA</span> <span class='layout'>(</span><span class='varid'>listA</span> <span class='layout'>(</span><span class='varid'>f</span> <span class='varop'>>>></span> <span class='varid'>arr</span> <span class='varid'>g</span><span class='layout'>)</span> <span class='varop'>>>></span> <span class='varid'>arr</span> <span class='varid'>seqA</span><span class='layout'>)</span>-<a name="line-304"></a>-<a name="line-305"></a> <span class='comment'>-- | merge the result pairs of an arrow with type @a a1 (b1, b2)@</span>-<a name="line-306"></a> <span class='comment'>-- by combining the tuple components with the @op@ arrow</span>-<a name="line-307"></a> <span class='comment'>--</span>-<a name="line-308"></a> <span class='comment'>-- examples with simple list arrows working on strings and XmlTrees</span>-<a name="line-309"></a> <span class='comment'>--</span>-<a name="line-310"></a> <span class='comment'>-- > a1 :: a String (XmlTree, XmlTree)</span>-<a name="line-311"></a> <span class='comment'>-- > a1 = selem "foo" [this >>> mkText]</span>-<a name="line-312"></a> <span class='comment'>-- > &&&</span>-<a name="line-313"></a> <span class='comment'>-- > selem "bar" [arr (++"0") >>> mkText]</span>-<a name="line-314"></a> <span class='comment'>-- > </span>-<a name="line-315"></a> <span class='comment'>-- > runLA (a1 >>> mergeA (<+>) >>> xshow this) "42" == ["<foo>42</foo>","<bar>420</bar>"]</span>-<a name="line-316"></a> <span class='comment'>-- > runLA (a1 >>> mergeA (+=) >>> xshow this) "42" == ["<foo>42<bar>420</bar></foo>"]</span>-<a name="line-317"></a> <span class='comment'>--</span>-<a name="line-318"></a> <span class='comment'>-- see also: 'applyA', '$<' and '+=' in class 'Text.XML.HXT.Arrow.ArrowXml'</span>-<a name="line-319"></a>-<a name="line-320"></a> <span class='varid'>mergeA</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>a1</span><span class='layout'>,</span> <span class='varid'>b1</span><span class='layout'>)</span> <span class='varid'>a1</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>a1</span><span class='layout'>,</span> <span class='varid'>b1</span><span class='layout'>)</span> <span class='varid'>b1</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>a1</span><span class='layout'>,</span> <span class='varid'>b1</span><span class='layout'>)</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='keyglyph'>-></span>-<a name="line-321"></a> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>a1</span><span class='layout'>,</span> <span class='varid'>b1</span><span class='layout'>)</span> <span class='varid'>c</span>-<a name="line-322"></a> <span class='varid'>mergeA</span> <span class='varid'>op</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='varid'>arr</span> <span class='varid'>fst</span> <span class='varop'>`op`</span> <span class='varid'>constA</span> <span class='layout'>(</span><span class='varid'>snd</span> <span class='varid'>x</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varop'>$<</span> <span class='varid'>this</span>-<a name="line-323"></a>-<a name="line-324"></a> <span class='comment'>-- | useful only for arrows with side effects: perform applies an arrow to the input</span>-<a name="line-325"></a> <span class='comment'>-- ignores the result and returns the input</span>-<a name="line-326"></a> <span class='comment'>--</span>-<a name="line-327"></a> <span class='comment'>-- example: @ ... >>> perform someTraceArrow >>> ... @</span>-<a name="line-328"></a>-<a name="line-329"></a> <span class='varid'>perform</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>b</span>-<a name="line-330"></a> <span class='varid'>perform</span> <span class='varid'>f</span> <span class='keyglyph'>=</span> <span class='varid'>listA</span> <span class='varid'>f</span> <span class='varop'>&&&</span> <span class='varid'>this</span> <span class='varop'>>>></span> <span class='varid'>arr</span> <span class='varid'>snd</span>-<a name="line-331"></a>-<a name="line-332"></a> <span class='comment'>-- | generalization of arrow combinator '<+>'</span>-<a name="line-333"></a> <span class='comment'>--</span>-<a name="line-334"></a> <span class='comment'>-- definition: @ catA = foldl (<+>) none @</span>-<a name="line-335"></a>-<a name="line-336"></a> <span class='varid'>catA</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span>-<a name="line-337"></a> <span class='varid'>catA</span> <span class='keyglyph'>=</span> <span class='varid'>foldl</span> <span class='layout'>(</span><span class='varop'><+></span><span class='layout'>)</span> <span class='varid'>none</span>-<a name="line-338"></a>-<a name="line-339"></a> <span class='comment'>-- | generalization of arrow combinator '>>>'</span>-<a name="line-340"></a> <span class='comment'>--</span>-<a name="line-341"></a> <span class='comment'>-- definition: @ seqA = foldl (>>>) this @</span>-<a name="line-342"></a>-<a name="line-343"></a> <span class='varid'>seqA</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>b</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>b</span>-<a name="line-344"></a> <span class='varid'>seqA</span> <span class='keyglyph'>=</span> <span class='varid'>foldl</span> <span class='layout'>(</span><span class='varop'>>>></span><span class='layout'>)</span> <span class='varid'>this</span>-<a name="line-345"></a>-<a name="line-346"></a><span class='comment'>-- ------------------------------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Control-Arrow-ArrowNF.html
@@ -1,48 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Control.Arrow.ArrowNF-<a name="line-5"></a> Copyright : Copyright (C) 2005-8 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)-<a name="line-9"></a> Stability : experimental-<a name="line-10"></a> Portability: non-portable-<a name="line-11"></a>-<a name="line-12"></a> Arrows for evaluation of normal form results-<a name="line-13"></a>-<a name="line-14"></a>-}</span>-<a name="line-15"></a>-<a name="line-16"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-17"></a>-<a name="line-18"></a><span class='keyword'>module</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowNF</span>-<a name="line-19"></a><span class='keyword'>where</span>-<a name="line-20"></a>-<a name="line-21"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span>-<a name="line-22"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Parallel</span><span class='varop'>.</span><span class='conid'>Strategies</span>-<a name="line-23"></a>-<a name="line-24"></a><span class='comment'>-- |</span>-<a name="line-25"></a><span class='comment'>-- complete evaluation of an arrow result using 'Control.Parallel.Strategies.rnf'</span>-<a name="line-26"></a><span class='comment'>--</span>-<a name="line-27"></a><span class='comment'>-- this is sometimes useful for preventing space leaks, especially after reading</span>-<a name="line-28"></a><span class='comment'>-- and validation of a document, all DTD stuff is not longer in use and can be</span>-<a name="line-29"></a><span class='comment'>-- recycled by the GC.</span>-<a name="line-30"></a>-<a name="line-31"></a><a name="strictA"></a><span class='definition'>strictA</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Arrow</span> <span class='varid'>a</span><span class='layout'>,</span> <span class='conid'>NFData</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>b</span>-<a name="line-32"></a><span class='definition'>strictA</span> <span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='varid'>x</span> <span class='varop'>`demanding`</span> <span class='varid'>rnf</span> <span class='varid'>x</span>-<a name="line-33"></a>-<a name="line-34"></a><a name="ArrowNF"></a><span class='keyword'>class</span> <span class='layout'>(</span><span class='conid'>Arrow</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>=></span> <span class='conid'>ArrowNF</span> <span class='varid'>a</span> <span class='keyword'>where</span>-<a name="line-35"></a> <span class='varid'>rnfA</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>NFData</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span>-<a name="line-36"></a> <span class='varid'>rnfA</span> <span class='varid'>f</span> <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varop'>>>></span> <span class='varid'>strictA</span>-<a name="line-37"></a>-<a name="line-38"></a><span class='comment'>-- ------------------------------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Control-Arrow-ArrowState.html
@@ -1,88 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Control.Arrow.ArrowState-<a name="line-5"></a> Copyright : Copyright (C) 2005 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)-<a name="line-9"></a> Stability : experimental-<a name="line-10"></a> Portability: multy parameter classes and functional depenedencies required-<a name="line-11"></a>-<a name="line-12"></a> Arrows for managing an explicit state-<a name="line-13"></a>-<a name="line-14"></a> State arrows work similar to state monads.-<a name="line-15"></a> A state value is threaded through the application of arrows.-<a name="line-16"></a>-<a name="line-17"></a>-}</span>-<a name="line-18"></a>-<a name="line-19"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-20"></a>-<a name="line-21"></a><span class='keyword'>module</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowState</span>-<a name="line-22"></a> <span class='layout'>(</span> <span class='conid'>ArrowState</span><span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span>-<a name="line-23"></a> <span class='layout'>)</span>-<a name="line-24"></a><span class='keyword'>where</span>-<a name="line-25"></a>-<a name="line-26"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span>-<a name="line-27"></a>-<a name="line-28"></a><span class='comment'>-- | The interface for accessing and changing the state component.</span>-<a name="line-29"></a><span class='comment'>--</span>-<a name="line-30"></a><span class='comment'>-- Multi parameter classes and functional dependencies are required.</span>-<a name="line-31"></a>-<a name="line-32"></a><a name="ArrowState"></a><span class='keyword'>class</span> <span class='conid'>Arrow</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='conid'>ArrowState</span> <span class='varid'>s</span> <span class='varid'>a</span> <span class='keyglyph'>|</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='varid'>s</span> <span class='keyword'>where</span>-<a name="line-33"></a>-<a name="line-34"></a> <span class='comment'>-- | change the state of a state arrow by applying a function</span>-<a name="line-35"></a> <span class='comment'>-- for computing a new state from the old and the arrow input.</span>-<a name="line-36"></a> <span class='comment'>-- Result is the arrow input</span>-<a name="line-37"></a>-<a name="line-38"></a> <span class='varid'>changeState</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>s</span> <span class='keyglyph'>-></span> <span class='varid'>b</span> <span class='keyglyph'>-></span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>b</span>-<a name="line-39"></a>-<a name="line-40"></a> <span class='comment'>-- | access the state with a function using the arrow input</span>-<a name="line-41"></a> <span class='comment'>-- as data for selecting state components.</span>-<a name="line-42"></a>-<a name="line-43"></a> <span class='varid'>accessState</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>s</span> <span class='keyglyph'>-></span> <span class='varid'>b</span> <span class='keyglyph'>-></span> <span class='varid'>c</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span>-<a name="line-44"></a>-<a name="line-45"></a> <span class='comment'>-- | read the complete state, ignore arrow input</span>-<a name="line-46"></a> <span class='comment'>--</span>-<a name="line-47"></a> <span class='comment'>-- definition: @ getState = accessState (\\ s x -> s) @ </span>-<a name="line-48"></a>-<a name="line-49"></a> <span class='varid'>getState</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>s</span>-<a name="line-50"></a> <span class='varid'>getState</span> <span class='keyglyph'>=</span> <span class='varid'>accessState</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='sel'>_x</span> <span class='keyglyph'>-></span> <span class='varid'>s</span><span class='layout'>)</span>-<a name="line-51"></a>-<a name="line-52"></a> <span class='comment'>-- | overwrite the old state</span>-<a name="line-53"></a> <span class='comment'>--</span>-<a name="line-54"></a> <span class='comment'>-- definition: @ setState = changeState (\\ s x -> x) @</span>-<a name="line-55"></a> <span class='varid'>setState</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='varid'>s</span> <span class='varid'>s</span>-<a name="line-56"></a> <span class='varid'>setState</span> <span class='keyglyph'>=</span> <span class='varid'>changeState</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='sel'>_s</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='varid'>x</span><span class='layout'>)</span> <span class='comment'>-- changeState (const id)</span>-<a name="line-57"></a>-<a name="line-58"></a> <span class='comment'>-- | change state (and ignore input) and return new state</span>-<a name="line-59"></a> <span class='comment'>--</span>-<a name="line-60"></a> <span class='comment'>-- convenience function,</span>-<a name="line-61"></a> <span class='comment'>-- usefull for generating e.g. unique identifiers:</span>-<a name="line-62"></a> <span class='comment'>--</span>-<a name="line-63"></a> <span class='comment'>-- example with SLA state list arrows</span>-<a name="line-64"></a> <span class='comment'>--</span>-<a name="line-65"></a> <span class='comment'>-- > newId :: SLA Int b String</span>-<a name="line-66"></a> <span class='comment'>-- > newId = nextState (+1)</span>-<a name="line-67"></a> <span class='comment'>-- > >>></span>-<a name="line-68"></a> <span class='comment'>-- > arr (('#':) . show)</span>-<a name="line-69"></a> <span class='comment'>-- > </span>-<a name="line-70"></a> <span class='comment'>-- > runSLA 0 (newId <+> newId <+> newId) undefined</span>-<a name="line-71"></a> <span class='comment'>-- > = ["#1", "#2", "#3"]</span>-<a name="line-72"></a>-<a name="line-73"></a> <span class='varid'>nextState</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>s</span> <span class='keyglyph'>-></span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>s</span>-<a name="line-74"></a> <span class='varid'>nextState</span> <span class='varid'>sf</span> <span class='keyglyph'>=</span> <span class='varid'>changeState</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>s</span> <span class='keyglyph'>-></span> <span class='varid'>const</span> <span class='layout'>(</span><span class='varid'>sf</span> <span class='varid'>s</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-75"></a> <span class='varop'>>>></span>-<a name="line-76"></a> <span class='varid'>getState</span>-<a name="line-77"></a>-<a name="line-78"></a><span class='comment'>-- ------------------------------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Control-Arrow-ArrowTree.html
@@ -1,311 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Control.Arrow.ArrowTree-<a name="line-5"></a> Copyright : Copyright (C) 2005 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)-<a name="line-9"></a> Stability : experimental-<a name="line-10"></a> Portability: portable-<a name="line-11"></a> Version : $Id: ArrowTree.hs,v 1.12 2006/11/30 16:05:24 hxml Exp $-<a name="line-12"></a>-<a name="line-13"></a>List arrows for tree processing.-<a name="line-14"></a>-<a name="line-15"></a>Trees that implement the "Data.Tree.Class" interface, can be processed-<a name="line-16"></a>with these arrows.-<a name="line-17"></a>-<a name="line-18"></a>-}</span>-<a name="line-19"></a>-<a name="line-20"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-21"></a>-<a name="line-22"></a><span class='keyword'>module</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowTree</span>-<a name="line-23"></a> <span class='layout'>(</span> <span class='conid'>ArrowTree</span><span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span>-<a name="line-24"></a> <span class='layout'>,</span> <span class='conid'>Tree</span>-<a name="line-25"></a> <span class='layout'>)</span>-<a name="line-26"></a><span class='keyword'>where</span>-<a name="line-27"></a>-<a name="line-28"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Tree</span><span class='varop'>.</span><span class='conid'>Class</span> <span class='layout'>(</span><span class='conid'>Tree</span><span class='layout'>)</span>-<a name="line-29"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Tree</span><span class='varop'>.</span><span class='conid'>Class</span> <span class='keyword'>as</span> <span class='conid'>T</span> <span class='varid'>hiding</span> <span class='layout'>(</span><span class='conid'>Tree</span><span class='layout'>)</span>-<a name="line-30"></a>-<a name="line-31"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span>-<a name="line-32"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowList</span>-<a name="line-33"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowIf</span>-<a name="line-34"></a>-<a name="line-35"></a><span class='keyword'>infixl</span> <span class='num'>5</span> <span class='varop'>/></span><span class='layout'>,</span> <span class='varop'></</span>-<a name="line-36"></a>-<a name="line-37"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-38"></a>-<a name="line-39"></a><span class='comment'>-- | The interface for tree arrows</span>-<a name="line-40"></a><span class='comment'>--</span>-<a name="line-41"></a><span class='comment'>-- all functions have default implementations</span>-<a name="line-42"></a>-<a name="line-43"></a><a name="ArrowTree"></a><span class='keyword'>class</span> <span class='layout'>(</span><span class='conid'>ArrowPlus</span> <span class='varid'>a</span><span class='layout'>,</span> <span class='conid'>ArrowIf</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>=></span> <span class='conid'>ArrowTree</span> <span class='varid'>a</span> <span class='keyword'>where</span>-<a name="line-44"></a>-<a name="line-45"></a> <span class='comment'>-- | construct a leaf</span>-<a name="line-46"></a>-<a name="line-47"></a> <span class='varid'>mkLeaf</span> <span class='keyglyph'>::</span> <span class='conid'>Tree</span> <span class='varid'>t</span> <span class='keyglyph'>=></span> <span class='varid'>b</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>c</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span>-<a name="line-48"></a> <span class='varid'>mkLeaf</span> <span class='keyglyph'>=</span> <span class='varid'>constA</span> <span class='varop'>.</span> <span class='conid'>T</span><span class='varop'>.</span><span class='varid'>mkLeaf</span>-<a name="line-49"></a>-<a name="line-50"></a> <span class='comment'>-- | construct an inner node</span>-<a name="line-51"></a>-<a name="line-52"></a> <span class='varid'>mkTree</span> <span class='keyglyph'>::</span> <span class='conid'>Tree</span> <span class='varid'>t</span> <span class='keyglyph'>=></span> <span class='varid'>b</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='varid'>t</span> <span class='varid'>b</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>c</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span>-<a name="line-53"></a> <span class='varid'>mkTree</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='varid'>constA</span> <span class='varop'>.</span> <span class='conid'>T</span><span class='varop'>.</span><span class='varid'>mkTree</span> <span class='varid'>n</span>-<a name="line-54"></a>-<a name="line-55"></a> <span class='comment'>-- | select the children of the root of a tree</span>-<a name="line-56"></a>-<a name="line-57"></a> <span class='varid'>getChildren</span> <span class='keyglyph'>::</span> <span class='conid'>Tree</span> <span class='varid'>t</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span>-<a name="line-58"></a> <span class='varid'>getChildren</span> <span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='conid'>T</span><span class='varop'>.</span><span class='varid'>getChildren</span>-<a name="line-59"></a>-<a name="line-60"></a> <span class='comment'>-- | select the attribute of the root of a tree</span>-<a name="line-61"></a>-<a name="line-62"></a> <span class='varid'>getNode</span> <span class='keyglyph'>::</span> <span class='conid'>Tree</span> <span class='varid'>t</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='varid'>b</span>-<a name="line-63"></a> <span class='varid'>getNode</span> <span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='conid'>T</span><span class='varop'>.</span><span class='varid'>getNode</span>-<a name="line-64"></a>-<a name="line-65"></a> <span class='comment'>-- | substitute the children of the root of a tree</span>-<a name="line-66"></a>-<a name="line-67"></a> <span class='varid'>setChildren</span> <span class='keyglyph'>::</span> <span class='conid'>Tree</span> <span class='varid'>t</span> <span class='keyglyph'>=></span> <span class='keyglyph'>[</span><span class='varid'>t</span> <span class='varid'>b</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span>-<a name="line-68"></a> <span class='varid'>setChildren</span> <span class='varid'>cs</span> <span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='conid'>T</span><span class='varop'>.</span><span class='varid'>setChildren</span> <span class='varid'>cs</span><span class='layout'>)</span>-<a name="line-69"></a>-<a name="line-70"></a> <span class='comment'>-- | substitute the attribute of the root of a tree</span>-<a name="line-71"></a>-<a name="line-72"></a> <span class='varid'>setNode</span> <span class='keyglyph'>::</span> <span class='conid'>Tree</span> <span class='varid'>t</span> <span class='keyglyph'>=></span> <span class='varid'>b</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span>-<a name="line-73"></a> <span class='varid'>setNode</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='conid'>T</span><span class='varop'>.</span><span class='varid'>setNode</span> <span class='varid'>n</span><span class='layout'>)</span>-<a name="line-74"></a>-<a name="line-75"></a> <span class='comment'>-- | edit the children of the root of a tree</span>-<a name="line-76"></a>-<a name="line-77"></a> <span class='varid'>changeChildren</span> <span class='keyglyph'>::</span> <span class='conid'>Tree</span> <span class='varid'>t</span> <span class='keyglyph'>=></span> <span class='layout'>(</span><span class='keyglyph'>[</span><span class='varid'>t</span> <span class='varid'>b</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='varid'>t</span> <span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span>-<a name="line-78"></a> <span class='varid'>changeChildren</span> <span class='varid'>csf</span> <span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='conid'>T</span><span class='varop'>.</span><span class='varid'>changeChildren</span> <span class='varid'>csf</span><span class='layout'>)</span>-<a name="line-79"></a>-<a name="line-80"></a> <span class='comment'>-- | edit the attribute of the root of a tree</span>-<a name="line-81"></a>-<a name="line-82"></a> <span class='varid'>changeNode</span> <span class='keyglyph'>::</span> <span class='conid'>Tree</span> <span class='varid'>t</span> <span class='keyglyph'>=></span> <span class='layout'>(</span><span class='varid'>b</span> <span class='keyglyph'>-></span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span>-<a name="line-83"></a> <span class='varid'>changeNode</span> <span class='varid'>nf</span> <span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='conid'>T</span><span class='varop'>.</span><span class='varid'>changeNode</span> <span class='varid'>nf</span><span class='layout'>)</span>-<a name="line-84"></a>-<a name="line-85"></a> <span class='comment'>-- compound arrows</span>-<a name="line-86"></a>-<a name="line-87"></a> <span class='comment'>-- | apply an arrow element wise to all children of the root of a tree</span>-<a name="line-88"></a> <span class='comment'>-- collect these results and substitute the children with this result</span>-<a name="line-89"></a> <span class='comment'>--</span>-<a name="line-90"></a> <span class='comment'>-- example: @ processChildren isText @ deletes all subtrees, for which isText does not hold</span>-<a name="line-91"></a> <span class='comment'>--</span>-<a name="line-92"></a> <span class='comment'>-- example: @ processChildren (none \`when\` isCmt) @ removes all children, for which isCmt holds</span>-<a name="line-93"></a>-<a name="line-94"></a> <span class='varid'>processChildren</span> <span class='keyglyph'>::</span> <span class='conid'>Tree</span> <span class='varid'>t</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span>-<a name="line-95"></a> <span class='varid'>processChildren</span> <span class='varid'>f</span> <span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='conid'>T</span><span class='varop'>.</span><span class='varid'>getNode</span>-<a name="line-96"></a> <span class='varop'>&&&</span>-<a name="line-97"></a> <span class='varid'>listA</span> <span class='layout'>(</span><span class='varid'>arrL</span> <span class='conid'>T</span><span class='varop'>.</span><span class='varid'>getChildren</span> <span class='varop'>>>></span> <span class='varid'>f</span><span class='layout'>)</span> <span class='comment'>-- new children, deterministic filter: single element result</span>-<a name="line-98"></a> <span class='varop'>>>></span>-<a name="line-99"></a> <span class='varid'>arr2</span> <span class='conid'>T</span><span class='varop'>.</span><span class='varid'>mkTree</span>-<a name="line-100"></a>-<a name="line-101"></a> <span class='comment'>-- | similar to processChildren, but the new children are computed by processing</span>-<a name="line-102"></a> <span class='comment'>-- the whole input tree</span>-<a name="line-103"></a> <span class='comment'>--</span>-<a name="line-104"></a> <span class='comment'>-- example: @ replaceChildren (deep isText) @ selects all subtrees for which isText holds</span>-<a name="line-105"></a> <span class='comment'>-- and substitutes the children component of the root node with this list</span>-<a name="line-106"></a>-<a name="line-107"></a> <span class='varid'>replaceChildren</span> <span class='keyglyph'>::</span> <span class='conid'>Tree</span> <span class='varid'>t</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span>-<a name="line-108"></a> <span class='varid'>replaceChildren</span> <span class='varid'>f</span> <span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='conid'>T</span><span class='varop'>.</span><span class='varid'>getNode</span>-<a name="line-109"></a> <span class='varop'>&&&</span>-<a name="line-110"></a> <span class='varid'>listA</span> <span class='varid'>f</span> <span class='comment'>-- compute new children</span>-<a name="line-111"></a> <span class='varop'>>>></span>-<a name="line-112"></a> <span class='varid'>arr2</span> <span class='conid'>T</span><span class='varop'>.</span><span class='varid'>mkTree</span>-<a name="line-113"></a>-<a name="line-114"></a> <span class='comment'>-- |</span>-<a name="line-115"></a> <span class='comment'>-- pronounced \"slash\", meaning g inside f</span>-<a name="line-116"></a> <span class='comment'>--</span>-<a name="line-117"></a> <span class='comment'>-- defined as @ f \/> g = f >>> getChildren >>> g @</span>-<a name="line-118"></a> <span class='comment'>--</span>-<a name="line-119"></a> <span class='comment'>-- example: @ hasName \"html\" \/> hasName \"body\" \/> hasName \"h1\" @</span>-<a name="line-120"></a> <span class='comment'>--</span>-<a name="line-121"></a> <span class='comment'>-- This expression selects</span>-<a name="line-122"></a> <span class='comment'>-- all \"h1\" elements in the \"body\" element of an \"html\" element, an expression, that</span>-<a name="line-123"></a> <span class='comment'>-- corresponds 1-1 to the XPath selection path \"html\/body\/h1\" </span>-<a name="line-124"></a>-<a name="line-125"></a> <span class='layout'>(</span><span class='varop'>/></span><span class='layout'>)</span> <span class='keyglyph'>::</span> <span class='conid'>Tree</span> <span class='varid'>t</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span>-<a name="line-126"></a> <span class='varid'>f</span> <span class='varop'>/></span> <span class='varid'>g</span> <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varop'>>>></span> <span class='varid'>getChildren</span> <span class='varop'>>>></span> <span class='varid'>g</span>-<a name="line-127"></a>-<a name="line-128"></a>-<a name="line-129"></a> <span class='comment'>-- |</span>-<a name="line-130"></a> <span class='comment'>-- pronounced \"outside\" meaning f containing g</span>-<a name="line-131"></a> <span class='comment'>--</span>-<a name="line-132"></a> <span class='comment'>-- defined as @ f \<\/ g = f \`containing\` (getChildren >>> g) @</span>-<a name="line-133"></a>-<a name="line-134"></a> <span class='layout'>(</span><span class='varop'></</span><span class='layout'>)</span> <span class='keyglyph'>::</span> <span class='conid'>Tree</span> <span class='varid'>t</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span>-<a name="line-135"></a> <span class='varid'>f</span> <span class='varop'></</span> <span class='varid'>g</span> <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varop'>`containing`</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>>>></span> <span class='varid'>g</span><span class='layout'>)</span>-<a name="line-136"></a>-<a name="line-137"></a>-<a name="line-138"></a> <span class='comment'>-- | recursively searches a whole tree for subtrees, for which a predicate holds.</span>-<a name="line-139"></a> <span class='comment'>-- The search is performed top down. When a tree is found, this becomes an element of the result</span>-<a name="line-140"></a> <span class='comment'>-- list. The tree found is not further examined for any subtress, for which the predicate also could hold.</span>-<a name="line-141"></a> <span class='comment'>-- See 'multi' for this kind of search.</span>-<a name="line-142"></a> <span class='comment'>--</span>-<a name="line-143"></a> <span class='comment'>-- example: @ deep isHtmlTable @ selects all top level table elements in a document</span>-<a name="line-144"></a> <span class='comment'>-- (with an appropriate definition for isHtmlTable) but no tables occuring within a table cell.</span>-<a name="line-145"></a>-<a name="line-146"></a> <span class='varid'>deep</span> <span class='keyglyph'>::</span> <span class='conid'>Tree</span> <span class='varid'>t</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span>-<a name="line-147"></a> <span class='varid'>deep</span> <span class='varid'>f</span> <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='comment'>-- success when applying f</span>-<a name="line-148"></a> <span class='varop'>`orElse`</span>-<a name="line-149"></a> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>>>></span> <span class='varid'>deep</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='comment'>-- seach children</span>-<a name="line-150"></a>-<a name="line-151"></a>-<a name="line-152"></a> <span class='comment'>-- | recursively searches a whole tree for subrees, for which a predicate holds.</span>-<a name="line-153"></a> <span class='comment'>-- The search is performed bottom up.</span>-<a name="line-154"></a> <span class='comment'>--</span>-<a name="line-155"></a> <span class='comment'>-- example: @ deepest isHtmlTable @ selects all innermost table elements in a document</span>-<a name="line-156"></a> <span class='comment'>-- but no table elements containing tables. See 'deep' and 'multi' for other search strategies.</span>-<a name="line-157"></a>-<a name="line-158"></a> <span class='varid'>deepest</span> <span class='keyglyph'>::</span> <span class='conid'>Tree</span> <span class='varid'>t</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span>-<a name="line-159"></a> <span class='varid'>deepest</span> <span class='varid'>f</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>>>></span> <span class='varid'>deepest</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='comment'>-- seach children</span>-<a name="line-160"></a> <span class='varop'>`orElse`</span>-<a name="line-161"></a> <span class='varid'>f</span> <span class='comment'>-- no success: apply f to root</span>-<a name="line-162"></a>-<a name="line-163"></a>-<a name="line-164"></a> <span class='comment'>-- | recursively searches a whole tree for subtrees, for which a predicate holds.</span>-<a name="line-165"></a> <span class='comment'>-- The search is performed top down. All nodes of the tree are searched, even within the</span>-<a name="line-166"></a> <span class='comment'>-- subtrees of trees for which the predicate holds.</span>-<a name="line-167"></a> <span class='comment'>--</span>-<a name="line-168"></a> <span class='comment'>-- example: @ multy isHtmlTable @ selects all table elements, even nested ones.</span>-<a name="line-169"></a>-<a name="line-170"></a> <span class='varid'>multi</span> <span class='keyglyph'>::</span> <span class='conid'>Tree</span> <span class='varid'>t</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='varid'>c</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='varid'>c</span>-<a name="line-171"></a> <span class='varid'>multi</span> <span class='varid'>f</span> <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='comment'>-- combine result for root</span>-<a name="line-172"></a> <span class='varop'><+></span>-<a name="line-173"></a> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>>>></span> <span class='varid'>multi</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='comment'>-- with result for all descendants</span>-<a name="line-174"></a>-<a name="line-175"></a> <span class='comment'>-- | recursively transforms a whole tree by applying an arrow to all subtrees,</span>-<a name="line-176"></a> <span class='comment'>-- this is done bottom up depth first, leaves first, root as last tree</span>-<a name="line-177"></a> <span class='comment'>--</span>-<a name="line-178"></a> <span class='comment'>-- example: @ processBottomUp (getChildren \`when\` isHtmlFont) @ removes all font tags in a HTML document, even nested ones</span>-<a name="line-179"></a> <span class='comment'>-- (with an appropriate definition of isHtmlFont)</span>-<a name="line-180"></a>-<a name="line-181"></a> <span class='varid'>processBottomUp</span> <span class='keyglyph'>::</span> <span class='conid'>Tree</span> <span class='varid'>t</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span>-<a name="line-182"></a> <span class='varid'>processBottomUp</span> <span class='varid'>f</span> <span class='keyglyph'>=</span> <span class='varid'>processChildren</span> <span class='layout'>(</span><span class='varid'>processBottomUp</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='comment'>-- process all descendants first</span>-<a name="line-183"></a> <span class='varop'>>>></span>-<a name="line-184"></a> <span class='varid'>f</span> <span class='comment'>-- then process root</span>-<a name="line-185"></a>-<a name="line-186"></a> <span class='comment'>-- | similar to 'processBottomUp', but recursively transforms a whole tree by applying an arrow to all subtrees</span>-<a name="line-187"></a> <span class='comment'>-- with a top down depth first traversal strategie. In many cases 'processBottomUp' and 'processTopDown'</span>-<a name="line-188"></a> <span class='comment'>-- give same results.</span>-<a name="line-189"></a>-<a name="line-190"></a> <span class='varid'>processTopDown</span> <span class='keyglyph'>::</span> <span class='conid'>Tree</span> <span class='varid'>t</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span>-<a name="line-191"></a> <span class='varid'>processTopDown</span> <span class='varid'>f</span> <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='comment'>-- first process root</span>-<a name="line-192"></a> <span class='varop'>>>></span>-<a name="line-193"></a> <span class='varid'>processChildren</span> <span class='layout'>(</span><span class='varid'>processTopDown</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='comment'>-- then process all descendants of new root</span>-<a name="line-194"></a>-<a name="line-195"></a>-<a name="line-196"></a> <span class='comment'>-- | recursively transforms a whole tree by applying an arrow to all subtrees,</span>-<a name="line-197"></a> <span class='comment'>-- but transformation stops when a predicte does not hold for a subtree,</span>-<a name="line-198"></a> <span class='comment'>-- leaves are transformed first</span>-<a name="line-199"></a>-<a name="line-200"></a> <span class='varid'>processBottomUpWhenNot</span>-<a name="line-201"></a> <span class='keyglyph'>::</span> <span class='conid'>Tree</span> <span class='varid'>t</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span>-<a name="line-202"></a> <span class='varid'>processBottomUpWhenNot</span> <span class='varid'>f</span> <span class='varid'>p</span>-<a name="line-203"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>processChildren</span> <span class='layout'>(</span><span class='varid'>processBottomUpWhenNot</span> <span class='varid'>f</span> <span class='varid'>p</span><span class='layout'>)</span>-<a name="line-204"></a> <span class='varop'>>>></span>-<a name="line-205"></a> <span class='varid'>f</span>-<a name="line-206"></a> <span class='layout'>)</span> <span class='varop'>`whenNot`</span> <span class='varid'>p</span>-<a name="line-207"></a>-<a name="line-208"></a> <span class='comment'>-- | recursively transforms a whole tree by applying an arrow to all subtrees,</span>-<a name="line-209"></a> <span class='comment'>-- but transformation stops when a tree is successfully transformed.</span>-<a name="line-210"></a> <span class='comment'>-- the transformation is done top down</span>-<a name="line-211"></a> <span class='comment'>--</span>-<a name="line-212"></a> <span class='comment'>-- example: @ processTopDownUntil (isHtmlTable \`guards\` tranformTable) @</span>-<a name="line-213"></a> <span class='comment'>-- transforms all top level table elements into something else, but inner tables remain unchanged</span>-<a name="line-214"></a>-<a name="line-215"></a> <span class='varid'>processTopDownUntil</span> <span class='keyglyph'>::</span> <span class='conid'>Tree</span> <span class='varid'>t</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span>-<a name="line-216"></a> <span class='varid'>processTopDownUntil</span> <span class='varid'>f</span>-<a name="line-217"></a> <span class='keyglyph'>=</span> <span class='varid'>f</span>-<a name="line-218"></a> <span class='varop'>`orElse`</span>-<a name="line-219"></a> <span class='varid'>processChildren</span> <span class='layout'>(</span><span class='varid'>processTopDownUntil</span> <span class='varid'>f</span><span class='layout'>)</span>-<a name="line-220"></a>-<a name="line-221"></a> <span class='comment'>-- | computes a list of trees by applying an arrow to the input</span>-<a name="line-222"></a> <span class='comment'>-- and inserts this list in front of index i in the list of children</span>-<a name="line-223"></a> <span class='comment'>--</span>-<a name="line-224"></a> <span class='comment'>-- example: @ insertChildrenAt 0 (deep isCmt) @ selects all subtrees for which isCmt holds</span>-<a name="line-225"></a> <span class='comment'>-- and copies theses in front of the existing children</span>-<a name="line-226"></a>-<a name="line-227"></a> <span class='varid'>insertChildrenAt</span> <span class='keyglyph'>::</span> <span class='conid'>Tree</span> <span class='varid'>t</span> <span class='keyglyph'>=></span> <span class='conid'>Int</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span>-<a name="line-228"></a> <span class='varid'>insertChildrenAt</span> <span class='varid'>i</span> <span class='varid'>f</span>-<a name="line-229"></a> <span class='keyglyph'>=</span> <span class='varid'>listA</span> <span class='varid'>f</span> <span class='varop'>&&&</span> <span class='varid'>this</span> <span class='varop'>>>></span> <span class='varid'>arr2</span> <span class='varid'>insertAt</span>-<a name="line-230"></a> <span class='keyword'>where</span>-<a name="line-231"></a> <span class='varid'>insertAt</span> <span class='varid'>newcs</span>-<a name="line-232"></a> <span class='keyglyph'>=</span> <span class='conid'>T</span><span class='varop'>.</span><span class='varid'>changeChildren</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>cs</span> <span class='keyglyph'>-></span> <span class='keyword'>let</span>-<a name="line-233"></a> <span class='layout'>(</span><span class='varid'>cs1</span><span class='layout'>,</span> <span class='varid'>cs2</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>splitAt</span> <span class='varid'>i</span> <span class='varid'>cs</span>-<a name="line-234"></a> <span class='keyword'>in</span>-<a name="line-235"></a> <span class='varid'>cs1</span> <span class='varop'>++</span> <span class='varid'>newcs</span> <span class='varop'>++</span> <span class='varid'>cs2</span>-<a name="line-236"></a> <span class='layout'>)</span>-<a name="line-237"></a>-<a name="line-238"></a> <span class='comment'>-- | similar to 'insertChildrenAt', but the insertion position is searched with a predicate</span>-<a name="line-239"></a>-<a name="line-240"></a> <span class='varid'>insertChildrenAfter</span> <span class='keyglyph'>::</span> <span class='conid'>Tree</span> <span class='varid'>t</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span>-<a name="line-241"></a> <span class='varid'>insertChildrenAfter</span> <span class='varid'>p</span> <span class='varid'>f</span>-<a name="line-242"></a> <span class='keyglyph'>=</span> <span class='varid'>replaceChildren</span>-<a name="line-243"></a> <span class='layout'>(</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>listA</span> <span class='varid'>getChildren</span>-<a name="line-244"></a> <span class='varop'>>>></span>-<a name="line-245"></a> <span class='varid'>spanA</span> <span class='varid'>p</span>-<a name="line-246"></a> <span class='layout'>)</span>-<a name="line-247"></a> <span class='varop'>&&&</span>-<a name="line-248"></a> <span class='varid'>listA</span> <span class='varid'>f</span>-<a name="line-249"></a> <span class='layout'>)</span>-<a name="line-250"></a> <span class='varop'>>>></span> <span class='varid'>arr2L</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='layout'>(</span><span class='varid'>xs1</span><span class='layout'>,</span> <span class='varid'>xs2</span><span class='layout'>)</span> <span class='varid'>xs</span> <span class='keyglyph'>-></span> <span class='varid'>xs1</span> <span class='varop'>++</span> <span class='varid'>xs</span> <span class='varop'>++</span> <span class='varid'>xs2</span><span class='layout'>)</span>-<a name="line-251"></a> <span class='layout'>)</span>-<a name="line-252"></a> -<a name="line-253"></a> <span class='comment'>-- | an arrow for inserting a whole subtree with some holes in it (a template)</span>-<a name="line-254"></a> <span class='comment'>-- into a document. The holes can be filled with contents from the input.</span>-<a name="line-255"></a> <span class='comment'>--</span>-<a name="line-256"></a> <span class='comment'>-- Example</span>-<a name="line-257"></a> <span class='comment'>--</span>-<a name="line-258"></a> <span class='comment'>-- > insertTreeTemplateTest :: ArrowXml a => a b XmlTree</span>-<a name="line-259"></a> <span class='comment'>-- > insertTreeTemplateTest</span>-<a name="line-260"></a> <span class='comment'>-- > = doc</span>-<a name="line-261"></a> <span class='comment'>-- > >>></span>-<a name="line-262"></a> <span class='comment'>-- > insertTemplate template pattern</span>-<a name="line-263"></a> <span class='comment'>-- > where</span>-<a name="line-264"></a> <span class='comment'>-- > doc -- the input data</span>-<a name="line-265"></a> <span class='comment'>-- > = constA "<x><y>The Title</y><z>The content</z></x>"</span>-<a name="line-266"></a> <span class='comment'>-- > >>> xread</span>-<a name="line-267"></a> <span class='comment'>-- > template -- the output template with 2 holes: xxx and yyy</span>-<a name="line-268"></a> <span class='comment'>-- > = constA "<html><head><title>xxx</title></head><body><h1>yyy</h1></body></html>"</span>-<a name="line-269"></a> <span class='comment'>-- > >>> xread</span>-<a name="line-270"></a> <span class='comment'>-- > pattern</span>-<a name="line-271"></a> <span class='comment'>-- > = [ hasText (== "xxx") -- fill the xxx hole with the input contents from element "x/y"</span>-<a name="line-272"></a> <span class='comment'>-- > :-> ( getChildren >>> hasName "y" >>> deep isText )</span>-<a name="line-273"></a> <span class='comment'>-- > </span>-<a name="line-274"></a> <span class='comment'>-- > , hasText (== "yyy") -- fill the yyy hole with the input contents from element "x/z"</span>-<a name="line-275"></a> <span class='comment'>-- > :-> ( getChildren >>> hasName "z" >>> getChildren )</span>-<a name="line-276"></a> <span class='comment'>-- > ]</span>-<a name="line-277"></a> <span class='comment'>--</span>-<a name="line-278"></a> <span class='comment'>-- computes the XML tree for the following document</span>-<a name="line-279"></a> <span class='comment'>--</span>-<a name="line-280"></a> <span class='comment'>-- > "<html><head><title>The Title</title></head><body><h1>The content</h1></body></html>"</span>-<a name="line-281"></a>-<a name="line-282"></a> <span class='varid'>insertTreeTemplate</span> <span class='keyglyph'>::</span> <span class='conid'>Tree</span> <span class='varid'>t</span> <span class='keyglyph'>=></span>-<a name="line-283"></a> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='comment'>-- the the template</span>-<a name="line-284"></a> <span class='keyglyph'>[</span><span class='conid'>IfThen</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='comment'>-- the list of nodes in the template to be substituted</span>-<a name="line-285"></a> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span>-<a name="line-286"></a> <span class='varid'>insertTreeTemplate</span> <span class='varid'>template</span> <span class='varid'>choices</span>-<a name="line-287"></a> <span class='keyglyph'>=</span> <span class='varid'>insertTree</span> <span class='varop'>$<</span> <span class='varid'>this</span>-<a name="line-288"></a> <span class='keyword'>where</span>-<a name="line-289"></a> <span class='varid'>insertTree</span> <span class='varid'>t</span>-<a name="line-290"></a> <span class='keyglyph'>=</span> <span class='varid'>template</span> <span class='comment'>-- swap input and template</span>-<a name="line-291"></a> <span class='varop'>>>></span>-<a name="line-292"></a> <span class='varid'>processTemplate</span>-<a name="line-293"></a> <span class='keyword'>where</span>-<a name="line-294"></a> <span class='varid'>processTemplate</span>-<a name="line-295"></a> <span class='keyglyph'>=</span> <span class='varid'>choiceA</span> <span class='varid'>choices'</span> <span class='comment'>-- check whether node is a "hole" within the template</span>-<a name="line-296"></a> <span class='varop'>`orElse`</span>-<a name="line-297"></a> <span class='varid'>processChildren</span> <span class='varid'>processTemplate</span> <span class='comment'>-- else descent into template tree</span>-<a name="line-298"></a> <span class='varid'>choices'</span>-<a name="line-299"></a> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>feedTree</span> <span class='varid'>choices</span> <span class='comment'>-- modify choices, such that the input is feed into the action arrows</span>-<a name="line-300"></a> <span class='varid'>feedTree</span> <span class='layout'>(</span><span class='varid'>cond</span> <span class='conop'>:-></span> <span class='varid'>action</span><span class='layout'>)</span>-<a name="line-301"></a> <span class='keyglyph'>=</span> <span class='varid'>cond</span> <span class='conop'>:-></span> <span class='layout'>(</span><span class='varid'>constA</span> <span class='varid'>t</span> <span class='varop'>>>></span> <span class='varid'>action</span><span class='layout'>)</span> <span class='comment'>-- the real input becomes the input at the holes</span>-</pre></body>-</html>
− doc/hdoc/src/Control-Arrow-IOListArrow.html
@@ -1,142 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Control.Arrow.IOListArrow-<a name="line-5"></a> Copyright : Copyright (C) 2005 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)-<a name="line-9"></a> Stability : experimental-<a name="line-10"></a> Portability: portable-<a name="line-11"></a>-<a name="line-12"></a> Implementation of pure list arrows with IO-<a name="line-13"></a>-<a name="line-14"></a>-}</span>-<a name="line-15"></a>-<a name="line-16"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-17"></a>-<a name="line-18"></a><span class='keyword'>module</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>IOListArrow</span>-<a name="line-19"></a> <span class='layout'>(</span> <span class='conid'>IOLA</span><span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span>-<a name="line-20"></a> <span class='layout'>)</span>-<a name="line-21"></a><span class='keyword'>where</span>-<a name="line-22"></a><span class='keyword'>import</span> <span class='conid'>Prelude</span> <span class='varid'>hiding</span> <span class='layout'>(</span><span class='varid'>id</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varop'>.</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-23"></a>-<a name="line-24"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Category</span>-<a name="line-25"></a>-<a name="line-26"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span>-<a name="line-27"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowIf</span>-<a name="line-28"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowList</span>-<a name="line-29"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowNF</span>-<a name="line-30"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowTree</span>-<a name="line-31"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowIO</span>-<a name="line-32"></a>-<a name="line-33"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Parallel</span><span class='varop'>.</span><span class='conid'>Strategies</span>-<a name="line-34"></a>-<a name="line-35"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-36"></a>-<a name="line-37"></a><span class='comment'>-- | list arrow combined with IO monad</span>-<a name="line-38"></a>-<a name="line-39"></a><a name="IOLA"></a><span class='keyword'>newtype</span> <span class='conid'>IOLA</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='keyglyph'>=</span> <span class='conid'>IOLA</span> <span class='layout'>{</span> <span class='varid'>runIOLA</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>IO</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span> <span class='layout'>}</span>-<a name="line-40"></a>-<a name="line-41"></a><span class='keyword'>instance</span> <span class='conid'>Category</span> <span class='conid'>IOLA</span> <span class='keyword'>where</span>-<a name="line-42"></a> <span class='varid'>id</span> <span class='keyglyph'>=</span> <span class='conid'>IOLA</span> <span class='varop'>$</span> <span class='varid'>return</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='conop'>:</span><span class='conid'>[]</span><span class='layout'>)</span>-<a name="line-43"></a>-<a name="line-44"></a> <span class='conid'>IOLA</span> <span class='varid'>g</span> <span class='varop'>.</span> <span class='conid'>IOLA</span> <span class='varid'>f</span> <span class='keyglyph'>=</span> <span class='conid'>IOLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='keyword'>do</span>-<a name="line-45"></a> <span class='varid'>ys</span> <span class='keyglyph'><-</span> <span class='varid'>f</span> <span class='varid'>x</span>-<a name="line-46"></a> <span class='varid'>zs</span> <span class='keyglyph'><-</span> <span class='varid'>sequence</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='varid'>g</span> <span class='varop'>$</span> <span class='varid'>ys</span>-<a name="line-47"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>concat</span> <span class='varid'>zs</span><span class='layout'>)</span>-<a name="line-48"></a>-<a name="line-49"></a><span class='keyword'>instance</span> <span class='conid'>Arrow</span> <span class='conid'>IOLA</span> <span class='keyword'>where</span>-<a name="line-50"></a> <span class='varid'>arr</span> <span class='varid'>f</span> <span class='keyglyph'>=</span> <span class='conid'>IOLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='varid'>return</span> <span class='keyglyph'>[</span><span class='varid'>f</span> <span class='varid'>x</span><span class='keyglyph'>]</span>-<a name="line-51"></a>-<a name="line-52"></a> <span class='varid'>first</span> <span class='layout'>(</span><span class='conid'>IOLA</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>IOLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>x1</span><span class='layout'>,</span> <span class='varid'>x2</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='keyword'>do</span>-<a name="line-53"></a> <span class='varid'>ys1</span> <span class='keyglyph'><-</span> <span class='varid'>f</span> <span class='varid'>x1</span>-<a name="line-54"></a> <span class='varid'>return</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>y1</span><span class='layout'>,</span> <span class='varid'>x2</span><span class='layout'>)</span> <span class='keyglyph'>|</span> <span class='varid'>y1</span> <span class='keyglyph'><-</span> <span class='varid'>ys1</span> <span class='keyglyph'>]</span>-<a name="line-55"></a>-<a name="line-56"></a> <span class='comment'>-- just for efficiency</span>-<a name="line-57"></a> <span class='varid'>second</span> <span class='layout'>(</span><span class='conid'>IOLA</span> <span class='varid'>g</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>IOLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>x1</span><span class='layout'>,</span> <span class='varid'>x2</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='keyword'>do</span>-<a name="line-58"></a> <span class='varid'>ys2</span> <span class='keyglyph'><-</span> <span class='varid'>g</span> <span class='varid'>x2</span>-<a name="line-59"></a> <span class='varid'>return</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>x1</span><span class='layout'>,</span> <span class='varid'>y2</span><span class='layout'>)</span> <span class='keyglyph'>|</span> <span class='varid'>y2</span> <span class='keyglyph'><-</span> <span class='varid'>ys2</span> <span class='keyglyph'>]</span>-<a name="line-60"></a>-<a name="line-61"></a> <span class='comment'>-- just for efficiency</span>-<a name="line-62"></a> <span class='conid'>IOLA</span> <span class='varid'>f</span> <span class='varop'>***</span> <span class='conid'>IOLA</span> <span class='varid'>g</span> <span class='keyglyph'>=</span> <span class='conid'>IOLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>x1</span><span class='layout'>,</span> <span class='varid'>x2</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='keyword'>do</span>-<a name="line-63"></a> <span class='varid'>ys1</span> <span class='keyglyph'><-</span> <span class='varid'>f</span> <span class='varid'>x1</span>-<a name="line-64"></a> <span class='varid'>ys2</span> <span class='keyglyph'><-</span> <span class='varid'>g</span> <span class='varid'>x2</span>-<a name="line-65"></a> <span class='varid'>return</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>y1</span><span class='layout'>,</span> <span class='varid'>y2</span><span class='layout'>)</span> <span class='keyglyph'>|</span> <span class='varid'>y1</span> <span class='keyglyph'><-</span> <span class='varid'>ys1</span><span class='layout'>,</span> <span class='varid'>y2</span> <span class='keyglyph'><-</span> <span class='varid'>ys2</span> <span class='keyglyph'>]</span>-<a name="line-66"></a>-<a name="line-67"></a> <span class='comment'>-- just for efficiency</span>-<a name="line-68"></a> <span class='conid'>IOLA</span> <span class='varid'>f</span> <span class='varop'>&&&</span> <span class='conid'>IOLA</span> <span class='varid'>g</span> <span class='keyglyph'>=</span> <span class='conid'>IOLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='keyword'>do</span>-<a name="line-69"></a> <span class='varid'>ys1</span> <span class='keyglyph'><-</span> <span class='varid'>f</span> <span class='varid'>x</span>-<a name="line-70"></a> <span class='varid'>ys2</span> <span class='keyglyph'><-</span> <span class='varid'>g</span> <span class='varid'>x</span>-<a name="line-71"></a> <span class='varid'>return</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>y1</span><span class='layout'>,</span> <span class='varid'>y2</span><span class='layout'>)</span> <span class='keyglyph'>|</span> <span class='varid'>y1</span> <span class='keyglyph'><-</span> <span class='varid'>ys1</span><span class='layout'>,</span> <span class='varid'>y2</span> <span class='keyglyph'><-</span> <span class='varid'>ys2</span> <span class='keyglyph'>]</span>-<a name="line-72"></a>-<a name="line-73"></a>-<a name="line-74"></a><span class='keyword'>instance</span> <span class='conid'>ArrowZero</span> <span class='conid'>IOLA</span> <span class='keyword'>where</span>-<a name="line-75"></a> <span class='varid'>zeroArrow</span> <span class='keyglyph'>=</span> <span class='conid'>IOLA</span> <span class='varop'>$</span> <span class='varid'>const</span> <span class='layout'>(</span><span class='varid'>return</span> <span class='conid'>[]</span><span class='layout'>)</span>-<a name="line-76"></a>-<a name="line-77"></a>-<a name="line-78"></a><span class='keyword'>instance</span> <span class='conid'>ArrowPlus</span> <span class='conid'>IOLA</span> <span class='keyword'>where</span>-<a name="line-79"></a> <span class='conid'>IOLA</span> <span class='varid'>f</span> <span class='varop'><+></span> <span class='conid'>IOLA</span> <span class='varid'>g</span> <span class='keyglyph'>=</span> <span class='conid'>IOLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='keyword'>do</span>-<a name="line-80"></a> <span class='varid'>rs1</span> <span class='keyglyph'><-</span> <span class='varid'>f</span> <span class='varid'>x</span>-<a name="line-81"></a> <span class='varid'>rs2</span> <span class='keyglyph'><-</span> <span class='varid'>g</span> <span class='varid'>x</span>-<a name="line-82"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>rs1</span> <span class='varop'>++</span> <span class='varid'>rs2</span><span class='layout'>)</span>-<a name="line-83"></a>-<a name="line-84"></a>-<a name="line-85"></a><span class='keyword'>instance</span> <span class='conid'>ArrowChoice</span> <span class='conid'>IOLA</span> <span class='keyword'>where</span>-<a name="line-86"></a> <span class='varid'>left</span> <span class='layout'>(</span><span class='conid'>IOLA</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>IOLA</span> <span class='varop'>$</span> <span class='varid'>either</span>-<a name="line-87"></a> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='varid'>f</span> <span class='varid'>x</span> <span class='varop'>>>=</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>y</span> <span class='keyglyph'>-></span> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='conid'>Left</span> <span class='varid'>y</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-88"></a> <span class='layout'>(</span><span class='varid'>return</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='conop'>:</span><span class='conid'>[]</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='conid'>Right</span><span class='layout'>)</span>-<a name="line-89"></a> <span class='varid'>right</span> <span class='layout'>(</span><span class='conid'>IOLA</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>IOLA</span> <span class='varop'>$</span> <span class='varid'>either</span>-<a name="line-90"></a> <span class='layout'>(</span><span class='varid'>return</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='conop'>:</span><span class='conid'>[]</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='conid'>Left</span><span class='layout'>)</span>-<a name="line-91"></a> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='varid'>f</span> <span class='varid'>x</span> <span class='varop'>>>=</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>y</span> <span class='keyglyph'>-></span> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='conid'>Right</span> <span class='varid'>y</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-92"></a>-<a name="line-93"></a><span class='keyword'>instance</span> <span class='conid'>ArrowApply</span> <span class='conid'>IOLA</span> <span class='keyword'>where</span>-<a name="line-94"></a> <span class='varid'>app</span> <span class='keyglyph'>=</span> <span class='conid'>IOLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='layout'>(</span><span class='conid'>IOLA</span> <span class='varid'>f</span><span class='layout'>,</span> <span class='varid'>x</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>f</span> <span class='varid'>x</span>-<a name="line-95"></a>-<a name="line-96"></a><span class='keyword'>instance</span> <span class='conid'>ArrowList</span> <span class='conid'>IOLA</span> <span class='keyword'>where</span>-<a name="line-97"></a> <span class='varid'>arrL</span> <span class='varid'>f</span> <span class='keyglyph'>=</span> <span class='conid'>IOLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>f</span> <span class='varid'>x</span><span class='layout'>)</span>-<a name="line-98"></a> <span class='varid'>arr2A</span> <span class='varid'>f</span> <span class='keyglyph'>=</span> <span class='conid'>IOLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>x</span><span class='layout'>,</span> <span class='varid'>y</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>runIOLA</span> <span class='layout'>(</span><span class='varid'>f</span> <span class='varid'>x</span><span class='layout'>)</span> <span class='varid'>y</span>-<a name="line-99"></a> <span class='varid'>constA</span> <span class='varid'>c</span> <span class='keyglyph'>=</span> <span class='conid'>IOLA</span> <span class='varop'>$</span> <span class='varid'>const</span> <span class='layout'>(</span><span class='varid'>return</span> <span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-100"></a> <span class='varid'>isA</span> <span class='varid'>p</span> <span class='keyglyph'>=</span> <span class='conid'>IOLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span><span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='varid'>return</span> <span class='layout'>(</span><span class='keyword'>if</span> <span class='varid'>p</span> <span class='varid'>x</span> <span class='keyword'>then</span> <span class='keyglyph'>[</span><span class='varid'>x</span><span class='keyglyph'>]</span> <span class='keyword'>else</span> <span class='conid'>[]</span><span class='layout'>)</span>-<a name="line-101"></a> <span class='conid'>IOLA</span> <span class='varid'>f</span> <span class='varop'>>>.</span> <span class='varid'>g</span> <span class='keyglyph'>=</span> <span class='conid'>IOLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span><span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='keyword'>do</span>-<a name="line-102"></a> <span class='varid'>ys</span> <span class='keyglyph'><-</span> <span class='varid'>f</span> <span class='varid'>x</span>-<a name="line-103"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>g</span> <span class='varid'>ys</span><span class='layout'>)</span>-<a name="line-104"></a>-<a name="line-105"></a>-<a name="line-106"></a><span class='keyword'>instance</span> <span class='conid'>ArrowIf</span> <span class='conid'>IOLA</span> <span class='keyword'>where</span>-<a name="line-107"></a> <span class='varid'>ifA</span> <span class='layout'>(</span><span class='conid'>IOLA</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='varid'>ta</span> <span class='varid'>ea</span> <span class='keyglyph'>=</span> <span class='conid'>IOLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span><span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='keyword'>do</span>-<a name="line-108"></a> <span class='varid'>res</span> <span class='keyglyph'><-</span> <span class='varid'>p</span> <span class='varid'>x</span>-<a name="line-109"></a> <span class='varid'>runIOLA</span> <span class='layout'>(</span><span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>res</span> <span class='keyword'>then</span> <span class='varid'>ea</span> <span class='keyword'>else</span> <span class='varid'>ta</span><span class='layout'>)</span> <span class='varid'>x</span>-<a name="line-110"></a> <span class='layout'>(</span><span class='conid'>IOLA</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='varop'>`orElse`</span> <span class='varid'>g</span>-<a name="line-111"></a> <span class='keyglyph'>=</span> <span class='conid'>IOLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span><span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='keyword'>do</span>-<a name="line-112"></a> <span class='varid'>res</span> <span class='keyglyph'><-</span> <span class='varid'>f</span> <span class='varid'>x</span>-<a name="line-113"></a> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>res</span> <span class='keyword'>then</span> <span class='varid'>runIOLA</span> <span class='varid'>g</span> <span class='varid'>x</span> <span class='keyword'>else</span> <span class='varid'>return</span> <span class='varid'>res</span>-<a name="line-114"></a>-<a name="line-115"></a><span class='keyword'>instance</span> <span class='conid'>ArrowIO</span> <span class='conid'>IOLA</span> <span class='keyword'>where</span>-<a name="line-116"></a> <span class='varid'>arrIO</span> <span class='varid'>cmd</span> <span class='keyglyph'>=</span> <span class='conid'>IOLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span><span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='keyword'>do</span>-<a name="line-117"></a> <span class='varid'>res</span> <span class='keyglyph'><-</span> <span class='varid'>cmd</span> <span class='varid'>x</span>-<a name="line-118"></a> <span class='varid'>return</span> <span class='keyglyph'>[</span><span class='varid'>res</span><span class='keyglyph'>]</span>-<a name="line-119"></a>-<a name="line-120"></a><span class='keyword'>instance</span> <span class='conid'>ArrowIOIf</span> <span class='conid'>IOLA</span> <span class='keyword'>where</span>-<a name="line-121"></a> <span class='varid'>isIOA</span> <span class='varid'>p</span> <span class='keyglyph'>=</span> <span class='conid'>IOLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span><span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='keyword'>do</span>-<a name="line-122"></a> <span class='varid'>res</span> <span class='keyglyph'><-</span> <span class='varid'>p</span> <span class='varid'>x</span>-<a name="line-123"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='keyword'>if</span> <span class='varid'>res</span> <span class='keyword'>then</span> <span class='keyglyph'>[</span><span class='varid'>x</span><span class='keyglyph'>]</span> <span class='keyword'>else</span> <span class='conid'>[]</span><span class='layout'>)</span>-<a name="line-124"></a>-<a name="line-125"></a><span class='keyword'>instance</span> <span class='conid'>ArrowTree</span> <span class='conid'>IOLA</span>-<a name="line-126"></a>-<a name="line-127"></a><span class='keyword'>instance</span> <span class='conid'>ArrowNF</span> <span class='conid'>IOLA</span> <span class='keyword'>where</span>-<a name="line-128"></a> <span class='varid'>rnfA</span> <span class='layout'>(</span><span class='conid'>IOLA</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>IOLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='keyword'>do</span>-<a name="line-129"></a> <span class='varid'>res</span> <span class='keyglyph'><-</span> <span class='varid'>f</span> <span class='varid'>x</span>-<a name="line-130"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>res</span> <span class='varop'>`demanding`</span> <span class='varid'>rnf</span> <span class='varid'>res</span><span class='layout'>)</span>-<a name="line-131"></a>-<a name="line-132"></a><span class='comment'>-- ------------------------------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Control-Arrow-IOStateListArrow.html
@@ -1,202 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Control.Arrow.IOStateListArrow-<a name="line-5"></a> Copyright : Copyright (C) 2005-8 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)-<a name="line-9"></a> Stability : experimental-<a name="line-10"></a> Portability: portable-<a name="line-11"></a>-<a name="line-12"></a> Implementation of arrows with IO and a state-<a name="line-13"></a>-<a name="line-14"></a>-}</span>-<a name="line-15"></a>-<a name="line-16"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-17"></a>-<a name="line-18"></a><span class='keyword'>module</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>IOStateListArrow</span>-<a name="line-19"></a> <span class='layout'>(</span> <span class='conid'>IOSLA</span><span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span>-<a name="line-20"></a> <span class='layout'>,</span> <span class='varid'>liftSt</span>-<a name="line-21"></a> <span class='layout'>,</span> <span class='varid'>runSt</span>-<a name="line-22"></a> <span class='layout'>)</span>-<a name="line-23"></a><span class='keyword'>where</span>-<a name="line-24"></a>-<a name="line-25"></a><span class='keyword'>import</span> <span class='conid'>Prelude</span> <span class='varid'>hiding</span> <span class='layout'>(</span><span class='varid'>id</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varop'>.</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-26"></a>-<a name="line-27"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Category</span>-<a name="line-28"></a>-<a name="line-29"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span>-<a name="line-30"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowIf</span>-<a name="line-31"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowIO</span>-<a name="line-32"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowList</span>-<a name="line-33"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowNF</span>-<a name="line-34"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowTree</span>-<a name="line-35"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowState</span>-<a name="line-36"></a>-<a name="line-37"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Parallel</span><span class='varop'>.</span><span class='conid'>Strategies</span>-<a name="line-38"></a>-<a name="line-39"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-40"></a>-<a name="line-41"></a><span class='comment'>-- | list arrow combined with a state and the IO monad</span>-<a name="line-42"></a>-<a name="line-43"></a><a name="IOSLA"></a><span class='keyword'>newtype</span> <span class='conid'>IOSLA</span> <span class='varid'>s</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='keyglyph'>=</span> <span class='conid'>IOSLA</span> <span class='layout'>{</span> <span class='varid'>runIOSLA</span> <span class='keyglyph'>::</span> <span class='varid'>s</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>IO</span> <span class='layout'>(</span><span class='varid'>s</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='layout'>}</span>-<a name="line-44"></a>-<a name="line-45"></a><span class='keyword'>instance</span> <span class='conid'>Category</span> <span class='layout'>(</span><span class='conid'>IOSLA</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyword'>where</span>-<a name="line-46"></a> <span class='varid'>id</span> <span class='keyglyph'>=</span> <span class='conid'>IOSLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>s</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='varid'>x</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='comment'>-- don't defined id = arr id, this gives loops during optimization</span>-<a name="line-47"></a>-<a name="line-48"></a> <span class='conid'>IOSLA</span> <span class='varid'>g</span> <span class='varop'>.</span> <span class='conid'>IOSLA</span> <span class='varid'>f</span> <span class='keyglyph'>=</span> <span class='conid'>IOSLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='keyword'>do</span>-<a name="line-49"></a> <span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>ys</span><span class='layout'>)</span> <span class='keyglyph'><-</span> <span class='varid'>f</span> <span class='varid'>s</span> <span class='varid'>x</span>-<a name="line-50"></a> <span class='varid'>sequence'</span> <span class='varid'>s1</span> <span class='varid'>ys</span>-<a name="line-51"></a> <span class='keyword'>where</span>-<a name="line-52"></a> <span class='varid'>sequence'</span> <span class='varid'>s'</span> <span class='conid'>[]</span> <span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>s'</span><span class='layout'>,</span> <span class='conid'>[]</span><span class='layout'>)</span>-<a name="line-53"></a> <span class='varid'>sequence'</span> <span class='varid'>s'</span> <span class='layout'>(</span><span class='varid'>x'</span><span class='conop'>:</span><span class='varid'>xs'</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-54"></a> <span class='layout'>(</span><span class='varid'>s1'</span><span class='layout'>,</span> <span class='varid'>ys'</span><span class='layout'>)</span> <span class='keyglyph'><-</span> <span class='varid'>g</span> <span class='varid'>s'</span> <span class='varid'>x'</span>-<a name="line-55"></a> <span class='layout'>(</span><span class='varid'>s2'</span><span class='layout'>,</span> <span class='varid'>zs'</span><span class='layout'>)</span> <span class='keyglyph'><-</span> <span class='varid'>sequence'</span> <span class='varid'>s1'</span> <span class='varid'>xs'</span>-<a name="line-56"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>s2'</span><span class='layout'>,</span> <span class='varid'>ys'</span> <span class='varop'>++</span> <span class='varid'>zs'</span><span class='layout'>)</span>-<a name="line-57"></a>-<a name="line-58"></a><span class='keyword'>instance</span> <span class='conid'>Arrow</span> <span class='layout'>(</span><span class='conid'>IOSLA</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyword'>where</span>-<a name="line-59"></a> <span class='varid'>arr</span> <span class='varid'>f</span> <span class='keyglyph'>=</span> <span class='conid'>IOSLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>s</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='varid'>f</span> <span class='varid'>x</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-60"></a>-<a name="line-61"></a> <span class='varid'>first</span> <span class='layout'>(</span><span class='conid'>IOSLA</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>IOSLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='layout'>(</span><span class='varid'>x1</span><span class='layout'>,</span> <span class='varid'>x2</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='keyword'>do</span>-<a name="line-62"></a> <span class='layout'>(</span><span class='varid'>s'</span><span class='layout'>,</span> <span class='varid'>ys1</span><span class='layout'>)</span> <span class='keyglyph'><-</span> <span class='varid'>f</span> <span class='varid'>s</span> <span class='varid'>x1</span>-<a name="line-63"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>s'</span><span class='layout'>,</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>y1</span><span class='layout'>,</span> <span class='varid'>x2</span><span class='layout'>)</span> <span class='keyglyph'>|</span> <span class='varid'>y1</span> <span class='keyglyph'><-</span> <span class='varid'>ys1</span> <span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-64"></a>-<a name="line-65"></a> <span class='comment'>-- just for efficiency</span>-<a name="line-66"></a> <span class='varid'>second</span> <span class='layout'>(</span><span class='conid'>IOSLA</span> <span class='varid'>g</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>IOSLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='layout'>(</span><span class='varid'>x1</span><span class='layout'>,</span> <span class='varid'>x2</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='keyword'>do</span>-<a name="line-67"></a> <span class='layout'>(</span><span class='varid'>s'</span><span class='layout'>,</span> <span class='varid'>ys2</span><span class='layout'>)</span> <span class='keyglyph'><-</span> <span class='varid'>g</span> <span class='varid'>s</span> <span class='varid'>x2</span>-<a name="line-68"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>s'</span><span class='layout'>,</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>x1</span><span class='layout'>,</span> <span class='varid'>y2</span><span class='layout'>)</span> <span class='keyglyph'>|</span> <span class='varid'>y2</span> <span class='keyglyph'><-</span> <span class='varid'>ys2</span> <span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-69"></a>-<a name="line-70"></a> <span class='comment'>-- just for efficiency</span>-<a name="line-71"></a> <span class='conid'>IOSLA</span> <span class='varid'>f</span> <span class='varop'>***</span> <span class='conid'>IOSLA</span> <span class='varid'>g</span> <span class='keyglyph'>=</span> <span class='conid'>IOSLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='layout'>(</span><span class='varid'>x1</span><span class='layout'>,</span> <span class='varid'>x2</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='keyword'>do</span>-<a name="line-72"></a> <span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>ys1</span><span class='layout'>)</span> <span class='keyglyph'><-</span> <span class='varid'>f</span> <span class='varid'>s</span> <span class='varid'>x1</span>-<a name="line-73"></a> <span class='layout'>(</span><span class='varid'>s2</span><span class='layout'>,</span> <span class='varid'>ys2</span><span class='layout'>)</span> <span class='keyglyph'><-</span> <span class='varid'>g</span> <span class='varid'>s1</span> <span class='varid'>x2</span>-<a name="line-74"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>s2</span><span class='layout'>,</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>y1</span><span class='layout'>,</span> <span class='varid'>y2</span><span class='layout'>)</span> <span class='keyglyph'>|</span> <span class='varid'>y1</span> <span class='keyglyph'><-</span> <span class='varid'>ys1</span><span class='layout'>,</span> <span class='varid'>y2</span> <span class='keyglyph'><-</span> <span class='varid'>ys2</span> <span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-75"></a>-<a name="line-76"></a> <span class='comment'>-- just for efficiency</span>-<a name="line-77"></a> <span class='conid'>IOSLA</span> <span class='varid'>f</span> <span class='varop'>&&&</span> <span class='conid'>IOSLA</span> <span class='varid'>g</span> <span class='keyglyph'>=</span> <span class='conid'>IOSLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='keyword'>do</span>-<a name="line-78"></a> <span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>ys1</span><span class='layout'>)</span> <span class='keyglyph'><-</span> <span class='varid'>f</span> <span class='varid'>s</span> <span class='varid'>x</span>-<a name="line-79"></a> <span class='layout'>(</span><span class='varid'>s2</span><span class='layout'>,</span> <span class='varid'>ys2</span><span class='layout'>)</span> <span class='keyglyph'><-</span> <span class='varid'>g</span> <span class='varid'>s1</span> <span class='varid'>x</span>-<a name="line-80"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>s2</span><span class='layout'>,</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>y1</span><span class='layout'>,</span> <span class='varid'>y2</span><span class='layout'>)</span> <span class='keyglyph'>|</span> <span class='varid'>y1</span> <span class='keyglyph'><-</span> <span class='varid'>ys1</span><span class='layout'>,</span> <span class='varid'>y2</span> <span class='keyglyph'><-</span> <span class='varid'>ys2</span> <span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-81"></a>-<a name="line-82"></a>-<a name="line-83"></a>-<a name="line-84"></a><span class='keyword'>instance</span> <span class='conid'>ArrowZero</span> <span class='layout'>(</span><span class='conid'>IOSLA</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyword'>where</span>-<a name="line-85"></a> <span class='varid'>zeroArrow</span> <span class='keyglyph'>=</span> <span class='conid'>IOSLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='keyglyph'>-></span> <span class='varid'>const</span> <span class='layout'>(</span><span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>s</span><span class='layout'>,</span> <span class='conid'>[]</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-86"></a>-<a name="line-87"></a>-<a name="line-88"></a><span class='keyword'>instance</span> <span class='conid'>ArrowPlus</span> <span class='layout'>(</span><span class='conid'>IOSLA</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyword'>where</span>-<a name="line-89"></a> <span class='conid'>IOSLA</span> <span class='varid'>f</span> <span class='varop'><+></span> <span class='conid'>IOSLA</span> <span class='varid'>g</span> <span class='keyglyph'>=</span> <span class='conid'>IOSLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='keyword'>do</span>-<a name="line-90"></a> <span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>rs1</span><span class='layout'>)</span> <span class='keyglyph'><-</span> <span class='varid'>f</span> <span class='varid'>s</span> <span class='varid'>x</span>-<a name="line-91"></a> <span class='layout'>(</span><span class='varid'>s2</span><span class='layout'>,</span> <span class='varid'>rs2</span><span class='layout'>)</span> <span class='keyglyph'><-</span> <span class='varid'>g</span> <span class='varid'>s1</span> <span class='varid'>x</span>-<a name="line-92"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>s2</span><span class='layout'>,</span> <span class='varid'>rs1</span> <span class='varop'>++</span> <span class='varid'>rs2</span><span class='layout'>)</span>-<a name="line-93"></a>-<a name="line-94"></a><span class='keyword'>instance</span> <span class='conid'>ArrowChoice</span> <span class='layout'>(</span><span class='conid'>IOSLA</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyword'>where</span>-<a name="line-95"></a> <span class='varid'>left</span> <span class='layout'>(</span><span class='conid'>IOSLA</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>IOSLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='keyglyph'>-></span> <span class='varid'>either</span>-<a name="line-96"></a> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='keyword'>do</span>-<a name="line-97"></a> <span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>y</span><span class='layout'>)</span> <span class='keyglyph'><-</span> <span class='varid'>f</span> <span class='varid'>s</span> <span class='varid'>x</span>-<a name="line-98"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>map</span> <span class='conid'>Left</span> <span class='varid'>y</span><span class='layout'>)</span>-<a name="line-99"></a> <span class='layout'>)</span>-<a name="line-100"></a> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>s</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='conid'>Right</span> <span class='varid'>x</span><span class='keyglyph'>]</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-101"></a>-<a name="line-102"></a> <span class='varid'>right</span> <span class='layout'>(</span><span class='conid'>IOSLA</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>IOSLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='keyglyph'>-></span> <span class='varid'>either</span>-<a name="line-103"></a> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>s</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='conid'>Left</span> <span class='varid'>x</span><span class='keyglyph'>]</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-104"></a> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='keyword'>do</span>-<a name="line-105"></a> <span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>y</span><span class='layout'>)</span> <span class='keyglyph'><-</span> <span class='varid'>f</span> <span class='varid'>s</span> <span class='varid'>x</span>-<a name="line-106"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>map</span> <span class='conid'>Right</span> <span class='varid'>y</span><span class='layout'>)</span>-<a name="line-107"></a> <span class='layout'>)</span>-<a name="line-108"></a>-<a name="line-109"></a><span class='keyword'>instance</span> <span class='conid'>ArrowApply</span> <span class='layout'>(</span><span class='conid'>IOSLA</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyword'>where</span>-<a name="line-110"></a> <span class='varid'>app</span> <span class='keyglyph'>=</span> <span class='conid'>IOSLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='layout'>(</span><span class='conid'>IOSLA</span> <span class='varid'>f</span><span class='layout'>,</span> <span class='varid'>x</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>f</span> <span class='varid'>s</span> <span class='varid'>x</span>-<a name="line-111"></a>-<a name="line-112"></a><span class='keyword'>instance</span> <span class='conid'>ArrowList</span> <span class='layout'>(</span><span class='conid'>IOSLA</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyword'>where</span>-<a name="line-113"></a> <span class='varid'>arrL</span> <span class='varid'>f</span> <span class='keyglyph'>=</span> <span class='conid'>IOSLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>s</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>f</span> <span class='varid'>x</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-114"></a> <span class='varid'>arr2A</span> <span class='varid'>f</span> <span class='keyglyph'>=</span> <span class='conid'>IOSLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='layout'>(</span><span class='varid'>x</span><span class='layout'>,</span> <span class='varid'>y</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>runIOSLA</span> <span class='layout'>(</span><span class='varid'>f</span> <span class='varid'>x</span><span class='layout'>)</span> <span class='varid'>s</span> <span class='varid'>y</span>-<a name="line-115"></a> <span class='varid'>constA</span> <span class='varid'>c</span> <span class='keyglyph'>=</span> <span class='conid'>IOSLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='keyglyph'>-></span> <span class='varid'>const</span> <span class='layout'>(</span><span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>s</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-116"></a> <span class='varid'>isA</span> <span class='varid'>p</span> <span class='keyglyph'>=</span> <span class='conid'>IOSLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>s</span><span class='layout'>,</span> <span class='keyword'>if</span> <span class='varid'>p</span> <span class='varid'>x</span> <span class='keyword'>then</span> <span class='keyglyph'>[</span><span class='varid'>x</span><span class='keyglyph'>]</span> <span class='keyword'>else</span> <span class='conid'>[]</span><span class='layout'>)</span>-<a name="line-117"></a> <span class='conid'>IOSLA</span> <span class='varid'>f</span> <span class='varop'>>>.</span> <span class='varid'>g</span> <span class='keyglyph'>=</span> <span class='conid'>IOSLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='keyword'>do</span>-<a name="line-118"></a> <span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>ys</span><span class='layout'>)</span> <span class='keyglyph'><-</span> <span class='varid'>f</span> <span class='varid'>s</span> <span class='varid'>x</span>-<a name="line-119"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>g</span> <span class='varid'>ys</span><span class='layout'>)</span>-<a name="line-120"></a> <span class='comment'>-- just for efficency</span>-<a name="line-121"></a> <span class='varid'>perform</span> <span class='layout'>(</span><span class='conid'>IOSLA</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>IOSLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='keyword'>do</span>-<a name="line-122"></a> <span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='sel'>_ys</span><span class='layout'>)</span> <span class='keyglyph'><-</span> <span class='varid'>f</span> <span class='varid'>s</span> <span class='varid'>x</span>-<a name="line-123"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='varid'>x</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-124"></a>-<a name="line-125"></a><span class='keyword'>instance</span> <span class='conid'>ArrowIf</span> <span class='layout'>(</span><span class='conid'>IOSLA</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyword'>where</span>-<a name="line-126"></a> <span class='varid'>ifA</span> <span class='layout'>(</span><span class='conid'>IOSLA</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='varid'>ta</span> <span class='varid'>ea</span> <span class='keyglyph'>=</span> <span class='conid'>IOSLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='keyword'>do</span>-<a name="line-127"></a> <span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>res</span><span class='layout'>)</span> <span class='keyglyph'><-</span> <span class='varid'>p</span> <span class='varid'>s</span> <span class='varid'>x</span>-<a name="line-128"></a> <span class='varid'>runIOSLA</span> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>res</span>-<a name="line-129"></a> <span class='keyword'>then</span> <span class='varid'>ea</span>-<a name="line-130"></a> <span class='keyword'>else</span> <span class='varid'>ta</span>-<a name="line-131"></a> <span class='layout'>)</span> <span class='varid'>s1</span> <span class='varid'>x</span>-<a name="line-132"></a>-<a name="line-133"></a> <span class='layout'>(</span><span class='conid'>IOSLA</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='varop'>`orElse`</span> <span class='varid'>g</span>-<a name="line-134"></a> <span class='keyglyph'>=</span> <span class='conid'>IOSLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='keyword'>do</span>-<a name="line-135"></a> <span class='varid'>r</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>res</span><span class='layout'>)</span> <span class='keyglyph'><-</span> <span class='varid'>f</span> <span class='varid'>s</span> <span class='varid'>x</span>-<a name="line-136"></a> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>res</span>-<a name="line-137"></a> <span class='keyword'>then</span> <span class='varid'>runIOSLA</span> <span class='varid'>g</span> <span class='varid'>s1</span> <span class='varid'>x</span>-<a name="line-138"></a> <span class='keyword'>else</span> <span class='varid'>return</span> <span class='varid'>r</span>-<a name="line-139"></a>-<a name="line-140"></a>-<a name="line-141"></a><span class='keyword'>instance</span> <span class='conid'>ArrowIO</span> <span class='layout'>(</span><span class='conid'>IOSLA</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyword'>where</span>-<a name="line-142"></a> <span class='varid'>arrIO</span> <span class='varid'>cmd</span> <span class='keyglyph'>=</span> <span class='conid'>IOSLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='keyword'>do</span>-<a name="line-143"></a> <span class='varid'>res</span> <span class='keyglyph'><-</span> <span class='varid'>cmd</span> <span class='varid'>x</span>-<a name="line-144"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>s</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='varid'>res</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-145"></a>-<a name="line-146"></a><span class='keyword'>instance</span> <span class='conid'>ArrowIOIf</span> <span class='layout'>(</span><span class='conid'>IOSLA</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyword'>where</span>-<a name="line-147"></a> <span class='varid'>isIOA</span> <span class='varid'>p</span> <span class='keyglyph'>=</span> <span class='conid'>IOSLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='keyword'>do</span>-<a name="line-148"></a> <span class='varid'>res</span> <span class='keyglyph'><-</span> <span class='varid'>p</span> <span class='varid'>x</span>-<a name="line-149"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>s</span><span class='layout'>,</span> <span class='keyword'>if</span> <span class='varid'>res</span> <span class='keyword'>then</span> <span class='keyglyph'>[</span><span class='varid'>x</span><span class='keyglyph'>]</span> <span class='keyword'>else</span> <span class='conid'>[]</span><span class='layout'>)</span>-<a name="line-150"></a>-<a name="line-151"></a><span class='keyword'>instance</span> <span class='conid'>ArrowState</span> <span class='varid'>s</span> <span class='layout'>(</span><span class='conid'>IOSLA</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyword'>where</span>-<a name="line-152"></a> <span class='varid'>changeState</span> <span class='varid'>cf</span> <span class='keyglyph'>=</span> <span class='conid'>IOSLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='keyword'>let</span> <span class='varid'>s'</span> <span class='keyglyph'>=</span> <span class='varid'>cf</span> <span class='varid'>s</span> <span class='varid'>x</span> <span class='keyword'>in</span> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>seq</span> <span class='varid'>s'</span> <span class='varid'>s'</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='varid'>x</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-153"></a> <span class='varid'>accessState</span> <span class='varid'>af</span> <span class='keyglyph'>=</span> <span class='conid'>IOSLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>s</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='varid'>af</span> <span class='varid'>s</span> <span class='varid'>x</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-154"></a>-<a name="line-155"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-156"></a>-<a name="line-157"></a><span class='comment'>-- |</span>-<a name="line-158"></a><span class='comment'>-- lift the state of an IOSLA arrow to a state with an additional component.</span>-<a name="line-159"></a><span class='comment'>--</span>-<a name="line-160"></a><span class='comment'>-- This is uesful, when running predefined IO arrows, e.g. for document input,</span>-<a name="line-161"></a><span class='comment'>-- in a context with a more complex state component.</span>-<a name="line-162"></a>-<a name="line-163"></a><a name="liftSt"></a><span class='definition'>liftSt</span> <span class='keyglyph'>::</span> <span class='conid'>IOSLA</span> <span class='varid'>s1</span> <span class='varid'>b</span> <span class='varid'>c</span> <span class='keyglyph'>-></span> <span class='conid'>IOSLA</span> <span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>s2</span><span class='layout'>)</span> <span class='varid'>b</span> <span class='varid'>c</span>-<a name="line-164"></a><span class='definition'>liftSt</span> <span class='layout'>(</span><span class='conid'>IOSLA</span> <span class='varid'>f</span><span class='layout'>)</span>-<a name="line-165"></a> <span class='keyglyph'>=</span> <span class='conid'>IOSLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>s2</span><span class='layout'>)</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='keyword'>do</span>-<a name="line-166"></a> <span class='layout'>(</span><span class='varid'>s1'</span><span class='layout'>,</span> <span class='varid'>ys</span><span class='layout'>)</span> <span class='keyglyph'><-</span> <span class='varid'>f</span> <span class='varid'>s1</span> <span class='varid'>x</span>-<a name="line-167"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>s1'</span><span class='layout'>,</span> <span class='varid'>s2</span><span class='layout'>)</span><span class='layout'>,</span> <span class='varid'>ys</span><span class='layout'>)</span>-<a name="line-168"></a>-<a name="line-169"></a>-<a name="line-170"></a><span class='comment'>-- |</span>-<a name="line-171"></a><span class='comment'>-- run an arrow with augmented state in the context of a simple state arrow.</span>-<a name="line-172"></a><span class='comment'>-- An initial value for the new state component is needed.</span>-<a name="line-173"></a><span class='comment'>--</span>-<a name="line-174"></a><span class='comment'>-- This is useful, when running an arrow with an extra environment component, e.g.</span>-<a name="line-175"></a><span class='comment'>-- for namespace handling in XML.</span>-<a name="line-176"></a>-<a name="line-177"></a><a name="runSt"></a><span class='definition'>runSt</span> <span class='keyglyph'>::</span> <span class='varid'>s2</span> <span class='keyglyph'>-></span> <span class='conid'>IOSLA</span> <span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>s2</span><span class='layout'>)</span> <span class='varid'>b</span> <span class='varid'>c</span> <span class='keyglyph'>-></span> <span class='conid'>IOSLA</span> <span class='varid'>s1</span> <span class='varid'>b</span> <span class='varid'>c</span>-<a name="line-178"></a><span class='definition'>runSt</span> <span class='varid'>s2</span> <span class='layout'>(</span><span class='conid'>IOSLA</span> <span class='varid'>f</span><span class='layout'>)</span>-<a name="line-179"></a> <span class='keyglyph'>=</span> <span class='conid'>IOSLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s1</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='keyword'>do</span>-<a name="line-180"></a> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>s1'</span><span class='layout'>,</span> <span class='sel'>_s2'</span><span class='layout'>)</span><span class='layout'>,</span> <span class='varid'>ys</span><span class='layout'>)</span> <span class='keyglyph'><-</span> <span class='varid'>f</span> <span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>s2</span><span class='layout'>)</span> <span class='varid'>x</span>-<a name="line-181"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>s1'</span><span class='layout'>,</span> <span class='varid'>ys</span><span class='layout'>)</span>-<a name="line-182"></a>-<a name="line-183"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-184"></a>-<a name="line-185"></a><span class='keyword'>instance</span> <span class='conid'>ArrowTree</span> <span class='layout'>(</span><span class='conid'>IOSLA</span> <span class='varid'>s</span><span class='layout'>)</span>-<a name="line-186"></a>-<a name="line-187"></a><span class='keyword'>instance</span> <span class='layout'>(</span><span class='conid'>NFData</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyglyph'>=></span> <span class='conid'>ArrowNF</span> <span class='layout'>(</span><span class='conid'>IOSLA</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyword'>where</span>-<a name="line-188"></a> <span class='varid'>rnfA</span> <span class='layout'>(</span><span class='conid'>IOSLA</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>IOSLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='keyword'>do</span>-<a name="line-189"></a> <span class='varid'>res</span> <span class='keyglyph'><-</span> <span class='varid'>f</span> <span class='varid'>s</span> <span class='varid'>x</span>-<a name="line-190"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>res</span> <span class='varop'>`demanding`</span> <span class='varid'>rnf</span> <span class='varid'>res</span><span class='layout'>)</span>-<a name="line-191"></a>-<a name="line-192"></a><span class='comment'>-- ------------------------------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Control-Arrow-ListArrow.html
@@ -1,129 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Control.Arrow.ListArrow-<a name="line-5"></a> Copyright : Copyright (C) 2005 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)-<a name="line-9"></a> Stability : experimental-<a name="line-10"></a> Portability: portable-<a name="line-11"></a>-<a name="line-12"></a> Implementation of pure list arrows-<a name="line-13"></a>-<a name="line-14"></a>-}</span>-<a name="line-15"></a>-<a name="line-16"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-17"></a>-<a name="line-18"></a><span class='keyword'>module</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ListArrow</span>-<a name="line-19"></a> <span class='layout'>(</span> <span class='conid'>LA</span><span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span>-<a name="line-20"></a> <span class='layout'>,</span> <span class='varid'>fromLA</span>-<a name="line-21"></a> <span class='layout'>)</span>-<a name="line-22"></a><span class='keyword'>where</span>-<a name="line-23"></a>-<a name="line-24"></a><span class='keyword'>import</span> <span class='conid'>Prelude</span> <span class='varid'>hiding</span> <span class='layout'>(</span><span class='varid'>id</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varop'>.</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-25"></a>-<a name="line-26"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Category</span>-<a name="line-27"></a>-<a name="line-28"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span>-<a name="line-29"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowIf</span>-<a name="line-30"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowList</span>-<a name="line-31"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowNF</span>-<a name="line-32"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowTree</span>-<a name="line-33"></a>-<a name="line-34"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Parallel</span><span class='varop'>.</span><span class='conid'>Strategies</span>-<a name="line-35"></a>-<a name="line-36"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>List</span> <span class='layout'>(</span> <span class='varid'>partition</span> <span class='layout'>)</span>-<a name="line-37"></a>-<a name="line-38"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-39"></a>-<a name="line-40"></a><span class='comment'>-- | pure list arrow data type</span>-<a name="line-41"></a>-<a name="line-42"></a><a name="LA"></a><span class='keyword'>newtype</span> <span class='conid'>LA</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='keyglyph'>=</span> <span class='conid'>LA</span> <span class='layout'>{</span> <span class='varid'>runLA</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span> <span class='layout'>}</span>-<a name="line-43"></a>-<a name="line-44"></a><span class='keyword'>instance</span> <span class='conid'>Category</span> <span class='conid'>LA</span> <span class='keyword'>where</span>-<a name="line-45"></a> <span class='varid'>id</span> <span class='keyglyph'>=</span> <span class='conid'>LA</span> <span class='varop'>$</span> <span class='layout'>(</span><span class='conop'>:</span><span class='conid'>[]</span><span class='layout'>)</span>-<a name="line-46"></a> <span class='conid'>LA</span> <span class='varid'>g</span> <span class='varop'>.</span> <span class='conid'>LA</span> <span class='varid'>f</span> <span class='keyglyph'>=</span> <span class='conid'>LA</span> <span class='varop'>$</span> <span class='varid'>concatMap</span> <span class='varid'>g</span> <span class='varop'>.</span> <span class='varid'>f</span>-<a name="line-47"></a>-<a name="line-48"></a><span class='keyword'>instance</span> <span class='conid'>Arrow</span> <span class='conid'>LA</span> <span class='keyword'>where</span>-<a name="line-49"></a> <span class='varid'>arr</span> <span class='varid'>f</span> <span class='keyglyph'>=</span> <span class='conid'>LA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='varid'>f</span> <span class='varid'>x</span><span class='keyglyph'>]</span>-<a name="line-50"></a> <span class='varid'>first</span> <span class='layout'>(</span><span class='conid'>LA</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>LA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>x1</span><span class='layout'>,</span> <span class='varid'>x2</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>y1</span><span class='layout'>,</span> <span class='varid'>x2</span><span class='layout'>)</span> <span class='keyglyph'>|</span> <span class='varid'>y1</span> <span class='keyglyph'><-</span> <span class='varid'>f</span> <span class='varid'>x1</span> <span class='keyglyph'>]</span>-<a name="line-51"></a>-<a name="line-52"></a> <span class='comment'>-- just for efficiency</span>-<a name="line-53"></a>-<a name="line-54"></a> <span class='varid'>second</span> <span class='layout'>(</span><span class='conid'>LA</span> <span class='varid'>g</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>LA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>x1</span><span class='layout'>,</span> <span class='varid'>x2</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>x1</span><span class='layout'>,</span> <span class='varid'>y2</span><span class='layout'>)</span> <span class='keyglyph'>|</span> <span class='varid'>y2</span> <span class='keyglyph'><-</span> <span class='varid'>g</span> <span class='varid'>x2</span> <span class='keyglyph'>]</span>-<a name="line-55"></a> <span class='conid'>LA</span> <span class='varid'>f</span> <span class='varop'>***</span> <span class='conid'>LA</span> <span class='varid'>g</span> <span class='keyglyph'>=</span> <span class='conid'>LA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>x1</span><span class='layout'>,</span> <span class='varid'>x2</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>y1</span><span class='layout'>,</span> <span class='varid'>y2</span><span class='layout'>)</span> <span class='keyglyph'>|</span> <span class='varid'>y1</span> <span class='keyglyph'><-</span> <span class='varid'>f</span> <span class='varid'>x1</span><span class='layout'>,</span> <span class='varid'>y2</span> <span class='keyglyph'><-</span> <span class='varid'>g</span> <span class='varid'>x2</span><span class='keyglyph'>]</span>-<a name="line-56"></a> <span class='conid'>LA</span> <span class='varid'>f</span> <span class='varop'>&&&</span> <span class='conid'>LA</span> <span class='varid'>g</span> <span class='keyglyph'>=</span> <span class='conid'>LA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>y1</span><span class='layout'>,</span> <span class='varid'>y2</span><span class='layout'>)</span> <span class='keyglyph'>|</span> <span class='varid'>y1</span> <span class='keyglyph'><-</span> <span class='varid'>f</span> <span class='varid'>x</span> <span class='layout'>,</span> <span class='varid'>y2</span> <span class='keyglyph'><-</span> <span class='varid'>g</span> <span class='varid'>x</span> <span class='keyglyph'>]</span>-<a name="line-57"></a>-<a name="line-58"></a><span class='keyword'>instance</span> <span class='conid'>ArrowZero</span> <span class='conid'>LA</span> <span class='keyword'>where</span>-<a name="line-59"></a> <span class='varid'>zeroArrow</span> <span class='keyglyph'>=</span> <span class='conid'>LA</span> <span class='varop'>$</span> <span class='varid'>const</span> <span class='conid'>[]</span>-<a name="line-60"></a>-<a name="line-61"></a>-<a name="line-62"></a><span class='keyword'>instance</span> <span class='conid'>ArrowPlus</span> <span class='conid'>LA</span> <span class='keyword'>where</span>-<a name="line-63"></a> <span class='conid'>LA</span> <span class='varid'>f</span> <span class='varop'><+></span> <span class='conid'>LA</span> <span class='varid'>g</span> <span class='keyglyph'>=</span> <span class='conid'>LA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='varid'>f</span> <span class='varid'>x</span> <span class='varop'>++</span> <span class='varid'>g</span> <span class='varid'>x</span>-<a name="line-64"></a>-<a name="line-65"></a>-<a name="line-66"></a><span class='keyword'>instance</span> <span class='conid'>ArrowChoice</span> <span class='conid'>LA</span> <span class='keyword'>where</span>-<a name="line-67"></a> <span class='varid'>left</span> <span class='layout'>(</span><span class='conid'>LA</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>LA</span> <span class='varop'>$</span> <span class='varid'>either</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='conid'>Left</span> <span class='varop'>.</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='layout'>(</span><span class='layout'>(</span><span class='conop'>:</span><span class='conid'>[]</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='conid'>Right</span><span class='layout'>)</span>-<a name="line-68"></a> <span class='varid'>right</span> <span class='layout'>(</span><span class='conid'>LA</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>LA</span> <span class='varop'>$</span> <span class='varid'>either</span> <span class='layout'>(</span><span class='layout'>(</span><span class='conop'>:</span><span class='conid'>[]</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='conid'>Left</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='conid'>Right</span> <span class='varop'>.</span> <span class='varid'>f</span><span class='layout'>)</span>-<a name="line-69"></a> <span class='conid'>LA</span> <span class='varid'>f</span> <span class='varop'>+++</span> <span class='conid'>LA</span> <span class='varid'>g</span> <span class='keyglyph'>=</span> <span class='conid'>LA</span> <span class='varop'>$</span> <span class='varid'>either</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='conid'>Left</span> <span class='varop'>.</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='conid'>Right</span> <span class='varop'>.</span> <span class='varid'>g</span><span class='layout'>)</span>-<a name="line-70"></a> <span class='conid'>LA</span> <span class='varid'>f</span> <span class='varop'>|||</span> <span class='conid'>LA</span> <span class='varid'>g</span> <span class='keyglyph'>=</span> <span class='conid'>LA</span> <span class='varop'>$</span> <span class='varid'>either</span> <span class='varid'>f</span> <span class='varid'>g</span>-<a name="line-71"></a>-<a name="line-72"></a>-<a name="line-73"></a><span class='keyword'>instance</span> <span class='conid'>ArrowApply</span> <span class='conid'>LA</span> <span class='keyword'>where</span>-<a name="line-74"></a> <span class='varid'>app</span> <span class='keyglyph'>=</span> <span class='conid'>LA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='layout'>(</span><span class='conid'>LA</span> <span class='varid'>f</span><span class='layout'>,</span> <span class='varid'>x</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>f</span> <span class='varid'>x</span>-<a name="line-75"></a>-<a name="line-76"></a><span class='keyword'>instance</span> <span class='conid'>ArrowList</span> <span class='conid'>LA</span> <span class='keyword'>where</span>-<a name="line-77"></a> <span class='varid'>arrL</span> <span class='keyglyph'>=</span> <span class='conid'>LA</span>-<a name="line-78"></a> <span class='varid'>arr2A</span> <span class='varid'>f</span> <span class='keyglyph'>=</span> <span class='conid'>LA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>x</span><span class='layout'>,</span> <span class='varid'>y</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>runLA</span> <span class='layout'>(</span><span class='varid'>f</span> <span class='varid'>x</span><span class='layout'>)</span> <span class='varid'>y</span>-<a name="line-79"></a> <span class='varid'>isA</span> <span class='varid'>p</span> <span class='keyglyph'>=</span> <span class='conid'>LA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='keyword'>if</span> <span class='varid'>p</span> <span class='varid'>x</span> <span class='keyword'>then</span> <span class='keyglyph'>[</span><span class='varid'>x</span><span class='keyglyph'>]</span> <span class='keyword'>else</span> <span class='conid'>[]</span>-<a name="line-80"></a> <span class='conid'>LA</span> <span class='varid'>f</span> <span class='varop'>>>.</span> <span class='varid'>g</span> <span class='keyglyph'>=</span> <span class='conid'>LA</span> <span class='varop'>$</span> <span class='varid'>g</span> <span class='varop'>.</span> <span class='varid'>f</span>-<a name="line-81"></a> <span class='varid'>withDefault</span> <span class='varid'>a</span> <span class='varid'>d</span> <span class='keyglyph'>=</span> <span class='varid'>a</span> <span class='varop'>>>.</span> <span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>x</span> <span class='keyword'>then</span> <span class='keyglyph'>[</span><span class='varid'>d</span><span class='keyglyph'>]</span> <span class='keyword'>else</span> <span class='varid'>x</span>-<a name="line-82"></a>-<a name="line-83"></a>-<a name="line-84"></a><span class='keyword'>instance</span> <span class='conid'>ArrowIf</span> <span class='conid'>LA</span> <span class='keyword'>where</span>-<a name="line-85"></a> <span class='varid'>ifA</span> <span class='layout'>(</span><span class='conid'>LA</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='varid'>t</span> <span class='varid'>e</span> <span class='keyglyph'>=</span> <span class='conid'>LA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='varid'>runLA</span> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='layout'>(</span><span class='varid'>p</span> <span class='varid'>x</span><span class='layout'>)</span>-<a name="line-86"></a> <span class='keyword'>then</span> <span class='varid'>e</span>-<a name="line-87"></a> <span class='keyword'>else</span> <span class='varid'>t</span>-<a name="line-88"></a> <span class='layout'>)</span> <span class='varid'>x</span>-<a name="line-89"></a>-<a name="line-90"></a> <span class='layout'>(</span><span class='conid'>LA</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='varop'>`orElse`</span> <span class='layout'>(</span><span class='conid'>LA</span> <span class='varid'>g</span><span class='layout'>)</span>-<a name="line-91"></a> <span class='keyglyph'>=</span> <span class='conid'>LA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='layout'>(</span> <span class='keyword'>let</span>-<a name="line-92"></a> <span class='varid'>res</span> <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varid'>x</span>-<a name="line-93"></a> <span class='keyword'>in</span>-<a name="line-94"></a> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>res</span>-<a name="line-95"></a> <span class='keyword'>then</span> <span class='varid'>g</span> <span class='varid'>x</span>-<a name="line-96"></a> <span class='keyword'>else</span> <span class='varid'>res</span>-<a name="line-97"></a> <span class='layout'>)</span>-<a name="line-98"></a>-<a name="line-99"></a> <span class='varid'>spanA</span> <span class='varid'>p</span> <span class='keyglyph'>=</span> <span class='conid'>LA</span> <span class='varop'>$</span> <span class='layout'>(</span><span class='conop'>:</span><span class='conid'>[]</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>span</span> <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>null</span> <span class='varop'>.</span> <span class='varid'>runLA</span> <span class='varid'>p</span><span class='layout'>)</span>-<a name="line-100"></a>-<a name="line-101"></a> <span class='varid'>partitionA</span> <span class='varid'>p</span> <span class='keyglyph'>=</span> <span class='conid'>LA</span> <span class='varop'>$</span> <span class='layout'>(</span><span class='conop'>:</span><span class='conid'>[]</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>partition</span> <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>null</span> <span class='varop'>.</span> <span class='varid'>runLA</span> <span class='varid'>p</span><span class='layout'>)</span>-<a name="line-102"></a>-<a name="line-103"></a><span class='keyword'>instance</span> <span class='conid'>ArrowTree</span> <span class='conid'>LA</span>-<a name="line-104"></a>-<a name="line-105"></a><span class='keyword'>instance</span> <span class='conid'>ArrowNF</span> <span class='conid'>LA</span> <span class='keyword'>where</span>-<a name="line-106"></a> <span class='varid'>rnfA</span> <span class='layout'>(</span><span class='conid'>LA</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>LA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='keyword'>let</span> <span class='varid'>res</span> <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varid'>x</span>-<a name="line-107"></a> <span class='keyword'>in</span>-<a name="line-108"></a> <span class='varid'>res</span> <span class='varop'>`demanding`</span> <span class='varid'>rnf</span> <span class='varid'>res</span>-<a name="line-109"></a>-<a name="line-110"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-111"></a>-<a name="line-112"></a><span class='comment'>-- | conversion of pure list arrows into other possibly more complex</span>-<a name="line-113"></a><span class='comment'>-- list arrows</span>-<a name="line-114"></a>-<a name="line-115"></a><a name="fromLA"></a><span class='definition'>fromLA</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='conid'>LA</span> <span class='varid'>b</span> <span class='varid'>c</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span>-<a name="line-116"></a><span class='definition'>fromLA</span> <span class='varid'>f</span> <span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>runLA</span> <span class='varid'>f</span><span class='layout'>)</span>-<a name="line-117"></a>-<a name="line-118"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-119"></a>-</pre></body>-</html>
− doc/hdoc/src/Control-Arrow-ListArrows.html
@@ -1,57 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Control.Arrow.ListArrows-<a name="line-5"></a> Copyright : Copyright (C) 2005 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)-<a name="line-9"></a> Stability : experimental-<a name="line-10"></a> Portability: portable-<a name="line-11"></a>-<a name="line-12"></a>Module for importing all list arrows-<a name="line-13"></a>-<a name="line-14"></a>-}</span>-<a name="line-15"></a>-<a name="line-16"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-17"></a>-<a name="line-18"></a><span class='keyword'>module</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ListArrows</span>-<a name="line-19"></a> <span class='layout'>(</span> <span class='keyword'>module</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span> <span class='comment'>-- arrow classes</span>-<a name="line-20"></a> <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowList</span>-<a name="line-21"></a> <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowIf</span>-<a name="line-22"></a> <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowNF</span>-<a name="line-23"></a> <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowState</span>-<a name="line-24"></a> <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowTree</span>-<a name="line-25"></a> <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowIO</span>-<a name="line-26"></a>-<a name="line-27"></a> <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ListArrow</span> <span class='comment'>-- arrow types</span>-<a name="line-28"></a> <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>StateListArrow</span>-<a name="line-29"></a> <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>IOListArrow</span>-<a name="line-30"></a> <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>IOStateListArrow</span>-<a name="line-31"></a> <span class='layout'>)</span>-<a name="line-32"></a><span class='keyword'>where</span>-<a name="line-33"></a>-<a name="line-34"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span> <span class='comment'>-- arrow classes</span>-<a name="line-35"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowList</span>-<a name="line-36"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowIf</span>-<a name="line-37"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowNF</span>-<a name="line-38"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowState</span>-<a name="line-39"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowTree</span>-<a name="line-40"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowIO</span>-<a name="line-41"></a>-<a name="line-42"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ListArrow</span> <span class='comment'>-- arrow types</span>-<a name="line-43"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>StateListArrow</span>-<a name="line-44"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>IOListArrow</span>-<a name="line-45"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>IOStateListArrow</span>-<a name="line-46"></a>-<a name="line-47"></a><span class='comment'>-- ------------------------------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Control-Arrow-StateListArrow.html
@@ -1,193 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Control.Arrow.StateListArrow-<a name="line-5"></a> Copyright : Copyright (C) 2005-8 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)-<a name="line-9"></a> Stability : experimental-<a name="line-10"></a> Portability: portable-<a name="line-11"></a>-<a name="line-12"></a> Implementation of list arrows with a state-<a name="line-13"></a>-<a name="line-14"></a>-}</span>-<a name="line-15"></a>-<a name="line-16"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-17"></a>-<a name="line-18"></a><span class='keyword'>module</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>StateListArrow</span>-<a name="line-19"></a> <span class='layout'>(</span> <span class='conid'>SLA</span><span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span>-<a name="line-20"></a> <span class='layout'>,</span> <span class='varid'>fromSLA</span>-<a name="line-21"></a> <span class='layout'>)</span>-<a name="line-22"></a><span class='keyword'>where</span>-<a name="line-23"></a>-<a name="line-24"></a><span class='keyword'>import</span> <span class='conid'>Prelude</span> <span class='varid'>hiding</span> <span class='layout'>(</span><span class='varid'>id</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varop'>.</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-25"></a>-<a name="line-26"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Category</span>-<a name="line-27"></a>-<a name="line-28"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span>-<a name="line-29"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowIf</span>-<a name="line-30"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowList</span>-<a name="line-31"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowNF</span>-<a name="line-32"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowState</span>-<a name="line-33"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowTree</span>-<a name="line-34"></a>-<a name="line-35"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Parallel</span><span class='varop'>.</span><span class='conid'>Strategies</span>-<a name="line-36"></a>-<a name="line-37"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-38"></a>-<a name="line-39"></a><span class='comment'>-- | list arrow combined with a state</span>-<a name="line-40"></a>-<a name="line-41"></a><a name="SLA"></a><span class='keyword'>newtype</span> <span class='conid'>SLA</span> <span class='varid'>s</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='keyglyph'>=</span> <span class='conid'>SLA</span> <span class='layout'>{</span> <span class='varid'>runSLA</span> <span class='keyglyph'>::</span> <span class='varid'>s</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='varid'>s</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='layout'>}</span>-<a name="line-42"></a>-<a name="line-43"></a><span class='keyword'>instance</span> <span class='conid'>Category</span> <span class='layout'>(</span><span class='conid'>SLA</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyword'>where</span>-<a name="line-44"></a> <span class='varid'>id</span> <span class='keyglyph'>=</span> <span class='conid'>SLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='varid'>s</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='varid'>x</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-45"></a>-<a name="line-46"></a> <span class='conid'>SLA</span> <span class='varid'>g</span> <span class='varop'>.</span> <span class='conid'>SLA</span> <span class='varid'>f</span> <span class='keyglyph'>=</span> <span class='conid'>SLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='keyword'>let</span>-<a name="line-47"></a> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>ys</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varid'>s</span> <span class='varid'>x</span>-<a name="line-48"></a> <span class='varid'>sequence'</span> <span class='varid'>s'</span> <span class='conid'>[]</span>-<a name="line-49"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>s'</span><span class='layout'>,</span> <span class='conid'>[]</span><span class='layout'>)</span>-<a name="line-50"></a> <span class='varid'>sequence'</span> <span class='varid'>s'</span> <span class='layout'>(</span><span class='varid'>x'</span><span class='conop'>:</span><span class='varid'>xs'</span><span class='layout'>)</span>-<a name="line-51"></a> <span class='keyglyph'>=</span> <span class='keyword'>let</span>-<a name="line-52"></a> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>s1'</span><span class='layout'>,</span> <span class='varid'>ys'</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>g</span> <span class='varid'>s'</span> <span class='varid'>x'</span>-<a name="line-53"></a> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>s2'</span><span class='layout'>,</span> <span class='varid'>zs'</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>sequence'</span> <span class='varid'>s1'</span> <span class='varid'>xs'</span>-<a name="line-54"></a> <span class='keyword'>in</span>-<a name="line-55"></a> <span class='layout'>(</span><span class='varid'>s2'</span><span class='layout'>,</span> <span class='varid'>ys'</span> <span class='varop'>++</span> <span class='varid'>zs'</span><span class='layout'>)</span>-<a name="line-56"></a> <span class='keyword'>in</span>-<a name="line-57"></a> <span class='varid'>sequence'</span> <span class='varid'>s1</span> <span class='varid'>ys</span>-<a name="line-58"></a> -<a name="line-59"></a><span class='keyword'>instance</span> <span class='conid'>Arrow</span> <span class='layout'>(</span><span class='conid'>SLA</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyword'>where</span>-<a name="line-60"></a> <span class='varid'>arr</span> <span class='varid'>f</span> <span class='keyglyph'>=</span> <span class='conid'>SLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='varid'>s</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='varid'>f</span> <span class='varid'>x</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-61"></a>-<a name="line-62"></a> <span class='varid'>first</span> <span class='layout'>(</span><span class='conid'>SLA</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>SLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>x1</span><span class='layout'>,</span> <span class='varid'>x2</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='keyword'>let</span>-<a name="line-63"></a> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>s'</span><span class='layout'>,</span> <span class='varid'>ys1</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varid'>s</span> <span class='varid'>x1</span>-<a name="line-64"></a> <span class='keyword'>in</span>-<a name="line-65"></a> <span class='layout'>(</span><span class='varid'>s'</span><span class='layout'>,</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>y1</span><span class='layout'>,</span> <span class='varid'>x2</span><span class='layout'>)</span> <span class='keyglyph'>|</span> <span class='varid'>y1</span> <span class='keyglyph'><-</span> <span class='varid'>ys1</span> <span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-66"></a>-<a name="line-67"></a> <span class='comment'>-- just for efficiency</span>-<a name="line-68"></a> <span class='varid'>second</span> <span class='layout'>(</span><span class='conid'>SLA</span> <span class='varid'>g</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>SLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>x1</span><span class='layout'>,</span> <span class='varid'>x2</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='keyword'>let</span>-<a name="line-69"></a> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>s'</span><span class='layout'>,</span> <span class='varid'>ys2</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>g</span> <span class='varid'>s</span> <span class='varid'>x2</span>-<a name="line-70"></a> <span class='keyword'>in</span>-<a name="line-71"></a> <span class='layout'>(</span><span class='varid'>s'</span><span class='layout'>,</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>x1</span><span class='layout'>,</span> <span class='varid'>y2</span><span class='layout'>)</span> <span class='keyglyph'>|</span> <span class='varid'>y2</span> <span class='keyglyph'><-</span> <span class='varid'>ys2</span> <span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-72"></a>-<a name="line-73"></a> <span class='comment'>-- just for efficiency</span>-<a name="line-74"></a> <span class='conid'>SLA</span> <span class='varid'>f</span> <span class='varop'>***</span> <span class='conid'>SLA</span> <span class='varid'>g</span> <span class='keyglyph'>=</span> <span class='conid'>SLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>x1</span><span class='layout'>,</span> <span class='varid'>x2</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='keyword'>let</span>-<a name="line-75"></a> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>ys1</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varid'>s</span> <span class='varid'>x1</span>-<a name="line-76"></a> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>s2</span><span class='layout'>,</span> <span class='varid'>ys2</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>g</span> <span class='varid'>s1</span> <span class='varid'>x2</span>-<a name="line-77"></a> <span class='keyword'>in</span>-<a name="line-78"></a> <span class='layout'>(</span><span class='varid'>s2</span><span class='layout'>,</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>y1</span><span class='layout'>,</span> <span class='varid'>y2</span><span class='layout'>)</span> <span class='keyglyph'>|</span> <span class='varid'>y1</span> <span class='keyglyph'><-</span> <span class='varid'>ys1</span><span class='layout'>,</span> <span class='varid'>y2</span> <span class='keyglyph'><-</span> <span class='varid'>ys2</span> <span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-79"></a>-<a name="line-80"></a> <span class='comment'>-- just for efficiency</span>-<a name="line-81"></a> <span class='conid'>SLA</span> <span class='varid'>f</span> <span class='varop'>&&&</span> <span class='conid'>SLA</span> <span class='varid'>g</span> <span class='keyglyph'>=</span> <span class='conid'>SLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='keyword'>let</span>-<a name="line-82"></a> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>ys1</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varid'>s</span> <span class='varid'>x</span>-<a name="line-83"></a> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>s2</span><span class='layout'>,</span> <span class='varid'>ys2</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>g</span> <span class='varid'>s1</span> <span class='varid'>x</span>-<a name="line-84"></a> <span class='keyword'>in</span>-<a name="line-85"></a> <span class='layout'>(</span><span class='varid'>s2</span><span class='layout'>,</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>y1</span><span class='layout'>,</span> <span class='varid'>y2</span><span class='layout'>)</span> <span class='keyglyph'>|</span> <span class='varid'>y1</span> <span class='keyglyph'><-</span> <span class='varid'>ys1</span><span class='layout'>,</span> <span class='varid'>y2</span> <span class='keyglyph'><-</span> <span class='varid'>ys2</span> <span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-86"></a>-<a name="line-87"></a>-<a name="line-88"></a><span class='keyword'>instance</span> <span class='conid'>ArrowZero</span> <span class='layout'>(</span><span class='conid'>SLA</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyword'>where</span>-<a name="line-89"></a> <span class='varid'>zeroArrow</span> <span class='keyglyph'>=</span> <span class='conid'>SLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='keyglyph'>-></span> <span class='varid'>const</span> <span class='layout'>(</span><span class='varid'>s</span><span class='layout'>,</span> <span class='conid'>[]</span><span class='layout'>)</span>-<a name="line-90"></a>-<a name="line-91"></a>-<a name="line-92"></a><span class='keyword'>instance</span> <span class='conid'>ArrowPlus</span> <span class='layout'>(</span><span class='conid'>SLA</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyword'>where</span>-<a name="line-93"></a> <span class='conid'>SLA</span> <span class='varid'>f</span> <span class='varop'><+></span> <span class='conid'>SLA</span> <span class='varid'>g</span> <span class='keyglyph'>=</span> <span class='conid'>SLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='keyword'>let</span>-<a name="line-94"></a> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>rs1</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varid'>s</span> <span class='varid'>x</span>-<a name="line-95"></a> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>s2</span><span class='layout'>,</span> <span class='varid'>rs2</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>g</span> <span class='varid'>s1</span> <span class='varid'>x</span>-<a name="line-96"></a> <span class='keyword'>in</span>-<a name="line-97"></a> <span class='layout'>(</span><span class='varid'>s2</span><span class='layout'>,</span> <span class='varid'>rs1</span> <span class='varop'>++</span> <span class='varid'>rs2</span><span class='layout'>)</span>-<a name="line-98"></a>-<a name="line-99"></a><span class='keyword'>instance</span> <span class='conid'>ArrowChoice</span> <span class='layout'>(</span><span class='conid'>SLA</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyword'>where</span>-<a name="line-100"></a> <span class='varid'>left</span> <span class='layout'>(</span><span class='conid'>SLA</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>SLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='keyglyph'>-></span> <span class='keyword'>let</span>-<a name="line-101"></a> <span class='varid'>lf</span> <span class='varid'>x</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>map</span> <span class='conid'>Left</span> <span class='varid'>y</span><span class='layout'>)</span>-<a name="line-102"></a> <span class='keyword'>where</span>-<a name="line-103"></a> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>y</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varid'>s</span> <span class='varid'>x</span>-<a name="line-104"></a> <span class='varid'>rf</span> <span class='varid'>x</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>s</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='conid'>Right</span> <span class='varid'>x</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-105"></a> <span class='keyword'>in</span>-<a name="line-106"></a> <span class='varid'>either</span> <span class='varid'>lf</span> <span class='varid'>rf</span>-<a name="line-107"></a>-<a name="line-108"></a> <span class='varid'>right</span> <span class='layout'>(</span><span class='conid'>SLA</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>SLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='keyglyph'>-></span> <span class='keyword'>let</span>-<a name="line-109"></a> <span class='varid'>lf</span> <span class='varid'>x</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>s</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='conid'>Left</span> <span class='varid'>x</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-110"></a> <span class='varid'>rf</span> <span class='varid'>x</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>map</span> <span class='conid'>Right</span> <span class='varid'>y</span><span class='layout'>)</span>-<a name="line-111"></a> <span class='keyword'>where</span>-<a name="line-112"></a> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>y</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varid'>s</span> <span class='varid'>x</span>-<a name="line-113"></a> <span class='keyword'>in</span>-<a name="line-114"></a> <span class='varid'>either</span> <span class='varid'>lf</span> <span class='varid'>rf</span>-<a name="line-115"></a>-<a name="line-116"></a>-<a name="line-117"></a><span class='keyword'>instance</span> <span class='conid'>ArrowApply</span> <span class='layout'>(</span><span class='conid'>SLA</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyword'>where</span>-<a name="line-118"></a> <span class='varid'>app</span> <span class='keyglyph'>=</span> <span class='conid'>SLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='layout'>(</span><span class='conid'>SLA</span> <span class='varid'>f</span><span class='layout'>,</span> <span class='varid'>x</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>f</span> <span class='varid'>s</span> <span class='varid'>x</span>-<a name="line-119"></a>-<a name="line-120"></a>-<a name="line-121"></a><span class='keyword'>instance</span> <span class='conid'>ArrowList</span> <span class='layout'>(</span><span class='conid'>SLA</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyword'>where</span>-<a name="line-122"></a> <span class='varid'>arrL</span> <span class='varid'>f</span> <span class='keyglyph'>=</span> <span class='conid'>SLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='varid'>s</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>f</span> <span class='varid'>x</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-123"></a> <span class='varid'>arr2A</span> <span class='varid'>f</span> <span class='keyglyph'>=</span> <span class='conid'>SLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>x</span><span class='layout'>,</span> <span class='varid'>y</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>runSLA</span> <span class='layout'>(</span><span class='varid'>f</span> <span class='varid'>x</span><span class='layout'>)</span> <span class='varid'>s</span> <span class='varid'>y</span>-<a name="line-124"></a> <span class='varid'>constA</span> <span class='varid'>c</span> <span class='keyglyph'>=</span> <span class='conid'>SLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='keyglyph'>-></span> <span class='varid'>const</span> <span class='layout'>(</span><span class='varid'>s</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-125"></a> <span class='varid'>isA</span> <span class='varid'>p</span> <span class='keyglyph'>=</span> <span class='conid'>SLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='varid'>s</span><span class='layout'>,</span> <span class='keyword'>if</span> <span class='varid'>p</span> <span class='varid'>x</span> <span class='keyword'>then</span> <span class='keyglyph'>[</span><span class='varid'>x</span><span class='keyglyph'>]</span> <span class='keyword'>else</span> <span class='conid'>[]</span><span class='layout'>)</span>-<a name="line-126"></a> <span class='conid'>SLA</span> <span class='varid'>f</span> <span class='varop'>>>.</span> <span class='varid'>g</span> <span class='keyglyph'>=</span> <span class='conid'>SLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='keyword'>let</span>-<a name="line-127"></a> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>ys</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varid'>s</span> <span class='varid'>x</span>-<a name="line-128"></a> <span class='keyword'>in</span>-<a name="line-129"></a> <span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>g</span> <span class='varid'>ys</span><span class='layout'>)</span>-<a name="line-130"></a> <span class='comment'>-- just for efficency</span>-<a name="line-131"></a> <span class='varid'>perform</span> <span class='layout'>(</span><span class='conid'>SLA</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>SLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='keyword'>let</span>-<a name="line-132"></a> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='sel'>_ys</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varid'>s</span> <span class='varid'>x</span>-<a name="line-133"></a> <span class='keyword'>in</span>-<a name="line-134"></a> <span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='varid'>x</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-135"></a>-<a name="line-136"></a><span class='keyword'>instance</span> <span class='conid'>ArrowIf</span> <span class='layout'>(</span><span class='conid'>SLA</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyword'>where</span>-<a name="line-137"></a> <span class='varid'>ifA</span> <span class='layout'>(</span><span class='conid'>SLA</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='varid'>ta</span> <span class='varid'>ea</span> <span class='keyglyph'>=</span> <span class='conid'>SLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='keyword'>let</span>-<a name="line-138"></a> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>res</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>p</span> <span class='varid'>s</span> <span class='varid'>x</span>-<a name="line-139"></a> <span class='keyword'>in</span>-<a name="line-140"></a> <span class='varid'>runSLA</span> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>res</span>-<a name="line-141"></a> <span class='keyword'>then</span> <span class='varid'>ea</span>-<a name="line-142"></a> <span class='keyword'>else</span> <span class='varid'>ta</span>-<a name="line-143"></a> <span class='layout'>)</span> <span class='varid'>s1</span> <span class='varid'>x</span>-<a name="line-144"></a>-<a name="line-145"></a> <span class='layout'>(</span><span class='conid'>SLA</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='varop'>`orElse`</span> <span class='varid'>g</span>-<a name="line-146"></a> <span class='keyglyph'>=</span> <span class='conid'>SLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='keyword'>let</span>-<a name="line-147"></a> <span class='varid'>r</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>res</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varid'>s</span> <span class='varid'>x</span>-<a name="line-148"></a> <span class='keyword'>in</span>-<a name="line-149"></a> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>res</span>-<a name="line-150"></a> <span class='keyword'>then</span> <span class='varid'>runSLA</span> <span class='varid'>g</span> <span class='varid'>s1</span> <span class='varid'>x</span>-<a name="line-151"></a> <span class='keyword'>else</span> <span class='varid'>r</span>-<a name="line-152"></a>-<a name="line-153"></a>-<a name="line-154"></a><span class='keyword'>instance</span> <span class='conid'>ArrowState</span> <span class='varid'>s</span> <span class='layout'>(</span><span class='conid'>SLA</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyword'>where</span>-<a name="line-155"></a> <span class='varid'>changeState</span> <span class='varid'>cf</span> <span class='keyglyph'>=</span> <span class='conid'>SLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='varid'>cf</span> <span class='varid'>s</span> <span class='varid'>x</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='varid'>x</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-156"></a> <span class='varid'>accessState</span> <span class='varid'>af</span> <span class='keyglyph'>=</span> <span class='conid'>SLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='varid'>s</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='varid'>af</span> <span class='varid'>s</span> <span class='varid'>x</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-157"></a>-<a name="line-158"></a><span class='keyword'>instance</span> <span class='conid'>ArrowTree</span> <span class='layout'>(</span><span class='conid'>SLA</span> <span class='varid'>s</span><span class='layout'>)</span>-<a name="line-159"></a>-<a name="line-160"></a><span class='keyword'>instance</span> <span class='layout'>(</span><span class='conid'>NFData</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyglyph'>=></span> <span class='conid'>ArrowNF</span> <span class='layout'>(</span><span class='conid'>SLA</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyword'>where</span>-<a name="line-161"></a> <span class='varid'>rnfA</span> <span class='layout'>(</span><span class='conid'>SLA</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>SLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='keyword'>let</span> <span class='varid'>res</span> <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varid'>s</span> <span class='varid'>x</span>-<a name="line-162"></a> <span class='keyword'>in</span>-<a name="line-163"></a> <span class='varid'>res</span> <span class='varop'>`demanding`</span> <span class='varid'>rnf</span> <span class='varid'>res</span>-<a name="line-164"></a>-<a name="line-165"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-166"></a>-<a name="line-167"></a><span class='comment'>-- | conversion of state list arrows into arbitray other</span>-<a name="line-168"></a><span class='comment'>-- list arrows.</span>-<a name="line-169"></a><span class='comment'>--</span>-<a name="line-170"></a><span class='comment'>-- allows running a state list arrow within another arrow:</span>-<a name="line-171"></a><span class='comment'>--</span>-<a name="line-172"></a><span class='comment'>-- example:</span>-<a name="line-173"></a><span class='comment'>--</span>-<a name="line-174"></a><span class='comment'>-- > ... >>> fromSLA 0 (... setState ... getState ... ) >>> ...</span>-<a name="line-175"></a><span class='comment'>--</span>-<a name="line-176"></a><span class='comment'>-- runs a state arrow with initial state 0 (e..g. an Int) within</span>-<a name="line-177"></a><span class='comment'>-- another arrow sequence</span>-<a name="line-178"></a>-<a name="line-179"></a><a name="fromSLA"></a><span class='definition'>fromSLA</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>s</span> <span class='keyglyph'>-></span> <span class='conid'>SLA</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>c</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span>-<a name="line-180"></a><span class='definition'>fromSLA</span> <span class='varid'>s</span> <span class='varid'>f</span> <span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>snd</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='varid'>runSLA</span> <span class='varid'>f</span> <span class='varid'>s</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-181"></a>-<a name="line-182"></a>-<a name="line-183"></a><span class='comment'>-- ------------------------------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Data-AssocList.html
@@ -1,71 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- |</span>-<a name="line-2"></a><span class='comment'>-- simple key value assocciation list</span>-<a name="line-3"></a><span class='comment'>-- implemented as unordered list of pairs</span>-<a name="line-4"></a><span class='comment'>--</span>-<a name="line-5"></a><span class='comment'>-- Version : $Id: AssocList.hs,v 1.2 2005/05/27 13:15:23 hxml Exp $</span>-<a name="line-6"></a>-<a name="line-7"></a><span class='keyword'>module</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>AssocList</span>-<a name="line-8"></a> <span class='layout'>(</span> <span class='keyword'>module</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>AssocList</span>-<a name="line-9"></a> <span class='layout'>)</span>-<a name="line-10"></a><span class='keyword'>where</span>-<a name="line-11"></a>-<a name="line-12"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>-<a name="line-13"></a>-<a name="line-14"></a><a name="AssocList"></a><span class='keyword'>type</span> <span class='conid'>AssocList</span> <span class='varid'>k</span> <span class='varid'>v</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>k</span><span class='layout'>,</span> <span class='varid'>v</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-15"></a>-<a name="line-16"></a><span class='comment'>-- lookup = lookup from Prelude</span>-<a name="line-17"></a>-<a name="line-18"></a><span class='comment'>-- | lookup with default value</span>-<a name="line-19"></a>-<a name="line-20"></a><a name="lookupDef"></a><span class='definition'>lookupDef</span> <span class='keyglyph'>::</span> <span class='conid'>Eq</span> <span class='varid'>k</span> <span class='keyglyph'>=></span> <span class='varid'>v</span> <span class='keyglyph'>-></span> <span class='varid'>k</span> <span class='keyglyph'>-></span> <span class='conid'>AssocList</span> <span class='varid'>k</span> <span class='varid'>v</span> <span class='keyglyph'>-></span> <span class='varid'>v</span>-<a name="line-21"></a><span class='definition'>lookupDef</span> <span class='varid'>d</span> <span class='varid'>k</span> <span class='keyglyph'>=</span> <span class='varid'>fromMaybe</span> <span class='varid'>d</span> <span class='varop'>.</span> <span class='varid'>lookup</span> <span class='varid'>k</span>-<a name="line-22"></a>-<a name="line-23"></a><span class='comment'>-- | lookup with empty list (empty string) as default value</span>-<a name="line-24"></a>-<a name="line-25"></a><a name="lookup1"></a><span class='definition'>lookup1</span> <span class='keyglyph'>::</span> <span class='conid'>Eq</span> <span class='varid'>k</span> <span class='keyglyph'>=></span> <span class='varid'>k</span> <span class='keyglyph'>-></span> <span class='conid'>AssocList</span> <span class='varid'>k</span> <span class='keyglyph'>[</span><span class='varid'>e</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='varid'>e</span><span class='keyglyph'>]</span>-<a name="line-26"></a><span class='definition'>lookup1</span> <span class='varid'>k</span> <span class='keyglyph'>=</span> <span class='varid'>fromMaybe</span> <span class='conid'>[]</span> <span class='varop'>.</span> <span class='varid'>lookup</span> <span class='varid'>k</span>-<a name="line-27"></a>-<a name="line-28"></a><span class='comment'>-- | test for existence of a key</span>-<a name="line-29"></a>-<a name="line-30"></a><a name="hasEntry"></a><span class='definition'>hasEntry</span> <span class='keyglyph'>::</span> <span class='conid'>Eq</span> <span class='varid'>k</span> <span class='keyglyph'>=></span> <span class='varid'>k</span> <span class='keyglyph'>-></span> <span class='conid'>AssocList</span> <span class='varid'>k</span> <span class='varid'>v</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-31"></a><span class='definition'>hasEntry</span> <span class='varid'>k</span> <span class='keyglyph'>=</span> <span class='varid'>isJust</span> <span class='varop'>.</span> <span class='varid'>lookup</span> <span class='varid'>k</span>-<a name="line-32"></a>-<a name="line-33"></a><span class='comment'>-- | add an entry, remove an existing entry before adding the new one at the top of the list, addEntry is strict</span>-<a name="line-34"></a>-<a name="line-35"></a><a name="addEntry"></a><span class='definition'>addEntry</span> <span class='keyglyph'>::</span> <span class='conid'>Eq</span> <span class='varid'>k</span> <span class='keyglyph'>=></span> <span class='varid'>k</span> <span class='keyglyph'>-></span> <span class='varid'>v</span> <span class='keyglyph'>-></span> <span class='conid'>AssocList</span> <span class='varid'>k</span> <span class='varid'>v</span> <span class='keyglyph'>-></span> <span class='conid'>AssocList</span> <span class='varid'>k</span> <span class='varid'>v</span>-<a name="line-36"></a><span class='definition'>addEntry</span> <span class='varid'>k</span> <span class='varid'>v</span> <span class='varid'>l</span> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>k</span><span class='layout'>,</span><span class='varid'>v</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='layout'>)</span> <span class='varop'>$!</span> <span class='varid'>delEntry</span> <span class='varid'>k</span> <span class='varid'>l</span>-<a name="line-37"></a>-<a name="line-38"></a> <span class='comment'>-- let l' = delEntry k l in seq l' ((k, v) : l')</span>-<a name="line-39"></a>-<a name="line-40"></a><span class='comment'>-- | add a whole list of entries with 'addEntry'</span>-<a name="line-41"></a>-<a name="line-42"></a><a name="addEntries"></a><span class='definition'>addEntries</span> <span class='keyglyph'>::</span> <span class='conid'>Eq</span> <span class='varid'>k</span> <span class='keyglyph'>=></span> <span class='conid'>AssocList</span> <span class='varid'>k</span> <span class='varid'>v</span> <span class='keyglyph'>-></span> <span class='conid'>AssocList</span> <span class='varid'>k</span> <span class='varid'>v</span> <span class='keyglyph'>-></span> <span class='conid'>AssocList</span> <span class='varid'>k</span> <span class='varid'>v</span>-<a name="line-43"></a><span class='definition'>addEntries</span> <span class='keyglyph'>=</span> <span class='varid'>foldr</span> <span class='layout'>(</span><span class='varop'>.</span><span class='layout'>)</span> <span class='varid'>id</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>uncurry</span> <span class='varid'>addEntry</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>reverse</span>-<a name="line-44"></a>-<a name="line-45"></a><a name="delEntry"></a><span class='comment'>-- | delete an entry, delEntry is strict</span>-<a name="line-46"></a><span class='definition'>delEntry</span> <span class='keyglyph'>::</span> <span class='conid'>Eq</span> <span class='varid'>k</span> <span class='keyglyph'>=></span> <span class='varid'>k</span> <span class='keyglyph'>-></span> <span class='conid'>AssocList</span> <span class='varid'>k</span> <span class='varid'>v</span> <span class='keyglyph'>-></span> <span class='conid'>AssocList</span> <span class='varid'>k</span> <span class='varid'>v</span>-<a name="line-47"></a><span class='definition'>delEntry</span> <span class='keyword'>_</span> <span class='conid'>[]</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-48"></a><span class='definition'>delEntry</span> <span class='varid'>k</span> <span class='layout'>(</span><span class='varid'>x</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='varid'>k1</span><span class='layout'>,</span><span class='keyword'>_</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>rest</span><span class='layout'>)</span>-<a name="line-49"></a> <span class='keyglyph'>|</span> <span class='varid'>k</span> <span class='varop'>==</span> <span class='varid'>k1</span> <span class='keyglyph'>=</span> <span class='varid'>rest</span>-<a name="line-50"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>x</span> <span class='conop'>:</span> <span class='layout'>)</span> <span class='varop'>$!</span> <span class='varid'>delEntry</span> <span class='varid'>k</span> <span class='varid'>rest</span>-<a name="line-51"></a>-<a name="line-52"></a><span class='comment'>-- delEntry k = filter ((/= k) . fst)</span>-<a name="line-53"></a>-<a name="line-54"></a><span class='comment'>-- | delete a list of entries with 'delEntry'</span>-<a name="line-55"></a>-<a name="line-56"></a><a name="delEntries"></a><span class='definition'>delEntries</span> <span class='keyglyph'>::</span> <span class='conid'>Eq</span> <span class='varid'>k</span> <span class='keyglyph'>=></span> <span class='keyglyph'>[</span><span class='varid'>k</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>AssocList</span> <span class='varid'>k</span> <span class='varid'>v</span> <span class='keyglyph'>-></span> <span class='conid'>AssocList</span> <span class='varid'>k</span> <span class='varid'>v</span>-<a name="line-57"></a><span class='definition'>delEntries</span> <span class='keyglyph'>=</span> <span class='varid'>foldl</span> <span class='layout'>(</span><span class='varop'>.</span><span class='layout'>)</span> <span class='varid'>id</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='varid'>delEntry</span>-<a name="line-58"></a>-<a name="line-59"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>-<a name="line-60"></a>-<a name="line-61"></a>-</pre></body>-</html>
− doc/hdoc/src/Data-Atom.html
@@ -1,147 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Data.Atom-<a name="line-5"></a> Copyright : Copyright (C) 2008 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)-<a name="line-9"></a> Stability : experimental-<a name="line-10"></a> Portability: non-portable-<a name="line-11"></a>-<a name="line-12"></a> Unique Atoms generated from Strings and-<a name="line-13"></a> managed as flyweights-<a name="line-14"></a>-<a name="line-15"></a> Data.Atom can be used for caching and storage optimisation-<a name="line-16"></a> of frequently used strings. An @Atom@ is constructed from a @String@.-<a name="line-17"></a> For two equal strings the identical atom is returned.-<a name="line-18"></a>-<a name="line-19"></a> This module can be used for optimizing memory usage when working with-<a name="line-20"></a> strings or names. Many applications use data types like-<a name="line-21"></a> @Map String SomeAttribute@ where a rather fixed set of keys is used.-<a name="line-22"></a> Especially XML applications often work with a limited set of element and attribute names.-<a name="line-23"></a> For these applications it becomes more memory efficient when working with types like-<a name="line-24"></a> @Map Atom SomeAttribute@ and convert the keys into atoms before operating-<a name="line-25"></a> on such a map.-<a name="line-26"></a>-<a name="line-27"></a> Internally this module manages a map of atoms. The atoms are internally represented-<a name="line-28"></a> by @ByteString@s. When creating a new atom from a string, the string is first converted-<a name="line-29"></a> into an UTF8 @Word8@ sequence, which is packed into a @ByteString@. This @ByteString@ is looked-<a name="line-30"></a> up in the table of atoms. If it is already there, the value in the map is used as atom, else-<a name="line-31"></a> the new @ByteString@ is inserted into the map.-<a name="line-32"></a>-<a name="line-33"></a> Of course the implementation of this name cache uses @unsavePerformIO@ and @MVar@s-<a name="line-34"></a> for managing this kind of global state.-<a name="line-35"></a>-<a name="line-36"></a> The following laws hold for atoms-<a name="line-37"></a>-<a name="line-38"></a> >-<a name="line-39"></a> > s == t => newAtom s == newAtom t-<a name="line-40"></a> > s `compare` t => newAtom s `compare` newAtom t-<a name="line-41"></a> > show . newAtom == id-<a name="line-42"></a>-<a name="line-43"></a> Equality test for @Atom@s runs in /O(1)/, it is just a pointer comarison.-<a name="line-44"></a> The @Ord@ comparisons have the same runtime like the @ByteString@ comparisons.-<a name="line-45"></a> Internally there is an UTF8 comparison, but UTF8 encoding preserves the total order.-<a name="line-46"></a>-<a name="line-47"></a> Warning: The internal cache never shrinks during execution. So using it in a-<a name="line-48"></a> undisciplined way can lead to memory leaks.-<a name="line-49"></a>-}</span>-<a name="line-50"></a>-<a name="line-51"></a><span class='comment'>-----------------------------------------------------------------------------</span>-<a name="line-52"></a>-<a name="line-53"></a><span class='keyword'>module</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Atom</span> <span class='layout'>(</span>-<a name="line-54"></a> <span class='comment'>-- * Atom objects</span>-<a name="line-55"></a> <span class='conid'>Atom</span><span class='layout'>,</span> <span class='comment'>-- instance (Eq, Ord, Read, Show)</span>-<a name="line-56"></a> <span class='varid'>newAtom</span><span class='layout'>,</span> <span class='comment'>-- :: String -> Atom</span>-<a name="line-57"></a> <span class='varid'>share</span> <span class='comment'>-- :: String -> String</span>-<a name="line-58"></a> <span class='layout'>)</span> <span class='keyword'>where</span>-<a name="line-59"></a>-<a name="line-60"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Concurrent</span><span class='varop'>.</span><span class='conid'>MVar</span>-<a name="line-61"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Parallel</span><span class='varop'>.</span><span class='conid'>Strategies</span>-<a name="line-62"></a>-<a name="line-63"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>ByteString</span><span class='varop'>.</span><span class='conid'>Internal</span> <span class='layout'>(</span> <span class='varid'>toForeignPtr</span><span class='layout'>,</span> <span class='varid'>c2w</span><span class='layout'>,</span> <span class='varid'>w2c</span> <span class='layout'>)</span>-<a name="line-64"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>ByteString</span> <span class='layout'>(</span> <span class='conid'>ByteString</span><span class='layout'>,</span> <span class='varid'>pack</span><span class='layout'>,</span> <span class='varid'>unpack</span> <span class='layout'>)</span>-<a name="line-65"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Map</span> <span class='keyword'>as</span> <span class='conid'>M</span>-<a name="line-66"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Typeable</span>-<a name="line-67"></a>-<a name="line-68"></a><span class='keyword'>import</span> <span class='conid'>System</span><span class='varop'>.</span><span class='conid'>IO</span><span class='varop'>.</span><span class='conid'>Unsafe</span> <span class='layout'>(</span> <span class='varid'>unsafePerformIO</span> <span class='layout'>)</span>-<a name="line-69"></a>-<a name="line-70"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Unicode</span> <span class='layout'>(</span> <span class='varid'>unicodeToUtf8</span> <span class='layout'>)</span>-<a name="line-71"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>UTF8Decoding</span> <span class='layout'>(</span> <span class='varid'>decodeUtf8</span> <span class='layout'>)</span>-<a name="line-72"></a>-<a name="line-73"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-74"></a>-<a name="line-75"></a><a name="Atoms"></a><span class='keyword'>type</span> <span class='conid'>Atoms</span> <span class='keyglyph'>=</span> <span class='conid'>M</span><span class='varop'>.</span><span class='conid'>Map</span> <span class='conid'>ByteString</span> <span class='conid'>ByteString</span>-<a name="line-76"></a>-<a name="line-77"></a><a name="Atom"></a><span class='keyword'>newtype</span> <span class='conid'>Atom</span> <span class='keyglyph'>=</span> <span class='conid'>A</span> <span class='layout'>{</span> <span class='varid'>bs</span> <span class='keyglyph'>::</span> <span class='conid'>ByteString</span> <span class='layout'>}</span>-<a name="line-78"></a> <span class='keyword'>deriving</span> <span class='layout'>(</span><span class='conid'>Typeable</span><span class='layout'>)</span>-<a name="line-79"></a>-<a name="line-80"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-81"></a>-<a name="line-82"></a><span class='comment'>-- | the internal cache for the strings</span>-<a name="line-83"></a>-<a name="line-84"></a><a name="theAtoms"></a><span class='definition'>theAtoms</span> <span class='keyglyph'>::</span> <span class='conid'>MVar</span> <span class='conid'>Atoms</span>-<a name="line-85"></a><span class='definition'>theAtoms</span> <span class='keyglyph'>=</span> <span class='varid'>unsafePerformIO</span> <span class='layout'>(</span><span class='varid'>newMVar</span> <span class='conid'>M</span><span class='varop'>.</span><span class='varid'>empty</span><span class='layout'>)</span>-<a name="line-86"></a><span class='comment'>{-# NOINLINE theAtoms #-}</span>-<a name="line-87"></a>-<a name="line-88"></a><span class='comment'>-- | insert a bytestring into the atom cache</span>-<a name="line-89"></a>-<a name="line-90"></a><a name="insertAtom"></a><span class='definition'>insertAtom</span> <span class='keyglyph'>::</span> <span class='conid'>ByteString</span> <span class='keyglyph'>-></span> <span class='conid'>Atoms</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='conid'>Atoms</span><span class='layout'>,</span> <span class='conid'>Atom</span><span class='layout'>)</span>-<a name="line-91"></a><span class='definition'>insertAtom</span> <span class='varid'>s</span> <span class='varid'>m</span> <span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='layout'>(</span><span class='conid'>M</span><span class='varop'>.</span><span class='varid'>insert</span> <span class='varid'>s</span> <span class='varid'>s</span> <span class='varid'>m</span><span class='layout'>,</span> <span class='conid'>A</span> <span class='varid'>s</span><span class='layout'>)</span>-<a name="line-92"></a> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>s'</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='varid'>m</span><span class='layout'>,</span> <span class='conid'>A</span> <span class='varid'>s'</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-93"></a> <span class='varop'>.</span>-<a name="line-94"></a> <span class='conid'>M</span><span class='varop'>.</span><span class='varid'>lookup</span> <span class='varid'>s</span> <span class='varop'>$</span> <span class='varid'>m</span>-<a name="line-95"></a>-<a name="line-96"></a><span class='comment'>-- | creation of an @Atom@ from a @String@</span>-<a name="line-97"></a>-<a name="line-98"></a><a name="newAtom"></a><span class='definition'>newAtom</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Atom</span>-<a name="line-99"></a><span class='definition'>newAtom</span> <span class='keyglyph'>=</span> <span class='varid'>unsafePerformIO</span> <span class='varop'>.</span> <span class='varid'>newAtom'</span>-<a name="line-100"></a><span class='comment'>{-# NOINLINE newAtom #-}</span>-<a name="line-101"></a>-<a name="line-102"></a><a name="newAtom'"></a><span class='comment'>-- | The internal operation running in the IO monad</span>-<a name="line-103"></a><span class='definition'>newAtom'</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>IO</span> <span class='conid'>Atom</span>-<a name="line-104"></a><span class='definition'>newAtom'</span> <span class='varid'>s</span> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-105"></a> <span class='varid'>m</span> <span class='keyglyph'><-</span> <span class='varid'>takeMVar</span> <span class='varid'>theAtoms</span>-<a name="line-106"></a> <span class='keyword'>let</span> <span class='layout'>(</span><span class='varid'>m'</span><span class='layout'>,</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>insertAtom</span> <span class='layout'>(</span><span class='varid'>pack</span><span class='varop'>.</span> <span class='varid'>map</span> <span class='varid'>c2w</span> <span class='varop'>.</span> <span class='varid'>unicodeToUtf8</span> <span class='varop'>$</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='varid'>m</span>-<a name="line-107"></a> <span class='varid'>putMVar</span> <span class='varid'>theAtoms</span> <span class='varid'>m'</span>-<a name="line-108"></a> <span class='varid'>return</span> <span class='varid'>a</span>-<a name="line-109"></a>-<a name="line-110"></a><span class='comment'>-- | Insert a @String@ into the atom cache and convert the atom back into a @String@.</span>-<a name="line-111"></a><span class='comment'>--</span>-<a name="line-112"></a><span class='comment'>-- locically @share == id@ holds, but internally equal strings share the same memory.</span>-<a name="line-113"></a>-<a name="line-114"></a><a name="share"></a><span class='definition'>share</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-115"></a><span class='definition'>share</span> <span class='keyglyph'>=</span> <span class='varid'>show</span> <span class='varop'>.</span> <span class='varid'>newAtom</span>-<a name="line-116"></a>-<a name="line-117"></a><span class='keyword'>instance</span> <span class='conid'>Eq</span> <span class='conid'>Atom</span> <span class='keyword'>where</span>-<a name="line-118"></a> <span class='varid'>a1</span> <span class='varop'>==</span> <span class='varid'>a2</span> <span class='keyglyph'>=</span> <span class='varid'>fp1</span> <span class='varop'>==</span> <span class='varid'>fp2</span>-<a name="line-119"></a> <span class='keyword'>where</span>-<a name="line-120"></a> <span class='layout'>(</span><span class='varid'>fp1</span><span class='layout'>,</span> <span class='keyword'>_</span><span class='layout'>,</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>toForeignPtr</span> <span class='varop'>.</span> <span class='varid'>bs</span> <span class='varop'>$</span> <span class='varid'>a1</span>-<a name="line-121"></a> <span class='layout'>(</span><span class='varid'>fp2</span><span class='layout'>,</span> <span class='keyword'>_</span><span class='layout'>,</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>toForeignPtr</span> <span class='varop'>.</span> <span class='varid'>bs</span> <span class='varop'>$</span> <span class='varid'>a2</span>-<a name="line-122"></a>-<a name="line-123"></a><span class='keyword'>instance</span> <span class='conid'>Ord</span> <span class='conid'>Atom</span> <span class='keyword'>where</span>-<a name="line-124"></a> <span class='varid'>compare</span> <span class='varid'>a1</span> <span class='varid'>a2</span>-<a name="line-125"></a> <span class='keyglyph'>|</span> <span class='varid'>a1</span> <span class='varop'>==</span> <span class='varid'>a2</span> <span class='keyglyph'>=</span> <span class='conid'>EQ</span>-<a name="line-126"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>compare</span> <span class='layout'>(</span><span class='varid'>bs</span> <span class='varid'>a1</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>bs</span> <span class='varid'>a2</span><span class='layout'>)</span>-<a name="line-127"></a>-<a name="line-128"></a><span class='keyword'>instance</span> <span class='conid'>Read</span> <span class='conid'>Atom</span> <span class='keyword'>where</span>-<a name="line-129"></a> <span class='varid'>readsPrec</span> <span class='varid'>p</span> <span class='varid'>str</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>newAtom</span> <span class='varid'>x</span><span class='layout'>,</span> <span class='varid'>y</span><span class='layout'>)</span> <span class='keyglyph'>|</span> <span class='layout'>(</span><span class='varid'>x</span><span class='layout'>,</span> <span class='varid'>y</span><span class='layout'>)</span> <span class='keyglyph'><-</span> <span class='varid'>readsPrec</span> <span class='varid'>p</span> <span class='varid'>str</span> <span class='keyglyph'>]</span>-<a name="line-130"></a>-<a name="line-131"></a><span class='keyword'>instance</span> <span class='conid'>Show</span> <span class='conid'>Atom</span> <span class='keyword'>where</span>-<a name="line-132"></a> <span class='varid'>show</span> <span class='keyglyph'>=</span> <span class='varid'>fst</span> <span class='varop'>.</span> <span class='varid'>decodeUtf8</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='varid'>w2c</span> <span class='varop'>.</span> <span class='varid'>unpack</span> <span class='varop'>.</span> <span class='varid'>bs</span>-<a name="line-133"></a> <span class='comment'>-- show = show . toForeignPtr . bs -- for debug only</span>-<a name="line-134"></a>-<a name="line-135"></a><span class='keyword'>instance</span> <span class='conid'>NFData</span> <span class='conid'>Atom</span> <span class='keyword'>where</span>-<a name="line-136"></a>-<a name="line-137"></a><span class='comment'>-----------------------------------------------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Data-Char-UTF8.html
@@ -1,373 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>{--<a name="line-2"></a>-<a name="line-3"></a>Copyright (c) 2002, members of the Haskell Internationalisation Working-<a name="line-4"></a>Group All rights reserved.-<a name="line-5"></a>-<a name="line-6"></a>Redistribution and use in source and binary forms, with or without-<a name="line-7"></a>modification, are permitted provided that the following conditions are met:-<a name="line-8"></a>-<a name="line-9"></a>* Redistributions of source code must retain the above copyright notice,-<a name="line-10"></a> this list of conditions and the following disclaimer.-<a name="line-11"></a>* Redistributions in binary form must reproduce the above copyright notice,-<a name="line-12"></a> this list of conditions and the following disclaimer in the-<a name="line-13"></a> documentation and/or other materials provided with the distribution.-<a name="line-14"></a>* Neither the name of the Haskell Internationalisation Working Group nor-<a name="line-15"></a> the names of its contributors may be used to endorse or promote products-<a name="line-16"></a> derived from this software without specific prior written permission.-<a name="line-17"></a>-<a name="line-18"></a>THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"-<a name="line-19"></a>AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE-<a name="line-20"></a>IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE-<a name="line-21"></a>ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE-<a name="line-22"></a>LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR-<a name="line-23"></a>CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF-<a name="line-24"></a>SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS-<a name="line-25"></a>INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN-<a name="line-26"></a>CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)-<a name="line-27"></a>ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE-<a name="line-28"></a>POSSIBILITY OF SUCH DAMAGE.-<a name="line-29"></a>-<a name="line-30"></a>This module provides lazy stream encoding/decoding facilities for UTF-8,-<a name="line-31"></a>the Unicode Transformation Format with 8-bit words.-<a name="line-32"></a>-<a name="line-33"></a>2002-09-02 Sven Moritz Hallberg <pesco@gmx.de>-<a name="line-34"></a>-<a name="line-35"></a>-}</span>-<a name="line-36"></a>-<a name="line-37"></a><span class='comment'>{--<a name="line-38"></a>-<a name="line-39"></a>2007-04-30 Henning Thielemann:-<a name="line-40"></a>Slight changes to make decode lazy.-<a name="line-41"></a>The calls of 'reverse' in the original version have broken laziness-<a name="line-42"></a>and thus had memory leaks.-<a name="line-43"></a>-<a name="line-44"></a>-}</span>-<a name="line-45"></a>-<a name="line-46"></a><span class='keyword'>module</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Char</span><span class='varop'>.</span><span class='conid'>UTF8</span>-<a name="line-47"></a> <span class='layout'>(</span> <span class='varid'>encode</span><span class='layout'>,</span> <span class='varid'>decode</span><span class='layout'>,</span>-<a name="line-48"></a> <span class='varid'>decodeEmbedErrors</span><span class='layout'>,</span>-<a name="line-49"></a> <span class='varid'>encodeOne</span><span class='layout'>,</span> <span class='varid'>decodeOne</span><span class='layout'>,</span>-<a name="line-50"></a> <span class='conid'>Error</span><span class='layout'>,</span> <span class='comment'>-- Haddock does not want to document signatures with private types</span>-<a name="line-51"></a> <span class='comment'>-- these functions should be moved to a utility module</span>-<a name="line-52"></a> <span class='layout'>)</span> <span class='keyword'>where</span>-<a name="line-53"></a>-<a name="line-54"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Char</span> <span class='layout'>(</span><span class='varid'>ord</span><span class='layout'>,</span> <span class='varid'>chr</span><span class='layout'>)</span>-<a name="line-55"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Word</span> <span class='layout'>(</span><span class='conid'>Word8</span><span class='layout'>,</span> <span class='conid'>Word16</span><span class='layout'>,</span> <span class='conid'>Word32</span><span class='layout'>)</span>-<a name="line-56"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Bits</span> <span class='layout'>(</span><span class='conid'>Bits</span><span class='layout'>,</span> <span class='varid'>shiftL</span><span class='layout'>,</span> <span class='varid'>shiftR</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varop'>.&.</span><span class='layout'>)</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varop'>.|.</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-57"></a>-<a name="line-58"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>List</span> <span class='layout'>(</span><span class='varid'>unfoldr</span><span class='layout'>)</span>-<a name="line-59"></a>-<a name="line-60"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Util</span> <span class='layout'>(</span><span class='varid'>partitionEither</span><span class='layout'>,</span> <span class='varid'>swap</span><span class='layout'>,</span> <span class='varid'>toMaybe</span><span class='layout'>)</span>-<a name="line-61"></a>-<a name="line-62"></a>-<a name="line-63"></a>-<a name="line-64"></a><span class='comment'>-- - UTF-8 in General -</span>-<a name="line-65"></a>-<a name="line-66"></a><span class='comment'>-- Adapted from the Unicode standard, version 3.2,</span>-<a name="line-67"></a><span class='comment'>-- Table 3.1 "UTF-8 Bit Distribution" (excluded are UTF-16 encodings):</span>-<a name="line-68"></a>-<a name="line-69"></a><span class='comment'>-- Scalar 1st Byte 2nd Byte 3rd Byte 4th Byte</span>-<a name="line-70"></a><span class='comment'>-- 000000000xxxxxxx 0xxxxxxx</span>-<a name="line-71"></a><span class='comment'>-- 00000yyyyyxxxxxx 110yyyyy 10xxxxxx</span>-<a name="line-72"></a><span class='comment'>-- zzzzyyyyyyxxxxxx 1110zzzz 10yyyyyy 10xxxxxx</span>-<a name="line-73"></a><span class='comment'>-- 000uuuzzzzzzyyyyyyxxxxxx 11110uuu 10zzzzzz 10yyyyyy 10xxxxxx</span>-<a name="line-74"></a>-<a name="line-75"></a><span class='comment'>-- Also from the Unicode standard, version 3.2,</span>-<a name="line-76"></a><span class='comment'>-- Table 3.1B "Legal UTF-8 Byte Sequences":</span>-<a name="line-77"></a>-<a name="line-78"></a><span class='comment'>-- Code Points 1st Byte 2nd Byte 3rd Byte 4th Byte</span>-<a name="line-79"></a><span class='comment'>-- U+0000..U+007F 00..7F</span>-<a name="line-80"></a><span class='comment'>-- U+0080..U+07FF C2..DF 80..BF</span>-<a name="line-81"></a><span class='comment'>-- U+0800..U+0FFF E0 A0..BF 80..BF</span>-<a name="line-82"></a><span class='comment'>-- U+1000..U+CFFF E1..EC 80..BF 80..BF</span>-<a name="line-83"></a><span class='comment'>-- U+D000..U+D7FF ED 80..9F 80..BF</span>-<a name="line-84"></a><span class='comment'>-- U+D800..U+DFFF ill-formed</span>-<a name="line-85"></a><span class='comment'>-- U+E000..U+FFFF EE..EF 80..BF 80..BF</span>-<a name="line-86"></a><span class='comment'>-- U+10000..U+3FFFF F0 90..BF 80..BF 80..BF</span>-<a name="line-87"></a><span class='comment'>-- U+40000..U+FFFFF F1..F3 80..BF 80..BF 80..BF</span>-<a name="line-88"></a><span class='comment'>-- U+100000..U+10FFFF F4 80..8F 80..BF 80..BF</span>-<a name="line-89"></a>-<a name="line-90"></a>-<a name="line-91"></a>-<a name="line-92"></a><span class='comment'>-- - Encoding Functions -</span>-<a name="line-93"></a>-<a name="line-94"></a><span class='comment'>-- Must the encoder ensure that no illegal byte sequences are output or</span>-<a name="line-95"></a><span class='comment'>-- can we trust the Haskell system to supply only legal values?</span>-<a name="line-96"></a><span class='comment'>-- For now I include error case for the surrogate values U+D800..U+DFFF and</span>-<a name="line-97"></a><span class='comment'>-- out-of-range scalars.</span>-<a name="line-98"></a>-<a name="line-99"></a><span class='comment'>-- The function is pretty much a transscript of table 3.1B with error checks.</span>-<a name="line-100"></a><span class='comment'>-- It dispatches the actual encoding to functions specific to the number of</span>-<a name="line-101"></a><span class='comment'>-- required bytes.</span>-<a name="line-102"></a>-<a name="line-103"></a><a name="encodeOne"></a><span class='definition'>encodeOne</span> <span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>Word8</span><span class='keyglyph'>]</span>-<a name="line-104"></a><span class='definition'>encodeOne</span> <span class='varid'>c</span>-<a name="line-105"></a> <span class='comment'>-- The report guarantees in (6.1.2) that this won't happen:</span>-<a name="line-106"></a> <span class='comment'>-- | n < 0 = error "encodeUTF8: ord returned a negative value"</span>-<a name="line-107"></a> <span class='keyglyph'>|</span> <span class='varid'>n</span> <span class='varop'><</span> <span class='num'>0x0080</span> <span class='keyglyph'>=</span> <span class='varid'>encodeOne_onebyte</span> <span class='varid'>n8</span>-<a name="line-108"></a> <span class='keyglyph'>|</span> <span class='varid'>n</span> <span class='varop'><</span> <span class='num'>0x0800</span> <span class='keyglyph'>=</span> <span class='varid'>encodeOne_twobyte</span> <span class='varid'>n16</span>-<a name="line-109"></a> <span class='keyglyph'>|</span> <span class='varid'>n</span> <span class='varop'><</span> <span class='num'>0xD800</span> <span class='keyglyph'>=</span> <span class='varid'>encodeOne_threebyte</span> <span class='varid'>n16</span>-<a name="line-110"></a> <span class='keyglyph'>|</span> <span class='varid'>n</span> <span class='varop'><</span> <span class='num'>0xE000</span> <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='str'>"encodeUTF8: ord returned a surrogate value"</span>-<a name="line-111"></a> <span class='keyglyph'>|</span> <span class='varid'>n</span> <span class='varop'><</span> <span class='num'>0x10000</span> <span class='keyglyph'>=</span> <span class='varid'>encodeOne_threebyte</span> <span class='varid'>n16</span>-<a name="line-112"></a> <span class='comment'>-- Haskell 98 only talks about 16 bit characters, but ghc handles 20.1.</span>-<a name="line-113"></a> <span class='keyglyph'>|</span> <span class='varid'>n</span> <span class='varop'><</span> <span class='num'>0x10FFFF</span> <span class='keyglyph'>=</span> <span class='varid'>encodeOne_fourbyte</span> <span class='varid'>n32</span>-<a name="line-114"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='str'>"encodeUTF8: ord returned a value above 0x10FFFF"</span>-<a name="line-115"></a> <span class='keyword'>where</span>-<a name="line-116"></a> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='varid'>ord</span> <span class='varid'>c</span> <span class='keyglyph'>::</span> <span class='conid'>Int</span>-<a name="line-117"></a> <span class='varid'>n8</span> <span class='keyglyph'>=</span> <span class='varid'>fromIntegral</span> <span class='varid'>n</span> <span class='keyglyph'>::</span> <span class='conid'>Word8</span>-<a name="line-118"></a> <span class='varid'>n16</span> <span class='keyglyph'>=</span> <span class='varid'>fromIntegral</span> <span class='varid'>n</span> <span class='keyglyph'>::</span> <span class='conid'>Word16</span>-<a name="line-119"></a> <span class='varid'>n32</span> <span class='keyglyph'>=</span> <span class='varid'>fromIntegral</span> <span class='varid'>n</span> <span class='keyglyph'>::</span> <span class='conid'>Word32</span>-<a name="line-120"></a>-<a name="line-121"></a>-<a name="line-122"></a><span class='comment'>-- With the above, a stream decoder is trivial:</span>-<a name="line-123"></a>-<a name="line-124"></a><a name="encode"></a><span class='definition'>encode</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>Char</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>Word8</span><span class='keyglyph'>]</span>-<a name="line-125"></a><span class='definition'>encode</span> <span class='keyglyph'>=</span> <span class='varid'>concatMap</span> <span class='varid'>encodeOne</span>-<a name="line-126"></a>-<a name="line-127"></a>-<a name="line-128"></a><span class='comment'>-- Now follow the individual encoders for certain numbers of bytes...</span>-<a name="line-129"></a><span class='comment'>-- _</span>-<a name="line-130"></a><span class='comment'>-- / | __ ___ __ __</span>-<a name="line-131"></a><span class='comment'>-- / ^| // /__/ // //</span>-<a name="line-132"></a><span class='comment'>-- /.==| \\ //_ // //</span>-<a name="line-133"></a><span class='comment'>-- It's // || // \_/_//_//_ and it's here to stay!</span>-<a name="line-134"></a>-<a name="line-135"></a><a name="encodeOne_onebyte"></a><span class='definition'>encodeOne_onebyte</span> <span class='keyglyph'>::</span> <span class='conid'>Word8</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>Word8</span><span class='keyglyph'>]</span>-<a name="line-136"></a><span class='definition'>encodeOne_onebyte</span> <span class='varid'>cp</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>cp</span><span class='keyglyph'>]</span>-<a name="line-137"></a>-<a name="line-138"></a>-<a name="line-139"></a><span class='comment'>-- 00000yyyyyxxxxxx -> 110yyyyy 10xxxxxx</span>-<a name="line-140"></a>-<a name="line-141"></a><a name="encodeOne_twobyte"></a><span class='definition'>encodeOne_twobyte</span> <span class='keyglyph'>::</span> <span class='conid'>Word16</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>Word8</span><span class='keyglyph'>]</span>-<a name="line-142"></a><span class='definition'>encodeOne_twobyte</span> <span class='varid'>cp</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='num'>0xC0</span><span class='varop'>.|.</span><span class='varid'>ys</span><span class='layout'>)</span><span class='layout'>,</span> <span class='layout'>(</span><span class='num'>0x80</span><span class='varop'>.|.</span><span class='varid'>xs</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-143"></a> <span class='keyword'>where</span>-<a name="line-144"></a> <span class='varid'>xs</span><span class='layout'>,</span> <span class='varid'>ys</span> <span class='keyglyph'>::</span> <span class='conid'>Word8</span>-<a name="line-145"></a> <span class='varid'>ys</span> <span class='keyglyph'>=</span> <span class='varid'>fromIntegral</span> <span class='layout'>(</span><span class='varid'>shiftR</span> <span class='varid'>cp</span> <span class='num'>6</span><span class='layout'>)</span>-<a name="line-146"></a> <span class='varid'>xs</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>fromIntegral</span> <span class='varid'>cp</span><span class='layout'>)</span> <span class='varop'>.&.</span> <span class='num'>0x3F</span>-<a name="line-147"></a>-<a name="line-148"></a>-<a name="line-149"></a><span class='comment'>-- zzzzyyyyyyxxxxxx -> 1110zzzz 10yyyyyy 10xxxxxx</span>-<a name="line-150"></a>-<a name="line-151"></a><a name="encodeOne_threebyte"></a><span class='definition'>encodeOne_threebyte</span> <span class='keyglyph'>::</span> <span class='conid'>Word16</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>Word8</span><span class='keyglyph'>]</span>-<a name="line-152"></a><span class='definition'>encodeOne_threebyte</span> <span class='varid'>cp</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='num'>0xE0</span><span class='varop'>.|.</span><span class='varid'>zs</span><span class='layout'>)</span><span class='layout'>,</span> <span class='layout'>(</span><span class='num'>0x80</span><span class='varop'>.|.</span><span class='varid'>ys</span><span class='layout'>)</span><span class='layout'>,</span> <span class='layout'>(</span><span class='num'>0x80</span><span class='varop'>.|.</span><span class='varid'>xs</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-153"></a> <span class='keyword'>where</span>-<a name="line-154"></a> <span class='varid'>xs</span><span class='layout'>,</span> <span class='varid'>ys</span><span class='layout'>,</span> <span class='varid'>zs</span> <span class='keyglyph'>::</span> <span class='conid'>Word8</span>-<a name="line-155"></a> <span class='varid'>xs</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>fromIntegral</span> <span class='varid'>cp</span><span class='layout'>)</span> <span class='varop'>.&.</span> <span class='num'>0x3F</span>-<a name="line-156"></a> <span class='varid'>ys</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>fromIntegral</span> <span class='layout'>(</span><span class='varid'>shiftR</span> <span class='varid'>cp</span> <span class='num'>6</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varop'>.&.</span> <span class='num'>0x3F</span>-<a name="line-157"></a> <span class='varid'>zs</span> <span class='keyglyph'>=</span> <span class='varid'>fromIntegral</span> <span class='layout'>(</span><span class='varid'>shiftR</span> <span class='varid'>cp</span> <span class='num'>12</span><span class='layout'>)</span>-<a name="line-158"></a>-<a name="line-159"></a>-<a name="line-160"></a><span class='comment'>-- 000uuuzzzzzzyyyyyyxxxxxx -> 11110uuu 10zzzzzz 10yyyyyy 10xxxxxx</span>-<a name="line-161"></a>-<a name="line-162"></a><a name="encodeOne_fourbyte"></a><span class='definition'>encodeOne_fourbyte</span> <span class='keyglyph'>::</span> <span class='conid'>Word32</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>Word8</span><span class='keyglyph'>]</span>-<a name="line-163"></a><span class='definition'>encodeOne_fourbyte</span> <span class='varid'>cp</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='num'>0xF0</span><span class='varop'>.|.</span><span class='varid'>us</span><span class='layout'>,</span> <span class='num'>0x80</span><span class='varop'>.|.</span><span class='varid'>zs</span><span class='layout'>,</span> <span class='num'>0x80</span><span class='varop'>.|.</span><span class='varid'>ys</span><span class='layout'>,</span> <span class='num'>0x80</span><span class='varop'>.|.</span><span class='varid'>xs</span><span class='keyglyph'>]</span>-<a name="line-164"></a> <span class='keyword'>where</span>-<a name="line-165"></a> <span class='varid'>xs</span><span class='layout'>,</span> <span class='varid'>ys</span><span class='layout'>,</span> <span class='varid'>zs</span><span class='layout'>,</span> <span class='varid'>us</span> <span class='keyglyph'>::</span> <span class='conid'>Word8</span>-<a name="line-166"></a> <span class='varid'>xs</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>fromIntegral</span> <span class='varid'>cp</span><span class='layout'>)</span> <span class='varop'>.&.</span> <span class='num'>0x3F</span>-<a name="line-167"></a> <span class='varid'>ys</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>fromIntegral</span> <span class='layout'>(</span><span class='varid'>shiftR</span> <span class='varid'>cp</span> <span class='num'>6</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varop'>.&.</span> <span class='num'>0x3F</span>-<a name="line-168"></a> <span class='varid'>zs</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>fromIntegral</span> <span class='layout'>(</span><span class='varid'>shiftR</span> <span class='varid'>cp</span> <span class='num'>12</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varop'>.&.</span> <span class='num'>0x3F</span>-<a name="line-169"></a> <span class='varid'>us</span> <span class='keyglyph'>=</span> <span class='varid'>fromIntegral</span> <span class='layout'>(</span><span class='varid'>shiftR</span> <span class='varid'>cp</span> <span class='num'>18</span><span class='layout'>)</span>-<a name="line-170"></a>-<a name="line-171"></a>-<a name="line-172"></a>-<a name="line-173"></a><span class='comment'>-- - Decoding -</span>-<a name="line-174"></a>-<a name="line-175"></a><span class='comment'>-- The decoding is a bit more involved. The byte sequence could contain all</span>-<a name="line-176"></a><span class='comment'>-- sorts of corruptions. The user must be able to either notice or ignore these</span>-<a name="line-177"></a><span class='comment'>-- errors.</span>-<a name="line-178"></a>-<a name="line-179"></a><span class='comment'>-- I will first look at the decoding of a single character. The process</span>-<a name="line-180"></a><span class='comment'>-- consumes a certain number of bytes from the input. It returns the</span>-<a name="line-181"></a><span class='comment'>-- remaining input and either an error and the index of its occurance in the</span>-<a name="line-182"></a><span class='comment'>-- byte sequence or the decoded character.</span>-<a name="line-183"></a>-<a name="line-184"></a><a name="Error"></a><span class='keyword'>data</span> <span class='conid'>Error</span>-<a name="line-185"></a>-<a name="line-186"></a><span class='comment'>-- The first byte in a sequence starts with either zero, two, three, or four</span>-<a name="line-187"></a><span class='comment'>-- ones and one zero to indicate the length of the sequence. If it doesn't,</span>-<a name="line-188"></a><span class='comment'>-- it is invalid. It is dropped and the next byte interpreted as the start</span>-<a name="line-189"></a><span class='comment'>-- of a new sequence.</span>-<a name="line-190"></a>-<a name="line-191"></a> <span class='keyglyph'>=</span> <span class='conid'>InvalidFirstByte</span>-<a name="line-192"></a>-<a name="line-193"></a><span class='comment'>-- All bytes in the sequence except the first match the bit pattern 10xxxxxx.</span>-<a name="line-194"></a><span class='comment'>-- If one doesn't, it is invalid. The sequence up to that point is dropped</span>-<a name="line-195"></a><span class='comment'>-- and the "invalid" byte interpreted as the start of a new sequence. The error</span>-<a name="line-196"></a><span class='comment'>-- includes the length of the partial sequence and the number of expected bytes.</span>-<a name="line-197"></a>-<a name="line-198"></a> <span class='keyglyph'>|</span> <span class='conid'>InvalidLaterByte</span> <span class='conid'>Int</span> <span class='comment'>-- the byte at relative index n was invalid</span>-<a name="line-199"></a>-<a name="line-200"></a><span class='comment'>-- If a sequence ends prematurely, it has been truncated. It dropped and</span>-<a name="line-201"></a><span class='comment'>-- decoding stops. The error reports the actual and expected lengths of the</span>-<a name="line-202"></a><span class='comment'>-- sequence.</span>-<a name="line-203"></a>-<a name="line-204"></a> <span class='keyglyph'>|</span> <span class='conid'>Truncated</span> <span class='conid'>Int</span> <span class='conid'>Int</span> <span class='comment'>-- only n of m expected bytes were present</span>-<a name="line-205"></a>-<a name="line-206"></a><span class='comment'>-- Some sequences would represent code points which would be encoded as a</span>-<a name="line-207"></a><span class='comment'>-- shorter sequence by a conformant encoder. Such non-shortest sequences are</span>-<a name="line-208"></a><span class='comment'>-- considered erroneous and dropped. The error reports the actual and</span>-<a name="line-209"></a><span class='comment'>-- expected number of bytes used.</span>-<a name="line-210"></a>-<a name="line-211"></a> <span class='keyglyph'>|</span> <span class='conid'>NonShortest</span> <span class='conid'>Int</span> <span class='conid'>Int</span> <span class='comment'>-- n instead of m bytes were used</span>-<a name="line-212"></a>-<a name="line-213"></a><span class='comment'>-- Unicode code points are in the range of [0..0x10FFFF]. Any values outside</span>-<a name="line-214"></a><span class='comment'>-- of those bounds are simply invalid.</span>-<a name="line-215"></a>-<a name="line-216"></a> <span class='keyglyph'>|</span> <span class='conid'>ValueOutOfBounds</span>-<a name="line-217"></a>-<a name="line-218"></a><span class='comment'>-- There is no such thing as "surrogate pairs" any more in UTF-8. The</span>-<a name="line-219"></a><span class='comment'>-- corresponding code points now form illegal byte sequences.</span>-<a name="line-220"></a>-<a name="line-221"></a> <span class='keyglyph'>|</span> <span class='conid'>Surrogate</span>-<a name="line-222"></a> <span class='keyword'>deriving</span> <span class='layout'>(</span><span class='conid'>Show</span><span class='layout'>,</span> <span class='conid'>Eq</span><span class='layout'>)</span>-<a name="line-223"></a>-<a name="line-224"></a>-<a name="line-225"></a><span class='comment'>-- Second, third, and fourth bytes share the common requirement to start</span>-<a name="line-226"></a><span class='comment'>-- with the bit sequence 10. So, here's the function to check that property.</span>-<a name="line-227"></a>-<a name="line-228"></a><a name="first_bits_not_10"></a><span class='definition'>first_bits_not_10</span> <span class='keyglyph'>::</span> <span class='conid'>Word8</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-229"></a><span class='definition'>first_bits_not_10</span> <span class='varid'>b</span>-<a name="line-230"></a> <span class='keyglyph'>|</span> <span class='layout'>(</span><span class='varid'>b</span><span class='varop'>.&.</span><span class='num'>0xC0</span><span class='layout'>)</span> <span class='varop'>/=</span> <span class='num'>0x80</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-231"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-232"></a>-<a name="line-233"></a>-<a name="line-234"></a><span class='comment'>-- Erm, OK, the single-character decoding function's return type is a bit</span>-<a name="line-235"></a><span class='comment'>-- longish. It is a tripel:</span>-<a name="line-236"></a>-<a name="line-237"></a><span class='comment'>-- - The first component contains the decoded character or an error</span>-<a name="line-238"></a><span class='comment'>-- if the byte sequence was erroneous.</span>-<a name="line-239"></a><span class='comment'>-- - The second component contains the number of bytes that were consumed</span>-<a name="line-240"></a><span class='comment'>-- from the input.</span>-<a name="line-241"></a><span class='comment'>-- - The third component contains the remaining bytes of input.</span>-<a name="line-242"></a>-<a name="line-243"></a><a name="decodeOne"></a><span class='definition'>decodeOne</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>Word8</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='conid'>Either</span> <span class='conid'>Error</span> <span class='conid'>Char</span><span class='layout'>,</span> <span class='conid'>Int</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='conid'>Word8</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-244"></a><span class='definition'>decodeOne</span> <span class='varid'>bs</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='varid'>b1</span><span class='conop'>:</span><span class='varid'>rest</span><span class='layout'>)</span>-<a name="line-245"></a> <span class='keyglyph'>|</span> <span class='varid'>b1</span> <span class='varop'><</span> <span class='num'>0x80</span> <span class='keyglyph'>=</span> <span class='varid'>decodeOne_onebyte</span> <span class='varid'>bs</span>-<a name="line-246"></a> <span class='keyglyph'>|</span> <span class='varid'>b1</span> <span class='varop'><</span> <span class='num'>0xC0</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>Left</span> <span class='conid'>InvalidFirstByte</span><span class='layout'>,</span> <span class='num'>1</span><span class='layout'>,</span> <span class='varid'>rest</span><span class='layout'>)</span>-<a name="line-247"></a> <span class='keyglyph'>|</span> <span class='varid'>b1</span> <span class='varop'><</span> <span class='num'>0xE0</span> <span class='keyglyph'>=</span> <span class='varid'>decodeOne_twobyte</span> <span class='varid'>bs</span>-<a name="line-248"></a> <span class='keyglyph'>|</span> <span class='varid'>b1</span> <span class='varop'><</span> <span class='num'>0xF0</span> <span class='keyglyph'>=</span> <span class='varid'>decodeOne_threebyte</span> <span class='varid'>bs</span>-<a name="line-249"></a> <span class='keyglyph'>|</span> <span class='varid'>b1</span> <span class='varop'><</span> <span class='num'>0xF5</span> <span class='keyglyph'>=</span> <span class='varid'>decodeOne_fourbyte</span> <span class='varid'>bs</span>-<a name="line-250"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>Left</span> <span class='conid'>ValueOutOfBounds</span><span class='layout'>,</span> <span class='num'>1</span><span class='layout'>,</span> <span class='varid'>rest</span><span class='layout'>)</span>-<a name="line-251"></a><span class='definition'>decodeOne</span> <span class='conid'>[]</span> <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='str'>"UTF8.decodeOne: No input"</span>-<a name="line-252"></a>-<a name="line-253"></a>-<a name="line-254"></a><span class='comment'>-- 0xxxxxxx -> 000000000xxxxxxx</span>-<a name="line-255"></a>-<a name="line-256"></a><a name="decodeOne_onebyte"></a><span class='definition'>decodeOne_onebyte</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>Word8</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='conid'>Either</span> <span class='conid'>Error</span> <span class='conid'>Char</span><span class='layout'>,</span> <span class='conid'>Int</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='conid'>Word8</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-257"></a><span class='definition'>decodeOne_onebyte</span> <span class='layout'>(</span><span class='varid'>b</span><span class='conop'>:</span><span class='varid'>bs</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>Right</span> <span class='layout'>(</span><span class='varid'>cpToChar</span> <span class='varid'>b</span><span class='layout'>)</span><span class='layout'>,</span> <span class='num'>1</span><span class='layout'>,</span> <span class='varid'>bs</span><span class='layout'>)</span>-<a name="line-258"></a><span class='definition'>decodeOne_onebyte</span><span class='conid'>[]</span> <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='str'>"UTF8.decodeOne_onebyte: No input (can't happen)"</span>-<a name="line-259"></a>-<a name="line-260"></a><a name="cpToChar"></a><span class='definition'>cpToChar</span> <span class='keyglyph'>::</span> <span class='conid'>Integral</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>Char</span>-<a name="line-261"></a><span class='definition'>cpToChar</span> <span class='keyglyph'>=</span> <span class='varid'>chr</span> <span class='varop'>.</span> <span class='varid'>fromIntegral</span>-<a name="line-262"></a>-<a name="line-263"></a>-<a name="line-264"></a><span class='comment'>-- 110yyyyy 10xxxxxx -> 00000yyyyyxxxxxx</span>-<a name="line-265"></a>-<a name="line-266"></a><a name="decodeOne_twobyte"></a><span class='definition'>decodeOne_twobyte</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>Word8</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='conid'>Either</span> <span class='conid'>Error</span> <span class='conid'>Char</span><span class='layout'>,</span> <span class='conid'>Int</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='conid'>Word8</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-267"></a><span class='definition'>decodeOne_twobyte</span> <span class='layout'>(</span><span class='keyword'>_</span><span class='conop'>:</span><span class='conid'>[]</span><span class='layout'>)</span>-<a name="line-268"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>Left</span> <span class='layout'>(</span><span class='conid'>Truncated</span> <span class='num'>1</span> <span class='num'>2</span><span class='layout'>)</span><span class='layout'>,</span> <span class='num'>1</span><span class='layout'>,</span> <span class='conid'>[]</span><span class='layout'>)</span>-<a name="line-269"></a><span class='definition'>decodeOne_twobyte</span> <span class='layout'>(</span><span class='varid'>b1</span><span class='conop'>:</span><span class='varid'>b2</span><span class='conop'>:</span><span class='varid'>bs</span><span class='layout'>)</span>-<a name="line-270"></a> <span class='keyglyph'>|</span> <span class='varid'>b1</span> <span class='varop'><</span> <span class='num'>0xC2</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>Left</span> <span class='layout'>(</span><span class='conid'>NonShortest</span> <span class='num'>2</span> <span class='num'>1</span><span class='layout'>)</span><span class='layout'>,</span> <span class='num'>2</span><span class='layout'>,</span> <span class='varid'>bs</span><span class='layout'>)</span>-<a name="line-271"></a> <span class='keyglyph'>|</span> <span class='varid'>first_bits_not_10</span> <span class='varid'>b2</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>Left</span> <span class='layout'>(</span><span class='conid'>InvalidLaterByte</span> <span class='num'>1</span><span class='layout'>)</span><span class='layout'>,</span> <span class='num'>1</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>b2</span><span class='conop'>:</span><span class='varid'>bs</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-272"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>Right</span> <span class='layout'>(</span><span class='varid'>cpToChar</span> <span class='varid'>result</span><span class='layout'>)</span><span class='layout'>,</span> <span class='num'>2</span><span class='layout'>,</span> <span class='varid'>bs</span><span class='layout'>)</span>-<a name="line-273"></a> <span class='keyword'>where</span>-<a name="line-274"></a> <span class='varid'>xs</span><span class='layout'>,</span> <span class='varid'>ys</span><span class='layout'>,</span> <span class='varid'>result</span> <span class='keyglyph'>::</span> <span class='conid'>Word32</span>-<a name="line-275"></a> <span class='varid'>xs</span> <span class='keyglyph'>=</span> <span class='varid'>fromIntegral</span> <span class='layout'>(</span><span class='varid'>b2</span><span class='varop'>.&.</span><span class='num'>0x3F</span><span class='layout'>)</span>-<a name="line-276"></a> <span class='varid'>ys</span> <span class='keyglyph'>=</span> <span class='varid'>fromIntegral</span> <span class='layout'>(</span><span class='varid'>b1</span><span class='varop'>.&.</span><span class='num'>0x1F</span><span class='layout'>)</span>-<a name="line-277"></a> <span class='varid'>result</span> <span class='keyglyph'>=</span> <span class='varid'>shiftL</span> <span class='varid'>ys</span> <span class='num'>6</span> <span class='varop'>.|.</span> <span class='varid'>xs</span>-<a name="line-278"></a><span class='definition'>decodeOne_twobyte</span><span class='conid'>[]</span> <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='str'>"UTF8.decodeOne_twobyte: No input (can't happen)"</span>-<a name="line-279"></a>-<a name="line-280"></a>-<a name="line-281"></a><span class='comment'>-- 1110zzzz 10yyyyyy 10xxxxxx -> zzzzyyyyyyxxxxxx</span>-<a name="line-282"></a>-<a name="line-283"></a><a name="decodeOne_threebyte"></a><span class='definition'>decodeOne_threebyte</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>Word8</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='conid'>Either</span> <span class='conid'>Error</span> <span class='conid'>Char</span><span class='layout'>,</span> <span class='conid'>Int</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='conid'>Word8</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-284"></a><span class='definition'>decodeOne_threebyte</span> <span class='layout'>(</span><span class='keyword'>_</span><span class='conop'>:</span><span class='conid'>[]</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>threebyte_truncated</span> <span class='num'>1</span>-<a name="line-285"></a><span class='definition'>decodeOne_threebyte</span> <span class='layout'>(</span><span class='keyword'>_</span><span class='conop'>:</span><span class='keyword'>_</span><span class='conop'>:</span><span class='conid'>[]</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>threebyte_truncated</span> <span class='num'>2</span>-<a name="line-286"></a><span class='definition'>decodeOne_threebyte</span> <span class='varid'>bs</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='varid'>b1</span><span class='conop'>:</span><span class='varid'>b2</span><span class='conop'>:</span><span class='varid'>b3</span><span class='conop'>:</span><span class='varid'>rest</span><span class='layout'>)</span>-<a name="line-287"></a> <span class='keyglyph'>|</span> <span class='varid'>first_bits_not_10</span> <span class='varid'>b2</span>-<a name="line-288"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>Left</span> <span class='layout'>(</span><span class='conid'>InvalidLaterByte</span> <span class='num'>1</span><span class='layout'>)</span><span class='layout'>,</span> <span class='num'>1</span><span class='layout'>,</span> <span class='varid'>drop</span> <span class='num'>1</span> <span class='varid'>bs</span><span class='layout'>)</span>-<a name="line-289"></a> <span class='keyglyph'>|</span> <span class='varid'>first_bits_not_10</span> <span class='varid'>b3</span>-<a name="line-290"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>Left</span> <span class='layout'>(</span><span class='conid'>InvalidLaterByte</span> <span class='num'>2</span><span class='layout'>)</span><span class='layout'>,</span> <span class='num'>2</span><span class='layout'>,</span> <span class='varid'>drop</span> <span class='num'>2</span> <span class='varid'>bs</span><span class='layout'>)</span>-<a name="line-291"></a> <span class='keyglyph'>|</span> <span class='varid'>result</span> <span class='varop'><</span> <span class='num'>0x0080</span>-<a name="line-292"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>Left</span> <span class='layout'>(</span><span class='conid'>NonShortest</span> <span class='num'>3</span> <span class='num'>1</span><span class='layout'>)</span><span class='layout'>,</span> <span class='num'>3</span><span class='layout'>,</span> <span class='varid'>rest</span><span class='layout'>)</span>-<a name="line-293"></a> <span class='keyglyph'>|</span> <span class='varid'>result</span> <span class='varop'><</span> <span class='num'>0x0800</span>-<a name="line-294"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>Left</span> <span class='layout'>(</span><span class='conid'>NonShortest</span> <span class='num'>3</span> <span class='num'>2</span><span class='layout'>)</span><span class='layout'>,</span> <span class='num'>3</span><span class='layout'>,</span> <span class='varid'>rest</span><span class='layout'>)</span>-<a name="line-295"></a> <span class='keyglyph'>|</span> <span class='varid'>result</span> <span class='varop'>>=</span> <span class='num'>0xD800</span> <span class='varop'>&&</span> <span class='varid'>result</span> <span class='varop'><</span> <span class='num'>0xE000</span>-<a name="line-296"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>Left</span> <span class='conid'>Surrogate</span><span class='layout'>,</span> <span class='num'>3</span><span class='layout'>,</span> <span class='varid'>rest</span><span class='layout'>)</span>-<a name="line-297"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-298"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>Right</span> <span class='layout'>(</span><span class='varid'>cpToChar</span> <span class='varid'>result</span><span class='layout'>)</span><span class='layout'>,</span> <span class='num'>3</span><span class='layout'>,</span> <span class='varid'>rest</span><span class='layout'>)</span>-<a name="line-299"></a> <span class='keyword'>where</span>-<a name="line-300"></a> <span class='varid'>xs</span><span class='layout'>,</span> <span class='varid'>ys</span><span class='layout'>,</span> <span class='varid'>zs</span><span class='layout'>,</span> <span class='varid'>result</span> <span class='keyglyph'>::</span> <span class='conid'>Word32</span>-<a name="line-301"></a> <span class='varid'>xs</span> <span class='keyglyph'>=</span> <span class='varid'>fromIntegral</span> <span class='layout'>(</span><span class='varid'>b3</span><span class='varop'>.&.</span><span class='num'>0x3F</span><span class='layout'>)</span>-<a name="line-302"></a> <span class='varid'>ys</span> <span class='keyglyph'>=</span> <span class='varid'>fromIntegral</span> <span class='layout'>(</span><span class='varid'>b2</span><span class='varop'>.&.</span><span class='num'>0x3F</span><span class='layout'>)</span>-<a name="line-303"></a> <span class='varid'>zs</span> <span class='keyglyph'>=</span> <span class='varid'>fromIntegral</span> <span class='layout'>(</span><span class='varid'>b1</span><span class='varop'>.&.</span><span class='num'>0x0F</span><span class='layout'>)</span>-<a name="line-304"></a> <span class='varid'>result</span> <span class='keyglyph'>=</span> <span class='varid'>shiftL</span> <span class='varid'>zs</span> <span class='num'>12</span> <span class='varop'>.|.</span> <span class='varid'>shiftL</span> <span class='varid'>ys</span> <span class='num'>6</span> <span class='varop'>.|.</span> <span class='varid'>xs</span>-<a name="line-305"></a><span class='definition'>decodeOne_threebyte</span><span class='conid'>[]</span>-<a name="line-306"></a> <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='str'>"UTF8.decodeOne_threebyte: No input (can't happen)"</span>-<a name="line-307"></a>-<a name="line-308"></a><a name="threebyte_truncated"></a><span class='definition'>threebyte_truncated</span> <span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='conid'>Either</span> <span class='conid'>Error</span> <span class='conid'>Char</span><span class='layout'>,</span> <span class='conid'>Int</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='conid'>Word8</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-309"></a><span class='definition'>threebyte_truncated</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>Left</span> <span class='layout'>(</span><span class='conid'>Truncated</span> <span class='varid'>n</span> <span class='num'>3</span><span class='layout'>)</span><span class='layout'>,</span> <span class='varid'>n</span><span class='layout'>,</span> <span class='conid'>[]</span><span class='layout'>)</span>-<a name="line-310"></a>-<a name="line-311"></a>-<a name="line-312"></a><span class='comment'>-- 11110uuu 10zzzzzz 10yyyyyy 10xxxxxx -> 000uuuzzzzzzyyyyyyxxxxxx</span>-<a name="line-313"></a>-<a name="line-314"></a><a name="decodeOne_fourbyte"></a><span class='definition'>decodeOne_fourbyte</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>Word8</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='conid'>Either</span> <span class='conid'>Error</span> <span class='conid'>Char</span><span class='layout'>,</span> <span class='conid'>Int</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='conid'>Word8</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-315"></a><span class='definition'>decodeOne_fourbyte</span> <span class='layout'>(</span><span class='keyword'>_</span><span class='conop'>:</span><span class='conid'>[]</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>fourbyte_truncated</span> <span class='num'>1</span>-<a name="line-316"></a><span class='definition'>decodeOne_fourbyte</span> <span class='layout'>(</span><span class='keyword'>_</span><span class='conop'>:</span><span class='keyword'>_</span><span class='conop'>:</span><span class='conid'>[]</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>fourbyte_truncated</span> <span class='num'>2</span>-<a name="line-317"></a><span class='definition'>decodeOne_fourbyte</span> <span class='layout'>(</span><span class='keyword'>_</span><span class='conop'>:</span><span class='keyword'>_</span><span class='conop'>:</span><span class='keyword'>_</span><span class='conop'>:</span><span class='conid'>[]</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>fourbyte_truncated</span> <span class='num'>3</span>-<a name="line-318"></a><span class='definition'>decodeOne_fourbyte</span> <span class='varid'>bs</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='varid'>b1</span><span class='conop'>:</span><span class='varid'>b2</span><span class='conop'>:</span><span class='varid'>b3</span><span class='conop'>:</span><span class='varid'>b4</span><span class='conop'>:</span><span class='varid'>rest</span><span class='layout'>)</span>-<a name="line-319"></a> <span class='keyglyph'>|</span> <span class='varid'>first_bits_not_10</span> <span class='varid'>b2</span>-<a name="line-320"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>Left</span> <span class='layout'>(</span><span class='conid'>InvalidLaterByte</span> <span class='num'>1</span><span class='layout'>)</span><span class='layout'>,</span> <span class='num'>1</span><span class='layout'>,</span> <span class='varid'>drop</span> <span class='num'>1</span> <span class='varid'>bs</span><span class='layout'>)</span>-<a name="line-321"></a> <span class='keyglyph'>|</span> <span class='varid'>first_bits_not_10</span> <span class='varid'>b3</span>-<a name="line-322"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>Left</span> <span class='layout'>(</span><span class='conid'>InvalidLaterByte</span> <span class='num'>2</span><span class='layout'>)</span><span class='layout'>,</span> <span class='num'>2</span><span class='layout'>,</span> <span class='varid'>drop</span> <span class='num'>2</span> <span class='varid'>bs</span><span class='layout'>)</span>-<a name="line-323"></a> <span class='keyglyph'>|</span> <span class='varid'>first_bits_not_10</span> <span class='varid'>b4</span>-<a name="line-324"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>Left</span> <span class='layout'>(</span><span class='conid'>InvalidLaterByte</span> <span class='num'>3</span><span class='layout'>)</span><span class='layout'>,</span> <span class='num'>3</span><span class='layout'>,</span> <span class='varid'>drop</span> <span class='num'>3</span> <span class='varid'>bs</span><span class='layout'>)</span>-<a name="line-325"></a> <span class='keyglyph'>|</span> <span class='varid'>result</span> <span class='varop'><</span> <span class='num'>0x0080</span>-<a name="line-326"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>Left</span> <span class='layout'>(</span><span class='conid'>NonShortest</span> <span class='num'>4</span> <span class='num'>1</span><span class='layout'>)</span><span class='layout'>,</span> <span class='num'>4</span><span class='layout'>,</span> <span class='varid'>rest</span><span class='layout'>)</span>-<a name="line-327"></a> <span class='keyglyph'>|</span> <span class='varid'>result</span> <span class='varop'><</span> <span class='num'>0x0800</span>-<a name="line-328"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>Left</span> <span class='layout'>(</span><span class='conid'>NonShortest</span> <span class='num'>4</span> <span class='num'>2</span><span class='layout'>)</span><span class='layout'>,</span> <span class='num'>4</span><span class='layout'>,</span> <span class='varid'>rest</span><span class='layout'>)</span>-<a name="line-329"></a> <span class='keyglyph'>|</span> <span class='varid'>result</span> <span class='varop'><</span> <span class='num'>0x10000</span>-<a name="line-330"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>Left</span> <span class='layout'>(</span><span class='conid'>NonShortest</span> <span class='num'>4</span> <span class='num'>3</span><span class='layout'>)</span><span class='layout'>,</span> <span class='num'>4</span><span class='layout'>,</span> <span class='varid'>rest</span><span class='layout'>)</span>-<a name="line-331"></a> <span class='keyglyph'>|</span> <span class='varid'>result</span> <span class='varop'>></span> <span class='num'>0x10FFFF</span>-<a name="line-332"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>Left</span> <span class='conid'>ValueOutOfBounds</span><span class='layout'>,</span> <span class='num'>4</span><span class='layout'>,</span> <span class='varid'>rest</span><span class='layout'>)</span>-<a name="line-333"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-334"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>Right</span> <span class='layout'>(</span><span class='varid'>cpToChar</span> <span class='varid'>result</span><span class='layout'>)</span><span class='layout'>,</span> <span class='num'>4</span><span class='layout'>,</span> <span class='varid'>rest</span><span class='layout'>)</span>-<a name="line-335"></a> <span class='keyword'>where</span>-<a name="line-336"></a> <span class='varid'>xs</span><span class='layout'>,</span> <span class='varid'>ys</span><span class='layout'>,</span> <span class='varid'>zs</span><span class='layout'>,</span> <span class='varid'>us</span><span class='layout'>,</span> <span class='varid'>result</span> <span class='keyglyph'>::</span> <span class='conid'>Word32</span>-<a name="line-337"></a> <span class='varid'>xs</span> <span class='keyglyph'>=</span> <span class='varid'>fromIntegral</span> <span class='layout'>(</span><span class='varid'>b4</span> <span class='varop'>.&.</span> <span class='num'>0x3F</span><span class='layout'>)</span>-<a name="line-338"></a> <span class='varid'>ys</span> <span class='keyglyph'>=</span> <span class='varid'>fromIntegral</span> <span class='layout'>(</span><span class='varid'>b3</span> <span class='varop'>.&.</span> <span class='num'>0x3F</span><span class='layout'>)</span>-<a name="line-339"></a> <span class='varid'>zs</span> <span class='keyglyph'>=</span> <span class='varid'>fromIntegral</span> <span class='layout'>(</span><span class='varid'>b2</span> <span class='varop'>.&.</span> <span class='num'>0x3F</span><span class='layout'>)</span>-<a name="line-340"></a> <span class='varid'>us</span> <span class='keyglyph'>=</span> <span class='varid'>fromIntegral</span> <span class='layout'>(</span><span class='varid'>b1</span> <span class='varop'>.&.</span> <span class='num'>0x07</span><span class='layout'>)</span>-<a name="line-341"></a> <span class='varid'>result</span> <span class='keyglyph'>=</span> <span class='varid'>xs</span> <span class='varop'>.|.</span> <span class='varid'>shiftL</span> <span class='varid'>ys</span> <span class='num'>6</span> <span class='varop'>.|.</span> <span class='varid'>shiftL</span> <span class='varid'>zs</span> <span class='num'>12</span> <span class='varop'>.|.</span> <span class='varid'>shiftL</span> <span class='varid'>us</span> <span class='num'>18</span>-<a name="line-342"></a><span class='definition'>decodeOne_fourbyte</span><span class='conid'>[]</span>-<a name="line-343"></a> <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='str'>"UTF8.decodeOne_fourbyte: No input (can't happen)"</span>-<a name="line-344"></a>-<a name="line-345"></a><a name="fourbyte_truncated"></a><span class='definition'>fourbyte_truncated</span> <span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='conid'>Either</span> <span class='conid'>Error</span> <span class='conid'>Char</span><span class='layout'>,</span> <span class='conid'>Int</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='conid'>Word8</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-346"></a><span class='definition'>fourbyte_truncated</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>Left</span> <span class='layout'>(</span><span class='conid'>Truncated</span> <span class='varid'>n</span> <span class='num'>4</span><span class='layout'>)</span><span class='layout'>,</span> <span class='varid'>n</span><span class='layout'>,</span> <span class='conid'>[]</span><span class='layout'>)</span>-<a name="line-347"></a>-<a name="line-348"></a>-<a name="line-349"></a><span class='comment'>-- The decoder examines all input, recording decoded characters as well as</span>-<a name="line-350"></a><span class='comment'>-- error-index pairs along the way.</span>-<a name="line-351"></a>-<a name="line-352"></a><a name="decode"></a><span class='definition'>decode</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>Word8</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='keyglyph'>[</span><span class='conid'>Char</span><span class='keyglyph'>]</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>Error</span><span class='layout'>,</span><span class='conid'>Int</span><span class='layout'>)</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-353"></a><span class='definition'>decode</span> <span class='keyglyph'>=</span> <span class='varid'>swap</span> <span class='varop'>.</span> <span class='varid'>partitionEither</span> <span class='varop'>.</span> <span class='varid'>decodeEmbedErrors</span>-<a name="line-354"></a>-<a name="line-355"></a><a name="decodeEmbedErrors"></a><span class='definition'>decodeEmbedErrors</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>Word8</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>Either</span> <span class='layout'>(</span><span class='conid'>Error</span><span class='layout'>,</span><span class='conid'>Int</span><span class='layout'>)</span> <span class='conid'>Char</span><span class='keyglyph'>]</span>-<a name="line-356"></a><span class='definition'>decodeEmbedErrors</span> <span class='keyglyph'>=</span>-<a name="line-357"></a> <span class='varid'>unfoldr</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='layout'>(</span><span class='varid'>pos</span><span class='layout'>,</span><span class='varid'>xs</span><span class='layout'>)</span> <span class='keyglyph'>-></span>-<a name="line-358"></a> <span class='varid'>toMaybe</span>-<a name="line-359"></a> <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>$</span> <span class='varid'>null</span> <span class='varid'>xs</span><span class='layout'>)</span>-<a name="line-360"></a> <span class='layout'>(</span><span class='keyword'>let</span> <span class='layout'>(</span><span class='varid'>c</span><span class='layout'>,</span><span class='varid'>n</span><span class='layout'>,</span><span class='varid'>rest</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>decodeOne</span> <span class='varid'>xs</span>-<a name="line-361"></a> <span class='keyword'>in</span> <span class='layout'>(</span><span class='varid'>either</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>err</span> <span class='keyglyph'>-></span> <span class='conid'>Left</span> <span class='layout'>(</span><span class='varid'>err</span><span class='layout'>,</span><span class='varid'>pos</span><span class='layout'>)</span><span class='layout'>)</span> <span class='conid'>Right</span> <span class='varid'>c</span><span class='layout'>,</span>-<a name="line-362"></a> <span class='layout'>(</span><span class='varid'>pos</span><span class='varop'>+</span><span class='varid'>n</span><span class='layout'>,</span><span class='varid'>rest</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varop'>.</span>-<a name="line-363"></a> <span class='conid'>(,)</span> <span class='num'>0</span>-</pre></body>-</html>
@@ -1,127 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- |</span>-<a name="line-2"></a><span class='comment'>-- Navigable tree structure which allow a program to traverse</span>-<a name="line-3"></a><span class='comment'>-- up the tree as well as down.</span>-<a name="line-4"></a><span class='comment'>-- copied and modified from HXML (<<a href="http://www.flightlab.com/~joe/hxml/">http://www.flightlab.com/~joe/hxml/</a>>)</span>-<a name="line-5"></a><span class='comment'>--</span>-<a name="line-6"></a>-<a name="line-7"></a><span class='keyword'>module</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>NavTree</span>-<a name="line-8"></a> <span class='layout'>(</span> <span class='keyword'>module</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>NavTree</span>-<a name="line-9"></a> <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Tree</span><span class='varop'>.</span><span class='conid'>NTree</span><span class='varop'>.</span><span class='conid'>TypeDefs</span>-<a name="line-10"></a> <span class='layout'>)</span>-<a name="line-11"></a><span class='keyword'>where</span>-<a name="line-12"></a>-<a name="line-13"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Tree</span><span class='varop'>.</span><span class='conid'>NTree</span><span class='varop'>.</span><span class='conid'>TypeDefs</span>-<a name="line-14"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>-<a name="line-15"></a>-<a name="line-16"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>-<a name="line-17"></a>-<a name="line-18"></a><span class='comment'>-- NavTree</span>-<a name="line-19"></a><span class='comment'>--</span>-<a name="line-20"></a><span class='comment'>-- | navigable tree with nodes of type node</span>-<a name="line-21"></a><span class='comment'>--</span>-<a name="line-22"></a><span class='comment'>-- a navigable tree consists of a n-ary tree for the current fragment tree,</span>-<a name="line-23"></a><span class='comment'>-- a navigable tree for all ancestors, and two n-ary trees for</span>-<a name="line-24"></a><span class='comment'>-- the previous- and following siblings</span>-<a name="line-25"></a>-<a name="line-26"></a><a name="NavTree"></a><span class='keyword'>data</span> <span class='conid'>NavTree</span> <span class='varid'>a</span> <span class='keyglyph'>=</span> <span class='conid'>NT</span>-<a name="line-27"></a> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='comment'>-- self</span>-<a name="line-28"></a> <span class='keyglyph'>[</span><span class='conid'>NavTree</span> <span class='varid'>a</span><span class='keyglyph'>]</span> <span class='comment'>-- ancestors</span>-<a name="line-29"></a> <span class='keyglyph'>[</span><span class='conid'>NTree</span> <span class='varid'>a</span><span class='keyglyph'>]</span> <span class='comment'>-- previous siblings (in reverse order)</span>-<a name="line-30"></a> <span class='keyglyph'>[</span><span class='conid'>NTree</span> <span class='varid'>a</span><span class='keyglyph'>]</span> <span class='comment'>-- following siblings</span>-<a name="line-31"></a> <span class='keyword'>deriving</span> <span class='layout'>(</span><span class='conid'>Show</span><span class='layout'>,</span> <span class='conid'>Eq</span><span class='layout'>,</span> <span class='conid'>Ord</span><span class='layout'>)</span>-<a name="line-32"></a>-<a name="line-33"></a>-<a name="line-34"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>-<a name="line-35"></a>-<a name="line-36"></a>-<a name="line-37"></a><span class='comment'>-- |</span>-<a name="line-38"></a><span class='comment'>-- converts a n-ary tree in a navigable tree</span>-<a name="line-39"></a>-<a name="line-40"></a><a name="ntree"></a><span class='definition'>ntree</span> <span class='keyglyph'>::</span> <span class='conid'>NTree</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>NavTree</span> <span class='varid'>a</span>-<a name="line-41"></a><span class='definition'>ntree</span> <span class='varid'>nd</span>-<a name="line-42"></a> <span class='keyglyph'>=</span> <span class='conid'>NT</span> <span class='varid'>nd</span> <span class='conid'>[]</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-43"></a>-<a name="line-44"></a><span class='comment'>-- |</span>-<a name="line-45"></a><span class='comment'>-- converts a navigable tree in a n-ary tree</span>-<a name="line-46"></a>-<a name="line-47"></a><a name="subtreeNT"></a><span class='definition'>subtreeNT</span> <span class='keyglyph'>::</span> <span class='conid'>NavTree</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>NTree</span> <span class='varid'>a</span>-<a name="line-48"></a><span class='definition'>subtreeNT</span> <span class='layout'>(</span><span class='conid'>NT</span> <span class='varid'>nd</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span>-<a name="line-49"></a> <span class='keyglyph'>=</span> <span class='varid'>nd</span>-<a name="line-50"></a>-<a name="line-51"></a>-<a name="line-52"></a><span class='comment'>-- |</span>-<a name="line-53"></a><span class='comment'>-- function for selecting the value of the current fragment tree</span>-<a name="line-54"></a>-<a name="line-55"></a><a name="dataNT"></a><span class='definition'>dataNT</span> <span class='keyglyph'>::</span> <span class='conid'>NavTree</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='varid'>a</span>-<a name="line-56"></a><span class='definition'>dataNT</span> <span class='layout'>(</span><span class='conid'>NT</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='varid'>a</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span>-<a name="line-57"></a> <span class='keyglyph'>=</span> <span class='varid'>a</span>-<a name="line-58"></a>-<a name="line-59"></a>-<a name="line-60"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>-<a name="line-61"></a>-<a name="line-62"></a><span class='comment'>-- functions for traversing up, down, left and right in a navigable tree</span>-<a name="line-63"></a>-<a name="line-64"></a><a name="upNT"></a><span class='definition'>upNT</span>-<a name="line-65"></a> <span class='layout'>,</span> <span class='varid'>downNT</span>-<a name="line-66"></a> <span class='layout'>,</span> <span class='varid'>leftNT</span>-<a name="line-67"></a> <span class='layout'>,</span> <span class='varid'>rightNT</span> <span class='keyglyph'>::</span> <span class='conid'>NavTree</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>Maybe</span> <span class='layout'>(</span><span class='conid'>NavTree</span> <span class='varid'>a</span><span class='layout'>)</span>-<a name="line-68"></a>-<a name="line-69"></a><span class='definition'>upNT</span> <span class='layout'>(</span><span class='conid'>NT</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='varid'>p</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='varid'>p</span>-<a name="line-70"></a><span class='definition'>upNT</span> <span class='layout'>(</span><span class='conid'>NT</span> <span class='keyword'>_</span> <span class='conid'>[]</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>Nothing</span>-<a name="line-71"></a><a name="downNT"></a><span class='definition'>downNT</span> <span class='varid'>t</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NT</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='varid'>c</span><span class='conop'>:</span><span class='varid'>cs</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varid'>u</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='layout'>(</span><span class='conid'>NT</span> <span class='varid'>c</span> <span class='layout'>(</span><span class='varid'>t</span><span class='conop'>:</span><span class='varid'>u</span><span class='layout'>)</span> <span class='conid'>[]</span> <span class='varid'>cs</span><span class='layout'>)</span>-<a name="line-72"></a><span class='definition'>downNT</span> <span class='layout'>(</span><span class='conid'>NT</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='keyword'>_</span> <span class='conid'>[]</span> <span class='layout'>)</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>Nothing</span>-<a name="line-73"></a><a name="leftNT"></a><span class='definition'>leftNT</span> <span class='layout'>(</span><span class='conid'>NT</span> <span class='varid'>s</span> <span class='varid'>u</span> <span class='layout'>(</span><span class='varid'>l</span><span class='conop'>:</span><span class='varid'>ls</span><span class='layout'>)</span> <span class='varid'>r</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='layout'>(</span><span class='conid'>NT</span> <span class='varid'>l</span> <span class='varid'>u</span> <span class='varid'>ls</span> <span class='layout'>(</span><span class='varid'>s</span><span class='conop'>:</span><span class='varid'>r</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-74"></a><span class='definition'>leftNT</span> <span class='layout'>(</span><span class='conid'>NT</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='conid'>[]</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>Nothing</span>-<a name="line-75"></a><a name="rightNT"></a><span class='definition'>rightNT</span> <span class='layout'>(</span><span class='conid'>NT</span> <span class='varid'>s</span> <span class='varid'>u</span> <span class='varid'>l</span> <span class='layout'>(</span><span class='varid'>r</span><span class='conop'>:</span><span class='varid'>rs</span><span class='layout'>)</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='layout'>(</span><span class='conid'>NT</span> <span class='varid'>r</span> <span class='varid'>u</span> <span class='layout'>(</span><span class='varid'>s</span><span class='conop'>:</span><span class='varid'>l</span><span class='layout'>)</span> <span class='varid'>rs</span><span class='layout'>)</span>-<a name="line-76"></a><span class='definition'>rightNT</span> <span class='layout'>(</span><span class='conid'>NT</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='conid'>[]</span> <span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>Nothing</span>-<a name="line-77"></a>-<a name="line-78"></a>-<a name="line-79"></a><span class='comment'>-- preorderNT t = t : concatMap preorderNT (children t)</span>-<a name="line-80"></a><span class='comment'>-- where children = maybe [] (maybeStar rightNT) . downNT</span>-<a name="line-81"></a>-<a name="line-82"></a><a name="preorderNT"></a><span class='definition'>preorderNT</span> <span class='keyglyph'>::</span> <span class='conid'>NavTree</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>NavTree</span> <span class='varid'>a</span><span class='keyglyph'>]</span>-<a name="line-83"></a><span class='definition'>preorderNT</span>-<a name="line-84"></a> <span class='keyglyph'>=</span> <span class='varid'>visit</span> <span class='conid'>[]</span>-<a name="line-85"></a> <span class='keyword'>where</span>-<a name="line-86"></a> <span class='varid'>visit</span> <span class='varid'>k</span> <span class='varid'>t</span> <span class='keyglyph'>=</span> <span class='varid'>t</span> <span class='conop'>:</span> <span class='varid'>maybe</span> <span class='varid'>k</span> <span class='layout'>(</span><span class='varid'>visit'</span> <span class='varid'>k</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>downNT</span> <span class='varid'>t</span><span class='layout'>)</span>-<a name="line-87"></a> <span class='varid'>visit'</span> <span class='varid'>k</span> <span class='varid'>t</span> <span class='keyglyph'>=</span> <span class='varid'>visit</span> <span class='layout'>(</span><span class='varid'>maybe</span> <span class='varid'>k</span> <span class='layout'>(</span><span class='varid'>visit'</span> <span class='varid'>k</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>rightNT</span> <span class='varid'>t</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varid'>t</span>-<a name="line-88"></a>-<a name="line-89"></a><a name="revPreorderNT"></a><span class='definition'>revPreorderNT</span> <span class='keyglyph'>::</span> <span class='conid'>NavTree</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>NavTree</span> <span class='varid'>a</span><span class='keyglyph'>]</span>-<a name="line-90"></a><span class='definition'>revPreorderNT</span> <span class='varid'>t</span>-<a name="line-91"></a> <span class='keyglyph'>=</span> <span class='varid'>t</span> <span class='conop'>:</span> <span class='varid'>concatMap</span> <span class='varid'>revPreorderNT</span> <span class='layout'>(</span><span class='varid'>reverse</span> <span class='layout'>(</span><span class='varid'>children</span> <span class='varid'>t</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-92"></a> <span class='keyword'>where</span>-<a name="line-93"></a> <span class='varid'>children</span> <span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='conid'>[]</span> <span class='layout'>(</span><span class='varid'>maybeStar</span> <span class='varid'>rightNT</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>downNT</span>-<a name="line-94"></a>-<a name="line-95"></a><a name="getChildrenNT"></a><span class='definition'>getChildrenNT</span> <span class='keyglyph'>::</span> <span class='conid'>NavTree</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>NavTree</span> <span class='varid'>a</span><span class='keyglyph'>]</span>-<a name="line-96"></a><span class='definition'>getChildrenNT</span> <span class='varid'>node</span>-<a name="line-97"></a> <span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='conid'>[]</span> <span class='varid'>follow</span> <span class='layout'>(</span><span class='varid'>downNT</span> <span class='varid'>node</span><span class='layout'>)</span>-<a name="line-98"></a> <span class='keyword'>where</span>-<a name="line-99"></a> <span class='varid'>follow</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='varid'>n</span> <span class='conop'>:</span> <span class='varid'>maybe</span> <span class='conid'>[]</span> <span class='varid'>follow</span> <span class='layout'>(</span><span class='varid'>rightNT</span> <span class='varid'>n</span><span class='layout'>)</span>-<a name="line-100"></a>-<a name="line-101"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>-<a name="line-102"></a><span class='comment'>-- Miscellaneous useful combinators</span>-<a name="line-103"></a>-<a name="line-104"></a><span class='comment'>-- |</span>-<a name="line-105"></a><span class='comment'>-- Kleisli composition:</span>-<a name="line-106"></a>-<a name="line-107"></a><a name="o'"></a><span class='definition'>o'</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Monad</span> <span class='varid'>m</span><span class='layout'>)</span> <span class='keyglyph'>=></span> <span class='layout'>(</span><span class='varid'>b</span> <span class='keyglyph'>-></span> <span class='varid'>m</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='varid'>m</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='varid'>m</span> <span class='varid'>c</span><span class='layout'>)</span>-<a name="line-108"></a><a name="o'"></a><span class='definition'>f</span> <span class='varop'>`o'`</span> <span class='varid'>g</span> <span class='keyglyph'>=</span> <span class='keyglyph'>\</span><span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='varid'>g</span> <span class='varid'>x</span> <span class='varop'>>>=</span> <span class='varid'>f</span>-<a name="line-109"></a>-<a name="line-110"></a>-<a name="line-111"></a><span class='comment'>-- Some useful anamorphisms:</span>-<a name="line-112"></a>-<a name="line-113"></a><a name="maybeStar"></a><span class='definition'>maybeStar</span><span class='layout'>,</span> <span class='varid'>maybePlus</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>Maybe</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span>-<a name="line-114"></a><span class='definition'>maybeStar</span> <span class='varid'>f</span> <span class='varid'>a</span> <span class='keyglyph'>=</span> <span class='varid'>a</span> <span class='conop'>:</span> <span class='varid'>maybe</span> <span class='conid'>[]</span> <span class='layout'>(</span><span class='varid'>maybeStar</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>f</span> <span class='varid'>a</span><span class='layout'>)</span>-<a name="line-115"></a><a name="maybePlus"></a><span class='definition'>maybePlus</span> <span class='varid'>f</span> <span class='varid'>a</span> <span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='conid'>[]</span> <span class='layout'>(</span><span class='varid'>maybeStar</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>f</span> <span class='varid'>a</span><span class='layout'>)</span>-<a name="line-116"></a>-<a name="line-117"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Data-Tree-Class.html
@@ -1,102 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Data.Tree.Class-<a name="line-5"></a> Copyright : Copyright (C) 2005 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)-<a name="line-9"></a> Stability : experimental-<a name="line-10"></a> Portability: portable-<a name="line-11"></a>-<a name="line-12"></a> Interface definition for trees-<a name="line-13"></a>-}</span>-<a name="line-14"></a>-<a name="line-15"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-16"></a>-<a name="line-17"></a><span class='keyword'>module</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Tree</span><span class='varop'>.</span><span class='conid'>Class</span>-<a name="line-18"></a> <span class='layout'>(</span> <span class='keyword'>module</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Tree</span><span class='varop'>.</span><span class='conid'>Class</span> <span class='layout'>)</span>-<a name="line-19"></a><span class='keyword'>where</span>-<a name="line-20"></a>-<a name="line-21"></a><span class='comment'>-- | The interface for trees</span>-<a name="line-22"></a>-<a name="line-23"></a><a name="Tree"></a><span class='keyword'>class</span> <span class='conid'>Tree</span> <span class='varid'>t</span> <span class='keyword'>where</span>-<a name="line-24"></a> <span class='comment'>-- | tree construction: a new tree is constructed by a node attribute and a list of children</span>-<a name="line-25"></a> <span class='varid'>mkTree</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='varid'>t</span> <span class='varid'>a</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='varid'>t</span> <span class='varid'>a</span>-<a name="line-26"></a>-<a name="line-27"></a> <span class='comment'>-- | leaf construction: leafs don't have any children</span>-<a name="line-28"></a> <span class='comment'>--</span>-<a name="line-29"></a> <span class='comment'>-- definition: @ mkLeaf n = mkTree n [] @</span>-<a name="line-30"></a>-<a name="line-31"></a> <span class='varid'>mkLeaf</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='varid'>t</span> <span class='varid'>a</span>-<a name="line-32"></a> <span class='varid'>mkLeaf</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='varid'>mkTree</span> <span class='varid'>n</span> <span class='conid'>[]</span>-<a name="line-33"></a>-<a name="line-34"></a> <span class='comment'>-- | leaf test: list of children empty?</span>-<a name="line-35"></a>-<a name="line-36"></a> <span class='varid'>isLeaf</span> <span class='keyglyph'>::</span> <span class='varid'>t</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-37"></a> <span class='varid'>isLeaf</span> <span class='keyglyph'>=</span> <span class='varid'>null</span> <span class='varop'>.</span> <span class='varid'>getChildren</span>-<a name="line-38"></a>-<a name="line-39"></a> <span class='comment'>-- | innner node test: @ not . isLeaf @</span>-<a name="line-40"></a>-<a name="line-41"></a> <span class='varid'>isInner</span> <span class='keyglyph'>::</span> <span class='varid'>t</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-42"></a> <span class='varid'>isInner</span> <span class='keyglyph'>=</span> <span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>isLeaf</span>-<a name="line-43"></a>-<a name="line-44"></a> <span class='comment'>-- | select node attribute</span>-<a name="line-45"></a>-<a name="line-46"></a> <span class='varid'>getNode</span> <span class='keyglyph'>::</span> <span class='varid'>t</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='varid'>a</span>-<a name="line-47"></a>-<a name="line-48"></a> <span class='comment'>-- | select children</span>-<a name="line-49"></a>-<a name="line-50"></a> <span class='varid'>getChildren</span> <span class='keyglyph'>::</span> <span class='varid'>t</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='varid'>t</span> <span class='varid'>a</span><span class='keyglyph'>]</span>-<a name="line-51"></a>-<a name="line-52"></a> <span class='comment'>-- | edit node attribute</span>-<a name="line-53"></a>-<a name="line-54"></a> <span class='varid'>changeNode</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>t</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='varid'>t</span> <span class='varid'>a</span>-<a name="line-55"></a>-<a name="line-56"></a> <span class='comment'>-- | edit children</span>-<a name="line-57"></a>-<a name="line-58"></a> <span class='varid'>changeChildren</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='keyglyph'>[</span><span class='varid'>t</span> <span class='varid'>a</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='varid'>t</span> <span class='varid'>a</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>t</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='varid'>t</span> <span class='varid'>a</span>-<a name="line-59"></a>-<a name="line-60"></a> <span class='comment'>-- | substitute node: @ setNode n = changeNode (const n) @</span>-<a name="line-61"></a>-<a name="line-62"></a> <span class='varid'>setNode</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='varid'>t</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='varid'>t</span> <span class='varid'>a</span>-<a name="line-63"></a> <span class='varid'>setNode</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='varid'>changeNode</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varid'>n</span><span class='layout'>)</span>-<a name="line-64"></a>-<a name="line-65"></a> <span class='comment'>-- | substitute children: @ setChildren cl = changeChildren (const cl) @</span>-<a name="line-66"></a>-<a name="line-67"></a> <span class='varid'>setChildren</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='varid'>t</span> <span class='varid'>a</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='varid'>t</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='varid'>t</span> <span class='varid'>a</span>-<a name="line-68"></a> <span class='varid'>setChildren</span> <span class='varid'>cl</span> <span class='keyglyph'>=</span> <span class='varid'>changeChildren</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varid'>cl</span><span class='layout'>)</span>-<a name="line-69"></a>-<a name="line-70"></a> <span class='comment'>-- | fold for trees</span>-<a name="line-71"></a>-<a name="line-72"></a> <span class='varid'>foldTree</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>t</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='varid'>b</span>-<a name="line-73"></a>-<a name="line-74"></a> <span class='comment'>-- | all nodes of a tree</span>-<a name="line-75"></a>-<a name="line-76"></a> <span class='varid'>nodesTree</span> <span class='keyglyph'>::</span> <span class='varid'>t</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span>-<a name="line-77"></a>-<a name="line-78"></a> <span class='comment'>-- | depth of a tree</span>-<a name="line-79"></a>-<a name="line-80"></a> <span class='varid'>depthTree</span> <span class='keyglyph'>::</span> <span class='varid'>t</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>Int</span>-<a name="line-81"></a>-<a name="line-82"></a> <span class='comment'>-- | number of nodes in a tree</span>-<a name="line-83"></a>-<a name="line-84"></a> <span class='varid'>cardTree</span> <span class='keyglyph'>::</span> <span class='varid'>t</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>Int</span>-<a name="line-85"></a>-<a name="line-86"></a> <span class='comment'>-- | format tree for readable trace output</span>-<a name="line-87"></a> <span class='comment'>--</span>-<a name="line-88"></a> <span class='comment'>-- a /graphical/ representation of the tree in text format</span>-<a name="line-89"></a>-<a name="line-90"></a> <span class='varid'>formatTree</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>t</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-91"></a>-<a name="line-92"></a><span class='comment'>-- ------------------------------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Data-Tree-NTree-TypeDefs.html
@@ -1,121 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Data.Tree.NTree.TypeDefs-<a name="line-5"></a> Copyright : Copyright (C) 2005-2008 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)-<a name="line-9"></a> Stability : experimental-<a name="line-10"></a> Portability: portable-<a name="line-11"></a>-<a name="line-12"></a> Interface definition for trees-<a name="line-13"></a>-<a name="line-14"></a> n-ary tree structure (rose trees)-<a name="line-15"></a>-<a name="line-16"></a>-}</span>-<a name="line-17"></a>-<a name="line-18"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-19"></a>-<a name="line-20"></a><span class='keyword'>module</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Tree</span><span class='varop'>.</span><span class='conid'>NTree</span><span class='varop'>.</span><span class='conid'>TypeDefs</span>-<a name="line-21"></a> <span class='layout'>(</span> <span class='keyword'>module</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Tree</span><span class='varop'>.</span><span class='conid'>Class</span>-<a name="line-22"></a> <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Tree</span><span class='varop'>.</span><span class='conid'>NTree</span><span class='varop'>.</span><span class='conid'>TypeDefs</span>-<a name="line-23"></a> <span class='layout'>)</span>-<a name="line-24"></a><span class='keyword'>where</span>-<a name="line-25"></a>-<a name="line-26"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Parallel</span><span class='varop'>.</span><span class='conid'>Strategies</span>-<a name="line-27"></a>-<a name="line-28"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Tree</span><span class='varop'>.</span><span class='conid'>Class</span>-<a name="line-29"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Typeable</span>-<a name="line-30"></a>-<a name="line-31"></a><span class='comment'>-- | n-ary ordered tree (rose trees)</span>-<a name="line-32"></a><span class='comment'>--</span>-<a name="line-33"></a><span class='comment'>-- a tree consists of a node and a possible empty list of children.</span>-<a name="line-34"></a><span class='comment'>-- If the list of children is empty, the node is a leaf, else it's</span>-<a name="line-35"></a><span class='comment'>-- an inner node.</span>-<a name="line-36"></a><span class='comment'>--</span>-<a name="line-37"></a><span class='comment'>-- NTree implements Eq, Ord, Show and Read</span>-<a name="line-38"></a>-<a name="line-39"></a><a name="NTree"></a><span class='keyword'>data</span> <span class='conid'>NTree</span> <span class='varid'>a</span> <span class='keyglyph'>=</span> <span class='conid'>NTree</span> <span class='varid'>a</span> <span class='layout'>(</span><span class='conid'>NTrees</span> <span class='varid'>a</span><span class='layout'>)</span>-<a name="line-40"></a> <span class='keyword'>deriving</span>-<a name="line-41"></a> <span class='layout'>(</span><span class='conid'>Eq</span><span class='layout'>,</span> <span class='conid'>Ord</span><span class='layout'>,</span> <span class='conid'>Show</span><span class='layout'>,</span> <span class='conid'>Read</span><span class='layout'>,</span> <span class='conid'>Typeable</span><span class='layout'>)</span>-<a name="line-42"></a>-<a name="line-43"></a><span class='comment'>-- | shortcut for a sequence of n-ary trees</span>-<a name="line-44"></a>-<a name="line-45"></a><a name="NTrees"></a><span class='keyword'>type</span> <span class='conid'>NTrees</span> <span class='varid'>a</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>NTree</span> <span class='varid'>a</span><span class='keyglyph'>]</span>-<a name="line-46"></a>-<a name="line-47"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-48"></a>-<a name="line-49"></a><span class='keyword'>instance</span> <span class='layout'>(</span><span class='conid'>NFData</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>=></span> <span class='conid'>NFData</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyword'>where</span>-<a name="line-50"></a> <span class='varid'>rnf</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='varid'>n</span> <span class='varid'>cl</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>rnf</span> <span class='varid'>n</span> <span class='varop'>`seq`</span> <span class='varid'>rnf</span> <span class='varid'>cl</span>-<a name="line-51"></a>-<a name="line-52"></a><span class='comment'>-- | NTree implements class Functor</span>-<a name="line-53"></a>-<a name="line-54"></a><span class='keyword'>instance</span> <span class='conid'>Functor</span> <span class='conid'>NTree</span> <span class='keyword'>where</span>-<a name="line-55"></a> <span class='varid'>fmap</span> <span class='varid'>f</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='conid'>NTree</span> <span class='varid'>n</span> <span class='varid'>cl</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>NTree</span> <span class='layout'>(</span><span class='varid'>f</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>fmap</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='varid'>cl</span><span class='layout'>)</span>-<a name="line-56"></a>-<a name="line-57"></a>-<a name="line-58"></a><span class='comment'>-- | Implementation of "Data.Tree.Class" interface for rose trees</span>-<a name="line-59"></a>-<a name="line-60"></a><span class='keyword'>instance</span> <span class='conid'>Tree</span> <span class='conid'>NTree</span> <span class='keyword'>where</span>-<a name="line-61"></a> <span class='varid'>mkTree</span> <span class='varid'>n</span> <span class='varid'>cl</span> <span class='keyglyph'>=</span> <span class='conid'>NTree</span> <span class='varid'>n</span> <span class='varid'>cl</span>-<a name="line-62"></a>-<a name="line-63"></a> <span class='varid'>getNode</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='conid'>NTree</span> <span class='varid'>n</span> <span class='keyword'>_</span> <span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>n</span>-<a name="line-64"></a> <span class='varid'>getChildren</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='conid'>NTree</span> <span class='keyword'>_</span> <span class='varid'>cl</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>cl</span>-<a name="line-65"></a>-<a name="line-66"></a> <span class='varid'>changeNode</span> <span class='varid'>cf</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='conid'>NTree</span> <span class='varid'>n</span> <span class='varid'>cl</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>NTree</span> <span class='layout'>(</span><span class='varid'>cf</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='varid'>cl</span>-<a name="line-67"></a> <span class='varid'>changeChildren</span> <span class='varid'>cf</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='conid'>NTree</span> <span class='varid'>n</span> <span class='varid'>cl</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>NTree</span> <span class='varid'>n</span> <span class='layout'>(</span><span class='varid'>cf</span> <span class='varid'>cl</span><span class='layout'>)</span>-<a name="line-68"></a>-<a name="line-69"></a> <span class='varid'>foldTree</span> <span class='varid'>f</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='conid'>NTree</span> <span class='varid'>n</span> <span class='varid'>cs</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varid'>n</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>foldTree</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='varid'>cs</span><span class='layout'>)</span>-<a name="line-70"></a>-<a name="line-71"></a> <span class='varid'>nodesTree</span> <span class='keyglyph'>=</span> <span class='varid'>foldTree</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='varid'>rs</span> <span class='keyglyph'>-></span> <span class='varid'>n</span> <span class='conop'>:</span> <span class='varid'>concat</span> <span class='varid'>rs</span><span class='layout'>)</span>-<a name="line-72"></a> <span class='varid'>depthTree</span> <span class='keyglyph'>=</span> <span class='varid'>foldTree</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='keyword'>_</span> <span class='varid'>rs</span> <span class='keyglyph'>-></span> <span class='num'>1</span> <span class='varop'>+</span> <span class='varid'>maximum</span> <span class='layout'>(</span><span class='num'>0</span> <span class='conop'>:</span> <span class='varid'>rs</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-73"></a> <span class='varid'>cardTree</span> <span class='keyglyph'>=</span> <span class='varid'>foldTree</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='keyword'>_</span> <span class='varid'>rs</span> <span class='keyglyph'>-></span> <span class='num'>1</span> <span class='varop'>+</span> <span class='varid'>sum</span> <span class='varid'>rs</span><span class='layout'>)</span>-<a name="line-74"></a> <span class='varid'>formatTree</span> <span class='varid'>nf</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='varid'>formatNTreeF</span> <span class='varid'>nf</span> <span class='layout'>(</span><span class='varid'>showString</span> <span class='str'>"---"</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>showString</span> <span class='str'>" "</span><span class='layout'>)</span> <span class='varid'>n</span> <span class='str'>""</span>-<a name="line-75"></a>-<a name="line-76"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-77"></a><span class='comment'>-- |</span>-<a name="line-78"></a><span class='comment'>-- convert a tree into a pseudo graphical string reprsentation</span>-<a name="line-79"></a>-<a name="line-80"></a><a name="formatNTreeF"></a><span class='definition'>formatNTreeF</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>node</span> <span class='keyglyph'>-></span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>NTree</span> <span class='varid'>node</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-81"></a>-<a name="line-82"></a><span class='definition'>formatNTreeF</span> <span class='varid'>node2String</span> <span class='varid'>pf1</span> <span class='varid'>pf2</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='varid'>n</span> <span class='varid'>l</span><span class='layout'>)</span>-<a name="line-83"></a> <span class='keyglyph'>=</span> <span class='varid'>formatNode</span>-<a name="line-84"></a> <span class='varop'>.</span> <span class='varid'>formatChildren</span> <span class='varid'>pf2</span> <span class='varid'>l</span>-<a name="line-85"></a> <span class='keyword'>where</span>-<a name="line-86"></a> <span class='varid'>formatNode</span> <span class='keyglyph'>=</span> <span class='varid'>pf1</span> <span class='varop'>.</span> <span class='varid'>foldr</span> <span class='layout'>(</span><span class='varop'>.</span><span class='layout'>)</span> <span class='varid'>id</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>trNL</span> <span class='layout'>(</span><span class='varid'>node2String</span> <span class='varid'>n</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>showNL</span>-<a name="line-87"></a> <span class='varid'>trNL</span> <span class='chr'>'\n'</span> <span class='keyglyph'>=</span> <span class='varid'>showNL</span> <span class='varop'>.</span> <span class='varid'>pf2</span>-<a name="line-88"></a> <span class='varid'>trNL</span> <span class='varid'>c</span> <span class='keyglyph'>=</span> <span class='varid'>showChar</span> <span class='varid'>c</span>-<a name="line-89"></a> <span class='varid'>showNL</span> <span class='keyglyph'>=</span> <span class='varid'>showChar</span> <span class='chr'>'\n'</span>-<a name="line-90"></a> <span class='varid'>formatChildren</span> <span class='keyword'>_</span> <span class='conid'>[]</span>-<a name="line-91"></a> <span class='keyglyph'>=</span> <span class='varid'>id</span>-<a name="line-92"></a> <span class='varid'>formatChildren</span> <span class='varid'>pf</span> <span class='layout'>(</span><span class='varid'>t</span><span class='conop'>:</span><span class='varid'>ts</span><span class='layout'>)</span>-<a name="line-93"></a> <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>ts</span>-<a name="line-94"></a> <span class='keyglyph'>=</span> <span class='varid'>pfl'</span>-<a name="line-95"></a> <span class='varop'>.</span> <span class='varid'>formatTr</span> <span class='varid'>pf2'</span> <span class='varid'>t</span>-<a name="line-96"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-97"></a> <span class='keyglyph'>=</span> <span class='varid'>pfl'</span>-<a name="line-98"></a> <span class='varop'>.</span> <span class='varid'>formatTr</span> <span class='varid'>pf1'</span> <span class='varid'>t</span>-<a name="line-99"></a> <span class='varop'>.</span> <span class='varid'>formatChildren</span> <span class='varid'>pf</span> <span class='varid'>ts</span>-<a name="line-100"></a> <span class='keyword'>where</span>-<a name="line-101"></a> <span class='varid'>pf0'</span> <span class='keyglyph'>=</span> <span class='varid'>pf</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='varid'>indent1</span>-<a name="line-102"></a> <span class='varid'>pf1'</span> <span class='keyglyph'>=</span> <span class='varid'>pf</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='varid'>indent2</span>-<a name="line-103"></a> <span class='varid'>pf2'</span> <span class='keyglyph'>=</span> <span class='varid'>pf</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='varid'>indent3</span>-<a name="line-104"></a> <span class='varid'>pfl'</span> <span class='keyglyph'>=</span> <span class='varid'>pf</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='varid'>indent4</span>-<a name="line-105"></a> <span class='varid'>formatTr</span> <span class='keyglyph'>=</span> <span class='varid'>formatNTreeF</span> <span class='varid'>node2String</span> <span class='varid'>pf0'</span>-<a name="line-106"></a> <span class='varid'>indent1</span> <span class='keyglyph'>=</span> <span class='str'>"+---"</span>-<a name="line-107"></a> <span class='varid'>indent2</span> <span class='keyglyph'>=</span> <span class='str'>"| "</span>-<a name="line-108"></a> <span class='varid'>indent3</span> <span class='keyglyph'>=</span> <span class='str'>" "</span>-<a name="line-109"></a> <span class='varid'>indent4</span> <span class='keyglyph'>=</span> <span class='str'>"|\n"</span>-<a name="line-110"></a>-<a name="line-111"></a><span class='comment'>-- eof ------------------------------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-Arrow-DTDProcessing.html
@@ -1,523 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Text.XML.HXT.Arrow.DTDProcessing-<a name="line-5"></a> Copyright : Copyright (C) 2005 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe@fh-wedel.de)-<a name="line-9"></a> Stability : experimental-<a name="line-10"></a> Portability: portable-<a name="line-11"></a> Version : $Id: DTDProcessing.hs,v 1.9 2006/05/11 14:47:19 hxml Exp $-<a name="line-12"></a>-<a name="line-13"></a> DTD processing function for-<a name="line-14"></a> including external parts of a DTD-<a name="line-15"></a> parameter entity substitution and general entity substitution-<a name="line-16"></a>-<a name="line-17"></a> Implemtation completely done with arrows-<a name="line-18"></a>-<a name="line-19"></a>-}</span>-<a name="line-20"></a>-<a name="line-21"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-22"></a>-<a name="line-23"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>DTDProcessing</span>-<a name="line-24"></a> <span class='layout'>(</span> <span class='varid'>processDTD</span>-<a name="line-25"></a> <span class='layout'>)</span>-<a name="line-26"></a><span class='keyword'>where</span>-<a name="line-27"></a>-<a name="line-28"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span> <span class='comment'>-- arrow classes</span>-<a name="line-29"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowList</span>-<a name="line-30"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowIf</span>-<a name="line-31"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowTree</span>-<a name="line-32"></a>-<a name="line-33"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>-<a name="line-34"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlNode</span> <span class='keyword'>as</span> <span class='conid'>XN</span>-<a name="line-35"></a>-<a name="line-36"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlArrow</span>-<a name="line-37"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlIOStateArrow</span>-<a name="line-38"></a>-<a name="line-39"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ParserInterface</span>-<a name="line-40"></a> <span class='layout'>(</span> <span class='varid'>parseXmlDTDdecl</span>-<a name="line-41"></a> <span class='layout'>,</span> <span class='varid'>parseXmlDTDdeclPart</span>-<a name="line-42"></a> <span class='layout'>,</span> <span class='varid'>parseXmlDTDEntityValue</span>-<a name="line-43"></a> <span class='layout'>,</span> <span class='varid'>parseXmlDTDPart</span>-<a name="line-44"></a> <span class='layout'>)</span>-<a name="line-45"></a>-<a name="line-46"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>Edit</span>-<a name="line-47"></a> <span class='layout'>(</span> <span class='varid'>transfCharRef</span>-<a name="line-48"></a> <span class='layout'>)</span>-<a name="line-49"></a>-<a name="line-50"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>DocumentInput</span>-<a name="line-51"></a> <span class='layout'>(</span> <span class='varid'>getXmlEntityContents</span>-<a name="line-52"></a> <span class='layout'>)</span>-<a name="line-53"></a>-<a name="line-54"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>-<a name="line-55"></a>-<a name="line-56"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Map</span> <span class='keyword'>as</span> <span class='conid'>M</span>-<a name="line-57"></a> <span class='layout'>(</span> <span class='conid'>Map</span>-<a name="line-58"></a> <span class='layout'>,</span> <span class='varid'>empty</span>-<a name="line-59"></a> <span class='layout'>,</span> <span class='varid'>lookup</span>-<a name="line-60"></a> <span class='layout'>,</span> <span class='varid'>insert</span>-<a name="line-61"></a> <span class='layout'>)</span>-<a name="line-62"></a>-<a name="line-63"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-64"></a><span class='comment'>--</span>-<a name="line-65"></a>-<a name="line-66"></a><a name="DTDPart"></a><span class='keyword'>data</span> <span class='conid'>DTDPart</span> <span class='keyglyph'>=</span> <span class='conid'>Internal</span>-<a name="line-67"></a> <span class='keyglyph'>|</span> <span class='conid'>External</span>-<a name="line-68"></a> <span class='keyword'>deriving</span> <span class='layout'>(</span><span class='conid'>Eq</span><span class='layout'>)</span>-<a name="line-69"></a>-<a name="line-70"></a><a name="RecList"></a><span class='keyword'>type</span> <span class='conid'>RecList</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span>-<a name="line-71"></a>-<a name="line-72"></a><a name="DTDStateArrow"></a><span class='keyword'>type</span> <span class='conid'>DTDStateArrow</span> <span class='varid'>b</span> <span class='varid'>c</span> <span class='keyglyph'>=</span> <span class='conid'>IOStateArrow</span> <span class='conid'>PEEnv</span> <span class='varid'>b</span> <span class='varid'>c</span>-<a name="line-73"></a>-<a name="line-74"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-75"></a>-<a name="line-76"></a><a name="PEEnv"></a><span class='keyword'>newtype</span> <span class='conid'>PEEnv</span> <span class='keyglyph'>=</span> <span class='conid'>PEEnv</span> <span class='layout'>(</span><span class='conid'>M</span><span class='varop'>.</span><span class='conid'>Map</span> <span class='conid'>String</span> <span class='conid'>XmlTree</span><span class='layout'>)</span>-<a name="line-77"></a>-<a name="line-78"></a><a name="emptyPeEnv"></a><span class='definition'>emptyPeEnv</span> <span class='keyglyph'>::</span> <span class='conid'>PEEnv</span>-<a name="line-79"></a><span class='definition'>emptyPeEnv</span> <span class='keyglyph'>=</span> <span class='conid'>PEEnv</span> <span class='conid'>M</span><span class='varop'>.</span><span class='varid'>empty</span>-<a name="line-80"></a>-<a name="line-81"></a><a name="lookupPeEnv"></a><span class='definition'>lookupPeEnv</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>PEEnv</span> <span class='keyglyph'>-></span> <span class='conid'>Maybe</span> <span class='conid'>XmlTree</span>-<a name="line-82"></a><span class='definition'>lookupPeEnv</span> <span class='varid'>k</span> <span class='layout'>(</span><span class='conid'>PEEnv</span> <span class='varid'>env</span><span class='layout'>)</span>-<a name="line-83"></a> <span class='keyglyph'>=</span> <span class='conid'>M</span><span class='varop'>.</span><span class='varid'>lookup</span> <span class='varid'>k</span> <span class='varid'>env</span>-<a name="line-84"></a>-<a name="line-85"></a><a name="addPeEntry"></a><span class='definition'>addPeEntry</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>PEEnv</span> <span class='keyglyph'>-></span> <span class='conid'>PEEnv</span>-<a name="line-86"></a><span class='definition'>addPeEntry</span> <span class='varid'>k</span> <span class='varid'>a</span> <span class='layout'>(</span><span class='conid'>PEEnv</span> <span class='varid'>env</span><span class='layout'>)</span>-<a name="line-87"></a> <span class='keyglyph'>=</span> <span class='conid'>PEEnv</span> <span class='varop'>$</span> <span class='conid'>M</span><span class='varop'>.</span><span class='varid'>insert</span> <span class='varid'>k</span> <span class='varid'>a</span> <span class='varid'>env</span>-<a name="line-88"></a>-<a name="line-89"></a><a name="getPeValue"></a><span class='definition'>getPeValue</span> <span class='keyglyph'>::</span> <span class='conid'>DTDStateArrow</span> <span class='conid'>String</span> <span class='conid'>XmlTree</span>-<a name="line-90"></a><span class='definition'>getPeValue</span>-<a name="line-91"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>this</span> <span class='varop'>&&&</span> <span class='varid'>getUserState</span><span class='layout'>)</span>-<a name="line-92"></a> <span class='varop'>>>></span>-<a name="line-93"></a> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='layout'>(</span><span class='varid'>n</span><span class='layout'>,</span> <span class='varid'>env</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>maybeToList</span> <span class='varop'>.</span> <span class='varid'>lookupPeEnv</span> <span class='varid'>n</span> <span class='varop'>$</span> <span class='varid'>env</span><span class='layout'>)</span>-<a name="line-94"></a>-<a name="line-95"></a><a name="addPe"></a><span class='definition'>addPe</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>DTDStateArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-96"></a><span class='definition'>addPe</span> <span class='varid'>n</span>-<a name="line-97"></a> <span class='keyglyph'>=</span> <span class='varid'>traceMsg</span> <span class='num'>2</span> <span class='layout'>(</span><span class='str'>"substParamEntity: add entity "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span> <span class='varop'>++</span> <span class='str'>" to env"</span><span class='layout'>)</span>-<a name="line-98"></a> <span class='varop'>>>></span>-<a name="line-99"></a> <span class='varid'>changeUserState</span> <span class='varid'>ins</span>-<a name="line-100"></a> <span class='keyword'>where</span>-<a name="line-101"></a> <span class='varid'>ins</span> <span class='varid'>t</span> <span class='varid'>peEnv</span> <span class='keyglyph'>=</span> <span class='varid'>addPeEntry</span> <span class='varid'>n</span> <span class='varid'>t</span> <span class='varid'>peEnv</span>-<a name="line-102"></a>-<a name="line-103"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-104"></a>-<a name="line-105"></a><span class='comment'>-- |</span>-<a name="line-106"></a><span class='comment'>-- a filter for DTD processing</span>-<a name="line-107"></a><span class='comment'>--</span>-<a name="line-108"></a><span class='comment'>-- inclusion of external parts of DTD,</span>-<a name="line-109"></a><span class='comment'>-- parameter entity substitution</span>-<a name="line-110"></a><span class='comment'>-- conditional section evaluation</span>-<a name="line-111"></a><span class='comment'>--</span>-<a name="line-112"></a><span class='comment'>-- input tree must represent a complete document including root node</span>-<a name="line-113"></a>-<a name="line-114"></a><a name="processDTD"></a><span class='definition'>processDTD</span> <span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-115"></a><span class='definition'>processDTD</span>-<a name="line-116"></a> <span class='keyglyph'>=</span> <span class='varid'>runInLocalURIContext</span>-<a name="line-117"></a> <span class='layout'>(</span> <span class='varid'>processRoot</span>-<a name="line-118"></a> <span class='varop'>>>></span>-<a name="line-119"></a> <span class='varid'>traceTree</span>-<a name="line-120"></a> <span class='varop'>>>></span>-<a name="line-121"></a> <span class='varid'>traceSource</span>-<a name="line-122"></a> <span class='layout'>)</span>-<a name="line-123"></a> <span class='varop'>`when`</span> <span class='layout'>(</span> <span class='varid'>isRoot</span> <span class='varop'>>>></span> <span class='varid'>getChildren</span> <span class='layout'>)</span>-<a name="line-124"></a> <span class='keyword'>where</span>-<a name="line-125"></a>-<a name="line-126"></a> <span class='varid'>processRoot</span> <span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-127"></a> <span class='varid'>processRoot</span>-<a name="line-128"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>traceMsg</span> <span class='num'>1</span> <span class='layout'>(</span><span class='str'>"processDTD: process parameter entities"</span><span class='layout'>)</span>-<a name="line-129"></a> <span class='varop'>>>></span>-<a name="line-130"></a> <span class='varid'>setParamString</span> <span class='varid'>a_standalone</span> <span class='str'>""</span>-<a name="line-131"></a> <span class='varop'>>>></span>-<a name="line-132"></a> <span class='layout'>(</span> <span class='varid'>addDocType</span>-<a name="line-133"></a> <span class='varop'>`whenNot`</span>-<a name="line-134"></a> <span class='layout'>(</span> <span class='varid'>getChildren</span> <span class='varop'>>>></span> <span class='varid'>isDTDDoctype</span> <span class='layout'>)</span>-<a name="line-135"></a> <span class='layout'>)</span>-<a name="line-136"></a> <span class='varop'>>>></span>-<a name="line-137"></a> <span class='varid'>processChildren</span> <span class='varid'>substParamEntities</span>-<a name="line-138"></a> <span class='varop'>>>></span>-<a name="line-139"></a> <span class='varid'>setDocumentStatusFromSystemState</span> <span class='str'>"in XML DTD processing"</span>-<a name="line-140"></a> <span class='layout'>)</span>-<a name="line-141"></a> <span class='varop'>`when`</span>-<a name="line-142"></a> <span class='varid'>documentStatusOk</span>-<a name="line-143"></a> <span class='keyword'>where</span>-<a name="line-144"></a> <span class='varid'>addDocType</span>-<a name="line-145"></a> <span class='keyglyph'>=</span> <span class='varid'>replaceChildren</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>>>></span> <span class='varid'>isXmlPi</span><span class='layout'>)</span>-<a name="line-146"></a> <span class='varop'><+></span>-<a name="line-147"></a> <span class='varid'>mkDTDDoctype</span> <span class='conid'>[]</span> <span class='varid'>none</span>-<a name="line-148"></a> <span class='varop'><+></span>-<a name="line-149"></a> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>>>></span> <span class='varid'>neg</span> <span class='varid'>isXmlPi</span><span class='layout'>)</span>-<a name="line-150"></a> <span class='layout'>)</span>-<a name="line-151"></a>-<a name="line-152"></a><a name="substParamEntities"></a><span class='definition'>substParamEntities</span> <span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-153"></a><span class='definition'>substParamEntities</span>-<a name="line-154"></a> <span class='keyglyph'>=</span> <span class='varid'>withOtherUserState</span> <span class='varid'>emptyPeEnv</span> <span class='varid'>processParamEntities</span>-<a name="line-155"></a> <span class='varop'>`when`</span>-<a name="line-156"></a> <span class='varid'>isDTDDoctype</span>-<a name="line-157"></a> <span class='keyword'>where</span>-<a name="line-158"></a>-<a name="line-159"></a> <span class='varid'>processParamEntities</span> <span class='keyglyph'>::</span> <span class='conid'>DTDStateArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-160"></a> <span class='varid'>processParamEntities</span>-<a name="line-161"></a> <span class='keyglyph'>=</span> <span class='varid'>mergeEntities</span> <span class='varop'>$<<<</span> <span class='layout'>(</span> <span class='varid'>listA</span> <span class='varid'>processPredef</span>-<a name="line-162"></a> <span class='varop'>&&&</span>-<a name="line-163"></a> <span class='varid'>listA</span> <span class='varid'>processInt</span>-<a name="line-164"></a> <span class='varop'>&&&</span>-<a name="line-165"></a> <span class='varid'>listA</span> <span class='layout'>(</span><span class='varid'>runInLocalURIContext</span> <span class='varid'>processExt</span><span class='layout'>)</span>-<a name="line-166"></a> <span class='layout'>)</span>-<a name="line-167"></a> <span class='keyword'>where</span>-<a name="line-168"></a> <span class='varid'>mergeEntities</span> <span class='varid'>dtdPre</span> <span class='varid'>dtdInt</span> <span class='varid'>dtdExt</span>-<a name="line-169"></a> <span class='keyglyph'>=</span> <span class='varid'>replaceChildren</span> <span class='layout'>(</span><span class='varid'>arrL</span> <span class='varop'>$</span> <span class='varid'>const</span> <span class='varop'>$</span> <span class='varid'>foldl1</span> <span class='varid'>mergeDTDs</span> <span class='keyglyph'>[</span><span class='varid'>dtdPre</span><span class='layout'>,</span> <span class='varid'>dtdInt</span><span class='layout'>,</span> <span class='varid'>dtdExt</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-170"></a>-<a name="line-171"></a> <span class='varid'>processPredef</span>-<a name="line-172"></a> <span class='keyglyph'>=</span> <span class='varid'>predefDTDPart</span> <span class='varop'>>>></span> <span class='varid'>substParamEntity</span> <span class='conid'>Internal</span> <span class='conid'>[]</span>-<a name="line-173"></a>-<a name="line-174"></a> <span class='varid'>processInt</span>-<a name="line-175"></a> <span class='keyglyph'>=</span> <span class='varid'>getChildren</span> <span class='varop'>>>></span> <span class='varid'>substParamEntity</span> <span class='conid'>Internal</span> <span class='conid'>[]</span>-<a name="line-176"></a>-<a name="line-177"></a> <span class='varid'>processExt</span>-<a name="line-178"></a> <span class='keyglyph'>=</span> <span class='varid'>externalDTDPart</span> <span class='varop'>>>></span> <span class='varid'>substParamEntity</span> <span class='conid'>External</span> <span class='conid'>[]</span>-<a name="line-179"></a>-<a name="line-180"></a> <span class='varid'>mergeDTDs</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span>-<a name="line-181"></a> <span class='varid'>mergeDTDs</span> <span class='varid'>dtdInt</span> <span class='varid'>dtdExt</span>-<a name="line-182"></a> <span class='keyglyph'>=</span> <span class='varid'>dtdInt</span> <span class='varop'>++</span> <span class='layout'>(</span><span class='varid'>filter</span> <span class='layout'>(</span><span class='varid'>filterDTDNodes</span> <span class='varid'>dtdInt</span><span class='layout'>)</span> <span class='varid'>dtdExt</span><span class='layout'>)</span>-<a name="line-183"></a>-<a name="line-184"></a> <span class='varid'>filterDTDNodes</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-185"></a> <span class='varid'>filterDTDNodes</span> <span class='varid'>dtdPart</span> <span class='varid'>t</span>-<a name="line-186"></a> <span class='keyglyph'>=</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>any</span> <span class='layout'>(</span><span class='varid'>filterDTDNode</span> <span class='varid'>t</span><span class='layout'>)</span> <span class='varid'>dtdPart</span><span class='layout'>)</span>-<a name="line-187"></a>-<a name="line-188"></a> <span class='varid'>filterDTDNode</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-189"></a>-<a name="line-190"></a> <span class='varid'>filterDTDNode</span> <span class='varid'>t1</span> <span class='varid'>t2</span>-<a name="line-191"></a> <span class='keyglyph'>=</span> <span class='varid'>fromMaybe</span> <span class='conid'>False</span> <span class='varop'>$</span>-<a name="line-192"></a> <span class='keyword'>do</span>-<a name="line-193"></a> <span class='varid'>dp1</span> <span class='keyglyph'><-</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getDTDPart</span> <span class='varid'>t1</span>-<a name="line-194"></a> <span class='varid'>dp2</span> <span class='keyglyph'><-</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getDTDPart</span> <span class='varid'>t2</span>-<a name="line-195"></a> <span class='varid'>al1</span> <span class='keyglyph'><-</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getDTDAttrl</span> <span class='varid'>t1</span>-<a name="line-196"></a> <span class='varid'>al2</span> <span class='keyglyph'><-</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getDTDAttrl</span> <span class='varid'>t2</span>-<a name="line-197"></a> <span class='varid'>return</span> <span class='layout'>(</span> <span class='varid'>dp1</span> <span class='varop'>==</span> <span class='varid'>dp2</span>-<a name="line-198"></a> <span class='varop'>&&</span>-<a name="line-199"></a> <span class='layout'>(</span> <span class='varid'>dp1</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='conid'>ELEMENT</span><span class='layout'>,</span> <span class='conid'>NOTATION</span><span class='layout'>,</span> <span class='conid'>ENTITY</span><span class='layout'>,</span> <span class='conid'>ATTLIST</span><span class='keyglyph'>]</span> <span class='layout'>)</span>-<a name="line-200"></a> <span class='varop'>&&</span>-<a name="line-201"></a> <span class='layout'>(</span> <span class='varid'>lookup</span> <span class='varid'>a_name</span> <span class='varid'>al1</span> <span class='varop'>==</span> <span class='varid'>lookup</span> <span class='varid'>a_name</span> <span class='varid'>al2</span> <span class='layout'>)</span>-<a name="line-202"></a> <span class='varop'>&&</span>-<a name="line-203"></a> <span class='layout'>(</span> <span class='varid'>dp1</span> <span class='varop'>/=</span> <span class='conid'>ATTLIST</span>-<a name="line-204"></a> <span class='varop'>||</span>-<a name="line-205"></a> <span class='varid'>lookup</span> <span class='varid'>a_value</span> <span class='varid'>al1</span> <span class='varop'>==</span> <span class='varid'>lookup</span> <span class='varid'>a_value</span> <span class='varid'>al2</span>-<a name="line-206"></a> <span class='layout'>)</span>-<a name="line-207"></a> <span class='layout'>)</span>-<a name="line-208"></a>-<a name="line-209"></a><a name="substParamEntity"></a><span class='definition'>substParamEntity</span> <span class='keyglyph'>::</span> <span class='conid'>DTDPart</span> <span class='keyglyph'>-></span> <span class='conid'>RecList</span> <span class='keyglyph'>-></span> <span class='conid'>DTDStateArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-210"></a><span class='definition'>substParamEntity</span> <span class='varid'>loc</span> <span class='varid'>recList</span>-<a name="line-211"></a> <span class='keyglyph'>=</span> <span class='varid'>choiceA</span>-<a name="line-212"></a> <span class='keyglyph'>[</span> <span class='varid'>isDTDEntity</span> <span class='conop'>:-></span> <span class='layout'>(</span> <span class='varid'>traceDTD</span> <span class='str'>"ENTITY declaration before DTD declaration parsing"</span>-<a name="line-213"></a> <span class='varop'>>>></span>-<a name="line-214"></a> <span class='varid'>processChildren</span> <span class='layout'>(</span><span class='varid'>substPeRefsInDTDdecl</span> <span class='varid'>recList</span><span class='layout'>)</span>-<a name="line-215"></a> <span class='varop'>>>></span>-<a name="line-216"></a> <span class='varid'>parseXmlDTDdecl</span>-<a name="line-217"></a> <span class='varop'>>>></span>-<a name="line-218"></a> <span class='varid'>substRefsInEntityValue</span>-<a name="line-219"></a> <span class='varop'>>>></span>-<a name="line-220"></a> <span class='varid'>processEntityDecl</span>-<a name="line-221"></a> <span class='varop'>>>></span>-<a name="line-222"></a> <span class='varid'>traceDTD</span> <span class='str'>"ENTITY declaration after DTD declaration parsing"</span>-<a name="line-223"></a> <span class='layout'>)</span>-<a name="line-224"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>isDTDElement</span>-<a name="line-225"></a> <span class='varop'><+></span>-<a name="line-226"></a> <span class='varid'>isDTDAttlist</span>-<a name="line-227"></a> <span class='varop'><+></span>-<a name="line-228"></a> <span class='varid'>isDTDNotation</span>-<a name="line-229"></a> <span class='layout'>)</span> <span class='conop'>:-></span> <span class='layout'>(</span> <span class='varid'>traceDTD</span> <span class='str'>"DTD declaration before PE substitution"</span>-<a name="line-230"></a> <span class='varop'>>>></span>-<a name="line-231"></a> <span class='varid'>processChildren</span> <span class='layout'>(</span><span class='varid'>substPeRefsInDTDdecl</span> <span class='varid'>recList</span><span class='layout'>)</span>-<a name="line-232"></a> <span class='varop'>>>></span>-<a name="line-233"></a> <span class='varid'>parseXmlDTDdecl</span>-<a name="line-234"></a> <span class='varop'>>>></span>-<a name="line-235"></a> <span class='varid'>traceDTD</span> <span class='str'>"DTD declaration after DTD declaration parsing"</span>-<a name="line-236"></a> <span class='layout'>)</span>-<a name="line-237"></a> <span class='layout'>,</span> <span class='varid'>isDTDPERef</span> <span class='conop'>:-></span> <span class='varid'>substPeRefsInDTDpart</span> <span class='varid'>recList</span>-<a name="line-238"></a>-<a name="line-239"></a> <span class='layout'>,</span> <span class='varid'>isDTDCondSect</span> <span class='conop'>:-></span> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>loc</span> <span class='varop'>==</span> <span class='conid'>Internal</span>-<a name="line-240"></a> <span class='keyword'>then</span> <span class='varid'>issueErr</span> <span class='str'>"conditional sections in internal part of the DTD is not allowed"</span>-<a name="line-241"></a> <span class='keyword'>else</span> <span class='varid'>evalCondSect</span> <span class='varop'>$<</span> <span class='varid'>getDTDAttrValue</span> <span class='varid'>a_value</span>-<a name="line-242"></a> <span class='layout'>)</span>-<a name="line-243"></a> <span class='layout'>,</span> <span class='varid'>isCmt</span> <span class='conop'>:-></span> <span class='varid'>none</span>-<a name="line-244"></a> <span class='layout'>,</span> <span class='varid'>this</span> <span class='conop'>:-></span> <span class='varid'>this</span>-<a name="line-245"></a> <span class='keyglyph'>]</span>-<a name="line-246"></a> <span class='keyword'>where</span>-<a name="line-247"></a> <span class='varid'>processEntityDecl</span> <span class='keyglyph'>::</span> <span class='conid'>DTDStateArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-248"></a> <span class='varid'>processEntityDecl</span>-<a name="line-249"></a> <span class='keyglyph'>=</span> <span class='varid'>choiceA</span>-<a name="line-250"></a> <span class='keyglyph'>[</span> <span class='varid'>isDTDEntity</span> <span class='conop'>:-></span> <span class='layout'>(</span> <span class='varid'>ifA</span> <span class='layout'>(</span><span class='varid'>hasDTDAttr</span> <span class='varid'>k_system</span><span class='layout'>)</span>-<a name="line-251"></a> <span class='varid'>processExternalEntity</span>-<a name="line-252"></a> <span class='varid'>processInternalEntity</span>-<a name="line-253"></a> <span class='layout'>)</span>-<a name="line-254"></a> <span class='layout'>,</span> <span class='varid'>isDTDPEntity</span>-<a name="line-255"></a> <span class='conop'>:-></span> <span class='layout'>(</span> <span class='varid'>processParamEntity</span> <span class='varop'>$<</span> <span class='varid'>getDTDAttrValue</span> <span class='varid'>a_name</span> <span class='layout'>)</span>-<a name="line-256"></a> <span class='layout'>,</span> <span class='varid'>this</span> <span class='conop'>:-></span> <span class='varid'>none</span>-<a name="line-257"></a> <span class='keyglyph'>]</span>-<a name="line-258"></a> <span class='keyword'>where</span>-<a name="line-259"></a> <span class='varid'>processExternalEntity</span> <span class='keyglyph'>::</span> <span class='conid'>DTDStateArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='comment'>-- processing external entities is delayed until first usage</span>-<a name="line-260"></a> <span class='varid'>processExternalEntity</span> <span class='comment'>-- only the current base uri must be remembered</span>-<a name="line-261"></a> <span class='keyglyph'>=</span> <span class='varid'>setDTDAttrValue</span> <span class='varid'>a_url</span> <span class='varop'>$<</span> <span class='layout'>(</span> <span class='varid'>getDTDAttrValue</span> <span class='varid'>k_system</span> <span class='varop'>>>></span> <span class='varid'>mkAbsURI</span> <span class='layout'>)</span>-<a name="line-262"></a>-<a name="line-263"></a> <span class='varid'>processInternalEntity</span> <span class='keyglyph'>::</span> <span class='conid'>DTDStateArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='comment'>-- just combine all parts of the entity value</span>-<a name="line-264"></a> <span class='varid'>processInternalEntity</span> <span class='comment'>-- into one string</span>-<a name="line-265"></a> <span class='keyglyph'>=</span> <span class='varid'>replaceChildren</span> <span class='layout'>(</span><span class='varid'>xshow</span> <span class='varid'>getChildren</span> <span class='varop'>>>></span> <span class='varid'>mkText</span><span class='layout'>)</span>-<a name="line-266"></a>-<a name="line-267"></a> <span class='varid'>processParamEntity</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>DTDStateArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-268"></a> <span class='varid'>processParamEntity</span> <span class='varid'>peName</span>-<a name="line-269"></a> <span class='keyglyph'>=</span> <span class='varid'>ifA</span> <span class='layout'>(</span><span class='varid'>constA</span> <span class='varid'>peName</span> <span class='varop'>>>></span> <span class='varid'>getPeValue</span><span class='layout'>)</span>-<a name="line-270"></a> <span class='layout'>(</span> <span class='varid'>issueWarn</span> <span class='layout'>(</span><span class='str'>"parameter entity "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>peName</span> <span class='varop'>++</span> <span class='str'>" already defined"</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-271"></a> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>ifA</span> <span class='layout'>(</span> <span class='varid'>hasDTDAttr</span> <span class='varid'>k_system</span> <span class='layout'>)</span> <span class='comment'>-- is external param entity ?</span>-<a name="line-272"></a> <span class='layout'>(</span> <span class='varid'>runInLocalURIContext</span> <span class='varid'>getExternalParamEntityValue</span> <span class='layout'>)</span>-<a name="line-273"></a> <span class='layout'>(</span> <span class='varid'>replaceChildren</span> <span class='layout'>(</span><span class='varid'>xshow</span> <span class='varid'>getChildren</span> <span class='varop'>>>></span> <span class='varid'>mkText</span><span class='layout'>)</span> <span class='layout'>)</span> <span class='comment'>-- just combine all parts of the entity value into one string</span>-<a name="line-274"></a> <span class='layout'>)</span>-<a name="line-275"></a> <span class='varop'>>>></span>-<a name="line-276"></a> <span class='varid'>addPe</span> <span class='varid'>peName</span>-<a name="line-277"></a> <span class='layout'>)</span>-<a name="line-278"></a>-<a name="line-279"></a> <span class='varid'>substPERef</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>DTDStateArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-280"></a> <span class='varid'>substPERef</span> <span class='varid'>pn</span>-<a name="line-281"></a> <span class='keyglyph'>=</span> <span class='varid'>choiceA</span>-<a name="line-282"></a> <span class='keyglyph'>[</span> <span class='varid'>isInternalRef</span> <span class='conop'>:-></span> <span class='varid'>issueErr</span> <span class='layout'>(</span><span class='str'>"a parameter entity reference of "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>pn</span> <span class='varop'>++</span> <span class='str'>" occurs in the internal subset of the DTD"</span><span class='layout'>)</span>-<a name="line-283"></a> <span class='layout'>,</span> <span class='varid'>isUndefinedRef</span> <span class='conop'>:-></span> <span class='varid'>issueErr</span> <span class='layout'>(</span><span class='str'>"parameter entity "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>pn</span> <span class='varop'>++</span> <span class='str'>" not found (forward reference?)"</span><span class='layout'>)</span>-<a name="line-284"></a> <span class='layout'>,</span> <span class='varid'>this</span> <span class='conop'>:-></span> <span class='varid'>substPE</span>-<a name="line-285"></a> <span class='keyglyph'>]</span>-<a name="line-286"></a> <span class='varop'>`when`</span>-<a name="line-287"></a> <span class='varid'>isDTDPERef</span>-<a name="line-288"></a> <span class='keyword'>where</span>-<a name="line-289"></a> <span class='varid'>isInternalRef</span> <span class='keyglyph'>=</span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='layout'>(</span><span class='varid'>loc</span> <span class='varop'>==</span> <span class='conid'>Internal</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-290"></a> <span class='varid'>peVal</span> <span class='keyglyph'>=</span> <span class='varid'>constA</span> <span class='varid'>pn</span> <span class='varop'>>>></span> <span class='varid'>getPeValue</span>-<a name="line-291"></a> <span class='varid'>isUndefinedRef</span> <span class='keyglyph'>=</span> <span class='varid'>neg</span> <span class='varid'>peVal</span>-<a name="line-292"></a> <span class='varid'>substPE</span>-<a name="line-293"></a> <span class='keyglyph'>=</span> <span class='varid'>replaceChildren</span> <span class='layout'>(</span><span class='varid'>peVal</span> <span class='varop'>>>></span> <span class='varid'>getChildren</span><span class='layout'>)</span> <span class='comment'>-- store PE value in children component</span>-<a name="line-294"></a> <span class='varop'>>>></span>-<a name="line-295"></a> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>setBase</span> <span class='varop'>$<</span> <span class='layout'>(</span><span class='varid'>peVal</span> <span class='varop'>>>></span> <span class='varid'>getDTDAttrValue</span> <span class='varid'>a_url</span><span class='layout'>)</span> <span class='layout'>)</span> <span class='comment'>-- store base uri for external refs</span>-<a name="line-296"></a> <span class='varop'>`orElse`</span>-<a name="line-297"></a> <span class='varid'>this</span>-<a name="line-298"></a> <span class='layout'>)</span>-<a name="line-299"></a> <span class='keyword'>where</span>-<a name="line-300"></a> <span class='varid'>setBase</span> <span class='varid'>uri</span> <span class='keyglyph'>=</span> <span class='varid'>setDTDAttrValue</span> <span class='varid'>a_url</span> <span class='varid'>uri</span>-<a name="line-301"></a>-<a name="line-302"></a> <span class='varid'>substRefsInEntityValue</span> <span class='keyglyph'>::</span> <span class='conid'>DTDStateArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-303"></a> <span class='varid'>substRefsInEntityValue</span>-<a name="line-304"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>processChildren</span> <span class='layout'>(</span> <span class='varid'>transfCharRef</span>-<a name="line-305"></a> <span class='varop'>>>></span>-<a name="line-306"></a> <span class='varid'>substPeRefsInValue</span> <span class='conid'>[]</span>-<a name="line-307"></a> <span class='layout'>)</span>-<a name="line-308"></a> <span class='layout'>)</span>-<a name="line-309"></a> <span class='varop'>`whenNot`</span>-<a name="line-310"></a> <span class='varid'>hasDTDAttr</span> <span class='varid'>k_system</span> <span class='comment'>-- only apply for internal entities</span>-<a name="line-311"></a> <span class='layout'>)</span>-<a name="line-312"></a> <span class='varop'>`when`</span> -<a name="line-313"></a> <span class='layout'>(</span> <span class='varid'>isDTDEntity</span> <span class='varop'><+></span> <span class='varid'>isDTDPEntity</span> <span class='layout'>)</span> <span class='comment'>-- only apply for entity declarations</span>-<a name="line-314"></a>-<a name="line-315"></a> <span class='varid'>substPeRefsInDTDpart</span> <span class='keyglyph'>::</span> <span class='conid'>RecList</span> <span class='keyglyph'>-></span> <span class='conid'>DTDStateArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-316"></a> <span class='varid'>substPeRefsInDTDpart</span> <span class='varid'>rl</span>-<a name="line-317"></a> <span class='keyglyph'>=</span> <span class='varid'>recursionCheck</span> <span class='str'>"DTD part"</span> <span class='varid'>rl</span> <span class='varid'>subst</span>-<a name="line-318"></a> <span class='keyword'>where</span>-<a name="line-319"></a> <span class='varid'>subst</span> <span class='keyglyph'>::</span> <span class='conid'>RecList</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>DTDStateArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-320"></a> <span class='varid'>subst</span> <span class='varid'>recl</span> <span class='varid'>pn</span>-<a name="line-321"></a> <span class='keyglyph'>=</span> <span class='varid'>substPERef</span> <span class='varid'>pn</span>-<a name="line-322"></a> <span class='varop'>>>></span>-<a name="line-323"></a> <span class='varid'>traceDTD</span> <span class='str'>"substPeRefsInDTDdecl: before parseXmlDTDPart"</span>-<a name="line-324"></a> <span class='varop'>>>></span>-<a name="line-325"></a> <span class='layout'>(</span> <span class='varid'>runInPeContext</span> <span class='layout'>(</span> <span class='varid'>getChildren</span>-<a name="line-326"></a> <span class='varop'>>>></span>-<a name="line-327"></a> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>constA</span> <span class='layout'>(</span><span class='str'>"parameter entity: "</span> <span class='varop'>++</span> <span class='varid'>pn</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varop'>&&&</span> <span class='varid'>this</span> <span class='layout'>)</span>-<a name="line-328"></a> <span class='varop'>>>></span>-<a name="line-329"></a> <span class='varid'>parseXmlDTDPart</span>-<a name="line-330"></a> <span class='varop'>>>></span>-<a name="line-331"></a> <span class='varid'>traceDTD</span> <span class='str'>"substPeRefsInDTDpart: after parseXmlDTDPart"</span>-<a name="line-332"></a> <span class='varop'>>>></span>-<a name="line-333"></a> <span class='varid'>substParamEntity</span> <span class='varid'>loc</span> <span class='layout'>(</span><span class='varid'>pn</span> <span class='conop'>:</span> <span class='varid'>recl</span><span class='layout'>)</span>-<a name="line-334"></a> <span class='layout'>)</span>-<a name="line-335"></a> <span class='varop'>`when`</span>-<a name="line-336"></a> <span class='varid'>isDTDPERef</span>-<a name="line-337"></a> <span class='layout'>)</span>-<a name="line-338"></a>-<a name="line-339"></a> <span class='varid'>substPeRefsInDTDdecl</span> <span class='keyglyph'>::</span> <span class='conid'>RecList</span> <span class='keyglyph'>-></span> <span class='conid'>DTDStateArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-340"></a> <span class='varid'>substPeRefsInDTDdecl</span> <span class='varid'>rl</span>-<a name="line-341"></a> <span class='keyglyph'>=</span> <span class='varid'>recursionCheck</span> <span class='str'>"DTD declaration"</span> <span class='varid'>rl</span> <span class='varid'>subst</span>-<a name="line-342"></a> <span class='keyword'>where</span>-<a name="line-343"></a> <span class='varid'>subst</span> <span class='keyglyph'>::</span> <span class='conid'>RecList</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>DTDStateArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-344"></a> <span class='varid'>subst</span> <span class='varid'>recl</span> <span class='varid'>pn</span>-<a name="line-345"></a> <span class='keyglyph'>=</span> <span class='varid'>substPERef</span> <span class='varid'>pn</span>-<a name="line-346"></a> <span class='varop'>>>></span>-<a name="line-347"></a> <span class='varid'>traceDTD</span> <span class='str'>"substPeRefsInDTDdecl: before parseXmlDTDdeclPart"</span>-<a name="line-348"></a> <span class='varop'>>>></span>-<a name="line-349"></a> <span class='layout'>(</span> <span class='varid'>runInPeContext</span> <span class='layout'>(</span> <span class='varid'>parseXmlDTDdeclPart</span>-<a name="line-350"></a> <span class='varop'>>>></span>-<a name="line-351"></a> <span class='varid'>traceDTD</span> <span class='str'>"substPeRefsInDTDdecl: after parseXmlDTDdeclPart"</span>-<a name="line-352"></a> <span class='varop'>>>></span>-<a name="line-353"></a> <span class='varid'>processChildren</span> <span class='layout'>(</span> <span class='varid'>substPeRefsInDTDdecl</span> <span class='layout'>(</span><span class='varid'>pn</span> <span class='conop'>:</span> <span class='varid'>recl</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-354"></a> <span class='layout'>)</span>-<a name="line-355"></a> <span class='varop'>`when`</span>-<a name="line-356"></a> <span class='varid'>isDTDPERef</span>-<a name="line-357"></a> <span class='layout'>)</span>-<a name="line-358"></a>-<a name="line-359"></a> <span class='varid'>substPeRefsInValue</span> <span class='keyglyph'>::</span> <span class='conid'>RecList</span> <span class='keyglyph'>-></span> <span class='conid'>DTDStateArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-360"></a> <span class='varid'>substPeRefsInValue</span> <span class='varid'>rl</span>-<a name="line-361"></a> <span class='keyglyph'>=</span> <span class='varid'>recursionCheck</span> <span class='str'>"entity value"</span> <span class='varid'>rl</span> <span class='varid'>subst</span>-<a name="line-362"></a> <span class='keyword'>where</span>-<a name="line-363"></a> <span class='varid'>subst</span> <span class='keyglyph'>::</span> <span class='conid'>RecList</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>DTDStateArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-364"></a> <span class='varid'>subst</span> <span class='varid'>recl</span> <span class='varid'>pn</span>-<a name="line-365"></a> <span class='keyglyph'>=</span> <span class='varid'>substPERef</span> <span class='varid'>pn</span>-<a name="line-366"></a> <span class='varop'>>>></span>-<a name="line-367"></a> <span class='varid'>parseXmlDTDEntityValue</span>-<a name="line-368"></a> <span class='varop'>>>></span>-<a name="line-369"></a> <span class='varid'>transfCharRef</span>-<a name="line-370"></a> <span class='varop'>>>></span>-<a name="line-371"></a> <span class='varid'>substPeRefsInValue</span> <span class='layout'>(</span><span class='varid'>pn</span> <span class='conop'>:</span> <span class='varid'>recl</span><span class='layout'>)</span>-<a name="line-372"></a>-<a name="line-373"></a> <span class='varid'>substPeRefsInCondSect</span> <span class='keyglyph'>::</span> <span class='conid'>RecList</span> <span class='keyglyph'>-></span> <span class='conid'>DTDStateArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-374"></a> <span class='varid'>substPeRefsInCondSect</span> <span class='varid'>rl</span>-<a name="line-375"></a> <span class='keyglyph'>=</span> <span class='varid'>recursionCheck</span> <span class='str'>"conditional section"</span> <span class='varid'>rl</span> <span class='varid'>subst</span>-<a name="line-376"></a> <span class='keyword'>where</span>-<a name="line-377"></a> <span class='varid'>subst</span> <span class='keyglyph'>::</span> <span class='conid'>RecList</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>DTDStateArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-378"></a> <span class='varid'>subst</span> <span class='varid'>recl</span> <span class='varid'>pn</span>-<a name="line-379"></a> <span class='keyglyph'>=</span> <span class='varid'>substPERef</span> <span class='varid'>pn</span>-<a name="line-380"></a> <span class='varop'>>>></span>-<a name="line-381"></a> <span class='varid'>traceDTD</span> <span class='str'>"substPeRefsInCondSect: parseXmlDTDdeclPart"</span>-<a name="line-382"></a> <span class='varop'>>>></span>-<a name="line-383"></a> <span class='varid'>runInPeContext</span> <span class='layout'>(</span> <span class='varid'>parseXmlDTDdeclPart</span>-<a name="line-384"></a> <span class='varop'>>>></span>-<a name="line-385"></a> <span class='varid'>traceDTD</span> <span class='str'>"substPeRefsInCondSect: after parseXmlDTDdeclPart"</span>-<a name="line-386"></a> <span class='varop'>>>></span>-<a name="line-387"></a> <span class='varid'>processChildren</span> <span class='layout'>(</span> <span class='varid'>substPeRefsInCondSect</span> <span class='layout'>(</span><span class='varid'>pn</span> <span class='conop'>:</span> <span class='varid'>recl</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-388"></a> <span class='layout'>)</span>-<a name="line-389"></a>-<a name="line-390"></a> <span class='varid'>recursionCheck</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>RecList</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='conid'>RecList</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>DTDStateArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>DTDStateArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-391"></a> <span class='varid'>recursionCheck</span> <span class='varid'>wher</span> <span class='varid'>rl</span> <span class='varid'>subst</span>-<a name="line-392"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>recusiveSubst</span> <span class='varop'>$<</span> <span class='varid'>getDTDAttrValue</span> <span class='varid'>a_peref</span> <span class='layout'>)</span>-<a name="line-393"></a> <span class='varop'>`when`</span>-<a name="line-394"></a> <span class='varid'>isDTDPERef</span>-<a name="line-395"></a> <span class='keyword'>where</span>-<a name="line-396"></a> <span class='varid'>recusiveSubst</span> <span class='varid'>name</span>-<a name="line-397"></a> <span class='keyglyph'>|</span> <span class='varid'>name</span> <span class='varop'>`elem`</span> <span class='varid'>rl</span>-<a name="line-398"></a> <span class='keyglyph'>=</span> <span class='varid'>issueErr</span> <span class='layout'>(</span><span class='str'>"recursive call of parameter entity "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>name</span> <span class='varop'>++</span> <span class='str'>" in "</span> <span class='varop'>++</span> <span class='varid'>wher</span><span class='layout'>)</span>-<a name="line-399"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-400"></a> <span class='keyglyph'>=</span> <span class='varid'>subst</span> <span class='varid'>rl</span> <span class='varid'>name</span>-<a name="line-401"></a>-<a name="line-402"></a> <span class='varid'>runInPeContext</span> <span class='keyglyph'>::</span> <span class='conid'>DTDStateArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>DTDStateArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-403"></a> <span class='varid'>runInPeContext</span> <span class='varid'>f</span>-<a name="line-404"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>runWithNewBase</span> <span class='varop'>$<</span> <span class='varid'>getDTDAttrValue</span> <span class='varid'>a_url</span> <span class='layout'>)</span>-<a name="line-405"></a> <span class='varop'>`orElse`</span>-<a name="line-406"></a> <span class='varid'>f</span>-<a name="line-407"></a> <span class='keyword'>where</span>-<a name="line-408"></a> <span class='varid'>runWithNewBase</span> <span class='varid'>base</span>-<a name="line-409"></a> <span class='keyglyph'>=</span> <span class='varid'>runInLocalURIContext</span>-<a name="line-410"></a> <span class='layout'>(</span> <span class='varid'>perform</span> <span class='layout'>(</span><span class='varid'>constA</span> <span class='varid'>base</span> <span class='varop'>>>></span> <span class='varid'>setBaseURI</span><span class='layout'>)</span>-<a name="line-411"></a> <span class='varop'>>>></span>-<a name="line-412"></a> <span class='varid'>f</span>-<a name="line-413"></a> <span class='layout'>)</span>-<a name="line-414"></a>-<a name="line-415"></a> <span class='varid'>evalCondSect</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>DTDStateArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-416"></a> <span class='varid'>evalCondSect</span> <span class='varid'>content</span>-<a name="line-417"></a> <span class='keyglyph'>=</span> <span class='varid'>traceDTD</span> <span class='str'>"evalCondSect: process conditional section"</span>-<a name="line-418"></a> <span class='varop'>>>></span>-<a name="line-419"></a> <span class='varid'>processChildren</span> <span class='layout'>(</span><span class='varid'>substPeRefsInCondSect</span> <span class='conid'>[]</span><span class='layout'>)</span>-<a name="line-420"></a> <span class='varop'>>>></span>-<a name="line-421"></a> <span class='varid'>parseXmlDTDdecl</span>-<a name="line-422"></a> <span class='varop'>>>></span>-<a name="line-423"></a> <span class='layout'>(</span> <span class='varid'>hasText</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='varid'>k_include</span><span class='layout'>)</span>-<a name="line-424"></a> <span class='varop'>`guards`</span>-<a name="line-425"></a> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>constA</span> <span class='str'>"conditional section"</span> <span class='varop'>&&&</span> <span class='varid'>txt</span> <span class='varid'>content</span> <span class='layout'>)</span>-<a name="line-426"></a> <span class='varop'>>>></span>-<a name="line-427"></a> <span class='varid'>parseXmlDTDPart</span>-<a name="line-428"></a> <span class='varop'>>>></span>-<a name="line-429"></a> <span class='varid'>traceMsg</span> <span class='num'>2</span> <span class='str'>"evalCond: include DTD part"</span>-<a name="line-430"></a> <span class='varop'>>>></span>-<a name="line-431"></a> <span class='varid'>substParamEntity</span> <span class='conid'>External</span> <span class='varid'>recList</span>-<a name="line-432"></a> <span class='layout'>)</span>-<a name="line-433"></a> <span class='layout'>)</span>-<a name="line-434"></a>-<a name="line-435"></a><a name="predefDTDPart"></a><span class='definition'>predefDTDPart</span> <span class='keyglyph'>::</span> <span class='conid'>DTDStateArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-436"></a><span class='definition'>predefDTDPart</span>-<a name="line-437"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>constA</span> <span class='str'>"predefined entities"</span>-<a name="line-438"></a> <span class='varop'>&&&</span>-<a name="line-439"></a> <span class='layout'>(</span> <span class='varid'>constA</span> <span class='varid'>predefinedEntities</span> <span class='varop'>>>></span> <span class='varid'>mkText</span><span class='layout'>)</span>-<a name="line-440"></a> <span class='layout'>)</span>-<a name="line-441"></a> <span class='varop'>>>></span>-<a name="line-442"></a> <span class='varid'>parseXmlDTDPart</span>-<a name="line-443"></a> <span class='keyword'>where</span>-<a name="line-444"></a> <span class='varid'>predefinedEntities</span> <span class='keyglyph'>::</span> <span class='conid'>String</span>-<a name="line-445"></a> <span class='varid'>predefinedEntities</span>-<a name="line-446"></a> <span class='keyglyph'>=</span> <span class='varid'>concat</span> <span class='keyglyph'>[</span> <span class='str'>"<!ENTITY lt '&#38;#60;'>"</span>-<a name="line-447"></a> <span class='layout'>,</span> <span class='str'>"<!ENTITY gt '&#62;'>"</span>-<a name="line-448"></a> <span class='layout'>,</span> <span class='str'>"<!ENTITY amp '&#38;#38;'>"</span>-<a name="line-449"></a> <span class='layout'>,</span> <span class='str'>"<!ENTITY apos '&#39;'>"</span>-<a name="line-450"></a> <span class='layout'>,</span> <span class='str'>"<!ENTITY quot '&#34;'>"</span>-<a name="line-451"></a> <span class='keyglyph'>]</span>-<a name="line-452"></a>-<a name="line-453"></a><a name="externalDTDPart"></a><span class='definition'>externalDTDPart</span> <span class='keyglyph'>::</span> <span class='conid'>DTDStateArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-454"></a><span class='definition'>externalDTDPart</span>-<a name="line-455"></a> <span class='keyglyph'>=</span> <span class='varid'>isDTDDoctype</span>-<a name="line-456"></a> <span class='varop'>`guards`</span>-<a name="line-457"></a> <span class='layout'>(</span> <span class='varid'>hasDTDAttr</span> <span class='varid'>k_system</span>-<a name="line-458"></a> <span class='varop'>`guards`</span>-<a name="line-459"></a> <span class='layout'>(</span> <span class='varid'>getExternalDTDPart</span> <span class='varop'>$<</span> <span class='varid'>getDTDAttrValue</span> <span class='varid'>k_system</span> <span class='layout'>)</span>-<a name="line-460"></a> <span class='layout'>)</span>-<a name="line-461"></a>-<a name="line-462"></a><a name="getExternalDTDPart"></a><span class='definition'>getExternalDTDPart</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>DTDStateArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-463"></a><span class='definition'>getExternalDTDPart</span> <span class='varid'>src</span>-<a name="line-464"></a> <span class='keyglyph'>=</span> <span class='varid'>root</span> <span class='keyglyph'>[</span><span class='varid'>sattr</span> <span class='varid'>a_source</span> <span class='varid'>src</span><span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-465"></a> <span class='varop'>>>></span>-<a name="line-466"></a> <span class='varid'>getXmlEntityContents</span>-<a name="line-467"></a> <span class='varop'>>>></span>-<a name="line-468"></a> <span class='varid'>replaceChildren</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>constA</span> <span class='varid'>src</span> <span class='varop'>&&&</span> <span class='varid'>getChildren</span> <span class='layout'>)</span>-<a name="line-469"></a> <span class='varop'>>>></span>-<a name="line-470"></a> <span class='varid'>parseXmlDTDPart</span>-<a name="line-471"></a> <span class='layout'>)</span>-<a name="line-472"></a> <span class='varop'>>>></span>-<a name="line-473"></a> <span class='varid'>traceDoc</span> <span class='str'>"processExternalDTD: parsing DTD part done"</span>-<a name="line-474"></a> <span class='varop'>>>></span>-<a name="line-475"></a> <span class='varid'>getChildren</span>-<a name="line-476"></a>-<a name="line-477"></a><a name="getExternalParamEntityValue"></a><span class='definition'>getExternalParamEntityValue</span> <span class='keyglyph'>::</span> <span class='conid'>DTDStateArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-478"></a><span class='definition'>getExternalParamEntityValue</span>-<a name="line-479"></a> <span class='keyglyph'>=</span> <span class='varid'>isDTDPEntity</span>-<a name="line-480"></a> <span class='varop'>`guards`</span>-<a name="line-481"></a> <span class='layout'>(</span> <span class='varid'>setEntityValue</span> <span class='varop'>$<<<</span> <span class='layout'>(</span> <span class='varid'>getDTDAttrl</span>-<a name="line-482"></a> <span class='varop'>&&&</span>-<a name="line-483"></a> <span class='varid'>listA</span> <span class='layout'>(</span> <span class='varid'>getEntityValue</span> <span class='varop'>$<</span> <span class='varid'>getDTDAttrl</span> <span class='layout'>)</span>-<a name="line-484"></a> <span class='varop'>&&&</span>-<a name="line-485"></a> <span class='varid'>getBaseURI</span>-<a name="line-486"></a> <span class='layout'>)</span>-<a name="line-487"></a> <span class='layout'>)</span>-<a name="line-488"></a> <span class='keyword'>where</span>-<a name="line-489"></a> <span class='varid'>getEntityValue</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>DTDStateArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-490"></a> <span class='varid'>getEntityValue</span> <span class='varid'>al</span>-<a name="line-491"></a> <span class='keyglyph'>=</span> <span class='varid'>root</span> <span class='keyglyph'>[</span><span class='varid'>sattr</span> <span class='varid'>a_source</span> <span class='layout'>(</span><span class='varid'>lookup1</span> <span class='varid'>k_system</span> <span class='varid'>al</span><span class='layout'>)</span><span class='comment'>{- <+> catA (map (uncurry sattr) al)-}</span><span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-492"></a> <span class='varop'>>>></span>-<a name="line-493"></a> <span class='varid'>getXmlEntityContents</span>-<a name="line-494"></a> <span class='varop'>>>></span>-<a name="line-495"></a> <span class='varid'>traceMsg</span> <span class='num'>2</span> <span class='str'>"getExternalParamEntityValue: contents read"</span>-<a name="line-496"></a> <span class='varop'>>>></span>-<a name="line-497"></a> <span class='varid'>getChildren</span>-<a name="line-498"></a>-<a name="line-499"></a> <span class='varid'>setEntityValue</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>DTDStateArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-500"></a> <span class='varid'>setEntityValue</span> <span class='varid'>al</span> <span class='varid'>res</span> <span class='varid'>base</span>-<a name="line-501"></a> <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>res</span>-<a name="line-502"></a> <span class='keyglyph'>=</span> <span class='varid'>issueErr</span> <span class='layout'>(</span><span class='str'>"illegal external parameter entity value for entity %"</span> <span class='varop'>++</span> <span class='varid'>peName</span> <span class='varop'>++</span><span class='str'>";"</span><span class='layout'>)</span>-<a name="line-503"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-504"></a> <span class='keyglyph'>=</span> <span class='varid'>mkDTDElem</span> <span class='conid'>PENTITY</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>a_url</span><span class='layout'>,</span> <span class='varid'>base</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>arrL</span> <span class='varop'>$</span> <span class='varid'>const</span> <span class='varid'>res</span><span class='layout'>)</span>-<a name="line-505"></a> <span class='keyword'>where</span>-<a name="line-506"></a> <span class='varid'>peName</span> <span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>a_name</span> <span class='varid'>al</span>-<a name="line-507"></a>-<a name="line-508"></a><a name="traceDTD"></a><span class='definition'>traceDTD</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>DTDStateArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-509"></a><span class='definition'>traceDTD</span> <span class='varid'>msg</span> <span class='keyglyph'>=</span> <span class='varid'>traceMsg</span> <span class='num'>3</span> <span class='varid'>msg</span> <span class='varop'>>>></span> <span class='varid'>traceTree</span>-<a name="line-510"></a>-<a name="line-511"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-512"></a>-<a name="line-513"></a>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-Arrow-DocumentInput.html
@@ -1,442 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Text.XML.HXT.Arrow.DocumentInput-<a name="line-5"></a> Copyright : Copyright (C) 2005 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe@fh-wedel.de)-<a name="line-9"></a> Stability : experimental-<a name="line-10"></a> Portability: portable-<a name="line-11"></a> Version : $Id$-<a name="line-12"></a>-<a name="line-13"></a> State arrows for document input-<a name="line-14"></a>-}</span>-<a name="line-15"></a>-<a name="line-16"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-17"></a>-<a name="line-18"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>DocumentInput</span>-<a name="line-19"></a> <span class='layout'>(</span> <span class='varid'>getURIContents</span>-<a name="line-20"></a> <span class='layout'>,</span> <span class='varid'>getXmlContents</span>-<a name="line-21"></a> <span class='layout'>,</span> <span class='varid'>getXmlEntityContents</span>-<a name="line-22"></a> <span class='layout'>,</span> <span class='varid'>getEncoding</span>-<a name="line-23"></a> <span class='layout'>,</span> <span class='varid'>decodeDocument</span>-<a name="line-24"></a> <span class='layout'>)</span>-<a name="line-25"></a><span class='keyword'>where</span>-<a name="line-26"></a>-<a name="line-27"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span> <span class='comment'>-- arrow classes</span>-<a name="line-28"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowList</span>-<a name="line-29"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowIf</span>-<a name="line-30"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowTree</span>-<a name="line-31"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowIO</span>-<a name="line-32"></a>-<a name="line-33"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Char</span>-<a name="line-34"></a> <span class='layout'>(</span> <span class='varid'>toLower</span>-<a name="line-35"></a> <span class='layout'>)</span>-<a name="line-36"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>List</span>-<a name="line-37"></a> <span class='layout'>(</span> <span class='varid'>isPrefixOf</span>-<a name="line-38"></a> <span class='layout'>)</span>-<a name="line-39"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>-<a name="line-40"></a>-<a name="line-41"></a><span class='keyword'>import</span> <span class='conid'>System</span><span class='varop'>.</span><span class='conid'>FilePath</span>-<a name="line-42"></a> <span class='layout'>(</span> <span class='varid'>takeExtension</span> <span class='layout'>)</span>-<a name="line-43"></a>-<a name="line-44"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Unicode</span>-<a name="line-45"></a> <span class='layout'>(</span> <span class='varid'>getDecodingFct</span>-<a name="line-46"></a> <span class='layout'>,</span> <span class='varid'>guessEncoding</span>-<a name="line-47"></a> <span class='layout'>,</span> <span class='varid'>normalizeNL</span>-<a name="line-48"></a> <span class='layout'>)</span>-<a name="line-49"></a>-<a name="line-50"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>IO</span><span class='varop'>.</span><span class='conid'>GetFILE</span> <span class='keyword'>as</span> <span class='conid'>FILE</span>-<a name="line-51"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>IO</span><span class='varop'>.</span><span class='conid'>GetHTTPLibCurl</span> <span class='keyword'>as</span> <span class='conid'>LibCURL</span>-<a name="line-52"></a>-<a name="line-53"></a><span class='comment'>{- not longer needed, libcurl is used-<a name="line-54"></a>import qualified Text.XML.HXT.IO.GetHTTPNative as HTTP-<a name="line-55"></a>import qualified Text.XML.HXT.IO.GetHTTPCurl as CURL-<a name="line-56"></a>-}</span>-<a name="line-57"></a>-<a name="line-58"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>-<a name="line-59"></a>-<a name="line-60"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlArrow</span>-<a name="line-61"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlIOStateArrow</span>-<a name="line-62"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ParserInterface</span>-<a name="line-63"></a> <span class='layout'>(</span> <span class='varid'>parseXmlDocEncodingSpec</span>-<a name="line-64"></a> <span class='layout'>,</span> <span class='varid'>parseXmlEntityEncodingSpec</span>-<a name="line-65"></a> <span class='layout'>,</span> <span class='varid'>removeEncodingSpec</span>-<a name="line-66"></a> <span class='layout'>)</span>-<a name="line-67"></a>-<a name="line-68"></a><span class='comment'>-- ----------------------------------------------------------</span>-<a name="line-69"></a>-<a name="line-70"></a><a name="protocolHandlers"></a><span class='definition'>protocolHandlers</span> <span class='keyglyph'>::</span> <span class='conid'>AssocList</span> <span class='conid'>String</span> <span class='layout'>(</span><span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span>-<a name="line-71"></a><span class='definition'>protocolHandlers</span>-<a name="line-72"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='str'>"file"</span><span class='layout'>,</span> <span class='varid'>getFileContents</span><span class='layout'>)</span>-<a name="line-73"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"http"</span><span class='layout'>,</span> <span class='varid'>getHttpContents</span><span class='layout'>)</span>-<a name="line-74"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"stdin"</span><span class='layout'>,</span> <span class='varid'>getStdinContents</span><span class='layout'>)</span>-<a name="line-75"></a> <span class='keyglyph'>]</span>-<a name="line-76"></a>-<a name="line-77"></a><a name="getProtocolHandler"></a><span class='definition'>getProtocolHandler</span> <span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>String</span> <span class='layout'>(</span><span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span>-<a name="line-78"></a><span class='definition'>getProtocolHandler</span>-<a name="line-79"></a> <span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='keyglyph'>-></span> <span class='varid'>lookupDef</span> <span class='varid'>getUnsupported</span> <span class='varid'>s</span> <span class='varid'>protocolHandlers</span><span class='layout'>)</span>-<a name="line-80"></a>-<a name="line-81"></a><a name="getUnsupported"></a><span class='definition'>getUnsupported</span> <span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-82"></a><span class='definition'>getUnsupported</span>-<a name="line-83"></a> <span class='keyglyph'>=</span> <span class='varid'>perform</span> <span class='layout'>(</span> <span class='varid'>getAttrValue</span> <span class='varid'>a_source</span>-<a name="line-84"></a> <span class='varop'>>>></span>-<a name="line-85"></a> <span class='varid'>arr</span> <span class='layout'>(</span><span class='layout'>(</span><span class='str'>"unsupported protocol in URI "</span> <span class='varop'>++</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>show</span><span class='layout'>)</span>-<a name="line-86"></a> <span class='varop'>>>></span>-<a name="line-87"></a> <span class='varid'>applyA</span> <span class='layout'>(</span><span class='varid'>arr</span> <span class='varid'>issueFatal</span><span class='layout'>)</span>-<a name="line-88"></a> <span class='layout'>)</span>-<a name="line-89"></a> <span class='varop'>>>></span>-<a name="line-90"></a> <span class='varid'>setDocumentStatusFromSystemState</span> <span class='str'>"accessing documents"</span>-<a name="line-91"></a> -<a name="line-92"></a><a name="getStringContents"></a><span class='definition'>getStringContents</span> <span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-93"></a><span class='definition'>getStringContents</span>-<a name="line-94"></a> <span class='keyglyph'>=</span> <span class='varid'>setCont</span> <span class='varop'>$<</span> <span class='varid'>getAttrValue</span> <span class='varid'>a_source</span>-<a name="line-95"></a> <span class='varop'>>>></span>-<a name="line-96"></a> <span class='varid'>addAttr</span> <span class='varid'>transferMessage</span> <span class='str'>"OK"</span>-<a name="line-97"></a> <span class='varop'>>>></span>-<a name="line-98"></a> <span class='varid'>addAttr</span> <span class='varid'>transferStatus</span> <span class='str'>"200"</span>-<a name="line-99"></a> <span class='keyword'>where</span>-<a name="line-100"></a> <span class='varid'>setCont</span> <span class='varid'>contents</span>-<a name="line-101"></a> <span class='keyglyph'>=</span> <span class='varid'>replaceChildren</span> <span class='layout'>(</span><span class='varid'>txt</span> <span class='varid'>contents'</span><span class='layout'>)</span>-<a name="line-102"></a> <span class='varop'>>>></span>-<a name="line-103"></a> <span class='varid'>addAttr</span> <span class='varid'>transferURI</span> <span class='layout'>(</span><span class='varid'>take</span> <span class='num'>7</span> <span class='varid'>contents</span><span class='layout'>)</span> <span class='comment'>-- the "string:" prefix is stored, this is required by setBaseURIFromDoc</span>-<a name="line-104"></a> <span class='varop'>>>></span>-<a name="line-105"></a> <span class='varid'>addAttr</span> <span class='varid'>a_source</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varop'>.</span> <span class='varid'>prefix</span> <span class='num'>48</span> <span class='varop'>$</span> <span class='varid'>contents'</span><span class='layout'>)</span> <span class='comment'>-- a quoted prefix of the content, max 48 chars is taken as source name</span>-<a name="line-106"></a> <span class='keyword'>where</span>-<a name="line-107"></a> <span class='varid'>contents'</span> <span class='keyglyph'>=</span> <span class='varid'>drop</span> <span class='layout'>(</span><span class='varid'>length</span> <span class='varid'>stringProtocol</span><span class='layout'>)</span> <span class='varid'>contents</span>-<a name="line-108"></a> <span class='varid'>prefix</span> <span class='varid'>l</span> <span class='varid'>s</span>-<a name="line-109"></a> <span class='keyglyph'>|</span> <span class='varid'>length</span> <span class='varid'>s'</span> <span class='varop'>></span> <span class='varid'>l</span> <span class='keyglyph'>=</span> <span class='varid'>take</span> <span class='layout'>(</span><span class='varid'>l</span> <span class='comment'>-</span> <span class='num'>3</span><span class='layout'>)</span> <span class='varid'>s'</span> <span class='varop'>++</span> <span class='str'>"..."</span>-<a name="line-110"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>s'</span>-<a name="line-111"></a> <span class='keyword'>where</span>-<a name="line-112"></a> <span class='varid'>s'</span> <span class='keyglyph'>=</span> <span class='varid'>take</span> <span class='layout'>(</span><span class='varid'>l</span> <span class='varop'>+</span> <span class='num'>1</span><span class='layout'>)</span> <span class='varid'>s</span>-<a name="line-113"></a>-<a name="line-114"></a><a name="getFileContents"></a><span class='definition'>getFileContents</span> <span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-115"></a><span class='definition'>getFileContents</span>-<a name="line-116"></a> <span class='keyglyph'>=</span> <span class='varid'>applyA</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>getAttrValue</span> <span class='varid'>a_strict_input</span>-<a name="line-117"></a> <span class='varop'>>>></span>-<a name="line-118"></a> <span class='varid'>arr</span> <span class='varid'>isTrueValue</span>-<a name="line-119"></a> <span class='layout'>)</span>-<a name="line-120"></a> <span class='varop'>&&&</span>-<a name="line-121"></a> <span class='layout'>(</span> <span class='varid'>getAttrValue</span> <span class='varid'>transferURI</span>-<a name="line-122"></a> <span class='varop'>>>></span>-<a name="line-123"></a> <span class='varid'>getPathFromURI</span>-<a name="line-124"></a> <span class='layout'>)</span>-<a name="line-125"></a> <span class='layout'>)</span>-<a name="line-126"></a> <span class='varop'>>>></span>-<a name="line-127"></a> <span class='varid'>traceValue</span> <span class='num'>2</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='layout'>(</span><span class='varid'>b</span><span class='layout'>,</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='str'>"read file "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>f</span> <span class='varop'>++</span> <span class='str'>" (strict input = "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>b</span> <span class='varop'>++</span> <span class='str'>")"</span><span class='layout'>)</span>-<a name="line-128"></a> <span class='varop'>>>></span>-<a name="line-129"></a> <span class='varid'>arrIO</span> <span class='layout'>(</span><span class='varid'>uncurry</span> <span class='conid'>FILE</span><span class='varop'>.</span><span class='varid'>getCont</span><span class='layout'>)</span>-<a name="line-130"></a> <span class='varop'>>>></span>-<a name="line-131"></a> <span class='layout'>(</span> <span class='varid'>arr</span> <span class='varid'>addError</span> <span class='comment'>-- io error occured</span>-<a name="line-132"></a> <span class='varop'>|||</span>-<a name="line-133"></a> <span class='varid'>arr</span> <span class='varid'>addTxtContent</span> <span class='comment'>-- content read</span>-<a name="line-134"></a> <span class='layout'>)</span>-<a name="line-135"></a> <span class='layout'>)</span>-<a name="line-136"></a> <span class='varop'>>>></span>-<a name="line-137"></a> <span class='varid'>addMimeType</span>-<a name="line-138"></a>-<a name="line-139"></a><a name="getStdinContents"></a><span class='definition'>getStdinContents</span> <span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-140"></a><span class='definition'>getStdinContents</span>-<a name="line-141"></a> <span class='keyglyph'>=</span> <span class='varid'>applyA</span> <span class='layout'>(</span> <span class='varid'>getAttrValue</span> <span class='varid'>a_strict_input</span>-<a name="line-142"></a> <span class='varop'>>>></span>-<a name="line-143"></a> <span class='varid'>arr</span> <span class='varid'>isTrueValue</span>-<a name="line-144"></a> <span class='varop'>>>></span>-<a name="line-145"></a> <span class='varid'>arrIO</span> <span class='conid'>FILE</span><span class='varop'>.</span><span class='varid'>getStdinCont</span>-<a name="line-146"></a> <span class='varop'>>>></span>-<a name="line-147"></a> <span class='layout'>(</span> <span class='varid'>arr</span> <span class='varid'>addError</span> <span class='comment'>-- io error occured</span>-<a name="line-148"></a> <span class='varop'>|||</span>-<a name="line-149"></a> <span class='varid'>arr</span> <span class='varid'>addTxtContent</span> <span class='comment'>-- content read</span>-<a name="line-150"></a> <span class='layout'>)</span>-<a name="line-151"></a> <span class='layout'>)</span>-<a name="line-152"></a>-<a name="line-153"></a><a name="addError"></a><span class='definition'>addError</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-154"></a><span class='definition'>addError</span> <span class='varid'>e</span>-<a name="line-155"></a> <span class='keyglyph'>=</span> <span class='varid'>issueFatal</span> <span class='varid'>e</span>-<a name="line-156"></a> <span class='varop'>>>></span>-<a name="line-157"></a> <span class='varid'>setDocumentStatusFromSystemState</span> <span class='str'>"accessing documents"</span>-<a name="line-158"></a>-<a name="line-159"></a><a name="addMimeType"></a><span class='definition'>addMimeType</span> <span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-160"></a><span class='definition'>addMimeType</span>-<a name="line-161"></a> <span class='keyglyph'>=</span> <span class='varid'>addMime</span> <span class='varop'>$<</span> <span class='layout'>(</span> <span class='varid'>getAttrValue</span> <span class='varid'>transferURI</span>-<a name="line-162"></a> <span class='varop'>>>></span>-<a name="line-163"></a> <span class='layout'>(</span> <span class='varid'>uriToMime</span> <span class='varop'>$<</span> <span class='varid'>getSysParam</span> <span class='varid'>xio_mimeTypes</span> <span class='layout'>)</span>-<a name="line-164"></a> <span class='layout'>)</span>-<a name="line-165"></a> <span class='keyword'>where</span>-<a name="line-166"></a> <span class='varid'>addMime</span> <span class='varid'>mt</span>-<a name="line-167"></a> <span class='keyglyph'>=</span> <span class='varid'>addAttr</span> <span class='varid'>transferMimeType</span> <span class='varid'>mt</span>-<a name="line-168"></a> <span class='varid'>uriToMime</span> <span class='varid'>mtt</span>-<a name="line-169"></a> <span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='varop'>$</span> <span class='layout'>(</span> <span class='keyglyph'>\</span> <span class='varid'>uri</span> <span class='keyglyph'>-></span> <span class='varid'>extensionToMimeType</span> <span class='layout'>(</span><span class='varid'>drop</span> <span class='num'>1</span> <span class='varop'>.</span> <span class='varid'>takeExtension</span> <span class='varop'>$</span> <span class='varid'>uri</span><span class='layout'>)</span> <span class='varid'>mtt</span> <span class='layout'>)</span>-<a name="line-170"></a>-<a name="line-171"></a><a name="addTxtContent"></a><span class='definition'>addTxtContent</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-172"></a><span class='definition'>addTxtContent</span> <span class='varid'>c</span>-<a name="line-173"></a> <span class='keyglyph'>=</span> <span class='varid'>replaceChildren</span> <span class='layout'>(</span><span class='varid'>txt</span> <span class='varid'>c</span><span class='layout'>)</span>-<a name="line-174"></a> <span class='varop'>>>></span>-<a name="line-175"></a> <span class='varid'>addAttr</span> <span class='varid'>transferMessage</span> <span class='str'>"OK"</span>-<a name="line-176"></a> <span class='varop'>>>></span>-<a name="line-177"></a> <span class='varid'>addAttr</span> <span class='varid'>transferStatus</span> <span class='str'>"200"</span>-<a name="line-178"></a>-<a name="line-179"></a><a name="getHttpContents"></a><span class='definition'>getHttpContents</span> <span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-180"></a><span class='definition'>getHttpContents</span>-<a name="line-181"></a> <span class='keyglyph'>=</span> <span class='varid'>getCont</span> <span class='varop'>$<<</span> <span class='layout'>(</span> <span class='varid'>getAttrValue</span> <span class='varid'>transferURI</span>-<a name="line-182"></a> <span class='varop'>&&&</span>-<a name="line-183"></a> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>getAttrlAsAssoc</span> <span class='comment'>-- get all attributes of root node</span>-<a name="line-184"></a> <span class='varop'>&&&</span>-<a name="line-185"></a> <span class='varid'>getAllParamsString</span> <span class='comment'>-- get all system params</span>-<a name="line-186"></a> <span class='layout'>)</span>-<a name="line-187"></a> <span class='varop'>>>^</span> <span class='varid'>uncurry</span> <span class='varid'>addEntries</span> <span class='comment'>-- merge them, attributes overwrite system params</span>-<a name="line-188"></a> <span class='layout'>)</span>-<a name="line-189"></a> <span class='layout'>)</span>-<a name="line-190"></a> <span class='keyword'>where</span>-<a name="line-191"></a> <span class='varid'>getAttrlAsAssoc</span> <span class='comment'>-- get the attributes as assoc list</span>-<a name="line-192"></a> <span class='keyglyph'>=</span> <span class='varid'>listA</span> <span class='layout'>(</span> <span class='varid'>getAttrl</span>-<a name="line-193"></a> <span class='varop'>>>></span> <span class='layout'>(</span> <span class='varid'>getName</span>-<a name="line-194"></a> <span class='varop'>&&&</span>-<a name="line-195"></a> <span class='varid'>xshow</span> <span class='varid'>getChildren</span>-<a name="line-196"></a> <span class='layout'>)</span>-<a name="line-197"></a> <span class='layout'>)</span>-<a name="line-198"></a>-<a name="line-199"></a> <span class='varid'>getCont</span> <span class='varid'>uri</span> <span class='varid'>options</span>-<a name="line-200"></a> <span class='keyglyph'>=</span> <span class='varid'>applyA</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>traceMsg</span> <span class='num'>2</span> <span class='layout'>(</span> <span class='str'>"get HTTP via libcurl, uri="</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>uri</span> <span class='varop'>++</span> <span class='str'>" options="</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>options</span> <span class='layout'>)</span>-<a name="line-201"></a> <span class='varop'>>>></span>-<a name="line-202"></a> <span class='varid'>arrIO0</span> <span class='layout'>(</span> <span class='conid'>LibCURL</span><span class='varop'>.</span><span class='varid'>getCont</span> <span class='varid'>options</span> <span class='varid'>uri</span> <span class='layout'>)</span>-<a name="line-203"></a> <span class='layout'>)</span>-<a name="line-204"></a> <span class='varop'>>>></span>-<a name="line-205"></a> <span class='layout'>(</span> <span class='varid'>arr</span> <span class='varid'>addError</span>-<a name="line-206"></a> <span class='varop'>|||</span>-<a name="line-207"></a> <span class='varid'>arr</span> <span class='varid'>addContent</span>-<a name="line-208"></a> <span class='layout'>)</span>-<a name="line-209"></a> <span class='layout'>)</span>-<a name="line-210"></a> -<a name="line-211"></a><span class='comment'>{- old stuff-<a name="line-212"></a> = applyA ( ( if curl == v_1-<a name="line-213"></a> then ( traceMsg 2 ( "get HTTP via "-<a name="line-214"></a> ++ show ( "curl "-<a name="line-215"></a> ++ (if null proxy then "" else "--proxy " ++ proxy)-<a name="line-216"></a> ++ (if null curlOpt then "" else " " ++ curlOpt)-<a name="line-217"></a> ++ " " ++ uri-<a name="line-218"></a> )-<a name="line-219"></a> )-<a name="line-220"></a> >>>-<a name="line-221"></a> arrIO0 ( CURL.getCont curlOpt uri proxy )-<a name="line-222"></a> )-<a name="line-223"></a> else arrIO0 ( HTTP.getCont uri proxy )-<a name="line-224"></a> )-<a name="line-225"></a> >>>-<a name="line-226"></a> ( arr addError-<a name="line-227"></a> |||-<a name="line-228"></a> arr addContent-<a name="line-229"></a> )-<a name="line-230"></a> )-<a name="line-231"></a> where-<a name="line-232"></a> proxy = lookup1 a_proxy options-<a name="line-233"></a> curl = lookup1 a_use_curl options-<a name="line-234"></a> curlOpt = lookup1 a_options_curl options-<a name="line-235"></a>-}</span>-<a name="line-236"></a>-<a name="line-237"></a> <span class='varid'>addContent</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>AssocList</span> <span class='conid'>String</span> <span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-238"></a> <span class='varid'>addContent</span> <span class='layout'>(</span><span class='varid'>al</span><span class='layout'>,</span> <span class='varid'>c</span><span class='layout'>)</span>-<a name="line-239"></a> <span class='keyglyph'>=</span> <span class='varid'>replaceChildren</span> <span class='layout'>(</span><span class='varid'>txt</span> <span class='varid'>c</span><span class='layout'>)</span>-<a name="line-240"></a> <span class='varop'>>>></span>-<a name="line-241"></a> <span class='varid'>seqA</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>uncurry</span> <span class='varid'>addAttr</span><span class='layout'>)</span> <span class='varid'>al</span><span class='layout'>)</span>-<a name="line-242"></a>-<a name="line-243"></a><a name="getURIContents"></a><span class='definition'>getURIContents</span> <span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-244"></a><span class='definition'>getURIContents</span>-<a name="line-245"></a> <span class='keyglyph'>=</span> <span class='varid'>getContentsFromString</span>-<a name="line-246"></a> <span class='varop'>`orElse`</span>-<a name="line-247"></a> <span class='varid'>getContentsFromDoc</span>-<a name="line-248"></a> <span class='keyword'>where</span>-<a name="line-249"></a> <span class='varid'>getContentsFromString</span>-<a name="line-250"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>getAttrValue</span> <span class='varid'>a_source</span>-<a name="line-251"></a> <span class='varop'>>>></span>-<a name="line-252"></a> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>isPrefixOf</span> <span class='varid'>stringProtocol</span><span class='layout'>)</span>-<a name="line-253"></a> <span class='layout'>)</span>-<a name="line-254"></a> <span class='varop'>`guards`</span>-<a name="line-255"></a> <span class='varid'>getStringContents</span>-<a name="line-256"></a> -<a name="line-257"></a> <span class='varid'>getContentsFromDoc</span>-<a name="line-258"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>addTransferURI</span> <span class='varop'>$<</span> <span class='varid'>getBaseURI</span>-<a name="line-259"></a> <span class='varop'>>>></span>-<a name="line-260"></a> <span class='varid'>getCont</span>-<a name="line-261"></a> <span class='layout'>)</span>-<a name="line-262"></a> <span class='varop'>`when`</span>-<a name="line-263"></a> <span class='layout'>(</span> <span class='varid'>setAbsURI</span> <span class='varop'>$<</span> <span class='layout'>(</span> <span class='varid'>getAttrValue</span> <span class='varid'>a_source</span>-<a name="line-264"></a> <span class='varop'>>>^</span>-<a name="line-265"></a> <span class='layout'>(</span> <span class='keyglyph'>\</span> <span class='varid'>src</span><span class='keyglyph'>-></span> <span class='layout'>(</span><span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>src</span> <span class='keyword'>then</span> <span class='str'>"stdin:"</span> <span class='keyword'>else</span> <span class='varid'>src</span><span class='layout'>)</span> <span class='layout'>)</span> <span class='comment'>-- empty document name -> read from stdin</span>-<a name="line-266"></a> <span class='layout'>)</span>-<a name="line-267"></a> <span class='layout'>)</span>-<a name="line-268"></a> <span class='layout'>)</span>-<a name="line-269"></a> <span class='varop'>>>></span>-<a name="line-270"></a> <span class='varid'>setDocumentStatusFromSystemState</span> <span class='str'>"getURIContents"</span>-<a name="line-271"></a>-<a name="line-272"></a> <span class='varid'>setAbsURI</span> <span class='varid'>src</span>-<a name="line-273"></a> <span class='keyglyph'>=</span> <span class='varid'>ifA</span> <span class='layout'>(</span> <span class='varid'>constA</span> <span class='varid'>src</span> <span class='varop'>>>></span> <span class='varid'>changeBaseURI</span> <span class='layout'>)</span>-<a name="line-274"></a> <span class='varid'>this</span>-<a name="line-275"></a> <span class='layout'>(</span> <span class='varid'>issueFatal</span> <span class='layout'>(</span><span class='str'>"illegal URI : "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>src</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-276"></a>-<a name="line-277"></a> <span class='varid'>addTransferURI</span> <span class='varid'>uri</span>-<a name="line-278"></a> <span class='keyglyph'>=</span> <span class='varid'>addAttr</span> <span class='varid'>transferURI</span> <span class='varid'>uri</span>-<a name="line-279"></a>-<a name="line-280"></a> <span class='varid'>getCont</span>-<a name="line-281"></a> <span class='keyglyph'>=</span> <span class='varid'>applyA</span> <span class='layout'>(</span> <span class='varid'>getBaseURI</span> <span class='comment'>-- compute the handler and call it</span>-<a name="line-282"></a> <span class='varop'>>>></span>-<a name="line-283"></a> <span class='varid'>traceValue</span> <span class='num'>2</span> <span class='layout'>(</span><span class='layout'>(</span><span class='str'>"getURIContents: reading "</span> <span class='varop'>++</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>show</span><span class='layout'>)</span>-<a name="line-284"></a> <span class='varop'>>>></span>-<a name="line-285"></a> <span class='varid'>getSchemeFromURI</span>-<a name="line-286"></a> <span class='varop'>>>></span>-<a name="line-287"></a> <span class='varid'>getProtocolHandler</span>-<a name="line-288"></a> <span class='layout'>)</span>-<a name="line-289"></a> <span class='varop'>`orElse`</span>-<a name="line-290"></a> <span class='varid'>this</span> <span class='comment'>-- don't change tree, when no handler can be found</span>-<a name="line-291"></a> -<a name="line-292"></a><a name="setBaseURIFromDoc"></a><span class='definition'>setBaseURIFromDoc</span> <span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-293"></a><span class='definition'>setBaseURIFromDoc</span>-<a name="line-294"></a> <span class='keyglyph'>=</span> <span class='varid'>perform</span> <span class='layout'>(</span> <span class='varid'>getAttrValue</span> <span class='varid'>transferURI</span>-<a name="line-295"></a> <span class='varop'>>>></span>-<a name="line-296"></a> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>isPrefixOf</span> <span class='varid'>stringProtocol</span><span class='layout'>)</span> <span class='comment'>-- do not change base URI when reading from a string</span>-<a name="line-297"></a> <span class='varop'>>>></span>-<a name="line-298"></a> <span class='varid'>setBaseURI</span>-<a name="line-299"></a> <span class='layout'>)</span>-<a name="line-300"></a>-<a name="line-301"></a><span class='comment'>{- |-<a name="line-302"></a> Read the content of a document.-<a name="line-303"></a>-<a name="line-304"></a> This routine is usually called from 'Text.XML.HXT.Arrow.ProcessDocument.getDocumentContents'.-<a name="line-305"></a>-<a name="line-306"></a> The input must be a root node (constructed with 'Text.XML.HXT.Arrow.XmlArrow.root'), usually without children.-<a name="line-307"></a> The attribute list contains all input parameters, e.g. URI or source file name, encoding preferences, ...-<a name="line-308"></a> If the source name is empty, the input is read from standard input.-<a name="line-309"></a>-<a name="line-310"></a> The source is transformed into an absolute URI. If the source is a relative URI, or a file name,-<a name="line-311"></a> it is expanded into an absolut URI with respect to the current base URI.-<a name="line-312"></a> The default base URI is of protocol \"file\" and points to the current working directory.-<a name="line-313"></a>-<a name="line-314"></a> The currently supported protocols are \"http\", \"file\", \"stdin\" and \"string\".-<a name="line-315"></a>-<a name="line-316"></a> The latter two are internal protocols. An uri of the form \"stdin:\" stands for the content of-<a name="line-317"></a> the standard input stream.-<a name="line-318"></a>-<a name="line-319"></a> \"string:some text\" means, that \"some text\" is taken as input.-<a name="line-320"></a> This internal protocol is used for reading from normal 'String' values.-<a name="line-321"></a>-<a name="line-322"></a>-}</span>-<a name="line-323"></a>-<a name="line-324"></a><a name="getXmlContents"></a><span class='definition'>getXmlContents</span> <span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-325"></a><span class='definition'>getXmlContents</span>-<a name="line-326"></a> <span class='keyglyph'>=</span> <span class='varid'>getXmlContents'</span> <span class='varid'>parseXmlDocEncodingSpec</span>-<a name="line-327"></a> <span class='varop'>>>></span>-<a name="line-328"></a> <span class='varid'>setBaseURIFromDoc</span>-<a name="line-329"></a>-<a name="line-330"></a><a name="getXmlEntityContents"></a><span class='definition'>getXmlEntityContents</span> <span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-331"></a><span class='definition'>getXmlEntityContents</span>-<a name="line-332"></a> <span class='keyglyph'>=</span> <span class='varid'>getXmlContents'</span> <span class='varid'>parseXmlEntityEncodingSpec</span>-<a name="line-333"></a> <span class='varop'>>>></span>-<a name="line-334"></a> <span class='varid'>processChildren</span> <span class='varid'>removeEncodingSpec</span>-<a name="line-335"></a> <span class='varop'>>>></span>-<a name="line-336"></a> <span class='varid'>setBaseURIFromDoc</span>-<a name="line-337"></a>-<a name="line-338"></a><a name="getXmlContents'"></a><span class='definition'>getXmlContents'</span> <span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-339"></a><span class='definition'>getXmlContents'</span> <span class='varid'>parseEncodingSpec</span>-<a name="line-340"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>getURIContents</span>-<a name="line-341"></a> <span class='varop'>>>></span>-<a name="line-342"></a> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>parseEncodingSpec</span>-<a name="line-343"></a> <span class='varop'>>>></span>-<a name="line-344"></a> <span class='varid'>filterErrorMsg</span>-<a name="line-345"></a> <span class='varop'>>>></span>-<a name="line-346"></a> <span class='varid'>decodeDocument</span>-<a name="line-347"></a> <span class='layout'>)</span>-<a name="line-348"></a> <span class='varop'>`when`</span>-<a name="line-349"></a> <span class='varid'>isXmlHtml</span>-<a name="line-350"></a> <span class='layout'>)</span>-<a name="line-351"></a> <span class='varop'>>>></span>-<a name="line-352"></a> <span class='varid'>perform</span> <span class='layout'>(</span> <span class='varid'>getAttrValue</span> <span class='varid'>transferURI</span>-<a name="line-353"></a> <span class='varop'>>>></span>-<a name="line-354"></a> <span class='varid'>traceValue</span> <span class='num'>1</span> <span class='layout'>(</span><span class='layout'>(</span><span class='str'>"getXmlContents: content read and decoded for "</span> <span class='varop'>++</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>show</span><span class='layout'>)</span>-<a name="line-355"></a> <span class='layout'>)</span>-<a name="line-356"></a> <span class='varop'>>>></span>-<a name="line-357"></a> <span class='varid'>traceTree</span>-<a name="line-358"></a> <span class='varop'>>>></span>-<a name="line-359"></a> <span class='varid'>traceSource</span>-<a name="line-360"></a> <span class='layout'>)</span>-<a name="line-361"></a> <span class='varop'>`when`</span>-<a name="line-362"></a> <span class='varid'>isRoot</span>-<a name="line-363"></a> <span class='keyword'>where</span>-<a name="line-364"></a> <span class='varid'>isXmlHtml</span>-<a name="line-365"></a> <span class='keyglyph'>=</span> <span class='varid'>getAttrValue</span> <span class='varid'>transferMimeType</span>-<a name="line-366"></a> <span class='varop'>>>></span>-<a name="line-367"></a> <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>mt</span> <span class='keyglyph'>-></span> <span class='varid'>isHtmlMimeType</span> <span class='varid'>mt</span> <span class='varop'>||</span> <span class='varid'>isXmlMimeType</span> <span class='varid'>mt</span><span class='layout'>)</span>-<a name="line-368"></a>-<a name="line-369"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-370"></a>-<a name="line-371"></a><a name="getEncoding"></a><span class='definition'>getEncoding</span> <span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>-<a name="line-372"></a><span class='definition'>getEncoding</span>-<a name="line-373"></a> <span class='keyglyph'>=</span> <span class='varid'>catA</span> <span class='keyglyph'>[</span> <span class='varid'>xshow</span> <span class='varid'>getChildren</span> <span class='comment'>-- 1. guess: guess encoding by looking at the first few bytes</span>-<a name="line-374"></a> <span class='varop'>>>></span>-<a name="line-375"></a> <span class='varid'>arr</span> <span class='varid'>guessEncoding</span>-<a name="line-376"></a> <span class='layout'>,</span> <span class='varid'>getAttrValue</span> <span class='varid'>transferEncoding</span> <span class='comment'>-- 2. guess: take the transfer encoding</span>-<a name="line-377"></a> <span class='layout'>,</span> <span class='varid'>getAttrValue</span> <span class='varid'>a_encoding</span> <span class='comment'>-- 4. guess: take encoding parameter in root node</span>-<a name="line-378"></a> <span class='layout'>,</span> <span class='varid'>getParamString</span> <span class='varid'>a_encoding</span> <span class='comment'>-- 5. guess: take encoding parameter in global state</span>-<a name="line-379"></a> <span class='layout'>,</span> <span class='varid'>constA</span> <span class='varid'>utf8</span> <span class='comment'>-- default : utf8</span>-<a name="line-380"></a> <span class='keyglyph'>]</span>-<a name="line-381"></a> <span class='varop'>>.</span> <span class='layout'>(</span><span class='varid'>head</span> <span class='varop'>.</span> <span class='varid'>filter</span> <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>null</span><span class='layout'>)</span><span class='layout'>)</span> <span class='comment'>-- make the filter deterministic: take 1. entry from list of guesses</span>-<a name="line-382"></a>-<a name="line-383"></a>-<a name="line-384"></a><a name="decodeDocument"></a><span class='definition'>decodeDocument</span> <span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-385"></a><span class='definition'>decodeDocument</span>-<a name="line-386"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>decodeArr</span> <span class='varop'>$<</span> <span class='varid'>getEncoding</span> <span class='layout'>)</span>-<a name="line-387"></a> <span class='varop'>`when`</span>-<a name="line-388"></a> <span class='layout'>(</span> <span class='varid'>isRoot</span> <span class='varop'>>>></span> <span class='varid'>isXmlOrHtmlDoc</span> <span class='layout'>)</span>-<a name="line-389"></a> <span class='keyword'>where</span>-<a name="line-390"></a> <span class='varid'>isXmlOrHtmlDoc</span>-<a name="line-391"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>getAttrValue</span> <span class='varid'>transferMimeType</span> <span class='varop'>>>^</span> <span class='varid'>map</span> <span class='varid'>toLower</span> <span class='layout'>)</span>-<a name="line-392"></a> <span class='varop'>>>></span>-<a name="line-393"></a> <span class='varid'>isA</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>t</span> <span class='keyglyph'>-></span> <span class='varid'>null</span> <span class='varid'>t</span> <span class='varop'>||</span> <span class='varid'>isXmlMimeType</span> <span class='varid'>t</span> <span class='varop'>||</span> <span class='varid'>isHtmlMimeType</span> <span class='varid'>t</span><span class='layout'>)</span>-<a name="line-394"></a>-<a name="line-395"></a> <span class='varid'>decodeArr</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-396"></a> <span class='varid'>decodeArr</span> <span class='varid'>enc</span>-<a name="line-397"></a> <span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='varid'>notFound</span> <span class='varid'>found</span> <span class='varop'>.</span> <span class='varid'>getDecodingFct</span> <span class='varop'>$</span> <span class='varid'>enc</span>-<a name="line-398"></a> <span class='keyword'>where</span>-<a name="line-399"></a> <span class='varid'>found</span> <span class='varid'>df</span>-<a name="line-400"></a> <span class='keyglyph'>=</span> <span class='varid'>traceMsg</span> <span class='num'>2</span> <span class='layout'>(</span><span class='str'>"decodeDocument: encoding is "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>enc</span><span class='layout'>)</span>-<a name="line-401"></a> <span class='varop'>>>></span>-<a name="line-402"></a> <span class='layout'>(</span> <span class='varid'>decodeText</span> <span class='varid'>df</span> <span class='varop'>$<</span> <span class='varid'>getAttrValue</span> <span class='varid'>a_ignore_encoding_errors</span> <span class='layout'>)</span>-<a name="line-403"></a> <span class='varop'>>>></span>-<a name="line-404"></a> <span class='varid'>addAttr</span> <span class='varid'>transferEncoding</span> <span class='varid'>enc</span>-<a name="line-405"></a>-<a name="line-406"></a> <span class='varid'>notFound</span>-<a name="line-407"></a> <span class='keyglyph'>=</span> <span class='varid'>issueFatal</span> <span class='layout'>(</span><span class='str'>"encoding scheme not supported: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>enc</span><span class='layout'>)</span>-<a name="line-408"></a> <span class='varop'>>>></span>-<a name="line-409"></a> <span class='varid'>setDocumentStatusFromSystemState</span> <span class='str'>"decoding document"</span>-<a name="line-410"></a>-<a name="line-411"></a> <span class='varid'>decodeText</span> <span class='varid'>df</span> <span class='varid'>ignoreErrs</span>-<a name="line-412"></a> <span class='keyglyph'>=</span> <span class='varid'>processChildren</span>-<a name="line-413"></a> <span class='layout'>(</span> <span class='varid'>getText</span> <span class='comment'>-- get the document content</span>-<a name="line-414"></a> <span class='varop'>>>></span> <span class='varid'>arr</span> <span class='varid'>df</span> <span class='comment'>-- decode the text, result is (string, [errMsg])</span>-<a name="line-415"></a> <span class='varop'>>>></span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>normalizeNL</span> <span class='varop'>.</span> <span class='varid'>fst</span><span class='layout'>)</span> <span class='varop'>^>></span> <span class='varid'>mkText</span> <span class='layout'>)</span> <span class='comment'>-- take decoded string, normalize newline and build text node</span>-<a name="line-416"></a> <span class='varop'><+></span>-<a name="line-417"></a> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>isTrueValue</span> <span class='varid'>ignoreErrs</span>-<a name="line-418"></a> <span class='keyword'>then</span> <span class='varid'>none</span> <span class='comment'>-- encoding errors are ignored</span>-<a name="line-419"></a> <span class='keyword'>else</span>-<a name="line-420"></a> <span class='layout'>(</span> <span class='varid'>arrL</span> <span class='varid'>snd</span> <span class='comment'>-- take the error messages</span>-<a name="line-421"></a> <span class='varop'>>>></span>-<a name="line-422"></a> <span class='varid'>arr</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>enc</span> <span class='varop'>++</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='str'>" encoding error"</span> <span class='varop'>++</span><span class='layout'>)</span><span class='layout'>)</span> <span class='comment'>-- prefix with enc error</span>-<a name="line-423"></a> <span class='varop'>>>></span>-<a name="line-424"></a> <span class='varid'>applyA</span> <span class='layout'>(</span><span class='varid'>arr</span> <span class='varid'>issueErr</span><span class='layout'>)</span> <span class='comment'>-- build issueErr arrow and apply</span>-<a name="line-425"></a> <span class='varop'>>>></span>-<a name="line-426"></a> <span class='varid'>none</span> <span class='comment'>-- neccessary for type match with <+></span>-<a name="line-427"></a> <span class='layout'>)</span>-<a name="line-428"></a> <span class='layout'>)</span>-<a name="line-429"></a> <span class='layout'>)</span>-<a name="line-430"></a> <span class='layout'>)</span>-<a name="line-431"></a> -<a name="line-432"></a><span class='comment'>-- ------------------------------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-Arrow-DocumentOutput.html
@@ -1,189 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Text.XML.HXT.Arrow.DocumentOutput-<a name="line-5"></a> Copyright : Copyright (C) 2005-9 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe@fh-wedel.de)-<a name="line-9"></a> Stability : experimental-<a name="line-10"></a> Portability: portable-<a name="line-11"></a>-<a name="line-12"></a> State arrows for document output-<a name="line-13"></a>-<a name="line-14"></a>-}</span>-<a name="line-15"></a>-<a name="line-16"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-17"></a>-<a name="line-18"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>DocumentOutput</span>-<a name="line-19"></a> <span class='layout'>(</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>DocumentOutput</span> <span class='layout'>)</span>-<a name="line-20"></a><span class='keyword'>where</span>-<a name="line-21"></a>-<a name="line-22"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span> <span class='comment'>-- arrow classes</span>-<a name="line-23"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowList</span>-<a name="line-24"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowIf</span>-<a name="line-25"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowTree</span>-<a name="line-26"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowIO</span>-<a name="line-27"></a>-<a name="line-28"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Unicode</span>-<a name="line-29"></a> <span class='layout'>(</span> <span class='varid'>getOutputEncodingFct</span> <span class='layout'>)</span>-<a name="line-30"></a>-<a name="line-31"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>-<a name="line-32"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlArrow</span>-<a name="line-33"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlIOStateArrow</span>-<a name="line-34"></a>-<a name="line-35"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>Edit</span>-<a name="line-36"></a> <span class='layout'>(</span> <span class='varid'>addHeadlineToXmlDoc</span>-<a name="line-37"></a> <span class='layout'>,</span> <span class='varid'>addXmlPi</span>-<a name="line-38"></a> <span class='layout'>,</span> <span class='varid'>addXmlPiEncoding</span>-<a name="line-39"></a> <span class='layout'>,</span> <span class='varid'>indentDoc</span>-<a name="line-40"></a> <span class='layout'>,</span> <span class='varid'>numberLinesInXmlDoc</span>-<a name="line-41"></a> <span class='layout'>,</span> <span class='varid'>treeRepOfXmlDoc</span>-<a name="line-42"></a> <span class='layout'>)</span>-<a name="line-43"></a>-<a name="line-44"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>-<a name="line-45"></a>-<a name="line-46"></a><span class='keyword'>import</span> <span class='conid'>System</span><span class='varop'>.</span><span class='conid'>IO</span>-<a name="line-47"></a> <span class='layout'>(</span> <span class='conid'>Handle</span>-<a name="line-48"></a> <span class='layout'>,</span> <span class='conid'>IOMode</span><span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span>-<a name="line-49"></a> <span class='layout'>,</span> <span class='varid'>openFile</span>-<a name="line-50"></a> <span class='layout'>,</span> <span class='varid'>hPutStrLn</span>-<a name="line-51"></a> <span class='layout'>,</span> <span class='varid'>hClose</span>-<a name="line-52"></a> <span class='layout'>,</span> <span class='varid'>stdout</span>-<a name="line-53"></a> <span class='layout'>)</span>-<a name="line-54"></a>-<a name="line-55"></a><span class='keyword'>import</span> <span class='conid'>System</span><span class='varop'>.</span><span class='conid'>IO</span><span class='varop'>.</span><span class='conid'>Error</span>-<a name="line-56"></a> <span class='layout'>(</span> <span class='varid'>try</span> <span class='layout'>)</span>-<a name="line-57"></a>-<a name="line-58"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-59"></a><span class='comment'>--</span>-<a name="line-60"></a><span class='comment'>-- output arrows</span>-<a name="line-61"></a>-<a name="line-62"></a><a name="putXmlDocument"></a><span class='definition'>putXmlDocument</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-63"></a><span class='definition'>putXmlDocument</span> <span class='varid'>dst</span>-<a name="line-64"></a> <span class='keyglyph'>=</span> <span class='varid'>perform</span> <span class='layout'>(</span> <span class='varid'>xshow</span> <span class='varid'>getChildren</span>-<a name="line-65"></a> <span class='varop'>>>></span>-<a name="line-66"></a> <span class='varid'>arrIO</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='keyglyph'>-></span> <span class='varid'>try</span> <span class='layout'>(</span> <span class='varid'>hPutDocument</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>h</span> <span class='keyglyph'>-></span> <span class='varid'>hPutStrLn</span> <span class='varid'>h</span> <span class='varid'>s</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-67"></a> <span class='varop'>>>></span>-<a name="line-68"></a> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>traceMsg</span> <span class='num'>1</span> <span class='layout'>(</span><span class='str'>"io error, document not written to "</span> <span class='varop'>++</span> <span class='varid'>outFile</span><span class='layout'>)</span>-<a name="line-69"></a> <span class='varop'>>>></span>-<a name="line-70"></a> <span class='varid'>arr</span> <span class='varid'>show</span> <span class='varop'>>>></span> <span class='varid'>mkError</span> <span class='varid'>c_fatal</span>-<a name="line-71"></a> <span class='varop'>>>></span>-<a name="line-72"></a> <span class='varid'>filterErrorMsg</span>-<a name="line-73"></a> <span class='layout'>)</span>-<a name="line-74"></a> <span class='varop'>|||</span>-<a name="line-75"></a> <span class='layout'>(</span> <span class='varid'>traceMsg</span> <span class='num'>2</span> <span class='layout'>(</span><span class='str'>"document written to "</span> <span class='varop'>++</span> <span class='varid'>outFile</span><span class='layout'>)</span>-<a name="line-76"></a> <span class='varop'>>>></span>-<a name="line-77"></a> <span class='varid'>none</span>-<a name="line-78"></a> <span class='layout'>)</span>-<a name="line-79"></a> <span class='layout'>)</span>-<a name="line-80"></a> <span class='layout'>)</span>-<a name="line-81"></a> <span class='keyword'>where</span>-<a name="line-82"></a> <span class='varid'>isStdout</span> <span class='keyglyph'>=</span> <span class='varid'>null</span> <span class='varid'>dst</span> <span class='varop'>||</span> <span class='varid'>dst</span> <span class='varop'>==</span> <span class='str'>"-"</span>-<a name="line-83"></a>-<a name="line-84"></a> <span class='varid'>outFile</span> <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>isStdout</span>-<a name="line-85"></a> <span class='keyword'>then</span> <span class='str'>"stdout"</span>-<a name="line-86"></a> <span class='keyword'>else</span> <span class='varid'>show</span> <span class='varid'>dst</span>-<a name="line-87"></a>-<a name="line-88"></a> <span class='varid'>hPutDocument</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Handle</span> <span class='keyglyph'>-></span> <span class='conid'>IO</span><span class='conid'>()</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>IO</span><span class='conid'>()</span>-<a name="line-89"></a> <span class='varid'>hPutDocument</span> <span class='varid'>action</span>-<a name="line-90"></a> <span class='keyglyph'>|</span> <span class='varid'>isStdout</span>-<a name="line-91"></a> <span class='keyglyph'>=</span> <span class='varid'>action</span> <span class='varid'>stdout</span>-<a name="line-92"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-93"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-94"></a> <span class='varid'>handle</span> <span class='keyglyph'><-</span> <span class='varid'>openFile</span> <span class='varid'>dst</span> <span class='conid'>WriteMode</span>-<a name="line-95"></a> <span class='varid'>action</span> <span class='varid'>handle</span>-<a name="line-96"></a> <span class='varid'>hClose</span> <span class='varid'>handle</span>-<a name="line-97"></a>-<a name="line-98"></a><span class='comment'>-- |</span>-<a name="line-99"></a><span class='comment'>-- write the tree representation of a document to a file</span>-<a name="line-100"></a>-<a name="line-101"></a><a name="putXmlTree"></a><span class='definition'>putXmlTree</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-102"></a><span class='definition'>putXmlTree</span> <span class='varid'>dst</span>-<a name="line-103"></a> <span class='keyglyph'>=</span> <span class='varid'>perform</span> <span class='layout'>(</span> <span class='varid'>treeRepOfXmlDoc</span>-<a name="line-104"></a> <span class='varop'>>>></span>-<a name="line-105"></a> <span class='varid'>addHeadlineToXmlDoc</span>-<a name="line-106"></a> <span class='varop'>>>></span>-<a name="line-107"></a> <span class='varid'>putXmlDocument</span> <span class='varid'>dst</span>-<a name="line-108"></a> <span class='layout'>)</span>-<a name="line-109"></a>-<a name="line-110"></a><span class='comment'>-- |</span>-<a name="line-111"></a><span class='comment'>-- write a document with indentaion and line numers</span>-<a name="line-112"></a>-<a name="line-113"></a><a name="putXmlSource"></a><span class='definition'>putXmlSource</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-114"></a><span class='definition'>putXmlSource</span> <span class='varid'>dst</span>-<a name="line-115"></a> <span class='keyglyph'>=</span> <span class='varid'>perform</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>this</span> <span class='layout'>)</span> <span class='varop'>`whenNot`</span> <span class='varid'>isRoot</span>-<a name="line-116"></a> <span class='varop'>>>></span>-<a name="line-117"></a> <span class='varid'>indentDoc</span>-<a name="line-118"></a> <span class='varop'>>>></span>-<a name="line-119"></a> <span class='varid'>numberLinesInXmlDoc</span>-<a name="line-120"></a> <span class='varop'>>>></span>-<a name="line-121"></a> <span class='varid'>addHeadlineToXmlDoc</span>-<a name="line-122"></a> <span class='varop'>>>></span>-<a name="line-123"></a> <span class='varid'>putXmlDocument</span> <span class='varid'>dst</span>-<a name="line-124"></a> <span class='layout'>)</span>-<a name="line-125"></a>-<a name="line-126"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-127"></a>-<a name="line-128"></a><a name="getOutputEncoding"></a><span class='definition'>getOutputEncoding</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>-<a name="line-129"></a><span class='definition'>getOutputEncoding</span> <span class='varid'>defaultEnc</span>-<a name="line-130"></a> <span class='keyglyph'>=</span> <span class='varid'>catA</span> <span class='keyglyph'>[</span> <span class='varid'>getChildren</span> <span class='comment'>-- 1. guess: evaluate <?xml ... encoding="..."?></span>-<a name="line-131"></a> <span class='varop'>>>></span>-<a name="line-132"></a> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>isPi</span> <span class='varop'>>>></span> <span class='varid'>hasName</span> <span class='varid'>t_xml</span> <span class='layout'>)</span>-<a name="line-133"></a> <span class='varop'>`guards`</span>-<a name="line-134"></a> <span class='varid'>getAttrValue</span> <span class='varid'>a_encoding</span>-<a name="line-135"></a> <span class='layout'>)</span>-<a name="line-136"></a> <span class='layout'>,</span> <span class='varid'>constA</span> <span class='varid'>defaultEnc</span> <span class='comment'>-- 2. guess: explicit parameter, may be ""</span>-<a name="line-137"></a> <span class='layout'>,</span> <span class='varid'>getAttrValue</span> <span class='varid'>a_output_encoding</span> <span class='comment'>-- 3. guess: take output encoding parameter in root node</span>-<a name="line-138"></a> <span class='layout'>,</span> <span class='varid'>getParamString</span> <span class='varid'>a_output_encoding</span> <span class='comment'>-- 4. guess: take output encoding parameter in global state</span>-<a name="line-139"></a> <span class='layout'>,</span> <span class='varid'>getParamString</span> <span class='varid'>a_encoding</span> <span class='comment'>-- 5. guess: take encoding parameter in global state</span>-<a name="line-140"></a> <span class='layout'>,</span> <span class='varid'>constA</span> <span class='varid'>utf8</span> <span class='comment'>-- default : utf8</span>-<a name="line-141"></a> <span class='keyglyph'>]</span>-<a name="line-142"></a> <span class='varop'>>.</span> <span class='layout'>(</span><span class='varid'>head</span> <span class='varop'>.</span> <span class='varid'>filter</span> <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>null</span><span class='layout'>)</span><span class='layout'>)</span> <span class='comment'>-- make the filter deterministic: take 1. entry from list of guesses</span>-<a name="line-143"></a>-<a name="line-144"></a><a name="encodeDocument"></a><span class='definition'>encodeDocument</span> <span class='keyglyph'>::</span> <span class='conid'>Bool</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-145"></a><span class='definition'>encodeDocument</span> <span class='varid'>supressXmlPi</span> <span class='varid'>defaultEnc</span>-<a name="line-146"></a> <span class='keyglyph'>=</span> <span class='varid'>applyA</span> <span class='layout'>(</span> <span class='varid'>getOutputEncoding</span> <span class='varid'>defaultEnc</span>-<a name="line-147"></a> <span class='varop'>>>></span>-<a name="line-148"></a> <span class='varid'>arr</span> <span class='varid'>encArr</span>-<a name="line-149"></a> <span class='layout'>)</span>-<a name="line-150"></a> <span class='varop'>`when`</span>-<a name="line-151"></a> <span class='varid'>isRoot</span>-<a name="line-152"></a> <span class='keyword'>where</span>-<a name="line-153"></a> <span class='varid'>encArr</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-154"></a> <span class='varid'>encArr</span> <span class='varid'>enc</span> <span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='varid'>notFound</span> <span class='varid'>found</span> <span class='varop'>.</span> <span class='varid'>getOutputEncodingFct</span> <span class='varop'>$</span> <span class='varid'>enc</span>-<a name="line-155"></a> <span class='keyword'>where</span>-<a name="line-156"></a> <span class='varid'>found</span> <span class='varid'>ef</span> <span class='keyglyph'>=</span> <span class='varid'>traceMsg</span> <span class='num'>2</span> <span class='layout'>(</span><span class='str'>"encodeDocument: encoding is "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>enc</span><span class='layout'>)</span>-<a name="line-157"></a> <span class='varop'>>>></span>-<a name="line-158"></a> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>supressXmlPi</span>-<a name="line-159"></a> <span class='keyword'>then</span> <span class='varid'>processChildren</span> <span class='layout'>(</span><span class='varid'>none</span> <span class='varop'>`when`</span> <span class='varid'>isXmlPi</span><span class='layout'>)</span>-<a name="line-160"></a> <span class='keyword'>else</span> <span class='layout'>(</span> <span class='varid'>addXmlPi</span>-<a name="line-161"></a> <span class='varop'>>>></span>-<a name="line-162"></a> <span class='varid'>addXmlPiEncoding</span> <span class='varid'>enc</span>-<a name="line-163"></a> <span class='layout'>)</span>-<a name="line-164"></a> <span class='layout'>)</span>-<a name="line-165"></a> <span class='varop'>>>></span>-<a name="line-166"></a> <span class='varid'>replaceChildren</span> <span class='layout'>(</span> <span class='varid'>xshow</span> <span class='varid'>getChildren</span>-<a name="line-167"></a> <span class='varop'>>>></span>-<a name="line-168"></a> <span class='varid'>arr</span> <span class='varid'>ef</span>-<a name="line-169"></a> <span class='varop'>>>></span>-<a name="line-170"></a> <span class='varid'>mkText</span>-<a name="line-171"></a> <span class='layout'>)</span>-<a name="line-172"></a> <span class='varop'>>>></span>-<a name="line-173"></a> <span class='varid'>addAttr</span> <span class='varid'>a_output_encoding</span> <span class='varid'>enc</span>-<a name="line-174"></a>-<a name="line-175"></a> <span class='varid'>notFound</span> <span class='keyglyph'>=</span> <span class='varid'>issueFatal</span> <span class='layout'>(</span><span class='str'>"encoding scheme not supported: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>enc</span><span class='layout'>)</span>-<a name="line-176"></a> <span class='varop'>>>></span>-<a name="line-177"></a> <span class='varid'>setDocumentStatusFromSystemState</span> <span class='str'>"encoding document"</span>-<a name="line-178"></a>-<a name="line-179"></a><span class='comment'>-- ------------------------------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-Arrow-Edit.html
@@ -1,797 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Text.XML.HXT.Arrow.Edit-<a name="line-5"></a> Copyright : Copyright (C) 2006-9 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe@fh-wedel.de)-<a name="line-9"></a> Stability : stable-<a name="line-10"></a> Portability: portable-<a name="line-11"></a>-<a name="line-12"></a> common edit arrows-<a name="line-13"></a>-<a name="line-14"></a>-}</span>-<a name="line-15"></a>-<a name="line-16"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-17"></a>-<a name="line-18"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>Edit</span>-<a name="line-19"></a> <span class='layout'>(</span> <span class='varid'>canonicalizeAllNodes</span>-<a name="line-20"></a> <span class='layout'>,</span> <span class='varid'>canonicalizeForXPath</span>-<a name="line-21"></a> <span class='layout'>,</span> <span class='varid'>canonicalizeContents</span>-<a name="line-22"></a> <span class='layout'>,</span> <span class='varid'>collapseAllXText</span>-<a name="line-23"></a> <span class='layout'>,</span> <span class='varid'>collapseXText</span>-<a name="line-24"></a>-<a name="line-25"></a> <span class='layout'>,</span> <span class='varid'>xshowEscapeXml</span>-<a name="line-26"></a>-<a name="line-27"></a> <span class='layout'>,</span> <span class='varid'>escapeXmlDoc</span>-<a name="line-28"></a> <span class='layout'>,</span> <span class='varid'>escapeHtmlDoc</span>-<a name="line-29"></a>-<a name="line-30"></a> <span class='layout'>,</span> <span class='varid'>haskellRepOfXmlDoc</span>-<a name="line-31"></a> <span class='layout'>,</span> <span class='varid'>treeRepOfXmlDoc</span>-<a name="line-32"></a> <span class='layout'>,</span> <span class='varid'>addHeadlineToXmlDoc</span>-<a name="line-33"></a>-<a name="line-34"></a> <span class='layout'>,</span> <span class='varid'>indentDoc</span>-<a name="line-35"></a> <span class='layout'>,</span> <span class='varid'>numberLinesInXmlDoc</span>-<a name="line-36"></a> <span class='layout'>,</span> <span class='varid'>preventEmptyElements</span>-<a name="line-37"></a> -<a name="line-38"></a> <span class='layout'>,</span> <span class='varid'>removeComment</span>-<a name="line-39"></a> <span class='layout'>,</span> <span class='varid'>removeAllComment</span>-<a name="line-40"></a> <span class='layout'>,</span> <span class='varid'>removeWhiteSpace</span>-<a name="line-41"></a> <span class='layout'>,</span> <span class='varid'>removeAllWhiteSpace</span>-<a name="line-42"></a> <span class='layout'>,</span> <span class='varid'>removeDocWhiteSpace</span>-<a name="line-43"></a>-<a name="line-44"></a> <span class='layout'>,</span> <span class='varid'>transfCdata</span>-<a name="line-45"></a> <span class='layout'>,</span> <span class='varid'>transfAllCdata</span>-<a name="line-46"></a> <span class='layout'>,</span> <span class='varid'>transfCharRef</span>-<a name="line-47"></a> <span class='layout'>,</span> <span class='varid'>transfAllCharRef</span>-<a name="line-48"></a>-<a name="line-49"></a> <span class='layout'>,</span> <span class='varid'>hasXmlPi</span>-<a name="line-50"></a> <span class='layout'>,</span> <span class='varid'>addXmlPi</span>-<a name="line-51"></a> <span class='layout'>,</span> <span class='varid'>addXmlPiEncoding</span>-<a name="line-52"></a>-<a name="line-53"></a> <span class='layout'>,</span> <span class='varid'>addDoctypeDecl</span>-<a name="line-54"></a> <span class='layout'>,</span> <span class='varid'>addXHtmlDoctypeStrict</span>-<a name="line-55"></a> <span class='layout'>,</span> <span class='varid'>addXHtmlDoctypeTransitional</span>-<a name="line-56"></a> <span class='layout'>,</span> <span class='varid'>addXHtmlDoctypeFrameset</span>-<a name="line-57"></a> <span class='layout'>)</span>-<a name="line-58"></a><span class='keyword'>where</span>-<a name="line-59"></a>-<a name="line-60"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span>-<a name="line-61"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowList</span>-<a name="line-62"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowIf</span>-<a name="line-63"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowTree</span>-<a name="line-64"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ListArrow</span>-<a name="line-65"></a>-<a name="line-66"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlArrow</span>-<a name="line-67"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>-<a name="line-68"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlNode</span> <span class='keyword'>as</span> <span class='conid'>XN</span>-<a name="line-69"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Unicode</span> <span class='layout'>(</span> <span class='varid'>isXmlSpaceChar</span> <span class='layout'>)</span>-<a name="line-70"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>FormatXmlTree</span> <span class='layout'>(</span> <span class='varid'>formatXmlTree</span> <span class='layout'>)</span>-<a name="line-71"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Parser</span><span class='varop'>.</span><span class='conid'>HtmlParsec</span> <span class='layout'>(</span> <span class='varid'>emptyHtmlTags</span> <span class='layout'>)</span>-<a name="line-72"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Parser</span><span class='varop'>.</span><span class='conid'>XmlEntities</span> <span class='layout'>(</span> <span class='varid'>xmlEntities</span> <span class='layout'>)</span>-<a name="line-73"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Parser</span><span class='varop'>.</span><span class='conid'>XhtmlEntities</span> <span class='layout'>(</span> <span class='varid'>xhtmlEntities</span> <span class='layout'>)</span>-<a name="line-74"></a>-<a name="line-75"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Map</span> <span class='keyword'>as</span> <span class='conid'>M</span>-<a name="line-76"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>-<a name="line-77"></a>-<a name="line-78"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-79"></a>-<a name="line-80"></a><span class='comment'>-- |</span>-<a name="line-81"></a><span class='comment'>-- Applies some "Canonical XML" rules to a document tree.</span>-<a name="line-82"></a><span class='comment'>--</span>-<a name="line-83"></a><span class='comment'>-- The rule differ slightly for canonical XML and XPath in handling of comments</span>-<a name="line-84"></a><span class='comment'>--</span>-<a name="line-85"></a><span class='comment'>-- Note: This is not the whole canonicalization as it is specified by the W3C</span>-<a name="line-86"></a><span class='comment'>-- Recommendation. Adding attribute defaults or sorting attributes in lexicographic</span>-<a name="line-87"></a><span class='comment'>-- order is done by the @transform@ function of module @Text.XML.HXT.Validator.Validation@.</span>-<a name="line-88"></a><span class='comment'>-- Replacing entities or line feed normalization is done by the parser.</span>-<a name="line-89"></a><span class='comment'>--</span>-<a name="line-90"></a><span class='comment'>--</span>-<a name="line-91"></a><span class='comment'>-- Not implemented yet:</span>-<a name="line-92"></a><span class='comment'>--</span>-<a name="line-93"></a><span class='comment'>-- - Whitespace within start and end tags is normalized</span>-<a name="line-94"></a><span class='comment'>--</span>-<a name="line-95"></a><span class='comment'>-- - Special characters in attribute values and character content are replaced by character references</span>-<a name="line-96"></a><span class='comment'>--</span>-<a name="line-97"></a><span class='comment'>-- see 'canonicalizeAllNodes' and 'canonicalizeForXPath'</span>-<a name="line-98"></a>-<a name="line-99"></a><a name="canonicalizeTree'"></a><span class='definition'>canonicalizeTree'</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-100"></a><span class='definition'>canonicalizeTree'</span> <span class='varid'>toBeRemoved</span>-<a name="line-101"></a> <span class='keyglyph'>=</span> <span class='varid'>processChildren</span> <span class='layout'>(</span><span class='varid'>none</span> <span class='varop'>`when`</span> <span class='varid'>isText</span><span class='layout'>)</span>-<a name="line-102"></a> <span class='varop'>>>></span>-<a name="line-103"></a> <span class='varid'>processBottomUp</span> <span class='varid'>canonicalize1Node</span>-<a name="line-104"></a> <span class='keyword'>where</span>-<a name="line-105"></a> <span class='varid'>canonicalize1Node</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-106"></a> <span class='varid'>canonicalize1Node</span>-<a name="line-107"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>deep</span> <span class='varid'>isPi</span> <span class='varop'>`when`</span> <span class='varid'>isDTD</span><span class='layout'>)</span> <span class='comment'>-- remove DTD parts, except PIs</span>-<a name="line-108"></a> <span class='varop'>>>></span>-<a name="line-109"></a> <span class='layout'>(</span><span class='varid'>none</span> <span class='varop'>`when`</span> <span class='varid'>toBeRemoved</span><span class='layout'>)</span> <span class='comment'>-- remove unintersting nodes</span>-<a name="line-110"></a> <span class='varop'>>>></span>-<a name="line-111"></a> <span class='layout'>(</span> <span class='varid'>processAttrl</span> <span class='layout'>(</span> <span class='varid'>processChildren</span> <span class='varid'>transfCharRef</span>-<a name="line-112"></a> <span class='varop'>>>></span>-<a name="line-113"></a> <span class='varid'>collapseXText</span>-<a name="line-114"></a> <span class='layout'>)</span>-<a name="line-115"></a> <span class='varop'>`when`</span> <span class='varid'>isElem</span>-<a name="line-116"></a> <span class='layout'>)</span>-<a name="line-117"></a> <span class='varop'>>>></span>-<a name="line-118"></a> <span class='varid'>transfCdata</span> <span class='comment'>-- CDATA -> text</span>-<a name="line-119"></a> <span class='varop'>>>></span>-<a name="line-120"></a> <span class='varid'>transfCharRef</span> <span class='comment'>-- Char refs -> text</span>-<a name="line-121"></a> <span class='varop'>>>></span>-<a name="line-122"></a> <span class='varid'>collapseXText</span> <span class='comment'>-- combine text</span>-<a name="line-123"></a>-<a name="line-124"></a>-<a name="line-125"></a><span class='comment'>-- |</span>-<a name="line-126"></a><span class='comment'>-- Applies some "Canonical XML" rules to a document tree.</span>-<a name="line-127"></a><span class='comment'>--</span>-<a name="line-128"></a><span class='comment'>-- The rule differ slightly for canonical XML and XPath in handling of comments</span>-<a name="line-129"></a><span class='comment'>--</span>-<a name="line-130"></a><span class='comment'>-- Note: This is not the whole canonicalization as it is specified by the W3C</span>-<a name="line-131"></a><span class='comment'>-- Recommendation. Adding attribute defaults or sorting attributes in lexicographic</span>-<a name="line-132"></a><span class='comment'>-- order is done by the @transform@ function of module @Text.XML.HXT.Validator.Validation@.</span>-<a name="line-133"></a><span class='comment'>-- Replacing entities or line feed normalization is done by the parser.</span>-<a name="line-134"></a><span class='comment'>--</span>-<a name="line-135"></a><span class='comment'>-- Rules: remove DTD parts, processing instructions, comments and substitute char refs in attribute</span>-<a name="line-136"></a><span class='comment'>-- values and text</span>-<a name="line-137"></a><span class='comment'>--</span>-<a name="line-138"></a><span class='comment'>-- Not implemented yet:</span>-<a name="line-139"></a><span class='comment'>--</span>-<a name="line-140"></a><span class='comment'>-- - Whitespace within start and end tags is normalized</span>-<a name="line-141"></a><span class='comment'>--</span>-<a name="line-142"></a><span class='comment'>-- - Special characters in attribute values and character content are replaced by character references</span>-<a name="line-143"></a>-<a name="line-144"></a><a name="canonicalizeAllNodes"></a><span class='definition'>canonicalizeAllNodes</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-145"></a><span class='definition'>canonicalizeAllNodes</span>-<a name="line-146"></a> <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>-<a name="line-147"></a> <span class='varid'>canonicalizeTree'</span> <span class='layout'>(</span> <span class='varid'>isCmt</span> <span class='comment'>-- remove comment</span>-<a name="line-148"></a> <span class='varop'><+></span>-<a name="line-149"></a> <span class='varid'>isXmlPi</span> <span class='comment'>-- remove xml declaration</span>-<a name="line-150"></a> <span class='layout'>)</span>-<a name="line-151"></a>-<a name="line-152"></a><span class='comment'>-- |</span>-<a name="line-153"></a><span class='comment'>-- Canonicalize a tree for XPath</span>-<a name="line-154"></a><span class='comment'>-- Like 'canonicalizeAllNodes' but comment nodes are not removed</span>-<a name="line-155"></a><span class='comment'>--</span>-<a name="line-156"></a><span class='comment'>-- see 'canonicalizeAllNodes'</span>-<a name="line-157"></a>-<a name="line-158"></a><a name="canonicalizeForXPath"></a><span class='definition'>canonicalizeForXPath</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-159"></a><span class='definition'>canonicalizeForXPath</span>-<a name="line-160"></a> <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>-<a name="line-161"></a> <span class='varid'>canonicalizeTree'</span> <span class='varid'>isXmlPi</span>-<a name="line-162"></a>-<a name="line-163"></a><span class='comment'>-- |</span>-<a name="line-164"></a><span class='comment'>-- Canonicalize the contents of a document</span>-<a name="line-165"></a><span class='comment'>--</span>-<a name="line-166"></a><span class='comment'>-- substitutes all char refs in text and attribute values,</span>-<a name="line-167"></a><span class='comment'>-- removes CDATA section and combines all sequences of resulting text</span>-<a name="line-168"></a><span class='comment'>-- nodes into a single text node</span>-<a name="line-169"></a><span class='comment'>--</span>-<a name="line-170"></a><span class='comment'>-- see 'canonicalizeAllNodes'</span>-<a name="line-171"></a>-<a name="line-172"></a><a name="canonicalizeContents"></a><span class='definition'>canonicalizeContents</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-173"></a><span class='definition'>canonicalizeContents</span>-<a name="line-174"></a> <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>-<a name="line-175"></a> <span class='varid'>processBottomUp</span> <span class='varid'>canonicalize1Node</span>-<a name="line-176"></a> <span class='keyword'>where</span>-<a name="line-177"></a> <span class='varid'>canonicalize1Node</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-178"></a> <span class='varid'>canonicalize1Node</span>-<a name="line-179"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>processAttrl</span> <span class='layout'>(</span> <span class='varid'>processChildren</span> <span class='varid'>transfCharRef</span>-<a name="line-180"></a> <span class='varop'>>>></span>-<a name="line-181"></a> <span class='varid'>collapseXText</span>-<a name="line-182"></a> <span class='layout'>)</span>-<a name="line-183"></a> <span class='varop'>`when`</span> <span class='varid'>isElem</span>-<a name="line-184"></a> <span class='layout'>)</span>-<a name="line-185"></a> <span class='varop'>>>></span>-<a name="line-186"></a> <span class='varid'>transfCdata</span> <span class='comment'>-- CDATA -> text</span>-<a name="line-187"></a> <span class='varop'>>>></span>-<a name="line-188"></a> <span class='varid'>transfCharRef</span> <span class='comment'>-- Char refs -> text</span>-<a name="line-189"></a> <span class='varop'>>>></span>-<a name="line-190"></a> <span class='varid'>collapseXText</span> <span class='comment'>-- combine text</span>-<a name="line-191"></a>-<a name="line-192"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-193"></a>-<a name="line-194"></a><a name="collapseXText'"></a><span class='definition'>collapseXText'</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-195"></a><span class='definition'>collapseXText'</span>-<a name="line-196"></a> <span class='keyglyph'>=</span> <span class='varid'>replaceChildren</span> <span class='layout'>(</span> <span class='varid'>listA</span> <span class='varid'>getChildren</span> <span class='varop'>>>></span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>foldr</span> <span class='varid'>mergeText'</span> <span class='conid'>[]</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-197"></a> <span class='keyword'>where</span>-<a name="line-198"></a> <span class='varid'>mergeText'</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span>-<a name="line-199"></a> <span class='varid'>mergeText'</span> <span class='varid'>t1</span> <span class='layout'>(</span><span class='varid'>t2</span> <span class='conop'>:</span> <span class='varid'>ts2</span><span class='layout'>)</span>-<a name="line-200"></a> <span class='keyglyph'>|</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isText</span> <span class='varid'>t1</span> <span class='varop'>&&</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isText</span> <span class='varid'>t2</span>-<a name="line-201"></a> <span class='keyglyph'>=</span> <span class='keyword'>let</span>-<a name="line-202"></a> <span class='varid'>s1</span> <span class='keyglyph'>=</span> <span class='varid'>fromJust</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getText</span> <span class='varop'>$</span> <span class='varid'>t1</span>-<a name="line-203"></a> <span class='varid'>s2</span> <span class='keyglyph'>=</span> <span class='varid'>fromJust</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getText</span> <span class='varop'>$</span> <span class='varid'>t2</span>-<a name="line-204"></a> <span class='varid'>t</span> <span class='keyglyph'>=</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkText</span> <span class='layout'>(</span><span class='varid'>s1</span> <span class='varop'>++</span> <span class='varid'>s2</span><span class='layout'>)</span>-<a name="line-205"></a> <span class='keyword'>in</span>-<a name="line-206"></a> <span class='varid'>t</span> <span class='conop'>:</span> <span class='varid'>ts2</span>-<a name="line-207"></a> <span class='varid'>mergeText'</span> <span class='varid'>t1</span> <span class='varid'>ts</span>-<a name="line-208"></a> <span class='keyglyph'>=</span> <span class='varid'>t1</span> <span class='conop'>:</span> <span class='varid'>ts</span>-<a name="line-209"></a>-<a name="line-210"></a><span class='comment'>-- |</span>-<a name="line-211"></a><span class='comment'>-- Collects sequences of text nodes in the list of children of a node into one single text node.</span>-<a name="line-212"></a><span class='comment'>-- This is useful, e.g. after char and entity reference substitution</span>-<a name="line-213"></a>-<a name="line-214"></a><a name="collapseXText"></a><span class='definition'>collapseXText</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-215"></a><span class='definition'>collapseXText</span>-<a name="line-216"></a> <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>-<a name="line-217"></a> <span class='varid'>collapseXText'</span>-<a name="line-218"></a>-<a name="line-219"></a><span class='comment'>-- |</span>-<a name="line-220"></a><span class='comment'>-- Applies collapseXText recursively.</span>-<a name="line-221"></a><span class='comment'>--</span>-<a name="line-222"></a><span class='comment'>--</span>-<a name="line-223"></a><span class='comment'>-- see also : 'collapseXText'</span>-<a name="line-224"></a>-<a name="line-225"></a><a name="collapseAllXText"></a><span class='definition'>collapseAllXText</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-226"></a><span class='definition'>collapseAllXText</span>-<a name="line-227"></a> <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>-<a name="line-228"></a> <span class='varid'>processBottomUp</span> <span class='varid'>collapseXText'</span>-<a name="line-229"></a>-<a name="line-230"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-231"></a>-<a name="line-232"></a><span class='comment'>-- | apply an arrow to the input and convert the resulting XML trees into an XML escaped string</span>-<a name="line-233"></a><span class='comment'>--</span>-<a name="line-234"></a><span class='comment'>-- This is a save variant for converting a tree into an XML string representation that is parsable with 'Text.XML.HXT.Arrow.ReadDocument'.</span>-<a name="line-235"></a><span class='comment'>-- It is implemented with 'Text.XML.HXT.Arrow.XmlArrow.xshow', but xshow does no XML escaping. The XML escaping is done with</span>-<a name="line-236"></a><span class='comment'>-- 'Text.XML.HXT.Arrow.Edit.escapeXmlDoc' before xshow is applied.</span>-<a name="line-237"></a><span class='comment'>--</span>-<a name="line-238"></a><span class='comment'>-- So the following law holds</span>-<a name="line-239"></a><span class='comment'>--</span>-<a name="line-240"></a><span class='comment'>-- > xshowEscape f >>> xread == f</span>-<a name="line-241"></a>-<a name="line-242"></a><a name="xshowEscapeXml"></a><span class='definition'>xshowEscapeXml</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>String</span>-<a name="line-243"></a><span class='definition'>xshowEscapeXml</span> <span class='varid'>f</span> <span class='keyglyph'>=</span> <span class='varid'>xshow</span> <span class='layout'>(</span><span class='varid'>f</span> <span class='varop'>>>></span> <span class='varid'>escapeXmlDoc</span><span class='layout'>)</span>-<a name="line-244"></a>-<a name="line-245"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-246"></a>-<a name="line-247"></a><span class='comment'>-- |</span>-<a name="line-248"></a><span class='comment'>-- escape XmlText,</span>-<a name="line-249"></a><span class='comment'>-- transform all special XML chars into char- or entity- refs</span>-<a name="line-250"></a>-<a name="line-251"></a><a name="EntityRefTable"></a><span class='keyword'>type</span> <span class='conid'>EntityRefTable</span> <span class='keyglyph'>=</span> <span class='conid'>M</span><span class='varop'>.</span><span class='conid'>Map</span> <span class='conid'>Int</span> <span class='conid'>String</span>-<a name="line-252"></a>-<a name="line-253"></a><a name="xmlEntityRefTable"></a><span class='definition'>xmlEntityRefTable</span>-<a name="line-254"></a> <span class='layout'>,</span> <span class='varid'>xhtmlEntityRefTable</span> <span class='keyglyph'>::</span> <span class='conid'>EntityRefTable</span>-<a name="line-255"></a>-<a name="line-256"></a><span class='definition'>xmlEntityRefTable</span> <span class='keyglyph'>=</span> <span class='varid'>buildEntityRefTable</span> <span class='varop'>$</span> <span class='varid'>xmlEntities</span>-<a name="line-257"></a><a name="xhtmlEntityRefTable"></a><span class='definition'>xhtmlEntityRefTable</span> <span class='keyglyph'>=</span> <span class='varid'>buildEntityRefTable</span> <span class='varop'>$</span> <span class='varid'>xhtmlEntities</span>-<a name="line-258"></a>-<a name="line-259"></a><a name="buildEntityRefTable"></a><span class='definition'>buildEntityRefTable</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>Int</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>EntityRefTable</span>-<a name="line-260"></a><span class='definition'>buildEntityRefTable</span> <span class='keyglyph'>=</span> <span class='conid'>M</span><span class='varop'>.</span><span class='varid'>fromList</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='layout'>(</span><span class='varid'>x</span><span class='layout'>,</span><span class='varid'>y</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='varid'>y</span><span class='layout'>,</span><span class='varid'>x</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-261"></a>-<a name="line-262"></a><a name="escapeText''"></a><span class='definition'>escapeText''</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Char</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='conid'>Char</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span>-<a name="line-263"></a><span class='definition'>escapeText''</span> <span class='varid'>escChar</span> <span class='varid'>isEsc</span> <span class='varid'>t</span>-<a name="line-264"></a> <span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='keyglyph'>[</span><span class='varid'>t</span><span class='keyglyph'>]</span> <span class='varid'>escape'</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getText</span> <span class='varop'>$</span> <span class='varid'>t</span>-<a name="line-265"></a> <span class='keyword'>where</span>-<a name="line-266"></a> <span class='varid'>escape'</span> <span class='str'>""</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>t</span><span class='keyglyph'>]</span> <span class='comment'>-- empty text nodes remain empty text nodes</span>-<a name="line-267"></a> <span class='varid'>escape'</span> <span class='varid'>s</span> <span class='keyglyph'>=</span> <span class='varid'>escape</span> <span class='varid'>s</span> <span class='comment'>-- they do not disapear</span>-<a name="line-268"></a>-<a name="line-269"></a> <span class='varid'>escape</span> <span class='str'>""</span>-<a name="line-270"></a> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-271"></a> <span class='varid'>escape</span> <span class='layout'>(</span><span class='varid'>c</span><span class='conop'>:</span><span class='varid'>s1</span><span class='layout'>)</span>-<a name="line-272"></a> <span class='keyglyph'>|</span> <span class='varid'>isEsc</span> <span class='varid'>c</span>-<a name="line-273"></a> <span class='keyglyph'>=</span> <span class='varid'>escChar</span> <span class='varid'>c</span> <span class='conop'>:</span> <span class='varid'>escape</span> <span class='varid'>s1</span>-<a name="line-274"></a> <span class='varid'>escape</span> <span class='varid'>s</span>-<a name="line-275"></a> <span class='keyglyph'>=</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkText</span> <span class='varid'>s1</span> <span class='conop'>:</span> <span class='varid'>escape</span> <span class='varid'>s2</span>-<a name="line-276"></a> <span class='keyword'>where</span>-<a name="line-277"></a> <span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>s2</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>break</span> <span class='varid'>isEsc</span> <span class='varid'>s</span>-<a name="line-278"></a>-<a name="line-279"></a><span class='comment'>{--<a name="line-280"></a>escapeCharRef :: Char -> XmlTree-<a name="line-281"></a>escapeCharRef = XN.mkCharRef . fromEnum-<a name="line-282"></a>-}</span>-<a name="line-283"></a>-<a name="line-284"></a><a name="escapeEntityRef"></a><span class='definition'>escapeEntityRef</span> <span class='keyglyph'>::</span> <span class='conid'>EntityRefTable</span> <span class='keyglyph'>-></span> <span class='conid'>Char</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span>-<a name="line-285"></a><span class='definition'>escapeEntityRef</span> <span class='varid'>entityTable</span> <span class='varid'>c</span>-<a name="line-286"></a> <span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='layout'>(</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkCharRef</span> <span class='varid'>c'</span><span class='layout'>)</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkEntityRef</span> <span class='varop'>.</span> <span class='conid'>M</span><span class='varop'>.</span><span class='varid'>lookup</span> <span class='varid'>c'</span> <span class='varop'>$</span> <span class='varid'>entityTable</span>-<a name="line-287"></a> <span class='keyword'>where</span>-<a name="line-288"></a> <span class='varid'>c'</span> <span class='keyglyph'>=</span> <span class='varid'>fromEnum</span> <span class='varid'>c</span>-<a name="line-289"></a>-<a name="line-290"></a><a name="escapeXmlEntityRef"></a><span class='definition'>escapeXmlEntityRef</span> <span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span>-<a name="line-291"></a><span class='definition'>escapeXmlEntityRef</span> <span class='keyglyph'>=</span> <span class='varid'>escapeEntityRef</span> <span class='varid'>xmlEntityRefTable</span>-<a name="line-292"></a>-<a name="line-293"></a><a name="escapeHtmlEntityRef"></a><span class='definition'>escapeHtmlEntityRef</span> <span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span>-<a name="line-294"></a><span class='definition'>escapeHtmlEntityRef</span> <span class='keyglyph'>=</span> <span class='varid'>escapeEntityRef</span> <span class='varid'>xhtmlEntityRefTable</span>-<a name="line-295"></a>-<a name="line-296"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-297"></a>-<a name="line-298"></a><span class='comment'>-- |</span>-<a name="line-299"></a><span class='comment'>-- escape all special XML chars into XML entity references or char references</span>-<a name="line-300"></a><span class='comment'>--</span>-<a name="line-301"></a><span class='comment'>-- convert the special XML chars \< and & in text nodes into prefefiened XML entity references,</span>-<a name="line-302"></a><span class='comment'>-- in attribute values also \', \", \>, \\n, \\r and \\t are converted into entity or char references,</span>-<a name="line-303"></a><span class='comment'>-- in comments nothing is converted (see XML standard 2.4, useful e.g. for JavaScript).</span>-<a name="line-304"></a>-<a name="line-305"></a><a name="escapeXmlDoc"></a><span class='definition'>escapeXmlDoc</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-306"></a><span class='definition'>escapeXmlDoc</span>-<a name="line-307"></a> <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span> <span class='varid'>escapeDoc</span> <span class='varid'>escXmlText</span> <span class='varid'>escXmlAttrValue</span>-<a name="line-308"></a> <span class='keyword'>where</span>-<a name="line-309"></a> <span class='varid'>escXmlText</span>-<a name="line-310"></a> <span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='varop'>$</span> <span class='varid'>escapeText''</span> <span class='varid'>escapeXmlEntityRef</span> <span class='layout'>(</span><span class='varop'>`elem`</span> <span class='str'>"<&"</span><span class='layout'>)</span> <span class='comment'>-- no escape for ", ' and > required: XML standard 2.4</span>-<a name="line-311"></a> <span class='varid'>escXmlAttrValue</span>-<a name="line-312"></a> <span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='varop'>$</span> <span class='varid'>escapeText''</span> <span class='varid'>escapeXmlEntityRef</span> <span class='layout'>(</span><span class='varop'>`elem`</span> <span class='str'>"<>\"\'&\n\r\t"</span><span class='layout'>)</span>-<a name="line-313"></a>-<a name="line-314"></a>-<a name="line-315"></a><span class='comment'>-- |</span>-<a name="line-316"></a><span class='comment'>-- escape all special HTML chars into XHTML entity references or char references</span>-<a name="line-317"></a><span class='comment'>--</span>-<a name="line-318"></a><span class='comment'>-- convert the special XML chars \< and & and all none ASCII chars in text nodes into prefefiened XML or XHTML entity references,</span>-<a name="line-319"></a><span class='comment'>-- in attribute values also \', \", \>, \\n, \\r and \\t are converted into entity or char references,</span>-<a name="line-320"></a><span class='comment'>-- in comments nothing is converted</span>-<a name="line-321"></a>-<a name="line-322"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-323"></a>-<a name="line-324"></a><a name="escapeHtmlDoc"></a><span class='definition'>escapeHtmlDoc</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-325"></a><span class='definition'>escapeHtmlDoc</span>-<a name="line-326"></a> <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span> <span class='varid'>escapeDoc</span> <span class='varid'>escHtmlText</span> <span class='varid'>escHtmlAttrValue</span>-<a name="line-327"></a> <span class='keyword'>where</span>-<a name="line-328"></a> <span class='varid'>escHtmlText</span>-<a name="line-329"></a> <span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='varop'>$</span> <span class='varid'>escapeText''</span> <span class='varid'>escapeHtmlEntityRef</span> <span class='varid'>isHtmlTextEsc</span>-<a name="line-330"></a> <span class='varid'>escHtmlAttrValue</span>-<a name="line-331"></a> <span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='varop'>$</span> <span class='varid'>escapeText''</span> <span class='varid'>escapeHtmlEntityRef</span> <span class='varid'>isHtmlAttrEsc</span>-<a name="line-332"></a>-<a name="line-333"></a> <span class='varid'>isHtmlTextEsc</span> <span class='varid'>c</span>-<a name="line-334"></a> <span class='keyglyph'>=</span> <span class='varid'>c</span> <span class='varop'>>=</span> <span class='varid'>toEnum</span><span class='layout'>(</span><span class='num'>128</span><span class='layout'>)</span> <span class='varop'>||</span> <span class='layout'>(</span> <span class='varid'>c</span> <span class='varop'>`elem`</span> <span class='str'>"<&"</span> <span class='layout'>)</span>-<a name="line-335"></a> <span class='varid'>isHtmlAttrEsc</span> <span class='varid'>c</span>-<a name="line-336"></a> <span class='keyglyph'>=</span> <span class='varid'>c</span> <span class='varop'>>=</span> <span class='varid'>toEnum</span><span class='layout'>(</span><span class='num'>128</span><span class='layout'>)</span> <span class='varop'>||</span> <span class='layout'>(</span> <span class='varid'>c</span> <span class='varop'>`elem`</span> <span class='str'>"<>\"\'&\n\r\t"</span> <span class='layout'>)</span>-<a name="line-337"></a>-<a name="line-338"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-339"></a>-<a name="line-340"></a><a name="escapeDoc"></a><span class='definition'>escapeDoc</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-341"></a><span class='definition'>escapeDoc</span> <span class='varid'>escText</span> <span class='varid'>escAttr</span>-<a name="line-342"></a> <span class='keyglyph'>=</span> <span class='varid'>escape</span>-<a name="line-343"></a> <span class='keyword'>where</span>-<a name="line-344"></a> <span class='varid'>escape</span>-<a name="line-345"></a> <span class='keyglyph'>=</span> <span class='varid'>choiceA</span>-<a name="line-346"></a> <span class='keyglyph'>[</span> <span class='varid'>isElem</span> <span class='conop'>:-></span> <span class='layout'>(</span> <span class='varid'>processChildren</span> <span class='varid'>escape</span>-<a name="line-347"></a> <span class='varop'>>>></span>-<a name="line-348"></a> <span class='varid'>processAttrl</span> <span class='varid'>escVal</span>-<a name="line-349"></a> <span class='layout'>)</span>-<a name="line-350"></a> <span class='layout'>,</span> <span class='varid'>isText</span> <span class='conop'>:-></span> <span class='varid'>escText</span>-<a name="line-351"></a> <span class='comment'>-- , isCmt :-> escCmt</span>-<a name="line-352"></a> <span class='layout'>,</span> <span class='varid'>isDTD</span> <span class='conop'>:-></span> <span class='varid'>processTopDown</span> <span class='varid'>escDTD</span>-<a name="line-353"></a> <span class='layout'>,</span> <span class='varid'>this</span> <span class='conop'>:-></span> <span class='varid'>this</span>-<a name="line-354"></a> <span class='keyglyph'>]</span>-<a name="line-355"></a> <span class='varid'>escVal</span> <span class='keyglyph'>=</span> <span class='varid'>processChildren</span> <span class='varid'>escAttr</span>-<a name="line-356"></a> <span class='varid'>escDTD</span> <span class='keyglyph'>=</span> <span class='varid'>escVal</span> <span class='varop'>`when`</span> <span class='layout'>(</span> <span class='varid'>isDTDEntity</span> <span class='varop'><+></span> <span class='varid'>isDTDPEntity</span> <span class='layout'>)</span>-<a name="line-357"></a>-<a name="line-358"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-359"></a>-<a name="line-360"></a><a name="preventEmptyElements"></a><span class='definition'>preventEmptyElements</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='conid'>Bool</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-361"></a><span class='definition'>preventEmptyElements</span> <span class='varid'>isHtml</span>-<a name="line-362"></a> <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span> <span class='varid'>insertDummyElem</span>-<a name="line-363"></a> <span class='keyword'>where</span>-<a name="line-364"></a> <span class='varid'>isNoneEmpty</span>-<a name="line-365"></a> <span class='keyglyph'>|</span> <span class='varid'>isHtml</span> <span class='keyglyph'>=</span> <span class='varid'>hasNameWith</span> <span class='layout'>(</span><span class='varid'>localPart</span> <span class='varop'>>>></span> <span class='layout'>(</span><span class='varop'>`notElem`</span> <span class='varid'>emptyHtmlTags</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-366"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>this</span>-<a name="line-367"></a>-<a name="line-368"></a> <span class='varid'>insertDummyElem</span>-<a name="line-369"></a> <span class='keyglyph'>=</span> <span class='varid'>processBottomUp</span>-<a name="line-370"></a> <span class='layout'>(</span> <span class='varid'>replaceChildren</span> <span class='layout'>(</span><span class='varid'>txt</span> <span class='str'>""</span><span class='layout'>)</span>-<a name="line-371"></a> <span class='varop'>`when`</span>-<a name="line-372"></a> <span class='layout'>(</span> <span class='varid'>isElem</span>-<a name="line-373"></a> <span class='varop'>>>></span>-<a name="line-374"></a> <span class='varid'>isNoneEmpty</span>-<a name="line-375"></a> <span class='varop'>>>></span>-<a name="line-376"></a> <span class='varid'>neg</span> <span class='varid'>getChildren</span>-<a name="line-377"></a> <span class='layout'>)</span>-<a name="line-378"></a> <span class='layout'>)</span>-<a name="line-379"></a>-<a name="line-380"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-381"></a>-<a name="line-382"></a><span class='comment'>-- |</span>-<a name="line-383"></a><span class='comment'>-- convert a document into a Haskell representation (with show).</span>-<a name="line-384"></a><span class='comment'>--</span>-<a name="line-385"></a><span class='comment'>-- Useful for debugging and trace output.</span>-<a name="line-386"></a><span class='comment'>-- see also : 'treeRepOfXmlDoc', 'numberLinesInXmlDoc'</span>-<a name="line-387"></a>-<a name="line-388"></a><a name="haskellRepOfXmlDoc"></a><span class='definition'>haskellRepOfXmlDoc</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-389"></a><span class='definition'>haskellRepOfXmlDoc</span>-<a name="line-390"></a> <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>-<a name="line-391"></a> <span class='varid'>root</span> <span class='keyglyph'>[</span><span class='varid'>getAttrl</span><span class='keyglyph'>]</span> <span class='keyglyph'>[</span><span class='varid'>show</span> <span class='varop'>^>></span> <span class='varid'>mkText</span><span class='keyglyph'>]</span>-<a name="line-392"></a>-<a name="line-393"></a><span class='comment'>-- |</span>-<a name="line-394"></a><span class='comment'>-- convert a document into a text and add line numbers to the text representation.</span>-<a name="line-395"></a><span class='comment'>-- </span>-<a name="line-396"></a><span class='comment'>-- Result is a root node with a single text node as child.</span>-<a name="line-397"></a><span class='comment'>-- Useful for debugging and trace output.</span>-<a name="line-398"></a><span class='comment'>-- see also : 'haskellRepOfXmlDoc', 'treeRepOfXmlDoc'</span>-<a name="line-399"></a>-<a name="line-400"></a><a name="numberLinesInXmlDoc"></a><span class='definition'>numberLinesInXmlDoc</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-401"></a><span class='definition'>numberLinesInXmlDoc</span>-<a name="line-402"></a> <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>-<a name="line-403"></a> <span class='varid'>processChildren</span> <span class='layout'>(</span><span class='varid'>changeText</span> <span class='varid'>numberLines</span><span class='layout'>)</span>-<a name="line-404"></a> <span class='keyword'>where</span>-<a name="line-405"></a> <span class='varid'>numberLines</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-406"></a> <span class='varid'>numberLines</span> <span class='varid'>str</span>-<a name="line-407"></a> <span class='keyglyph'>=</span> <span class='varid'>concat</span> <span class='varop'>$</span>-<a name="line-408"></a> <span class='varid'>zipWith</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='varid'>l</span> <span class='keyglyph'>-></span> <span class='varid'>lineNr</span> <span class='varid'>n</span> <span class='varop'>++</span> <span class='varid'>l</span> <span class='varop'>++</span> <span class='str'>"\n"</span><span class='layout'>)</span> <span class='keyglyph'>[</span><span class='num'>1</span><span class='keyglyph'>..</span><span class='keyglyph'>]</span> <span class='layout'>(</span><span class='varid'>lines</span> <span class='varid'>str</span><span class='layout'>)</span>-<a name="line-409"></a> <span class='keyword'>where</span>-<a name="line-410"></a> <span class='varid'>lineNr</span> <span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-411"></a> <span class='varid'>lineNr</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>reverse</span> <span class='layout'>(</span><span class='varid'>take</span> <span class='num'>6</span> <span class='layout'>(</span><span class='varid'>reverse</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='varid'>replicate</span> <span class='num'>6</span> <span class='chr'>' '</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='str'>" "</span>-<a name="line-412"></a>-<a name="line-413"></a><span class='comment'>-- |</span>-<a name="line-414"></a><span class='comment'>-- convert a document into a text representation in tree form.</span>-<a name="line-415"></a><span class='comment'>--</span>-<a name="line-416"></a><span class='comment'>-- Useful for debugging and trace output.</span>-<a name="line-417"></a><span class='comment'>-- see also : 'haskellRepOfXmlDoc', 'numberLinesInXmlDoc'</span>-<a name="line-418"></a>-<a name="line-419"></a><a name="treeRepOfXmlDoc"></a><span class='definition'>treeRepOfXmlDoc</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-420"></a><span class='definition'>treeRepOfXmlDoc</span>-<a name="line-421"></a> <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>-<a name="line-422"></a> <span class='varid'>root</span> <span class='keyglyph'>[</span><span class='varid'>getAttrl</span><span class='keyglyph'>]</span> <span class='keyglyph'>[</span><span class='varid'>formatXmlTree</span> <span class='varop'>^>></span> <span class='varid'>mkText</span><span class='keyglyph'>]</span>-<a name="line-423"></a>-<a name="line-424"></a><a name="addHeadlineToXmlDoc"></a><span class='definition'>addHeadlineToXmlDoc</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-425"></a><span class='definition'>addHeadlineToXmlDoc</span>-<a name="line-426"></a> <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span> <span class='layout'>(</span> <span class='varid'>addTitle</span> <span class='varop'>$<</span> <span class='layout'>(</span><span class='varid'>getAttrValue</span> <span class='varid'>a_source</span> <span class='varop'>>>^</span> <span class='varid'>formatTitle</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-427"></a> <span class='keyword'>where</span>-<a name="line-428"></a> <span class='varid'>addTitle</span> <span class='varid'>str</span>-<a name="line-429"></a> <span class='keyglyph'>=</span> <span class='varid'>replaceChildren</span> <span class='layout'>(</span> <span class='varid'>txt</span> <span class='varid'>str</span> <span class='varop'><+></span> <span class='varid'>getChildren</span> <span class='varop'><+></span> <span class='varid'>txt</span> <span class='str'>"\n"</span> <span class='layout'>)</span>-<a name="line-430"></a> <span class='varid'>formatTitle</span> <span class='varid'>str</span>-<a name="line-431"></a> <span class='keyglyph'>=</span> <span class='str'>"\n"</span> <span class='varop'>++</span> <span class='varid'>headline</span> <span class='varop'>++</span> <span class='str'>"\n"</span> <span class='varop'>++</span> <span class='varid'>underline</span> <span class='varop'>++</span> <span class='str'>"\n\n"</span>-<a name="line-432"></a> <span class='keyword'>where</span>-<a name="line-433"></a> <span class='varid'>headline</span> <span class='keyglyph'>=</span> <span class='str'>"content of: "</span> <span class='varop'>++</span> <span class='varid'>str</span>-<a name="line-434"></a> <span class='varid'>underline</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='chr'>'='</span><span class='layout'>)</span> <span class='varid'>headline</span>-<a name="line-435"></a>-<a name="line-436"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-437"></a>-<a name="line-438"></a><a name="removeComment'"></a><span class='definition'>removeComment'</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-439"></a><span class='definition'>removeComment'</span> <span class='keyglyph'>=</span> <span class='varid'>none</span> <span class='varop'>`when`</span> <span class='varid'>isCmt</span>-<a name="line-440"></a>-<a name="line-441"></a><span class='comment'>-- |</span>-<a name="line-442"></a><span class='comment'>-- remove Comments: @none `when` isCmt@</span>-<a name="line-443"></a>-<a name="line-444"></a><a name="removeComment"></a><span class='definition'>removeComment</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-445"></a><span class='definition'>removeComment</span> <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span> <span class='varid'>removeComment'</span>-<a name="line-446"></a>-<a name="line-447"></a><span class='comment'>-- |</span>-<a name="line-448"></a><span class='comment'>-- remove all comments recursively</span>-<a name="line-449"></a>-<a name="line-450"></a><a name="removeAllComment"></a><span class='definition'>removeAllComment</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-451"></a><span class='definition'>removeAllComment</span> <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span> <span class='varid'>processBottomUp</span> <span class='varid'>removeComment'</span>-<a name="line-452"></a>-<a name="line-453"></a><span class='comment'>-- ----------</span>-<a name="line-454"></a>-<a name="line-455"></a><a name="removeWhiteSpace'"></a><span class='definition'>removeWhiteSpace'</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-456"></a><span class='definition'>removeWhiteSpace'</span> <span class='keyglyph'>=</span> <span class='varid'>none</span> <span class='varop'>`when`</span> <span class='varid'>isWhiteSpace</span>-<a name="line-457"></a>-<a name="line-458"></a><span class='comment'>-- |</span>-<a name="line-459"></a><span class='comment'>-- simple filter for removing whitespace.</span>-<a name="line-460"></a><span class='comment'>--</span>-<a name="line-461"></a><span class='comment'>-- no check on sigificant whitespace, e.g. in HTML \<pre\>-elements, is done.</span>-<a name="line-462"></a><span class='comment'>--</span>-<a name="line-463"></a><span class='comment'>--</span>-<a name="line-464"></a><span class='comment'>-- see also : 'removeAllWhiteSpace', 'removeDocWhiteSpace'</span>-<a name="line-465"></a>-<a name="line-466"></a><a name="removeWhiteSpace"></a><span class='definition'>removeWhiteSpace</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-467"></a><span class='definition'>removeWhiteSpace</span> <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span> <span class='varid'>removeWhiteSpace'</span>-<a name="line-468"></a>-<a name="line-469"></a><span class='comment'>-- |</span>-<a name="line-470"></a><span class='comment'>-- simple recursive filter for removing all whitespace.</span>-<a name="line-471"></a><span class='comment'>--</span>-<a name="line-472"></a><span class='comment'>-- removes all text nodes in a tree that consist only of whitespace.</span>-<a name="line-473"></a><span class='comment'>--</span>-<a name="line-474"></a><span class='comment'>--</span>-<a name="line-475"></a><span class='comment'>-- see also : 'removeWhiteSpace', 'removeDocWhiteSpace'</span>-<a name="line-476"></a>-<a name="line-477"></a><a name="removeAllWhiteSpace"></a><span class='definition'>removeAllWhiteSpace</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-478"></a><span class='definition'>removeAllWhiteSpace</span> <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span> <span class='varid'>processBottomUp</span> <span class='varid'>removeWhiteSpace'</span>-<a name="line-479"></a>-<a name="line-480"></a><span class='comment'>-- |</span>-<a name="line-481"></a><span class='comment'>-- filter for removing all not significant whitespace.</span>-<a name="line-482"></a><span class='comment'>--</span>-<a name="line-483"></a><span class='comment'>-- the tree traversed for removing whitespace between elements,</span>-<a name="line-484"></a><span class='comment'>-- that was inserted for indentation and readability.</span>-<a name="line-485"></a><span class='comment'>-- whitespace is only removed at places, where it's not significat</span>-<a name="line-486"></a><span class='comment'>-- preserving whitespace may be controlled in a document tree</span>-<a name="line-487"></a><span class='comment'>-- by a tag attribute @xml:space@</span>-<a name="line-488"></a><span class='comment'>--</span>-<a name="line-489"></a><span class='comment'>-- allowed values for this attribute are @default | preserve@</span>-<a name="line-490"></a><span class='comment'>--</span>-<a name="line-491"></a><span class='comment'>-- input is root node of the document to be cleaned up,</span>-<a name="line-492"></a><span class='comment'>-- output the semantically equivalent simplified tree</span>-<a name="line-493"></a><span class='comment'>--</span>-<a name="line-494"></a><span class='comment'>--</span>-<a name="line-495"></a><span class='comment'>-- see also : 'indentDoc', 'removeAllWhiteSpace'</span>-<a name="line-496"></a>-<a name="line-497"></a><a name="removeDocWhiteSpace"></a><span class='definition'>removeDocWhiteSpace</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-498"></a><span class='definition'>removeDocWhiteSpace</span> <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span> <span class='varid'>removeRootWhiteSpace</span>-<a name="line-499"></a>-<a name="line-500"></a>-<a name="line-501"></a><a name="removeRootWhiteSpace"></a><span class='definition'>removeRootWhiteSpace</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-502"></a><span class='definition'>removeRootWhiteSpace</span>-<a name="line-503"></a> <span class='keyglyph'>=</span> <span class='varid'>processChildren</span> <span class='varid'>processRootElement</span>-<a name="line-504"></a> <span class='varop'>`when`</span>-<a name="line-505"></a> <span class='varid'>isRoot</span>-<a name="line-506"></a> <span class='keyword'>where</span>-<a name="line-507"></a> <span class='varid'>processRootElement</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-508"></a> <span class='varid'>processRootElement</span>-<a name="line-509"></a> <span class='keyglyph'>=</span> <span class='varid'>removeWhiteSpace</span> <span class='varop'>>>></span> <span class='varid'>processChild</span>-<a name="line-510"></a> <span class='keyword'>where</span>-<a name="line-511"></a> <span class='varid'>processChild</span>-<a name="line-512"></a> <span class='keyglyph'>=</span> <span class='varid'>choiceA</span> <span class='keyglyph'>[</span> <span class='varid'>isDTD</span>-<a name="line-513"></a> <span class='conop'>:-></span> <span class='varid'>removeAllWhiteSpace</span> <span class='comment'>-- whitespace in DTD is redundant</span>-<a name="line-514"></a> <span class='layout'>,</span> <span class='varid'>this</span>-<a name="line-515"></a> <span class='conop'>:-></span> <span class='varid'>replaceChildren</span> <span class='layout'>(</span> <span class='varid'>getChildren</span>-<a name="line-516"></a> <span class='varop'>>>.</span> <span class='varid'>indentTrees</span> <span class='varid'>insertNothing</span> <span class='conid'>False</span> <span class='num'>1</span>-<a name="line-517"></a> <span class='layout'>)</span>-<a name="line-518"></a> <span class='keyglyph'>]</span>-<a name="line-519"></a>-<a name="line-520"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-521"></a>-<a name="line-522"></a><span class='comment'>-- |</span>-<a name="line-523"></a><span class='comment'>-- filter for indenting a document tree for pretty printing.</span>-<a name="line-524"></a><span class='comment'>--</span>-<a name="line-525"></a><span class='comment'>-- the tree is traversed for inserting whitespace for tag indentation.</span>-<a name="line-526"></a><span class='comment'>--</span>-<a name="line-527"></a><span class='comment'>-- whitespace is only inserted or changed at places, where it isn't significant,</span>-<a name="line-528"></a><span class='comment'>-- is's not inserted between tags and text containing non whitespace chars.</span>-<a name="line-529"></a><span class='comment'>--</span>-<a name="line-530"></a><span class='comment'>-- whitespace is only inserted or changed at places, where it's not significant.</span>-<a name="line-531"></a><span class='comment'>-- preserving whitespace may be controlled in a document tree</span>-<a name="line-532"></a><span class='comment'>-- by a tag attribute @xml:space@</span>-<a name="line-533"></a><span class='comment'>--</span>-<a name="line-534"></a><span class='comment'>-- allowed values for this attribute are @default | preserve@.</span>-<a name="line-535"></a><span class='comment'>--</span>-<a name="line-536"></a><span class='comment'>-- input is a complete document tree or a document fragment</span>-<a name="line-537"></a><span class='comment'>-- result is the semantically equivalent formatted tree.</span>-<a name="line-538"></a><span class='comment'>--</span>-<a name="line-539"></a><span class='comment'>--</span>-<a name="line-540"></a><span class='comment'>-- see also : 'removeDocWhiteSpace'</span>-<a name="line-541"></a>-<a name="line-542"></a><a name="indentDoc"></a><span class='definition'>indentDoc</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-543"></a><span class='definition'>indentDoc</span> <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>-<a name="line-544"></a> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>isRoot</span> <span class='varop'>`guards`</span> <span class='varid'>indentRoot</span> <span class='layout'>)</span>-<a name="line-545"></a> <span class='varop'>`orElse`</span>-<a name="line-546"></a> <span class='layout'>(</span><span class='varid'>root</span> <span class='conid'>[]</span> <span class='keyglyph'>[</span><span class='varid'>this</span><span class='keyglyph'>]</span> <span class='varop'>>>></span> <span class='varid'>indentRoot</span> <span class='varop'>>>></span> <span class='varid'>getChildren</span><span class='layout'>)</span>-<a name="line-547"></a> <span class='layout'>)</span>-<a name="line-548"></a>-<a name="line-549"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-550"></a>-<a name="line-551"></a><a name="indentRoot"></a><span class='definition'>indentRoot</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-552"></a><span class='definition'>indentRoot</span> <span class='keyglyph'>=</span> <span class='varid'>processChildren</span> <span class='varid'>indentRootChildren</span>-<a name="line-553"></a> <span class='keyword'>where</span>-<a name="line-554"></a> <span class='varid'>indentRootChildren</span>-<a name="line-555"></a> <span class='keyglyph'>=</span> <span class='varid'>removeText</span> <span class='varop'>>>></span> <span class='varid'>indentChild</span> <span class='varop'>>>></span> <span class='varid'>insertNL</span>-<a name="line-556"></a> <span class='keyword'>where</span>-<a name="line-557"></a> <span class='varid'>removeText</span> <span class='keyglyph'>=</span> <span class='varid'>none</span> <span class='varop'>`when`</span> <span class='varid'>isText</span>-<a name="line-558"></a> <span class='varid'>insertNL</span> <span class='keyglyph'>=</span> <span class='varid'>this</span> <span class='varop'><+></span> <span class='varid'>txt</span> <span class='str'>"\n"</span>-<a name="line-559"></a> <span class='varid'>indentChild</span> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>replaceChildren</span>-<a name="line-560"></a> <span class='layout'>(</span> <span class='varid'>getChildren</span>-<a name="line-561"></a> <span class='varop'>>>.</span>-<a name="line-562"></a> <span class='varid'>indentTrees</span> <span class='layout'>(</span><span class='varid'>insertIndentation</span> <span class='num'>2</span><span class='layout'>)</span> <span class='conid'>False</span> <span class='num'>1</span>-<a name="line-563"></a> <span class='layout'>)</span>-<a name="line-564"></a> <span class='varop'>`whenNot`</span> <span class='varid'>isDTD</span>-<a name="line-565"></a> <span class='layout'>)</span>-<a name="line-566"></a>-<a name="line-567"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-568"></a><span class='comment'>--</span>-<a name="line-569"></a><span class='comment'>-- copied from EditFilter and rewritten for arrows</span>-<a name="line-570"></a><span class='comment'>-- to remove dependency to the filter module</span>-<a name="line-571"></a>-<a name="line-572"></a><a name="indentTrees"></a><span class='definition'>indentTrees</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Int</span> <span class='keyglyph'>-></span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span> <span class='keyglyph'>-></span> <span class='conid'>Int</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span>-<a name="line-573"></a><span class='definition'>indentTrees</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='conid'>[]</span>-<a name="line-574"></a> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-575"></a><span class='definition'>indentTrees</span> <span class='varid'>indentFilter</span> <span class='varid'>preserveSpace</span> <span class='varid'>level</span> <span class='varid'>ts</span>-<a name="line-576"></a> <span class='keyglyph'>=</span> <span class='varid'>runLAs</span> <span class='varid'>lsf</span> <span class='varid'>ls</span>-<a name="line-577"></a> <span class='varop'>++</span>-<a name="line-578"></a> <span class='varid'>indentRest</span> <span class='varid'>rs</span>-<a name="line-579"></a> <span class='keyword'>where</span>-<a name="line-580"></a> <span class='varid'>runLAs</span> <span class='varid'>f</span> <span class='varid'>l</span>-<a name="line-581"></a> <span class='keyglyph'>=</span> <span class='varid'>runLA</span> <span class='layout'>(</span><span class='varid'>constL</span> <span class='varid'>l</span> <span class='varop'>>>></span> <span class='varid'>f</span><span class='layout'>)</span> <span class='varid'>undefined</span>-<a name="line-582"></a>-<a name="line-583"></a> <span class='layout'>(</span><span class='varid'>ls</span><span class='layout'>,</span> <span class='varid'>rs</span><span class='layout'>)</span>-<a name="line-584"></a> <span class='keyglyph'>=</span> <span class='varid'>break</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isElem</span> <span class='varid'>ts</span>-<a name="line-585"></a>-<a name="line-586"></a> <span class='varid'>isSignificant</span> <span class='keyglyph'>::</span> <span class='conid'>Bool</span>-<a name="line-587"></a> <span class='varid'>isSignificant</span>-<a name="line-588"></a> <span class='keyglyph'>=</span> <span class='varid'>preserveSpace</span>-<a name="line-589"></a> <span class='varop'>||</span>-<a name="line-590"></a> <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>null</span> <span class='varop'>.</span> <span class='varid'>runLAs</span> <span class='varid'>isSignificantPart</span><span class='layout'>)</span> <span class='varid'>ls</span>-<a name="line-591"></a>-<a name="line-592"></a> <span class='varid'>isSignificantPart</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-593"></a> <span class='varid'>isSignificantPart</span>-<a name="line-594"></a> <span class='keyglyph'>=</span> <span class='varid'>catA</span>-<a name="line-595"></a> <span class='keyglyph'>[</span> <span class='varid'>isText</span> <span class='varop'>`guards`</span> <span class='varid'>neg</span> <span class='varid'>isWhiteSpace</span>-<a name="line-596"></a> <span class='layout'>,</span> <span class='varid'>isCdata</span>-<a name="line-597"></a> <span class='layout'>,</span> <span class='varid'>isCharRef</span>-<a name="line-598"></a> <span class='layout'>,</span> <span class='varid'>isEntityRef</span>-<a name="line-599"></a> <span class='keyglyph'>]</span>-<a name="line-600"></a>-<a name="line-601"></a> <span class='varid'>lsf</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-602"></a> <span class='varid'>lsf</span>-<a name="line-603"></a> <span class='keyglyph'>|</span> <span class='varid'>isSignificant</span>-<a name="line-604"></a> <span class='keyglyph'>=</span> <span class='varid'>this</span>-<a name="line-605"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-606"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>none</span> <span class='varop'>`when`</span> <span class='varid'>isWhiteSpace</span><span class='layout'>)</span>-<a name="line-607"></a> <span class='varop'>>>></span>-<a name="line-608"></a> <span class='layout'>(</span><span class='varid'>indentFilter</span> <span class='varid'>level</span> <span class='varop'><+></span> <span class='varid'>this</span><span class='layout'>)</span>-<a name="line-609"></a>-<a name="line-610"></a> <span class='varid'>indentRest</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span>-<a name="line-611"></a> <span class='varid'>indentRest</span> <span class='conid'>[]</span>-<a name="line-612"></a> <span class='keyglyph'>|</span> <span class='varid'>isSignificant</span>-<a name="line-613"></a> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-614"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-615"></a> <span class='keyglyph'>=</span> <span class='varid'>runLA</span> <span class='layout'>(</span><span class='varid'>indentFilter</span> <span class='layout'>(</span><span class='varid'>level</span> <span class='comment'>-</span> <span class='num'>1</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varid'>undefined</span>-<a name="line-616"></a>-<a name="line-617"></a> <span class='varid'>indentRest</span> <span class='layout'>(</span><span class='varid'>t'</span><span class='conop'>:</span><span class='varid'>ts'</span><span class='layout'>)</span>-<a name="line-618"></a> <span class='keyglyph'>=</span> <span class='varid'>runLA</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>indentElem</span>-<a name="line-619"></a> <span class='varop'>>>></span>-<a name="line-620"></a> <span class='varid'>lsf</span>-<a name="line-621"></a> <span class='layout'>)</span>-<a name="line-622"></a> <span class='varop'>`when`</span> <span class='varid'>isElem</span>-<a name="line-623"></a> <span class='layout'>)</span> <span class='varid'>t'</span>-<a name="line-624"></a> <span class='varop'>++</span>-<a name="line-625"></a> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>ts'</span>-<a name="line-626"></a> <span class='keyword'>then</span> <span class='varid'>indentRest</span>-<a name="line-627"></a> <span class='keyword'>else</span> <span class='varid'>indentTrees</span> <span class='varid'>indentFilter</span> <span class='varid'>preserveSpace</span> <span class='varid'>level</span>-<a name="line-628"></a> <span class='layout'>)</span> <span class='varid'>ts'</span>-<a name="line-629"></a> <span class='keyword'>where</span>-<a name="line-630"></a> <span class='varid'>indentElem</span>-<a name="line-631"></a> <span class='keyglyph'>=</span> <span class='varid'>replaceChildren</span> <span class='layout'>(</span> <span class='varid'>getChildren</span>-<a name="line-632"></a> <span class='varop'>>>.</span>-<a name="line-633"></a> <span class='varid'>indentChildren</span>-<a name="line-634"></a> <span class='layout'>)</span>-<a name="line-635"></a>-<a name="line-636"></a> <span class='varid'>xmlSpaceAttrValue</span> <span class='keyglyph'>::</span> <span class='conid'>String</span>-<a name="line-637"></a> <span class='varid'>xmlSpaceAttrValue</span>-<a name="line-638"></a> <span class='keyglyph'>=</span> <span class='varid'>concat</span> <span class='varop'>.</span> <span class='varid'>runLA</span> <span class='layout'>(</span><span class='varid'>getAttrValue</span> <span class='str'>"xml:space"</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>t'</span>-<a name="line-639"></a>-<a name="line-640"></a> <span class='varid'>preserveSpace'</span> <span class='keyglyph'>::</span> <span class='conid'>Bool</span>-<a name="line-641"></a> <span class='varid'>preserveSpace'</span>-<a name="line-642"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>fromMaybe</span> <span class='varid'>preserveSpace</span>-<a name="line-643"></a> <span class='varop'>.</span>-<a name="line-644"></a> <span class='varid'>lookup</span> <span class='varid'>xmlSpaceAttrValue</span>-<a name="line-645"></a> <span class='layout'>)</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='str'>"preserve"</span><span class='layout'>,</span> <span class='conid'>True</span><span class='layout'>)</span>-<a name="line-646"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"default"</span><span class='layout'>,</span> <span class='conid'>False</span><span class='layout'>)</span>-<a name="line-647"></a> <span class='keyglyph'>]</span>-<a name="line-648"></a>-<a name="line-649"></a> <span class='varid'>indentChildren</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span>-<a name="line-650"></a> <span class='varid'>indentChildren</span> <span class='varid'>cs'</span>-<a name="line-651"></a> <span class='keyglyph'>|</span> <span class='varid'>all</span> <span class='layout'>(</span><span class='varid'>maybe</span> <span class='conid'>False</span> <span class='layout'>(</span><span class='varid'>all</span> <span class='varid'>isXmlSpaceChar</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getText</span><span class='layout'>)</span> <span class='varid'>cs'</span>-<a name="line-652"></a> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-653"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-654"></a> <span class='keyglyph'>=</span> <span class='varid'>indentTrees</span> <span class='varid'>indentFilter</span> <span class='varid'>preserveSpace'</span> <span class='layout'>(</span><span class='varid'>level</span> <span class='varop'>+</span> <span class='num'>1</span><span class='layout'>)</span> <span class='varid'>cs'</span>-<a name="line-655"></a>-<a name="line-656"></a> -<a name="line-657"></a><span class='comment'>-- filter for indenting elements</span>-<a name="line-658"></a>-<a name="line-659"></a><a name="insertIndentation"></a><span class='definition'>insertIndentation</span> <span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-></span> <span class='conid'>Int</span> <span class='keyglyph'>-></span> <span class='conid'>LA</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span>-<a name="line-660"></a><span class='definition'>insertIndentation</span> <span class='varid'>indentWidth</span> <span class='varid'>level</span>-<a name="line-661"></a> <span class='keyglyph'>=</span> <span class='varid'>txt</span> <span class='layout'>(</span><span class='chr'>'\n'</span> <span class='conop'>:</span> <span class='varid'>replicate</span> <span class='layout'>(</span><span class='varid'>level</span> <span class='varop'>*</span> <span class='varid'>indentWidth</span><span class='layout'>)</span> <span class='chr'>' '</span><span class='layout'>)</span>-<a name="line-662"></a>-<a name="line-663"></a><span class='comment'>-- filter for removing all whitespace</span>-<a name="line-664"></a>-<a name="line-665"></a><a name="insertNothing"></a><span class='definition'>insertNothing</span> <span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-></span> <span class='conid'>LA</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span>-<a name="line-666"></a><span class='definition'>insertNothing</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='varid'>none</span>-<a name="line-667"></a>-<a name="line-668"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-669"></a>-<a name="line-670"></a><a name="transfCdata'"></a><span class='definition'>transfCdata'</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-671"></a><span class='definition'>transfCdata'</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>getCdata</span> <span class='varop'>>>></span> <span class='varid'>mkText</span><span class='layout'>)</span> <span class='varop'>`when`</span> <span class='varid'>isCdata</span>-<a name="line-672"></a>-<a name="line-673"></a><span class='comment'>-- |</span>-<a name="line-674"></a><span class='comment'>-- converts a CDATA section node into a normal text node</span>-<a name="line-675"></a>-<a name="line-676"></a><a name="transfCdata"></a><span class='definition'>transfCdata</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-677"></a><span class='definition'>transfCdata</span> <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>-<a name="line-678"></a> <span class='varid'>transfCdata'</span>-<a name="line-679"></a>-<a name="line-680"></a><span class='comment'>-- |</span>-<a name="line-681"></a><span class='comment'>-- converts CDATA sections in whole document tree into normal text nodes</span>-<a name="line-682"></a>-<a name="line-683"></a><a name="transfAllCdata"></a><span class='definition'>transfAllCdata</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-684"></a><span class='definition'>transfAllCdata</span> <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>-<a name="line-685"></a> <span class='varid'>processBottomUp</span> <span class='varid'>transfCdata'</span>-<a name="line-686"></a> -<a name="line-687"></a><span class='comment'>--</span>-<a name="line-688"></a>-<a name="line-689"></a><a name="transfCharRef'"></a><span class='definition'>transfCharRef'</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-690"></a><span class='definition'>transfCharRef'</span> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>getCharRef</span> <span class='varop'>>>></span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>i</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='varid'>toEnum</span> <span class='varid'>i</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='varop'>>>></span> <span class='varid'>mkText</span> <span class='layout'>)</span>-<a name="line-691"></a> <span class='varop'>`when`</span>-<a name="line-692"></a> <span class='varid'>isCharRef</span>-<a name="line-693"></a>-<a name="line-694"></a><span class='comment'>-- |</span>-<a name="line-695"></a><span class='comment'>-- converts character references to normal text</span>-<a name="line-696"></a>-<a name="line-697"></a><a name="transfCharRef"></a><span class='definition'>transfCharRef</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-698"></a><span class='definition'>transfCharRef</span> <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>-<a name="line-699"></a> <span class='varid'>transfCharRef'</span>-<a name="line-700"></a>-<a name="line-701"></a><span class='comment'>-- |</span>-<a name="line-702"></a><span class='comment'>-- recursively converts all character references to normal text</span>-<a name="line-703"></a>-<a name="line-704"></a><a name="transfAllCharRef"></a><span class='definition'>transfAllCharRef</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-705"></a><span class='definition'>transfAllCharRef</span> <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>-<a name="line-706"></a> <span class='varid'>processBottomUp</span> <span class='varid'>transfCharRef'</span>-<a name="line-707"></a>-<a name="line-708"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-709"></a>-<a name="line-710"></a><a name="hasXmlPi"></a><span class='definition'>hasXmlPi</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-711"></a><span class='definition'>hasXmlPi</span>-<a name="line-712"></a> <span class='keyglyph'>=</span> <span class='varid'>fromLA</span>-<a name="line-713"></a> <span class='layout'>(</span> <span class='varid'>getChildren</span>-<a name="line-714"></a> <span class='varop'>>>></span>-<a name="line-715"></a> <span class='varid'>isPi</span>-<a name="line-716"></a> <span class='varop'>>>></span>-<a name="line-717"></a> <span class='varid'>hasName</span> <span class='varid'>t_xml</span>-<a name="line-718"></a> <span class='layout'>)</span>-<a name="line-719"></a>-<a name="line-720"></a><span class='comment'>-- | add an \<?xml version=\"1.0\"?\> processing instruction</span>-<a name="line-721"></a><span class='comment'>-- if it's not already there</span>-<a name="line-722"></a>-<a name="line-723"></a><a name="addXmlPi"></a><span class='definition'>addXmlPi</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-724"></a><span class='definition'>addXmlPi</span>-<a name="line-725"></a> <span class='keyglyph'>=</span> <span class='varid'>fromLA</span>-<a name="line-726"></a> <span class='layout'>(</span> <span class='varid'>insertChildrenAt</span> <span class='num'>0</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>mkPi</span> <span class='layout'>(</span><span class='varid'>mkSNsName</span> <span class='varid'>t_xml</span><span class='layout'>)</span> <span class='varid'>none</span>-<a name="line-727"></a> <span class='varop'>>>></span>-<a name="line-728"></a> <span class='varid'>addAttr</span> <span class='varid'>a_version</span> <span class='str'>"1.0"</span>-<a name="line-729"></a> <span class='layout'>)</span>-<a name="line-730"></a> <span class='varop'><+></span>-<a name="line-731"></a> <span class='varid'>txt</span> <span class='str'>"\n"</span>-<a name="line-732"></a> <span class='layout'>)</span>-<a name="line-733"></a> <span class='varop'>`whenNot`</span>-<a name="line-734"></a> <span class='varid'>hasXmlPi</span>-<a name="line-735"></a> <span class='layout'>)</span>-<a name="line-736"></a>-<a name="line-737"></a><span class='comment'>-- | add an encoding spec to the \<?xml version=\"1.0\"?\> processing instruction</span>-<a name="line-738"></a>-<a name="line-739"></a><a name="addXmlPiEncoding"></a><span class='definition'>addXmlPiEncoding</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-740"></a><span class='definition'>addXmlPiEncoding</span> <span class='varid'>enc</span>-<a name="line-741"></a> <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>-<a name="line-742"></a> <span class='varid'>processChildren</span> <span class='layout'>(</span> <span class='varid'>addAttr</span> <span class='varid'>a_encoding</span> <span class='varid'>enc</span>-<a name="line-743"></a> <span class='varop'>`when`</span>-<a name="line-744"></a> <span class='layout'>(</span> <span class='varid'>isPi</span> <span class='varop'>>>></span> <span class='varid'>hasName</span> <span class='varid'>t_xml</span> <span class='layout'>)</span>-<a name="line-745"></a> <span class='layout'>)</span>-<a name="line-746"></a>-<a name="line-747"></a><span class='comment'>-- | add an XHTML strict doctype declaration to a document</span>-<a name="line-748"></a>-<a name="line-749"></a><a name="addXHtmlDoctypeStrict"></a><span class='definition'>addXHtmlDoctypeStrict</span>-<a name="line-750"></a> <span class='layout'>,</span> <span class='varid'>addXHtmlDoctypeTransitional</span>-<a name="line-751"></a> <span class='layout'>,</span> <span class='varid'>addXHtmlDoctypeFrameset</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-752"></a>-<a name="line-753"></a><span class='comment'>-- | add an XHTML strict doctype declaration to a document</span>-<a name="line-754"></a>-<a name="line-755"></a><span class='definition'>addXHtmlDoctypeStrict</span>-<a name="line-756"></a> <span class='keyglyph'>=</span> <span class='varid'>addDoctypeDecl</span> <span class='str'>"html"</span> <span class='str'>"-//W3C//DTD XHTML 1.0 Strict//EN"</span> <span class='str'>"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"</span>-<a name="line-757"></a>-<a name="line-758"></a><span class='comment'>-- | add an XHTML transitional doctype declaration to a document</span>-<a name="line-759"></a>-<a name="line-760"></a><a name="addXHtmlDoctypeTransitional"></a><span class='definition'>addXHtmlDoctypeTransitional</span>-<a name="line-761"></a> <span class='keyglyph'>=</span> <span class='varid'>addDoctypeDecl</span> <span class='str'>"html"</span> <span class='str'>"-//W3C//DTD XHTML 1.0 Transitional//EN"</span> <span class='str'>"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"</span>-<a name="line-762"></a>-<a name="line-763"></a><span class='comment'>-- | add an XHTML frameset doctype declaration to a document</span>-<a name="line-764"></a>-<a name="line-765"></a><a name="addXHtmlDoctypeFrameset"></a><span class='definition'>addXHtmlDoctypeFrameset</span>-<a name="line-766"></a> <span class='keyglyph'>=</span> <span class='varid'>addDoctypeDecl</span> <span class='str'>"html"</span> <span class='str'>"-//W3C//DTD XHTML 1.0 Frameset//EN"</span> <span class='str'>"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"</span>-<a name="line-767"></a>-<a name="line-768"></a><span class='comment'>-- | add a doctype declaration to a document</span>-<a name="line-769"></a><span class='comment'>--</span>-<a name="line-770"></a><span class='comment'>-- The arguments are the root element name, the PUBLIC id and the SYSTEM id</span>-<a name="line-771"></a>-<a name="line-772"></a><a name="addDoctypeDecl"></a><span class='definition'>addDoctypeDecl</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-773"></a><span class='definition'>addDoctypeDecl</span> <span class='varid'>rootElem</span> <span class='varid'>public</span> <span class='varid'>system</span>-<a name="line-774"></a> <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>-<a name="line-775"></a> <span class='varid'>replaceChildren</span>-<a name="line-776"></a> <span class='layout'>(</span> <span class='varid'>mkDTDDoctype</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>public</span> <span class='keyword'>then</span> <span class='varid'>id</span> <span class='keyword'>else</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>k_public</span><span class='layout'>,</span> <span class='varid'>public</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-777"></a> <span class='varop'>.</span>-<a name="line-778"></a> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>system</span> <span class='keyword'>then</span> <span class='varid'>id</span> <span class='keyword'>else</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>k_system</span><span class='layout'>,</span> <span class='varid'>system</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-779"></a> <span class='varop'>$</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>a_name</span><span class='layout'>,</span> <span class='varid'>rootElem</span><span class='layout'>)</span> <span class='keyglyph'>]</span>-<a name="line-780"></a> <span class='layout'>)</span> <span class='varid'>none</span>-<a name="line-781"></a> <span class='varop'><+></span>-<a name="line-782"></a> <span class='varid'>txt</span> <span class='str'>"\n"</span>-<a name="line-783"></a> <span class='varop'><+></span>-<a name="line-784"></a> <span class='varid'>getChildren</span>-<a name="line-785"></a> <span class='layout'>)</span>-<a name="line-786"></a>-<a name="line-787"></a><span class='comment'>-- ------------------------------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-Arrow-GeneralEntitySubstitution.html
@@ -1,354 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Text.XML.HXT.Arrow.GeneralEntitySubstitution-<a name="line-5"></a> Copyright : Copyright (C) 2005 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe@fh-wedel.de)-<a name="line-9"></a> Stability : experimental-<a name="line-10"></a> Portability: portable-<a name="line-11"></a> Version : $Id: GeneralEntitySubstitution.hs,v 1.13 2006/05/01 18:56:24 hxml Exp $-<a name="line-12"></a>-<a name="line-13"></a> general entity substitution-<a name="line-14"></a>-<a name="line-15"></a>-}</span>-<a name="line-16"></a>-<a name="line-17"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-18"></a>-<a name="line-19"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>GeneralEntitySubstitution</span>-<a name="line-20"></a> <span class='layout'>(</span> <span class='varid'>processGeneralEntities</span> <span class='layout'>)</span>-<a name="line-21"></a><span class='keyword'>where</span>-<a name="line-22"></a>-<a name="line-23"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span> <span class='comment'>-- arrow classes</span>-<a name="line-24"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowList</span>-<a name="line-25"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowIf</span>-<a name="line-26"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowTree</span>-<a name="line-27"></a>-<a name="line-28"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>-<a name="line-29"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlArrow</span>-<a name="line-30"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlIOStateArrow</span>-<a name="line-31"></a>-<a name="line-32"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ParserInterface</span>-<a name="line-33"></a> <span class='layout'>(</span> <span class='varid'>parseXmlAttrValue</span>-<a name="line-34"></a> <span class='layout'>,</span> <span class='varid'>parseXmlGeneralEntityValue</span>-<a name="line-35"></a> <span class='layout'>)</span>-<a name="line-36"></a>-<a name="line-37"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>Edit</span>-<a name="line-38"></a> <span class='layout'>(</span> <span class='varid'>transfCharRef</span>-<a name="line-39"></a> <span class='layout'>)</span>-<a name="line-40"></a>-<a name="line-41"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>DocumentInput</span>-<a name="line-42"></a> <span class='layout'>(</span> <span class='varid'>getXmlEntityContents</span>-<a name="line-43"></a> <span class='layout'>)</span>-<a name="line-44"></a>-<a name="line-45"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>-<a name="line-46"></a>-<a name="line-47"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Map</span> <span class='keyword'>as</span> <span class='conid'>M</span>-<a name="line-48"></a> <span class='layout'>(</span> <span class='conid'>Map</span>-<a name="line-49"></a> <span class='layout'>,</span> <span class='varid'>empty</span>-<a name="line-50"></a> <span class='layout'>,</span> <span class='varid'>lookup</span>-<a name="line-51"></a> <span class='layout'>,</span> <span class='varid'>insert</span><span class='layout'>)</span>-<a name="line-52"></a>-<a name="line-53"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-54"></a>-<a name="line-55"></a><a name="GEContext"></a><span class='keyword'>data</span> <span class='conid'>GEContext</span>-<a name="line-56"></a> <span class='keyglyph'>=</span> <span class='conid'>ReferenceInContent</span>-<a name="line-57"></a> <span class='keyglyph'>|</span> <span class='conid'>ReferenceInAttributeValue</span>-<a name="line-58"></a> <span class='keyglyph'>|</span> <span class='conid'>ReferenceInEntityValue</span>-<a name="line-59"></a> <span class='comment'>-- or OccursInAttributeValue -- not used during substitution but during validation</span>-<a name="line-60"></a> <span class='comment'>-- or ReferenceInDTD -- not used: syntax check detects errors</span>-<a name="line-61"></a>-<a name="line-62"></a><a name="GESubstArrow"></a><span class='keyword'>type</span> <span class='conid'>GESubstArrow</span> <span class='keyglyph'>=</span> <span class='conid'>GEContext</span> <span class='keyglyph'>-></span> <span class='conid'>RecList</span> <span class='keyglyph'>-></span> <span class='conid'>GEArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-63"></a>-<a name="line-64"></a><a name="GEArrow"></a><span class='keyword'>type</span> <span class='conid'>GEArrow</span> <span class='varid'>b</span> <span class='varid'>c</span> <span class='keyglyph'>=</span> <span class='conid'>IOStateArrow</span> <span class='conid'>GEEnv</span> <span class='varid'>b</span> <span class='varid'>c</span>-<a name="line-65"></a>-<a name="line-66"></a><a name="RecList"></a><span class='keyword'>type</span> <span class='conid'>RecList</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span>-<a name="line-67"></a>-<a name="line-68"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-69"></a>-<a name="line-70"></a><a name="GEEnv"></a><span class='keyword'>newtype</span> <span class='conid'>GEEnv</span> <span class='keyglyph'>=</span> <span class='conid'>GEEnv</span> <span class='layout'>(</span><span class='conid'>M</span><span class='varop'>.</span><span class='conid'>Map</span> <span class='conid'>String</span> <span class='conid'>GESubstArrow</span><span class='layout'>)</span>-<a name="line-71"></a>-<a name="line-72"></a><a name="emptyGeEnv"></a><span class='definition'>emptyGeEnv</span> <span class='keyglyph'>::</span> <span class='conid'>GEEnv</span>-<a name="line-73"></a><span class='definition'>emptyGeEnv</span> <span class='keyglyph'>=</span> <span class='conid'>GEEnv</span> <span class='conid'>M</span><span class='varop'>.</span><span class='varid'>empty</span>-<a name="line-74"></a>-<a name="line-75"></a><a name="lookupGeEnv"></a><span class='definition'>lookupGeEnv</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>GEEnv</span> <span class='keyglyph'>-></span> <span class='conid'>Maybe</span> <span class='conid'>GESubstArrow</span>-<a name="line-76"></a><span class='definition'>lookupGeEnv</span> <span class='varid'>k</span> <span class='layout'>(</span><span class='conid'>GEEnv</span> <span class='varid'>env</span><span class='layout'>)</span>-<a name="line-77"></a> <span class='keyglyph'>=</span> <span class='conid'>M</span><span class='varop'>.</span><span class='varid'>lookup</span> <span class='varid'>k</span> <span class='varid'>env</span>-<a name="line-78"></a>-<a name="line-79"></a><a name="addGeEntry"></a><span class='definition'>addGeEntry</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>GESubstArrow</span> <span class='keyglyph'>-></span> <span class='conid'>GEEnv</span> <span class='keyglyph'>-></span> <span class='conid'>GEEnv</span>-<a name="line-80"></a><span class='definition'>addGeEntry</span> <span class='varid'>k</span> <span class='varid'>a</span> <span class='layout'>(</span><span class='conid'>GEEnv</span> <span class='varid'>env</span><span class='layout'>)</span>-<a name="line-81"></a> <span class='keyglyph'>=</span> <span class='conid'>GEEnv</span> <span class='varop'>$</span> <span class='conid'>M</span><span class='varop'>.</span><span class='varid'>insert</span> <span class='varid'>k</span> <span class='varid'>a</span> <span class='varid'>env</span>-<a name="line-82"></a>-<a name="line-83"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-84"></a>-<a name="line-85"></a><span class='comment'>-- |</span>-<a name="line-86"></a><span class='comment'>-- substitution of general entities</span>-<a name="line-87"></a><span class='comment'>--</span>-<a name="line-88"></a><span class='comment'>-- input: a complete document tree including root node</span>-<a name="line-89"></a>-<a name="line-90"></a><a name="processGeneralEntities"></a><span class='definition'>processGeneralEntities</span> <span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-91"></a><span class='definition'>processGeneralEntities</span>-<a name="line-92"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>traceMsg</span> <span class='num'>1</span> <span class='str'>"processGeneralEntities: collect and substitute general entities"</span>-<a name="line-93"></a> <span class='varop'>>>></span>-<a name="line-94"></a> <span class='varid'>withOtherUserState</span> <span class='varid'>emptyGeEnv</span> <span class='layout'>(</span><span class='varid'>processChildren</span> <span class='layout'>(</span><span class='varid'>processGeneralEntity</span> <span class='conid'>ReferenceInContent</span> <span class='conid'>[]</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-95"></a> <span class='varop'>>>></span>-<a name="line-96"></a> <span class='varid'>setDocumentStatusFromSystemState</span> <span class='str'>"in general entity processing"</span>-<a name="line-97"></a> <span class='varop'>>>></span>-<a name="line-98"></a> <span class='varid'>traceTree</span>-<a name="line-99"></a> <span class='varop'>>>></span>-<a name="line-100"></a> <span class='varid'>traceSource</span>-<a name="line-101"></a> <span class='layout'>)</span>-<a name="line-102"></a> <span class='varop'>`when`</span>-<a name="line-103"></a> <span class='varid'>documentStatusOk</span>-<a name="line-104"></a>-<a name="line-105"></a> -<a name="line-106"></a><a name="processGeneralEntity"></a><span class='definition'>processGeneralEntity</span> <span class='keyglyph'>::</span> <span class='conid'>GESubstArrow</span>-<a name="line-107"></a><span class='definition'>processGeneralEntity</span> <span class='varid'>context</span> <span class='varid'>recl</span>-<a name="line-108"></a> <span class='keyglyph'>=</span> <span class='varid'>choiceA</span> <span class='keyglyph'>[</span> <span class='varid'>isElem</span> <span class='conop'>:-></span> <span class='layout'>(</span> <span class='varid'>processAttrl</span> <span class='layout'>(</span><span class='varid'>processChildren</span> <span class='varid'>substEntitiesInAttrValue</span><span class='layout'>)</span>-<a name="line-109"></a> <span class='varop'>>>></span>-<a name="line-110"></a> <span class='varid'>processChildren</span> <span class='layout'>(</span><span class='varid'>processGeneralEntity</span> <span class='varid'>context</span> <span class='varid'>recl</span><span class='layout'>)</span>-<a name="line-111"></a> <span class='layout'>)</span>-<a name="line-112"></a> <span class='layout'>,</span> <span class='varid'>isDTDDoctype</span> <span class='conop'>:-></span> <span class='varid'>processChildren</span> <span class='layout'>(</span><span class='varid'>processGeneralEntity</span> <span class='varid'>context</span> <span class='varid'>recl</span><span class='layout'>)</span>-<a name="line-113"></a> <span class='layout'>,</span> <span class='varid'>isDTDEntity</span> <span class='conop'>:-></span> <span class='varid'>addEntityDecl</span>-<a name="line-114"></a> <span class='layout'>,</span> <span class='varid'>isDTDAttlist</span> <span class='conop'>:-></span> <span class='varid'>substEntitiesInAttrDefaultValue</span>-<a name="line-115"></a> <span class='layout'>,</span> <span class='varid'>isEntityRef</span> <span class='conop'>:-></span> <span class='varid'>substEntityRef</span>-<a name="line-116"></a> <span class='layout'>,</span> <span class='varid'>this</span> <span class='conop'>:-></span> <span class='varid'>this</span>-<a name="line-117"></a> <span class='keyglyph'>]</span>-<a name="line-118"></a> <span class='keyword'>where</span>-<a name="line-119"></a> <span class='varid'>addEntityDecl</span> <span class='keyglyph'>::</span> <span class='conid'>GEArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-120"></a> <span class='varid'>addEntityDecl</span>-<a name="line-121"></a> <span class='keyglyph'>=</span> <span class='varid'>perform</span> <span class='layout'>(</span> <span class='varid'>choiceA</span> <span class='keyglyph'>[</span> <span class='varid'>isIntern</span> <span class='conop'>:-></span> <span class='varid'>addInternalEntity</span> <span class='comment'>-- don't change sequence of cases</span>-<a name="line-122"></a> <span class='layout'>,</span> <span class='varid'>isExtern</span> <span class='conop'>:-></span> <span class='varid'>addExternalEntity</span>-<a name="line-123"></a> <span class='layout'>,</span> <span class='varid'>isUnparsed</span> <span class='conop'>:-></span> <span class='varid'>addUnparsedEntity</span>-<a name="line-124"></a> <span class='keyglyph'>]</span>-<a name="line-125"></a> <span class='layout'>)</span>-<a name="line-126"></a> <span class='keyword'>where</span>-<a name="line-127"></a> <span class='varid'>isIntern</span> <span class='keyglyph'>=</span> <span class='varid'>none</span> <span class='varop'>`when`</span> <span class='varid'>hasDTDAttr</span> <span class='varid'>k_system</span>-<a name="line-128"></a> <span class='varid'>isExtern</span> <span class='keyglyph'>=</span> <span class='varid'>none</span> <span class='varop'>`when`</span> <span class='varid'>hasDTDAttr</span> <span class='varid'>k_ndata</span>-<a name="line-129"></a> <span class='varid'>isUnparsed</span> <span class='keyglyph'>=</span> <span class='varid'>this</span>-<a name="line-130"></a>-<a name="line-131"></a> <span class='varid'>addInternalEntity</span> <span class='keyglyph'>::</span> <span class='conid'>GEArrow</span> <span class='conid'>XmlTree</span> <span class='varid'>b</span>-<a name="line-132"></a> <span class='varid'>addInternalEntity</span>-<a name="line-133"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>getDTDAttrValue</span> <span class='varid'>a_name</span>-<a name="line-134"></a> <span class='varop'>>>></span>-<a name="line-135"></a> <span class='varid'>traceValue</span> <span class='num'>2</span> <span class='layout'>(</span><span class='layout'>(</span><span class='str'>"processGeneralEntity: general entity definition for "</span> <span class='varop'>++</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>show</span><span class='layout'>)</span>-<a name="line-136"></a> <span class='layout'>)</span>-<a name="line-137"></a> <span class='varop'>&&&</span>-<a name="line-138"></a> <span class='varid'>xshow</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>>>></span> <span class='varid'>isText</span><span class='layout'>)</span>-<a name="line-139"></a> <span class='layout'>)</span>-<a name="line-140"></a> <span class='varop'>>>></span>-<a name="line-141"></a> <span class='varid'>applyA</span> <span class='layout'>(</span> <span class='varid'>arr2</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>entity</span> <span class='varid'>str</span> <span class='keyglyph'>-></span>-<a name="line-142"></a> <span class='varid'>listA</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>txt</span> <span class='varid'>str</span>-<a name="line-143"></a> <span class='varop'>>>></span>-<a name="line-144"></a> <span class='varid'>parseXmlGeneralEntityValue</span> <span class='layout'>(</span><span class='str'>"general internal entity"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>entity</span><span class='layout'>)</span>-<a name="line-145"></a> <span class='varop'>>>></span>-<a name="line-146"></a> <span class='varid'>filterErrorMsg</span>-<a name="line-147"></a> <span class='layout'>)</span>-<a name="line-148"></a> <span class='varop'>`orElse`</span> <span class='varid'>txt</span> <span class='str'>""</span>-<a name="line-149"></a> <span class='layout'>)</span>-<a name="line-150"></a> <span class='varop'>>>></span>-<a name="line-151"></a> <span class='varid'>processGeneralEntity</span> <span class='conid'>ReferenceInEntityValue</span> <span class='layout'>(</span><span class='varid'>entity</span> <span class='conop'>:</span> <span class='varid'>recl</span><span class='layout'>)</span>-<a name="line-152"></a> <span class='layout'>)</span>-<a name="line-153"></a> <span class='varop'>>>></span>-<a name="line-154"></a> <span class='varid'>applyA</span> <span class='layout'>(</span><span class='varid'>arr</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>ts</span> <span class='keyglyph'>-></span> <span class='varid'>insertEntity</span> <span class='layout'>(</span><span class='varid'>substInternal</span> <span class='varid'>ts</span><span class='layout'>)</span> <span class='varid'>entity</span><span class='layout'>)</span>-<a name="line-155"></a> <span class='layout'>)</span>-<a name="line-156"></a> <span class='varop'>>>></span>-<a name="line-157"></a> <span class='varid'>none</span>-<a name="line-158"></a>-<a name="line-159"></a> <span class='varid'>addExternalEntity</span> <span class='keyglyph'>::</span> <span class='conid'>GEArrow</span> <span class='conid'>XmlTree</span> <span class='varid'>b</span>-<a name="line-160"></a> <span class='varid'>addExternalEntity</span>-<a name="line-161"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>getDTDAttrValue</span> <span class='varid'>a_name</span>-<a name="line-162"></a> <span class='varop'>>>></span>-<a name="line-163"></a> <span class='varid'>traceValue</span> <span class='num'>2</span> <span class='layout'>(</span><span class='layout'>(</span><span class='str'>"processGeneralEntity: external entity definition for "</span> <span class='varop'>++</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>show</span><span class='layout'>)</span>-<a name="line-164"></a> <span class='layout'>)</span>-<a name="line-165"></a> <span class='varop'>&&&</span>-<a name="line-166"></a> <span class='varid'>getDTDAttrValue</span> <span class='varid'>a_url</span> <span class='comment'>-- the absolute URL, not the relative in attr: k_system</span>-<a name="line-167"></a> <span class='layout'>)</span>-<a name="line-168"></a> <span class='varop'>>>></span>-<a name="line-169"></a> <span class='varid'>applyA</span> <span class='layout'>(</span><span class='varid'>arr2</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>entity</span> <span class='varid'>uri</span> <span class='keyglyph'>-></span> <span class='varid'>insertEntity</span> <span class='layout'>(</span><span class='varid'>substExternalParsed1Time</span> <span class='varid'>uri</span><span class='layout'>)</span> <span class='varid'>entity</span><span class='layout'>)</span>-<a name="line-170"></a> <span class='varop'>>>></span>-<a name="line-171"></a> <span class='varid'>none</span>-<a name="line-172"></a>-<a name="line-173"></a> <span class='varid'>addUnparsedEntity</span> <span class='keyglyph'>::</span> <span class='conid'>GEArrow</span> <span class='conid'>XmlTree</span> <span class='varid'>b</span>-<a name="line-174"></a> <span class='varid'>addUnparsedEntity</span>-<a name="line-175"></a> <span class='keyglyph'>=</span> <span class='varid'>getDTDAttrValue</span> <span class='varid'>a_name</span>-<a name="line-176"></a> <span class='varop'>>>></span>-<a name="line-177"></a> <span class='varid'>traceValue</span> <span class='num'>2</span> <span class='layout'>(</span><span class='layout'>(</span><span class='str'>"processGeneralEntity: unparsed entity definition for "</span> <span class='varop'>++</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>show</span><span class='layout'>)</span>-<a name="line-178"></a> <span class='varop'>>>></span>-<a name="line-179"></a> <span class='varid'>applyA</span> <span class='layout'>(</span><span class='varid'>arr</span> <span class='layout'>(</span><span class='varid'>insertEntity</span> <span class='varid'>substUnparsed</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-180"></a> <span class='varop'>>>></span>-<a name="line-181"></a> <span class='varid'>none</span>-<a name="line-182"></a>-<a name="line-183"></a> <span class='varid'>insertEntity</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>GESubstArrow</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>GEArrow</span> <span class='varid'>b</span> <span class='varid'>b</span>-<a name="line-184"></a> <span class='varid'>insertEntity</span> <span class='varid'>fct</span> <span class='varid'>entity</span>-<a name="line-185"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>getUserState</span>-<a name="line-186"></a> <span class='varop'>>>></span>-<a name="line-187"></a> <span class='varid'>applyA</span> <span class='layout'>(</span><span class='varid'>arr</span> <span class='varid'>checkDefined</span><span class='layout'>)</span>-<a name="line-188"></a> <span class='layout'>)</span>-<a name="line-189"></a> <span class='varop'>`guards`</span>-<a name="line-190"></a> <span class='varid'>addEntity</span> <span class='varid'>fct</span> <span class='varid'>entity</span>-<a name="line-191"></a> <span class='keyword'>where</span>-<a name="line-192"></a> <span class='varid'>checkDefined</span> <span class='varid'>geEnv</span>-<a name="line-193"></a> <span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='varid'>ok</span> <span class='varid'>alreadyDefined</span> <span class='varop'>.</span> <span class='varid'>lookupGeEnv</span> <span class='varid'>entity</span> <span class='varop'>$</span> <span class='varid'>geEnv</span>-<a name="line-194"></a> <span class='keyword'>where</span>-<a name="line-195"></a> <span class='varid'>ok</span> <span class='keyglyph'>=</span> <span class='varid'>this</span>-<a name="line-196"></a> <span class='varid'>alreadyDefined</span> <span class='keyword'>_</span>-<a name="line-197"></a> <span class='keyglyph'>=</span> <span class='varid'>issueWarn</span> <span class='layout'>(</span><span class='str'>"entity "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>entity</span> <span class='varop'>++</span> <span class='str'>" already defined, repeated definition ignored"</span><span class='layout'>)</span>-<a name="line-198"></a>-<a name="line-199"></a> <span class='varid'>addEntity</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>GESubstArrow</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>GEArrow</span> <span class='varid'>b</span> <span class='varid'>b</span>-<a name="line-200"></a> <span class='varid'>addEntity</span> <span class='varid'>fct</span> <span class='varid'>entity</span>-<a name="line-201"></a> <span class='keyglyph'>=</span> <span class='varid'>changeUserState</span> <span class='varid'>ins</span>-<a name="line-202"></a> <span class='keyword'>where</span>-<a name="line-203"></a> <span class='varid'>ins</span> <span class='keyword'>_</span> <span class='varid'>geEnv</span> <span class='keyglyph'>=</span> <span class='varid'>addGeEntry</span> <span class='varid'>entity</span> <span class='layout'>(</span><span class='varid'>fct</span> <span class='varid'>entity</span><span class='layout'>)</span> <span class='varid'>geEnv</span>-<a name="line-204"></a>-<a name="line-205"></a> <span class='varid'>substEntitiesInAttrDefaultValue</span> <span class='keyglyph'>::</span> <span class='conid'>GEArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-206"></a> <span class='varid'>substEntitiesInAttrDefaultValue</span>-<a name="line-207"></a> <span class='keyglyph'>=</span> <span class='varid'>applyA</span> <span class='layout'>(</span> <span class='varid'>xshow</span> <span class='layout'>(</span> <span class='varid'>getDTDAttrValue</span> <span class='varid'>a_default</span> <span class='comment'>-- parse the default value</span>-<a name="line-208"></a> <span class='varop'>>>></span> <span class='comment'>-- substitute entities</span>-<a name="line-209"></a> <span class='varid'>mkText</span> <span class='comment'>-- and convert value into a string</span>-<a name="line-210"></a> <span class='varop'>>>></span>-<a name="line-211"></a> <span class='varid'>parseXmlAttrValue</span> <span class='str'>"default value of attribute"</span>-<a name="line-212"></a> <span class='varop'>>>></span>-<a name="line-213"></a> <span class='varid'>filterErrorMsg</span>-<a name="line-214"></a> <span class='varop'>>>></span>-<a name="line-215"></a> <span class='varid'>substEntitiesInAttrValue</span>-<a name="line-216"></a> <span class='layout'>)</span>-<a name="line-217"></a> <span class='varop'>>>></span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='varid'>setDTDAttrValue</span> <span class='varid'>a_default</span><span class='layout'>)</span>-<a name="line-218"></a> <span class='layout'>)</span>-<a name="line-219"></a> <span class='varop'>`when`</span> <span class='varid'>hasDTDAttr</span> <span class='varid'>a_default</span>-<a name="line-220"></a>-<a name="line-221"></a> <span class='varid'>substEntitiesInAttrValue</span> <span class='keyglyph'>::</span> <span class='conid'>GEArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-222"></a> <span class='varid'>substEntitiesInAttrValue</span>-<a name="line-223"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>processGeneralEntity</span> <span class='conid'>ReferenceInAttributeValue</span> <span class='varid'>recl</span>-<a name="line-224"></a> <span class='varop'>`when`</span>-<a name="line-225"></a> <span class='varid'>isEntityRef</span>-<a name="line-226"></a> <span class='layout'>)</span>-<a name="line-227"></a> <span class='varop'>>>></span>-<a name="line-228"></a> <span class='varid'>changeText</span> <span class='varid'>normalizeWhiteSpace</span>-<a name="line-229"></a> <span class='varop'>>>></span>-<a name="line-230"></a> <span class='varid'>transfCharRef</span>-<a name="line-231"></a> <span class='keyword'>where</span>-<a name="line-232"></a> <span class='varid'>normalizeWhiteSpace</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='layout'>(</span> <span class='keyglyph'>\</span><span class='varid'>c</span> <span class='keyglyph'>-></span> <span class='keyword'>if</span> <span class='varid'>c</span> <span class='varop'>`elem`</span> <span class='str'>"\n\t\r"</span> <span class='keyword'>then</span> <span class='chr'>' '</span> <span class='keyword'>else</span> <span class='varid'>c</span> <span class='layout'>)</span>-<a name="line-233"></a>-<a name="line-234"></a>-<a name="line-235"></a> <span class='varid'>substEntityRef</span> <span class='keyglyph'>::</span> <span class='conid'>GEArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-236"></a> <span class='varid'>substEntityRef</span>-<a name="line-237"></a> <span class='keyglyph'>=</span> <span class='varid'>applyA</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>getEntityRef</span> <span class='comment'>-- get the entity name and the env</span>-<a name="line-238"></a> <span class='varop'>>>></span> <span class='comment'>-- and compute the arrow to be applied</span>-<a name="line-239"></a> <span class='varid'>traceValue</span> <span class='num'>2</span> <span class='layout'>(</span><span class='layout'>(</span><span class='str'>"processGeneralEntity: entity reference for entity "</span> <span class='varop'>++</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>show</span><span class='layout'>)</span>-<a name="line-240"></a> <span class='varop'>>>></span>-<a name="line-241"></a> <span class='varid'>traceMsg</span> <span class='num'>3</span> <span class='layout'>(</span><span class='str'>"recursion list = "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>recl</span><span class='layout'>)</span>-<a name="line-242"></a> <span class='layout'>)</span>-<a name="line-243"></a> <span class='varop'>&&&</span>-<a name="line-244"></a> <span class='varid'>getUserState</span>-<a name="line-245"></a> <span class='layout'>)</span> <span class='varop'>>>></span>-<a name="line-246"></a> <span class='varid'>arr2</span> <span class='varid'>substA</span>-<a name="line-247"></a> <span class='layout'>)</span>-<a name="line-248"></a> <span class='varop'>`orElse`</span> <span class='varid'>this</span>-<a name="line-249"></a> <span class='keyword'>where</span>-<a name="line-250"></a> <span class='varid'>substA</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>GEEnv</span> <span class='keyglyph'>-></span> <span class='conid'>GEArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-251"></a> <span class='varid'>substA</span> <span class='varid'>entity</span> <span class='varid'>geEnv</span>-<a name="line-252"></a> <span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='varid'>entityNotFound</span> <span class='varid'>entityFound</span> <span class='varop'>.</span> <span class='varid'>lookupGeEnv</span> <span class='varid'>entity</span> <span class='varop'>$</span> <span class='varid'>geEnv</span>-<a name="line-253"></a> <span class='keyword'>where</span>-<a name="line-254"></a> <span class='varid'>errMsg</span> <span class='varid'>msg</span>-<a name="line-255"></a> <span class='keyglyph'>=</span> <span class='varid'>issueErr</span> <span class='varid'>msg</span>-<a name="line-256"></a>-<a name="line-257"></a> <span class='varid'>entityNotFound</span>-<a name="line-258"></a> <span class='keyglyph'>=</span> <span class='varid'>errMsg</span> <span class='layout'>(</span><span class='str'>"general entity reference \"&"</span> <span class='varop'>++</span> <span class='varid'>entity</span> <span class='varop'>++</span> <span class='str'>";\" not processed, no definition found, (forward reference?)"</span><span class='layout'>)</span>-<a name="line-259"></a>-<a name="line-260"></a> <span class='varid'>entityFound</span> <span class='varid'>fct</span>-<a name="line-261"></a> <span class='keyglyph'>|</span> <span class='varid'>entity</span> <span class='varop'>`elem`</span> <span class='varid'>recl</span>-<a name="line-262"></a> <span class='keyglyph'>=</span> <span class='varid'>errMsg</span> <span class='layout'>(</span><span class='str'>"general entity reference \"&"</span> <span class='varop'>++</span> <span class='varid'>entity</span> <span class='varop'>++</span> <span class='str'>";\" not processed, cyclic definition"</span><span class='layout'>)</span>-<a name="line-263"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-264"></a> <span class='keyglyph'>=</span> <span class='varid'>fct</span> <span class='varid'>context</span> <span class='varid'>recl</span>-<a name="line-265"></a>-<a name="line-266"></a> <span class='varid'>substExternalParsed1Time</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>GESubstArrow</span>-<a name="line-267"></a> <span class='varid'>substExternalParsed1Time</span> <span class='varid'>uri</span> <span class='varid'>entity</span> <span class='varid'>cx</span> <span class='varid'>rl</span>-<a name="line-268"></a> <span class='keyglyph'>=</span> <span class='varid'>perform</span> <span class='layout'>(</span> <span class='varid'>traceMsg</span> <span class='num'>2</span> <span class='layout'>(</span><span class='str'>"substExternalParsed1Time: read and parse external parsed entity "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>entity</span><span class='layout'>)</span>-<a name="line-269"></a> <span class='varop'>>>></span>-<a name="line-270"></a> <span class='varid'>runInLocalURIContext</span> <span class='layout'>(</span> <span class='varid'>root</span> <span class='keyglyph'>[</span><span class='varid'>sattr</span> <span class='varid'>a_source</span> <span class='varid'>uri</span><span class='keyglyph'>]</span> <span class='conid'>[]</span> <span class='comment'>-- uri must be an absolute uri</span>-<a name="line-271"></a> <span class='varop'>>>></span> <span class='comment'>-- abs uri is computed during parameter entity handling</span>-<a name="line-272"></a> <span class='varid'>listA</span> <span class='layout'>(</span> <span class='varid'>getXmlEntityContents</span>-<a name="line-273"></a> <span class='varop'>>>></span>-<a name="line-274"></a> <span class='varid'>processExternalEntityContents</span>-<a name="line-275"></a> <span class='layout'>)</span>-<a name="line-276"></a> <span class='layout'>)</span>-<a name="line-277"></a> <span class='varop'>>>></span>-<a name="line-278"></a> <span class='varid'>applyA</span> <span class='layout'>(</span> <span class='varid'>arr</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>ts</span> <span class='keyglyph'>-></span> <span class='varid'>addEntity</span> <span class='layout'>(</span><span class='varid'>substExternalParsed</span> <span class='varid'>ts</span><span class='layout'>)</span> <span class='varid'>entity</span> <span class='layout'>)</span>-<a name="line-279"></a> <span class='layout'>)</span>-<a name="line-280"></a> <span class='varop'>>>></span>-<a name="line-281"></a> <span class='varid'>processGeneralEntity</span> <span class='varid'>cx</span> <span class='varid'>rl</span>-<a name="line-282"></a> <span class='keyword'>where</span>-<a name="line-283"></a> <span class='varid'>processExternalEntityContents</span> <span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-284"></a> <span class='varid'>processExternalEntityContents</span>-<a name="line-285"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>documentStatusOk</span> <span class='comment'>-- reading entity succeeded</span>-<a name="line-286"></a> <span class='varop'>>>></span> <span class='comment'>-- with content stored in a text node</span>-<a name="line-287"></a> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>>>></span> <span class='varid'>isText</span><span class='layout'>)</span>-<a name="line-288"></a> <span class='layout'>)</span>-<a name="line-289"></a> <span class='varop'>`guards`</span>-<a name="line-290"></a> <span class='layout'>(</span> <span class='varid'>getChildren</span>-<a name="line-291"></a> <span class='varop'>>>></span>-<a name="line-292"></a> <span class='varid'>parseXmlGeneralEntityValue</span> <span class='layout'>(</span><span class='str'>"external parsed entity "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>entity</span><span class='layout'>)</span>-<a name="line-293"></a> <span class='varop'>>>></span>-<a name="line-294"></a> <span class='varid'>filterErrorMsg</span>-<a name="line-295"></a> <span class='layout'>)</span>-<a name="line-296"></a> <span class='layout'>)</span>-<a name="line-297"></a> <span class='varop'>`orElse`</span>-<a name="line-298"></a> <span class='varid'>issueErr</span> <span class='layout'>(</span><span class='str'>"illegal value for external parsed entity "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>entity</span><span class='layout'>)</span>-<a name="line-299"></a>-<a name="line-300"></a> <span class='varid'>substExternalParsed</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>GESubstArrow</span>-<a name="line-301"></a> <span class='varid'>substExternalParsed</span> <span class='varid'>ts</span> <span class='varid'>entity</span> <span class='conid'>ReferenceInContent</span> <span class='varid'>rl</span> <span class='keyglyph'>=</span> <span class='varid'>includedIfValidating</span> <span class='varid'>ts</span> <span class='varid'>rl</span> <span class='varid'>entity</span>-<a name="line-302"></a> <span class='varid'>substExternalParsed</span> <span class='keyword'>_</span> <span class='varid'>entity</span> <span class='conid'>ReferenceInAttributeValue</span> <span class='keyword'>_</span>-<a name="line-303"></a> <span class='keyglyph'>=</span> <span class='varid'>forbidden</span> <span class='varid'>entity</span> <span class='str'>"external parsed general"</span> <span class='str'>"in attribute value"</span>-<a name="line-304"></a> <span class='varid'>substExternalParsed</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='conid'>ReferenceInEntityValue</span> <span class='keyword'>_</span>-<a name="line-305"></a> <span class='keyglyph'>=</span> <span class='varid'>bypassed</span>-<a name="line-306"></a>-<a name="line-307"></a> <span class='varid'>substInternal</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>GESubstArrow</span>-<a name="line-308"></a> <span class='varid'>substInternal</span> <span class='varid'>ts</span> <span class='varid'>entity</span> <span class='conid'>ReferenceInContent</span> <span class='varid'>rl</span> <span class='keyglyph'>=</span> <span class='varid'>included</span> <span class='varid'>ts</span> <span class='varid'>rl</span> <span class='varid'>entity</span>-<a name="line-309"></a> <span class='varid'>substInternal</span> <span class='varid'>ts</span> <span class='varid'>entity</span> <span class='conid'>ReferenceInAttributeValue</span> <span class='varid'>rl</span><span class='keyglyph'>=</span> <span class='varid'>includedInLiteral</span> <span class='varid'>ts</span> <span class='varid'>rl</span> <span class='varid'>entity</span>-<a name="line-310"></a> <span class='varid'>substInternal</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='conid'>ReferenceInEntityValue</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='varid'>bypassed</span>-<a name="line-311"></a>-<a name="line-312"></a> <span class='varid'>substUnparsed</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>GESubstArrow</span>-<a name="line-313"></a> <span class='varid'>substUnparsed</span> <span class='varid'>entity</span> <span class='conid'>ReferenceInContent</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='varid'>forbidden</span> <span class='varid'>entity</span> <span class='str'>"unparsed"</span> <span class='str'>"content"</span>-<a name="line-314"></a> <span class='varid'>substUnparsed</span> <span class='varid'>entity</span> <span class='conid'>ReferenceInAttributeValue</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='varid'>forbidden</span> <span class='varid'>entity</span> <span class='str'>"unparsed"</span> <span class='str'>"attribute value"</span>-<a name="line-315"></a> <span class='varid'>substUnparsed</span> <span class='varid'>entity</span> <span class='conid'>ReferenceInEntityValue</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='varid'>forbidden</span> <span class='varid'>entity</span> <span class='str'>"unparsed"</span> <span class='str'>"entity value"</span>-<a name="line-316"></a>-<a name="line-317"></a> <span class='comment'>-- XML 1.0 chapter 4.4.2</span>-<a name="line-318"></a> <span class='varid'>included</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>RecList</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>GEArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-319"></a> <span class='varid'>included</span> <span class='varid'>ts</span> <span class='varid'>rl</span> <span class='varid'>entity</span>-<a name="line-320"></a> <span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varid'>ts</span><span class='layout'>)</span>-<a name="line-321"></a> <span class='varop'>>>></span>-<a name="line-322"></a> <span class='varid'>processGeneralEntity</span> <span class='varid'>context</span> <span class='layout'>(</span><span class='varid'>entity</span> <span class='conop'>:</span> <span class='varid'>rl</span><span class='layout'>)</span>-<a name="line-323"></a>-<a name="line-324"></a> <span class='comment'>-- XML 1.0 chapter 4.4.3</span>-<a name="line-325"></a> <span class='varid'>includedIfValidating</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>RecList</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>GEArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-326"></a> <span class='varid'>includedIfValidating</span>-<a name="line-327"></a> <span class='keyglyph'>=</span> <span class='varid'>included</span>-<a name="line-328"></a>-<a name="line-329"></a> <span class='comment'>-- XML 1.0 chapter 4.4.4</span>-<a name="line-330"></a> <span class='varid'>forbidden</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>GEArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-331"></a> <span class='varid'>forbidden</span> <span class='varid'>entity</span> <span class='varid'>msg</span> <span class='varid'>cx</span>-<a name="line-332"></a> <span class='keyglyph'>=</span> <span class='varid'>issueErr</span> <span class='layout'>(</span><span class='str'>"reference of "</span> <span class='varop'>++</span> <span class='varid'>msg</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>entity</span> <span class='varop'>++</span> <span class='str'>" forbidden in "</span> <span class='varop'>++</span> <span class='varid'>cx</span><span class='layout'>)</span>-<a name="line-333"></a>-<a name="line-334"></a> <span class='comment'>-- XML 1.0 chapter 4.4.5</span>-<a name="line-335"></a> <span class='varid'>includedInLiteral</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>RecList</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>GEArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-336"></a> <span class='varid'>includedInLiteral</span>-<a name="line-337"></a> <span class='keyglyph'>=</span> <span class='varid'>included</span>-<a name="line-338"></a>-<a name="line-339"></a> <span class='comment'>-- XML 1.0 chapter 4.4.7</span>-<a name="line-340"></a> <span class='varid'>bypassed</span> <span class='keyglyph'>::</span> <span class='conid'>GEArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-341"></a> <span class='varid'>bypassed</span>-<a name="line-342"></a> <span class='keyglyph'>=</span> <span class='varid'>this</span>-<a name="line-343"></a>-<a name="line-344"></a><span class='comment'>-- ------------------------------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-Arrow-Namespace.html
@@ -1,425 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Text.XML.HXT.Arrow.Namespace-<a name="line-5"></a> Copyright : Copyright (C) 2005-2008 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe@fh-wedel.de)-<a name="line-9"></a> Stability : experimental-<a name="line-10"></a> Portability: portable-<a name="line-11"></a>-<a name="line-12"></a> namespace specific arrows-<a name="line-13"></a>-<a name="line-14"></a>-}</span>-<a name="line-15"></a>-<a name="line-16"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-17"></a>-<a name="line-18"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>Namespace</span>-<a name="line-19"></a> <span class='layout'>(</span> <span class='varid'>attachNsEnv</span>-<a name="line-20"></a> <span class='layout'>,</span> <span class='varid'>cleanupNamespaces</span>-<a name="line-21"></a> <span class='layout'>,</span> <span class='varid'>collectNamespaceDecl</span>-<a name="line-22"></a> <span class='layout'>,</span> <span class='varid'>collectPrefixUriPairs</span>-<a name="line-23"></a> <span class='layout'>,</span> <span class='varid'>isNamespaceDeclAttr</span>-<a name="line-24"></a> <span class='layout'>,</span> <span class='varid'>getNamespaceDecl</span>-<a name="line-25"></a> <span class='layout'>,</span> <span class='varid'>processWithNsEnv</span>-<a name="line-26"></a> <span class='layout'>,</span> <span class='varid'>processWithNsEnvWithoutAttrl</span>-<a name="line-27"></a> <span class='layout'>,</span> <span class='varid'>propagateNamespaces</span>-<a name="line-28"></a> <span class='layout'>,</span> <span class='varid'>uniqueNamespaces</span>-<a name="line-29"></a> <span class='layout'>,</span> <span class='varid'>uniqueNamespacesFromDeclAndQNames</span>-<a name="line-30"></a> <span class='layout'>,</span> <span class='varid'>validateNamespaces</span>-<a name="line-31"></a> <span class='layout'>)</span>-<a name="line-32"></a><span class='keyword'>where</span>-<a name="line-33"></a>-<a name="line-34"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span> <span class='comment'>-- arrow classes</span>-<a name="line-35"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowList</span>-<a name="line-36"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowIf</span>-<a name="line-37"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowTree</span>-<a name="line-38"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ListArrow</span>-<a name="line-39"></a>-<a name="line-40"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>-<a name="line-41"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlArrow</span>-<a name="line-42"></a>-<a name="line-43"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span> <span class='layout'>(</span> <span class='varid'>isNothing</span>-<a name="line-44"></a> <span class='layout'>,</span> <span class='varid'>fromJust</span>-<a name="line-45"></a> <span class='layout'>)</span>-<a name="line-46"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>List</span> <span class='layout'>(</span> <span class='varid'>nub</span> <span class='layout'>)</span>-<a name="line-47"></a>-<a name="line-48"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-49"></a>-<a name="line-50"></a><span class='comment'>-- | test whether an attribute node contains an XML Namespace declaration</span>-<a name="line-51"></a>-<a name="line-52"></a><a name="isNamespaceDeclAttr"></a><span class='definition'>isNamespaceDeclAttr</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-53"></a><span class='definition'>isNamespaceDeclAttr</span>-<a name="line-54"></a> <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>-<a name="line-55"></a> <span class='layout'>(</span><span class='varid'>getAttrName</span> <span class='varop'>>>></span> <span class='varid'>isA</span> <span class='varid'>isNameSpaceName</span><span class='layout'>)</span> <span class='varop'>`guards`</span> <span class='varid'>this</span>-<a name="line-56"></a>-<a name="line-57"></a><span class='comment'>-- | get the namespace prefix and the namespace URI out of</span>-<a name="line-58"></a><span class='comment'>-- an attribute tree with a namespace declaration (see 'isNamespaceDeclAttr')</span>-<a name="line-59"></a><span class='comment'>-- for all other nodes this arrow fails</span>-<a name="line-60"></a>-<a name="line-61"></a><a name="getNamespaceDecl"></a><span class='definition'>getNamespaceDecl</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span>-<a name="line-62"></a><span class='definition'>getNamespaceDecl</span>-<a name="line-63"></a> <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>-<a name="line-64"></a> <span class='varid'>isNamespaceDeclAttr</span>-<a name="line-65"></a> <span class='varop'>>>></span>-<a name="line-66"></a> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>getAttrName</span>-<a name="line-67"></a> <span class='varop'>>>></span>-<a name="line-68"></a> <span class='varid'>arr</span> <span class='varid'>getNsPrefix</span>-<a name="line-69"></a> <span class='layout'>)</span>-<a name="line-70"></a> <span class='varop'>&&&</span> <span class='varid'>xshow</span> <span class='varid'>getChildren</span>-<a name="line-71"></a> <span class='layout'>)</span>-<a name="line-72"></a> <span class='keyword'>where</span>-<a name="line-73"></a> <span class='varid'>getNsPrefix</span> <span class='keyglyph'>=</span> <span class='varid'>drop</span> <span class='num'>6</span> <span class='varop'>.</span> <span class='varid'>qualifiedName</span> <span class='comment'>-- drop "xmlns:"</span>-<a name="line-74"></a>-<a name="line-75"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-76"></a>-<a name="line-77"></a><span class='comment'>-- | collect all namespace declarations contained in a document</span>-<a name="line-78"></a><span class='comment'>--</span>-<a name="line-79"></a><span class='comment'>-- apply 'getNamespaceDecl' to a whole XmlTree</span>-<a name="line-80"></a>-<a name="line-81"></a><a name="collectNamespaceDecl"></a><span class='definition'>collectNamespaceDecl</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span>-<a name="line-82"></a><span class='definition'>collectNamespaceDecl</span> <span class='keyglyph'>=</span> <span class='varid'>multi</span> <span class='varid'>getAttrl</span> <span class='varop'>>>></span> <span class='varid'>getNamespaceDecl</span>-<a name="line-83"></a>-<a name="line-84"></a><span class='comment'>-- | collect all (namePrefix, namespaceUri) pairs from a tree</span>-<a name="line-85"></a><span class='comment'>--</span>-<a name="line-86"></a><span class='comment'>-- all qualified names are inspected, whether a namespace uri is defined,</span>-<a name="line-87"></a><span class='comment'>-- for these uris the prefix and uri is returned. This arrow is useful for</span>-<a name="line-88"></a><span class='comment'>-- namespace cleanup, e.g. for documents generated with XSLT. It can be used</span>-<a name="line-89"></a><span class='comment'>-- together with 'collectNamespaceDecl' to 'cleanupNamespaces'</span>-<a name="line-90"></a>-<a name="line-91"></a><a name="collectPrefixUriPairs"></a><span class='definition'>collectPrefixUriPairs</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span>-<a name="line-92"></a><span class='definition'>collectPrefixUriPairs</span>-<a name="line-93"></a> <span class='keyglyph'>=</span> <span class='varid'>multi</span> <span class='layout'>(</span><span class='varid'>isElem</span> <span class='varop'><+></span> <span class='varid'>getAttrl</span> <span class='varop'><+></span> <span class='varid'>isPi</span><span class='layout'>)</span>-<a name="line-94"></a> <span class='varop'>>>></span>-<a name="line-95"></a> <span class='varid'>getQName</span>-<a name="line-96"></a> <span class='varop'>>>></span>-<a name="line-97"></a> <span class='varid'>arrL</span> <span class='varid'>getPrefixUri</span>-<a name="line-98"></a> <span class='keyword'>where</span>-<a name="line-99"></a> <span class='varid'>getPrefixUri</span> <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-100"></a> <span class='varid'>getPrefixUri</span> <span class='varid'>n</span>-<a name="line-101"></a> <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>uri</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-102"></a> <span class='keyglyph'>|</span> <span class='varid'>px</span> <span class='varop'>==</span> <span class='varid'>a_xmlns</span>-<a name="line-103"></a> <span class='varop'>||</span>-<a name="line-104"></a> <span class='varid'>px</span> <span class='varop'>==</span> <span class='varid'>a_xml</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span> <span class='comment'>-- these ones are reserved an predefined</span>-<a name="line-105"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>namePrefix</span> <span class='varid'>n</span><span class='layout'>,</span> <span class='varid'>uri</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-106"></a> <span class='keyword'>where</span>-<a name="line-107"></a> <span class='varid'>uri</span> <span class='keyglyph'>=</span> <span class='varid'>namespaceUri</span> <span class='varid'>n</span>-<a name="line-108"></a> <span class='varid'>px</span> <span class='keyglyph'>=</span> <span class='varid'>namePrefix</span> <span class='varid'>n</span>-<a name="line-109"></a>-<a name="line-110"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-111"></a>-<a name="line-112"></a><span class='comment'>-- | generate unique namespaces and add all namespace declarations to the root element</span>-<a name="line-113"></a><span class='comment'>--</span>-<a name="line-114"></a><span class='comment'>-- Calls 'cleanupNamespaces' with 'collectNamespaceDecl'</span>-<a name="line-115"></a>-<a name="line-116"></a><a name="uniqueNamespaces"></a><span class='definition'>uniqueNamespaces</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-117"></a><span class='definition'>uniqueNamespaces</span>-<a name="line-118"></a> <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>-<a name="line-119"></a> <span class='varid'>cleanupNamespaces</span> <span class='varid'>collectNamespaceDecl</span>-<a name="line-120"></a>-<a name="line-121"></a><span class='comment'>-- | generate unique namespaces and add all namespace declarations for all prefix-uri pairs in all qualified names</span>-<a name="line-122"></a><span class='comment'>--</span>-<a name="line-123"></a><span class='comment'>-- useful for cleanup of namespaces in generated documents.</span>-<a name="line-124"></a><span class='comment'>-- Calls 'cleanupNamespaces' with @ collectNamespaceDecl <+> collectPrefixUriPairs @</span>-<a name="line-125"></a>-<a name="line-126"></a><a name="uniqueNamespacesFromDeclAndQNames"></a><span class='definition'>uniqueNamespacesFromDeclAndQNames</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-127"></a><span class='definition'>uniqueNamespacesFromDeclAndQNames</span>-<a name="line-128"></a> <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>-<a name="line-129"></a> <span class='varid'>cleanupNamespaces</span> <span class='layout'>(</span><span class='varid'>collectNamespaceDecl</span> <span class='varop'><+></span> <span class='varid'>collectPrefixUriPairs</span><span class='layout'>)</span>-<a name="line-130"></a>-<a name="line-131"></a><span class='comment'>-- | does the real work for namespace cleanup.</span>-<a name="line-132"></a><span class='comment'>--</span>-<a name="line-133"></a><span class='comment'>-- The parameter is used for collecting namespace uris and prefixes from the input tree</span>-<a name="line-134"></a>-<a name="line-135"></a><a name="cleanupNamespaces"></a><span class='definition'>cleanupNamespaces</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-136"></a><span class='definition'>cleanupNamespaces</span> <span class='varid'>collectNamespaces</span>-<a name="line-137"></a> <span class='keyglyph'>=</span> <span class='varid'>renameNamespaces</span> <span class='varop'>$<</span> <span class='layout'>(</span><span class='varid'>listA</span> <span class='varid'>collectNamespaces</span> <span class='varop'>>>^</span> <span class='layout'>(</span><span class='varid'>toNsEnv</span> <span class='varop'>>>></span> <span class='varid'>nub</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-138"></a> <span class='keyword'>where</span>-<a name="line-139"></a> <span class='varid'>renameNamespaces</span> <span class='keyglyph'>::</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-></span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-140"></a> <span class='varid'>renameNamespaces</span> <span class='varid'>env</span>-<a name="line-141"></a> <span class='keyglyph'>=</span> <span class='varid'>processBottomUp</span>-<a name="line-142"></a> <span class='layout'>(</span> <span class='varid'>processAttrl</span>-<a name="line-143"></a> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>none</span> <span class='varop'>`when`</span> <span class='varid'>isNamespaceDeclAttr</span> <span class='layout'>)</span> <span class='comment'>-- remove all namespace declarations</span>-<a name="line-144"></a> <span class='varop'>>>></span>-<a name="line-145"></a> <span class='varid'>changeQName</span> <span class='varid'>renamePrefix</span> <span class='comment'>-- update namespace prefix of attribute names, if namespace uri is set</span>-<a name="line-146"></a> <span class='layout'>)</span>-<a name="line-147"></a> <span class='varop'>>>></span>-<a name="line-148"></a> <span class='varid'>changeQName</span> <span class='varid'>renamePrefix</span> <span class='comment'>-- update namespace prefix of element names</span>-<a name="line-149"></a> <span class='layout'>)</span>-<a name="line-150"></a> <span class='varop'>>>></span>-<a name="line-151"></a> <span class='varid'>attachEnv</span> <span class='varid'>env1</span> <span class='comment'>-- all all namespaces as attributes to the root node attribute list</span>-<a name="line-152"></a> <span class='keyword'>where</span>-<a name="line-153"></a> <span class='varid'>renamePrefix</span> <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='conid'>QName</span>-<a name="line-154"></a> <span class='varid'>renamePrefix</span> <span class='varid'>n</span>-<a name="line-155"></a> <span class='keyglyph'>|</span> <span class='varid'>isNullXName</span> <span class='varid'>uri</span> <span class='keyglyph'>=</span> <span class='varid'>n</span>-<a name="line-156"></a> <span class='keyglyph'>|</span> <span class='varid'>isNothing</span> <span class='varid'>newPx</span> <span class='keyglyph'>=</span> <span class='varid'>n</span>-<a name="line-157"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>setNamePrefix'</span> <span class='layout'>(</span><span class='varid'>fromJust</span> <span class='varid'>newPx</span><span class='layout'>)</span> <span class='varid'>n</span>-<a name="line-158"></a> <span class='keyword'>where</span>-<a name="line-159"></a> <span class='varid'>uri</span> <span class='keyglyph'>=</span> <span class='varid'>namespaceUri'</span> <span class='varid'>n</span>-<a name="line-160"></a> <span class='varid'>newPx</span> <span class='keyglyph'>=</span> <span class='varid'>lookup</span> <span class='varid'>uri</span> <span class='varid'>revEnv1</span>-<a name="line-161"></a> -<a name="line-162"></a> <span class='varid'>revEnv1</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='layout'>(</span><span class='varid'>x</span><span class='layout'>,</span> <span class='varid'>y</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='varid'>y</span><span class='layout'>,</span> <span class='varid'>x</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varid'>env1</span>-<a name="line-163"></a>-<a name="line-164"></a> <span class='varid'>env1</span> <span class='keyglyph'>::</span> <span class='conid'>NsEnv</span>-<a name="line-165"></a> <span class='varid'>env1</span> <span class='keyglyph'>=</span> <span class='varid'>newEnv</span> <span class='conid'>[]</span> <span class='varid'>uris</span>-<a name="line-166"></a>-<a name="line-167"></a> <span class='varid'>uris</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>XName</span><span class='keyglyph'>]</span>-<a name="line-168"></a> <span class='varid'>uris</span> <span class='keyglyph'>=</span> <span class='varid'>nub</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='varid'>snd</span> <span class='varop'>$</span> <span class='varid'>env</span>-<a name="line-169"></a>-<a name="line-170"></a> <span class='varid'>genPrefixes</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>XName</span><span class='keyglyph'>]</span>-<a name="line-171"></a> <span class='varid'>genPrefixes</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>newXName</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='str'>"ns"</span> <span class='varop'>++</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>show</span><span class='layout'>)</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='num'>0</span><span class='keyglyph'>::</span><span class='conid'>Int</span><span class='layout'>)</span><span class='keyglyph'>..</span><span class='keyglyph'>]</span>-<a name="line-172"></a>-<a name="line-173"></a> <span class='varid'>newEnv</span> <span class='keyglyph'>::</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>XName</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>NsEnv</span>-<a name="line-174"></a> <span class='varid'>newEnv</span> <span class='varid'>env'</span> <span class='conid'>[]</span>-<a name="line-175"></a> <span class='keyglyph'>=</span> <span class='varid'>env'</span>-<a name="line-176"></a>-<a name="line-177"></a> <span class='varid'>newEnv</span> <span class='varid'>env'</span> <span class='layout'>(</span><span class='varid'>uri</span><span class='conop'>:</span><span class='varid'>rest</span><span class='layout'>)</span>-<a name="line-178"></a> <span class='keyglyph'>=</span> <span class='varid'>newEnv</span> <span class='varid'>env''</span> <span class='varid'>rest</span>-<a name="line-179"></a> <span class='keyword'>where</span>-<a name="line-180"></a> <span class='varid'>env''</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>prefix</span><span class='layout'>,</span> <span class='varid'>uri</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>env'</span>-<a name="line-181"></a> <span class='varid'>prefix</span>-<a name="line-182"></a> <span class='keyglyph'>=</span> <span class='varid'>head</span> <span class='layout'>(</span><span class='varid'>filter</span> <span class='varid'>notAlreadyUsed</span> <span class='varop'>$</span> <span class='varid'>preferedPrefixes</span> <span class='varop'>++</span> <span class='varid'>genPrefixes</span><span class='layout'>)</span>-<a name="line-183"></a> <span class='varid'>preferedPrefixes</span>-<a name="line-184"></a> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>fst</span> <span class='varop'>.</span> <span class='varid'>filter</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varop'>==</span><span class='varid'>uri</span><span class='layout'>)</span><span class='varop'>.</span><span class='varid'>snd</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>env</span>-<a name="line-185"></a> <span class='varid'>notAlreadyUsed</span> <span class='varid'>s</span>-<a name="line-186"></a> <span class='keyglyph'>=</span> <span class='varid'>isNothing</span> <span class='varop'>.</span> <span class='varid'>lookup</span> <span class='varid'>s</span> <span class='varop'>$</span> <span class='varid'>env'</span>-<a name="line-187"></a>-<a name="line-188"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-189"></a>-<a name="line-190"></a><span class='comment'>-- | auxiliary arrow for processing with a namespace environment</span>-<a name="line-191"></a><span class='comment'>--</span>-<a name="line-192"></a><span class='comment'>-- process a document tree with an arrow, containing always the</span>-<a name="line-193"></a><span class='comment'>-- valid namespace environment as extra parameter.</span>-<a name="line-194"></a><span class='comment'>-- The namespace environment is implemented as a 'Data.AssocList.AssocList'.</span>-<a name="line-195"></a><span class='comment'>-- Processing of attributes can be controlled by a boolean parameter</span>-<a name="line-196"></a>-<a name="line-197"></a><a name="processWithNsEnv1"></a><span class='definition'>processWithNsEnv1</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='conid'>Bool</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='conid'>NsEnv</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-198"></a><span class='definition'>processWithNsEnv1</span> <span class='varid'>withAttr</span> <span class='varid'>f</span> <span class='varid'>env</span>-<a name="line-199"></a> <span class='keyglyph'>=</span> <span class='varid'>ifA</span> <span class='varid'>isElem</span> <span class='comment'>-- the test is just an optimization</span>-<a name="line-200"></a> <span class='layout'>(</span> <span class='varid'>processWithExtendedEnv</span> <span class='varop'>$<</span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='varid'>extendEnv</span> <span class='varid'>env</span><span class='layout'>)</span> <span class='layout'>)</span> <span class='comment'>-- only element nodes contain namespace declarations</span>-<a name="line-201"></a> <span class='layout'>(</span> <span class='varid'>processWithExtendedEnv</span> <span class='varid'>env</span> <span class='layout'>)</span>-<a name="line-202"></a> <span class='keyword'>where</span>-<a name="line-203"></a> <span class='varid'>processWithExtendedEnv</span> <span class='varid'>env'</span>-<a name="line-204"></a> <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varid'>env'</span> <span class='comment'>-- apply the env filter</span>-<a name="line-205"></a> <span class='varop'>>>></span>-<a name="line-206"></a> <span class='layout'>(</span> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>withAttr</span>-<a name="line-207"></a> <span class='keyword'>then</span> <span class='varid'>processAttrl</span> <span class='layout'>(</span><span class='varid'>f</span> <span class='varid'>env'</span><span class='layout'>)</span> <span class='comment'>-- apply the env to all attributes</span>-<a name="line-208"></a> <span class='keyword'>else</span> <span class='varid'>this</span>-<a name="line-209"></a> <span class='layout'>)</span>-<a name="line-210"></a> <span class='varop'>>>></span>-<a name="line-211"></a> <span class='varid'>processChildren</span> <span class='layout'>(</span><span class='varid'>processWithNsEnv</span> <span class='varid'>f</span> <span class='varid'>env'</span><span class='layout'>)</span> <span class='comment'>-- apply the env recursively to all children</span>-<a name="line-212"></a> <span class='layout'>)</span>-<a name="line-213"></a> <span class='varop'>`when`</span> <span class='varid'>isElem</span> <span class='comment'>-- attrl and children only need processing for elem nodes</span>-<a name="line-214"></a>-<a name="line-215"></a> <span class='varid'>extendEnv</span> <span class='keyglyph'>::</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>NsEnv</span>-<a name="line-216"></a> <span class='varid'>extendEnv</span> <span class='varid'>env'</span> <span class='varid'>t'</span>-<a name="line-217"></a> <span class='keyglyph'>=</span> <span class='varid'>addEntries</span> <span class='layout'>(</span><span class='varid'>toNsEnv</span> <span class='varid'>newDecls</span><span class='layout'>)</span> <span class='varid'>env'</span>-<a name="line-218"></a> <span class='keyword'>where</span>-<a name="line-219"></a> <span class='varid'>newDecls</span> <span class='keyglyph'>=</span> <span class='varid'>runLA</span> <span class='layout'>(</span> <span class='varid'>getAttrl</span> <span class='varop'>>>></span> <span class='varid'>getNamespaceDecl</span> <span class='layout'>)</span> <span class='varid'>t'</span>-<a name="line-220"></a>-<a name="line-221"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-222"></a>-<a name="line-223"></a><span class='comment'>-- | process a document tree with an arrow, containing always the</span>-<a name="line-224"></a><span class='comment'>-- valid namespace environment as extra parameter.</span>-<a name="line-225"></a><span class='comment'>--</span>-<a name="line-226"></a><span class='comment'>-- The namespace environment is implemented as a 'Data.AssocList.AssocList'</span>-<a name="line-227"></a>-<a name="line-228"></a><a name="processWithNsEnv"></a><span class='definition'>processWithNsEnv</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='layout'>(</span><span class='conid'>NsEnv</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-229"></a><span class='definition'>processWithNsEnv</span> <span class='keyglyph'>=</span> <span class='varid'>processWithNsEnv1</span> <span class='conid'>True</span>-<a name="line-230"></a>-<a name="line-231"></a><span class='comment'>-- | process all element nodes of a document tree with an arrow, containing always the</span>-<a name="line-232"></a><span class='comment'>-- valid namespace environment as extra parameter. Attribute lists are not processed.</span>-<a name="line-233"></a><span class='comment'>--</span>-<a name="line-234"></a><span class='comment'>-- See also: 'processWithNsEnv'</span>-<a name="line-235"></a>-<a name="line-236"></a><a name="processWithNsEnvWithoutAttrl"></a><span class='definition'>processWithNsEnvWithoutAttrl</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='layout'>(</span><span class='conid'>NsEnv</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-237"></a><span class='definition'>processWithNsEnvWithoutAttrl</span> <span class='keyglyph'>=</span> <span class='varid'>processWithNsEnv1</span> <span class='conid'>False</span>-<a name="line-238"></a>-<a name="line-239"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>-<a name="line-240"></a>-<a name="line-241"></a><span class='comment'>-- | attach all valid namespace declarations to the attribute list of element nodes.</span>-<a name="line-242"></a><span class='comment'>--</span>-<a name="line-243"></a><span class='comment'>-- This arrow is useful for document processing, that requires access to all namespace</span>-<a name="line-244"></a><span class='comment'>-- declarations at any element node, but which cannot be done with a simple 'processWithNsEnv'.</span>-<a name="line-245"></a>-<a name="line-246"></a><a name="attachNsEnv"></a><span class='definition'>attachNsEnv</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-247"></a><span class='definition'>attachNsEnv</span> <span class='varid'>initialEnv</span>-<a name="line-248"></a> <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span> <span class='varid'>processWithNsEnvWithoutAttrl</span> <span class='varid'>attachEnv</span> <span class='varid'>initialEnv</span>-<a name="line-249"></a> <span class='keyword'>where</span>-<a name="line-250"></a>-<a name="line-251"></a><a name="attachEnv"></a><span class='definition'>attachEnv</span> <span class='keyglyph'>::</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-></span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-252"></a><span class='definition'>attachEnv</span> <span class='varid'>env</span>-<a name="line-253"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>processAttrl</span> <span class='layout'>(</span><span class='varid'>none</span> <span class='varop'>`when`</span> <span class='varid'>isNamespaceDeclAttr</span><span class='layout'>)</span>-<a name="line-254"></a> <span class='varop'>>>></span>-<a name="line-255"></a> <span class='varid'>addAttrl</span> <span class='layout'>(</span><span class='varid'>catA</span> <span class='varid'>nsAttrl</span><span class='layout'>)</span>-<a name="line-256"></a> <span class='layout'>)</span>-<a name="line-257"></a> <span class='varop'>`when`</span> <span class='varid'>isElem</span>-<a name="line-258"></a> <span class='keyword'>where</span>-<a name="line-259"></a> <span class='varid'>nsAttrl</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='keyglyph'>]</span>-<a name="line-260"></a> <span class='varid'>nsAttrl</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>nsDeclToAttr</span> <span class='varid'>env</span>-<a name="line-261"></a>-<a name="line-262"></a> <span class='varid'>nsDeclToAttr</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>XName</span><span class='layout'>,</span> <span class='conid'>XName</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-263"></a> <span class='varid'>nsDeclToAttr</span> <span class='layout'>(</span><span class='varid'>n</span><span class='layout'>,</span> <span class='varid'>uri</span><span class='layout'>)</span>-<a name="line-264"></a> <span class='keyglyph'>=</span> <span class='varid'>mkAttr</span> <span class='varid'>qn</span> <span class='layout'>(</span><span class='varid'>txt</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>uri</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-265"></a> <span class='keyword'>where</span>-<a name="line-266"></a> <span class='varid'>qn</span> <span class='keyglyph'>::</span> <span class='conid'>QName</span>-<a name="line-267"></a> <span class='varid'>qn</span> <span class='keyglyph'>|</span> <span class='varid'>isNullXName</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='varid'>mkQName'</span> <span class='varid'>nullXName</span> <span class='varid'>xmlnsXName</span> <span class='varid'>xmlnsNamespaceXName</span>-<a name="line-268"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>mkQName'</span> <span class='varid'>xmlnsXName</span> <span class='varid'>n</span> <span class='varid'>xmlnsNamespaceXName</span>-<a name="line-269"></a>-<a name="line-270"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>-<a name="line-271"></a>-<a name="line-272"></a><span class='comment'>-- |</span>-<a name="line-273"></a><span class='comment'>-- propagate all namespace declarations \"xmlns:ns=...\" to all element and attribute nodes of a document.</span>-<a name="line-274"></a><span class='comment'>--</span>-<a name="line-275"></a><span class='comment'>-- This arrow does not check for illegal use of namespaces.</span>-<a name="line-276"></a><span class='comment'>-- The real work is done by 'propagateNamespaceEnv'.</span>-<a name="line-277"></a><span class='comment'>--</span>-<a name="line-278"></a><span class='comment'>-- The arrow may be applied repeatedly if neccessary.</span>-<a name="line-279"></a>-<a name="line-280"></a><a name="propagateNamespaces"></a><span class='definition'>propagateNamespaces</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-281"></a><span class='definition'>propagateNamespaces</span> <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>-<a name="line-282"></a> <span class='varid'>propagateNamespaceEnv</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>xmlXName</span><span class='layout'>,</span> <span class='varid'>xmlNamespaceXName</span><span class='layout'>)</span>-<a name="line-283"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xmlnsXName</span><span class='layout'>,</span> <span class='varid'>xmlnsNamespaceXName</span><span class='layout'>)</span>-<a name="line-284"></a> <span class='keyglyph'>]</span>-<a name="line-285"></a>-<a name="line-286"></a><span class='comment'>-- |</span>-<a name="line-287"></a><span class='comment'>-- attaches the namespace info given by the namespace table</span>-<a name="line-288"></a><span class='comment'>-- to a tag node and its attributes and children.</span>-<a name="line-289"></a>-<a name="line-290"></a><a name="propagateNamespaceEnv"></a><span class='definition'>propagateNamespaceEnv</span> <span class='keyglyph'>::</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-></span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-291"></a><span class='definition'>propagateNamespaceEnv</span>-<a name="line-292"></a> <span class='keyglyph'>=</span> <span class='varid'>processWithNsEnv</span> <span class='varid'>addNamespaceUri</span>-<a name="line-293"></a> <span class='keyword'>where</span>-<a name="line-294"></a> <span class='varid'>addNamespaceUri</span> <span class='keyglyph'>::</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-></span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-295"></a> <span class='varid'>addNamespaceUri</span> <span class='varid'>env'</span>-<a name="line-296"></a> <span class='keyglyph'>=</span> <span class='varid'>choiceA</span> <span class='keyglyph'>[</span> <span class='varid'>isElem</span> <span class='conop'>:-></span> <span class='varid'>changeElemName</span> <span class='layout'>(</span><span class='varid'>setNamespace</span> <span class='varid'>env'</span><span class='layout'>)</span>-<a name="line-297"></a> <span class='layout'>,</span> <span class='varid'>isAttr</span> <span class='conop'>:-></span> <span class='varid'>attachNamespaceUriToAttr</span> <span class='varid'>env'</span>-<a name="line-298"></a> <span class='layout'>,</span> <span class='varid'>isPi</span> <span class='conop'>:-></span> <span class='varid'>changePiName</span> <span class='layout'>(</span><span class='varid'>setNamespace</span> <span class='varid'>env'</span><span class='layout'>)</span>-<a name="line-299"></a> <span class='layout'>,</span> <span class='varid'>this</span> <span class='conop'>:-></span> <span class='varid'>this</span>-<a name="line-300"></a> <span class='keyglyph'>]</span>-<a name="line-301"></a>-<a name="line-302"></a> <span class='varid'>attachNamespaceUriToAttr</span> <span class='keyglyph'>::</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-></span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-303"></a> <span class='varid'>attachNamespaceUriToAttr</span> <span class='varid'>attrEnv</span>-<a name="line-304"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>getQName</span> <span class='varop'>>>></span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>null</span> <span class='varop'>.</span> <span class='varid'>namePrefix</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-305"></a> <span class='varop'>`guards`</span>-<a name="line-306"></a> <span class='varid'>changeAttrName</span> <span class='layout'>(</span><span class='varid'>setNamespace</span> <span class='varid'>attrEnv</span><span class='layout'>)</span>-<a name="line-307"></a> <span class='layout'>)</span>-<a name="line-308"></a> <span class='varop'>`orElse`</span>-<a name="line-309"></a> <span class='layout'>(</span> <span class='varid'>changeAttrName</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varid'>xmlnsQN</span><span class='layout'>)</span>-<a name="line-310"></a> <span class='varop'>`when`</span>-<a name="line-311"></a> <span class='varid'>hasName</span> <span class='varid'>a_xmlns</span>-<a name="line-312"></a> <span class='layout'>)</span>-<a name="line-313"></a>-<a name="line-314"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>-<a name="line-315"></a>-<a name="line-316"></a><span class='comment'>-- |</span>-<a name="line-317"></a><span class='comment'>-- validate the namespace constraints in a whole tree.</span>-<a name="line-318"></a><span class='comment'>--</span>-<a name="line-319"></a><span class='comment'>-- Result is the list of errors concerning namespaces.</span>-<a name="line-320"></a><span class='comment'>-- Predicates 'isWellformedQName', 'isWellformedQualifiedName', 'isDeclaredNamespace'</span>-<a name="line-321"></a><span class='comment'>-- and 'isWellformedNSDecl' are applied to the appropriate elements and attributes.</span>-<a name="line-322"></a>-<a name="line-323"></a><a name="validateNamespaces"></a><span class='definition'>validateNamespaces</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-324"></a><span class='definition'>validateNamespaces</span> <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varid'>validateNamespaces1</span>-<a name="line-325"></a>-<a name="line-326"></a><a name="validateNamespaces1"></a><span class='definition'>validateNamespaces1</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-327"></a><span class='definition'>validateNamespaces1</span>-<a name="line-328"></a> <span class='keyglyph'>=</span> <span class='varid'>choiceA</span> <span class='keyglyph'>[</span> <span class='varid'>isRoot</span> <span class='conop'>:-></span> <span class='layout'>(</span> <span class='varid'>getChildren</span> <span class='varop'>>>></span> <span class='varid'>validateNamespaces1</span> <span class='layout'>)</span> <span class='comment'>-- root is correct by definition</span>-<a name="line-329"></a> <span class='layout'>,</span> <span class='varid'>this</span> <span class='conop'>:-></span> <span class='varid'>multi</span> <span class='varid'>validate1Namespaces</span>-<a name="line-330"></a> <span class='keyglyph'>]</span>-<a name="line-331"></a>-<a name="line-332"></a><span class='comment'>-- |</span>-<a name="line-333"></a><span class='comment'>-- a single node for namespace constrains.</span>-<a name="line-334"></a>-<a name="line-335"></a><a name="validate1Namespaces"></a><span class='definition'>validate1Namespaces</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-336"></a><span class='definition'>validate1Namespaces</span>-<a name="line-337"></a> <span class='keyglyph'>=</span> <span class='varid'>choiceA</span>-<a name="line-338"></a> <span class='keyglyph'>[</span> <span class='varid'>isElem</span> <span class='conop'>:-></span> <span class='varid'>catA</span> <span class='keyglyph'>[</span> <span class='layout'>(</span> <span class='varid'>getQName</span> <span class='varop'>>>></span> <span class='varid'>isA</span> <span class='layout'>(</span> <span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>isWellformedQName</span> <span class='layout'>)</span>-<a name="line-339"></a> <span class='layout'>)</span>-<a name="line-340"></a> <span class='varop'>`guards`</span> <span class='varid'>nsError</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='keyglyph'>-></span> <span class='str'>"element name "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span> <span class='varop'>++</span> <span class='str'>" is not a wellformed qualified name"</span> <span class='layout'>)</span>-<a name="line-341"></a>-<a name="line-342"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>getQName</span> <span class='varop'>>>></span> <span class='varid'>isA</span> <span class='layout'>(</span> <span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>isDeclaredNamespace</span> <span class='layout'>)</span>-<a name="line-343"></a> <span class='layout'>)</span>-<a name="line-344"></a> <span class='varop'>`guards`</span> <span class='varid'>nsError</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='keyglyph'>-></span> <span class='str'>"namespace for prefix in element name "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span> <span class='varop'>++</span> <span class='str'>" is undefined"</span> <span class='layout'>)</span>-<a name="line-345"></a>-<a name="line-346"></a> <span class='layout'>,</span> <span class='varid'>doubleOcc</span> <span class='varop'>$<</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>getAttrl</span> <span class='varop'>>>></span> <span class='varid'>getUniversalName</span><span class='layout'>)</span> <span class='varop'>>>.</span> <span class='varid'>doubles</span> <span class='layout'>)</span>-<a name="line-347"></a>-<a name="line-348"></a> <span class='layout'>,</span> <span class='varid'>getAttrl</span> <span class='varop'>>>></span> <span class='varid'>validate1Namespaces</span>-<a name="line-349"></a> <span class='keyglyph'>]</span>-<a name="line-350"></a>-<a name="line-351"></a> <span class='layout'>,</span> <span class='varid'>isAttr</span> <span class='conop'>:-></span> <span class='varid'>catA</span> <span class='keyglyph'>[</span> <span class='layout'>(</span> <span class='varid'>getQName</span> <span class='varop'>>>></span> <span class='varid'>isA</span> <span class='layout'>(</span> <span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>isWellformedQName</span> <span class='layout'>)</span>-<a name="line-352"></a> <span class='layout'>)</span>-<a name="line-353"></a> <span class='varop'>`guards`</span> <span class='varid'>nsError</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='keyglyph'>-></span> <span class='str'>"attribute name "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span> <span class='varop'>++</span> <span class='str'>" is not a wellformed qualified name"</span> <span class='layout'>)</span>-<a name="line-354"></a>-<a name="line-355"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>getQName</span> <span class='varop'>>>></span> <span class='varid'>isA</span> <span class='layout'>(</span> <span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>isDeclaredNamespace</span> <span class='layout'>)</span>-<a name="line-356"></a> <span class='layout'>)</span>-<a name="line-357"></a> <span class='varop'>`guards`</span> <span class='varid'>nsError</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='keyglyph'>-></span> <span class='str'>"namespace for prefix in attribute name "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span> <span class='varop'>++</span> <span class='str'>" is undefined"</span> <span class='layout'>)</span>-<a name="line-358"></a>-<a name="line-359"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>hasNamePrefix</span> <span class='varid'>a_xmlns</span> <span class='varop'>>>></span> <span class='varid'>xshow</span> <span class='varid'>getChildren</span> <span class='varop'>>>></span> <span class='varid'>isA</span> <span class='varid'>null</span>-<a name="line-360"></a> <span class='layout'>)</span>-<a name="line-361"></a> <span class='varop'>`guards`</span> <span class='varid'>nsError</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='keyglyph'>-></span> <span class='str'>"namespace value of namespace declaration for "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span> <span class='varop'>++</span> <span class='str'>" has no value"</span> <span class='layout'>)</span>-<a name="line-362"></a>-<a name="line-363"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>getQName</span> <span class='varop'>>>></span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>isWellformedNSDecl</span> <span class='layout'>)</span>-<a name="line-364"></a> <span class='layout'>)</span>-<a name="line-365"></a> <span class='varop'>`guards`</span> <span class='varid'>nsError</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='keyglyph'>-></span> <span class='str'>"illegal namespace declaration for name "</span> <span class='varop'>++</span> <span class='varid'>n</span> <span class='varop'>++</span> <span class='str'>" starting with reserved prefix "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='str'>"xml"</span> <span class='layout'>)</span>-<a name="line-366"></a> <span class='keyglyph'>]</span>-<a name="line-367"></a>-<a name="line-368"></a> <span class='layout'>,</span> <span class='varid'>isDTD</span> <span class='conop'>:-></span> <span class='varid'>catA</span> <span class='keyglyph'>[</span> <span class='varid'>isDTDDoctype</span> <span class='varop'><+></span> <span class='varid'>isDTDAttlist</span> <span class='varop'><+></span> <span class='varid'>isDTDElement</span> <span class='varop'><+></span> <span class='varid'>isDTDName</span>-<a name="line-369"></a> <span class='varop'>>>></span>-<a name="line-370"></a> <span class='varid'>getDTDAttrValue</span> <span class='varid'>a_name</span>-<a name="line-371"></a> <span class='varop'>>>></span>-<a name="line-372"></a> <span class='layout'>(</span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>isWellformedQualifiedName</span><span class='layout'>)</span>-<a name="line-373"></a> <span class='varop'>`guards`</span>-<a name="line-374"></a> <span class='varid'>nsErr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='keyglyph'>-></span> <span class='str'>"a DTD part contains a not wellformed qualified Name: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span><span class='layout'>)</span>-<a name="line-375"></a> <span class='layout'>)</span>-<a name="line-376"></a>-<a name="line-377"></a> <span class='layout'>,</span> <span class='varid'>isDTDAttlist</span>-<a name="line-378"></a> <span class='varop'>>>></span>-<a name="line-379"></a> <span class='varid'>getDTDAttrValue</span> <span class='varid'>a_value</span>-<a name="line-380"></a> <span class='varop'>>>></span>-<a name="line-381"></a> <span class='layout'>(</span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>isWellformedQualifiedName</span><span class='layout'>)</span>-<a name="line-382"></a> <span class='varop'>`guards`</span>-<a name="line-383"></a> <span class='varid'>nsErr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='keyglyph'>-></span> <span class='str'>"an ATTLIST declaration contains as attribute name a not wellformed qualified Name: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span><span class='layout'>)</span>-<a name="line-384"></a> <span class='layout'>)</span>-<a name="line-385"></a>-<a name="line-386"></a> <span class='layout'>,</span> <span class='varid'>isDTDEntity</span> <span class='varop'><+></span> <span class='varid'>isDTDPEntity</span> <span class='varop'><+></span> <span class='varid'>isDTDNotation</span>-<a name="line-387"></a> <span class='varop'>>>></span>-<a name="line-388"></a> <span class='varid'>getDTDAttrValue</span> <span class='varid'>a_name</span>-<a name="line-389"></a> <span class='varop'>>>></span>-<a name="line-390"></a> <span class='layout'>(</span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>isNCName</span><span class='layout'>)</span>-<a name="line-391"></a> <span class='varop'>`guards`</span>-<a name="line-392"></a> <span class='varid'>nsErr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='keyglyph'>-></span> <span class='str'>"an entity or notation declaration contains a not wellformed NCName: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span><span class='layout'>)</span>-<a name="line-393"></a> <span class='layout'>)</span>-<a name="line-394"></a> <span class='keyglyph'>]</span>-<a name="line-395"></a> <span class='layout'>,</span> <span class='varid'>isPi</span> <span class='conop'>:-></span> <span class='varid'>catA</span> <span class='keyglyph'>[</span> <span class='varid'>getName</span>-<a name="line-396"></a> <span class='varop'>>>></span>-<a name="line-397"></a> <span class='layout'>(</span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>isNCName</span><span class='layout'>)</span>-<a name="line-398"></a> <span class='varop'>`guards`</span>-<a name="line-399"></a> <span class='varid'>nsErr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='keyglyph'>-></span> <span class='str'>"a PI contains a not wellformed NCName: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span><span class='layout'>)</span>-<a name="line-400"></a> <span class='layout'>)</span>-<a name="line-401"></a> <span class='keyglyph'>]</span>-<a name="line-402"></a> <span class='keyglyph'>]</span>-<a name="line-403"></a> <span class='keyword'>where</span>-<a name="line-404"></a> <span class='varid'>nsError</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-405"></a> <span class='varid'>nsError</span> <span class='varid'>msg</span>-<a name="line-406"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>getQName</span> <span class='varop'>>>></span> <span class='varid'>arr</span> <span class='varid'>show</span><span class='layout'>)</span> <span class='varop'>>>></span> <span class='varid'>nsErr</span> <span class='varid'>msg</span>-<a name="line-407"></a>-<a name="line-408"></a> <span class='varid'>nsErr</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>LA</span> <span class='conid'>String</span> <span class='conid'>XmlTree</span>-<a name="line-409"></a> <span class='varid'>nsErr</span> <span class='varid'>msg</span> <span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='varid'>msg</span> <span class='varop'>>>></span> <span class='varid'>mkError</span> <span class='varid'>c_err</span>-<a name="line-410"></a>-<a name="line-411"></a> <span class='varid'>doubleOcc</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-412"></a> <span class='varid'>doubleOcc</span> <span class='varid'>an</span>-<a name="line-413"></a> <span class='keyglyph'>=</span> <span class='varid'>nsError</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='keyglyph'>-></span> <span class='str'>"multiple occurences of universal name for attributes of tag "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span> <span class='varop'>++</span> <span class='str'>" : "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>an</span> <span class='layout'>)</span>-<a name="line-414"></a>-<a name="line-415"></a><span class='comment'>-- ------------------------------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-Arrow-ParserInterface.html
@@ -1,145 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- |</span>-<a name="line-2"></a><span class='comment'>-- interface to the HXT XML and DTD parsers</span>-<a name="line-3"></a><span class='comment'>--</span>-<a name="line-4"></a><span class='comment'>-- version: $Id: ParserInterface.hs,v 1.1 2006/05/01 18:56:24 hxml Exp $</span>-<a name="line-5"></a>-<a name="line-6"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ParserInterface</span>-<a name="line-7"></a> <span class='layout'>(</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ParserInterface</span> <span class='layout'>)</span>-<a name="line-8"></a><span class='keyword'>where</span>-<a name="line-9"></a>-<a name="line-10"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span>-<a name="line-11"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowList</span>-<a name="line-12"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowIf</span>-<a name="line-13"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowTree</span>-<a name="line-14"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ListArrow</span>-<a name="line-15"></a>-<a name="line-16"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Parser</span><span class='varop'>.</span><span class='conid'>XmlEntities</span> <span class='layout'>(</span> <span class='varid'>xmlEntities</span> <span class='layout'>)</span>-<a name="line-17"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Parser</span><span class='varop'>.</span><span class='conid'>XhtmlEntities</span><span class='layout'>(</span> <span class='varid'>xhtmlEntities</span> <span class='layout'>)</span>-<a name="line-18"></a>-<a name="line-19"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>-<a name="line-20"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlArrow</span>-<a name="line-21"></a>-<a name="line-22"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Parser</span><span class='varop'>.</span><span class='conid'>TagSoup</span> <span class='keyword'>as</span> <span class='conid'>TS</span>-<a name="line-23"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Parser</span><span class='varop'>.</span><span class='conid'>HtmlParsec</span> <span class='keyword'>as</span> <span class='conid'>HP</span>-<a name="line-24"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Parser</span><span class='varop'>.</span><span class='conid'>XmlParsec</span> <span class='keyword'>as</span> <span class='conid'>XP</span>-<a name="line-25"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Parser</span><span class='varop'>.</span><span class='conid'>XmlDTDParser</span> <span class='keyword'>as</span> <span class='conid'>DP</span>-<a name="line-26"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DTDValidation</span><span class='varop'>.</span><span class='conid'>Validation</span> <span class='keyword'>as</span> <span class='conid'>VA</span>-<a name="line-27"></a>-<a name="line-28"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-29"></a>-<a name="line-30"></a><a name="parseXmlDoc"></a><span class='definition'>parseXmlDoc</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span> <span class='conid'>XmlTree</span>-<a name="line-31"></a><span class='definition'>parseXmlDoc</span> <span class='keyglyph'>=</span> <span class='varid'>arr2L</span> <span class='conid'>XP</span><span class='varop'>.</span><span class='varid'>parseXmlDocument</span>-<a name="line-32"></a>-<a name="line-33"></a><a name="parseXmlDTDPart"></a><span class='definition'>parseXmlDTDPart</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>XmlTree</span><span class='layout'>)</span> <span class='conid'>XmlTree</span>-<a name="line-34"></a><span class='definition'>parseXmlDTDPart</span> <span class='keyglyph'>=</span> <span class='varid'>arr2L</span> <span class='conid'>XP</span><span class='varop'>.</span><span class='varid'>parseXmlDTDPart</span>-<a name="line-35"></a>-<a name="line-36"></a><a name="parseXmlContent"></a><span class='definition'>parseXmlContent</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>String</span> <span class='conid'>XmlTree</span>-<a name="line-37"></a><span class='definition'>parseXmlContent</span> <span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='conid'>XP</span><span class='varop'>.</span><span class='varid'>xread</span>-<a name="line-38"></a>-<a name="line-39"></a><a name="parseXmlEntityEncodingSpec"></a><span class='definition'>parseXmlEntityEncodingSpec</span>-<a name="line-40"></a> <span class='layout'>,</span> <span class='varid'>parseXmlDocEncodingSpec</span>-<a name="line-41"></a> <span class='layout'>,</span> <span class='varid'>removeEncodingSpec</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-42"></a>-<a name="line-43"></a><a name="parseXmlDocEncodingSpec"></a><span class='definition'>parseXmlDocEncodingSpec</span> <span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='conid'>XP</span><span class='varop'>.</span><span class='varid'>parseXmlDocEncodingSpec</span>-<a name="line-44"></a><span class='definition'>parseXmlEntityEncodingSpec</span> <span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='conid'>XP</span><span class='varop'>.</span><span class='varid'>parseXmlEntityEncodingSpec</span>-<a name="line-45"></a>-<a name="line-46"></a><a name="removeEncodingSpec"></a><span class='definition'>removeEncodingSpec</span> <span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='conid'>XP</span><span class='varop'>.</span><span class='varid'>removeEncodingSpec</span>-<a name="line-47"></a>-<a name="line-48"></a><a name="parseXmlDTDdeclPart"></a><span class='definition'>parseXmlDTDdeclPart</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-49"></a><span class='definition'>parseXmlDTDdeclPart</span> <span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='conid'>DP</span><span class='varop'>.</span><span class='varid'>parseXmlDTDdeclPart</span>-<a name="line-50"></a>-<a name="line-51"></a><a name="parseXmlDTDdecl"></a><span class='definition'>parseXmlDTDdecl</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-52"></a><span class='definition'>parseXmlDTDdecl</span> <span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='conid'>DP</span><span class='varop'>.</span><span class='varid'>parseXmlDTDdecl</span>-<a name="line-53"></a>-<a name="line-54"></a><a name="parseXmlDTDEntityValue"></a><span class='definition'>parseXmlDTDEntityValue</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-55"></a><span class='definition'>parseXmlDTDEntityValue</span> <span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='conid'>DP</span><span class='varop'>.</span><span class='varid'>parseXmlDTDEntityValue</span>-<a name="line-56"></a>-<a name="line-57"></a><a name="parseXmlAttrValue"></a><span class='definition'>parseXmlAttrValue</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-58"></a><span class='definition'>parseXmlAttrValue</span> <span class='varid'>context</span> <span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='conid'>XP</span><span class='varop'>.</span><span class='varid'>parseXmlAttrValue</span> <span class='varid'>context</span><span class='layout'>)</span>-<a name="line-59"></a>-<a name="line-60"></a><a name="parseXmlGeneralEntityValue"></a><span class='definition'>parseXmlGeneralEntityValue</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-61"></a><span class='definition'>parseXmlGeneralEntityValue</span> <span class='varid'>context</span>-<a name="line-62"></a> <span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='conid'>XP</span><span class='varop'>.</span><span class='varid'>parseXmlGeneralEntityValue</span> <span class='varid'>context</span><span class='layout'>)</span>-<a name="line-63"></a>-<a name="line-64"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-65"></a>-<a name="line-66"></a><a name="parseHtmlDoc"></a><span class='definition'>parseHtmlDoc</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span> <span class='conid'>XmlTree</span>-<a name="line-67"></a><span class='definition'>parseHtmlDoc</span> <span class='keyglyph'>=</span> <span class='varid'>arr2L</span> <span class='conid'>HP</span><span class='varop'>.</span><span class='varid'>parseHtmlDocument</span>-<a name="line-68"></a>-<a name="line-69"></a><a name="parseHtmlContent"></a><span class='definition'>parseHtmlContent</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>String</span> <span class='conid'>XmlTree</span>-<a name="line-70"></a><span class='definition'>parseHtmlContent</span> <span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='conid'>HP</span><span class='varop'>.</span><span class='varid'>parseHtmlContent</span>-<a name="line-71"></a>-<a name="line-72"></a><a name="parseHtmlTagSoup"></a><span class='definition'>parseHtmlTagSoup</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='conid'>Bool</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span> <span class='conid'>XmlTree</span>-<a name="line-73"></a><span class='definition'>parseHtmlTagSoup</span> <span class='varid'>withNamespaces</span> <span class='varid'>withWarnings</span> <span class='varid'>preserveCmt</span> <span class='varid'>removeWS</span> <span class='varid'>asHtml</span>-<a name="line-74"></a> <span class='keyglyph'>=</span> <span class='varid'>arr2L</span> <span class='layout'>(</span><span class='conid'>TS</span><span class='varop'>.</span><span class='varid'>parseHtmlTagSoup</span> <span class='varid'>withNamespaces</span> <span class='varid'>withWarnings</span> <span class='varid'>preserveCmt</span> <span class='varid'>removeWS</span> <span class='varid'>asHtml</span><span class='layout'>)</span>-<a name="line-75"></a>-<a name="line-76"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-77"></a>-<a name="line-78"></a><a name="validateDoc"></a><span class='definition'>validateDoc</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-79"></a><span class='definition'>validateDoc</span> <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='layout'>(</span> <span class='conid'>VA</span><span class='varop'>.</span><span class='varid'>validate</span>-<a name="line-80"></a> <span class='varop'>`when`</span>-<a name="line-81"></a> <span class='conid'>VA</span><span class='varop'>.</span><span class='varid'>getDTDSubset</span> <span class='comment'>-- validate only when DTD decl is present</span>-<a name="line-82"></a> <span class='layout'>)</span>-<a name="line-83"></a>-<a name="line-84"></a><a name="transformDoc"></a><span class='definition'>transformDoc</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-85"></a><span class='definition'>transformDoc</span> <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='conid'>VA</span><span class='varop'>.</span><span class='varid'>transform</span>-<a name="line-86"></a>-<a name="line-87"></a><span class='comment'>-- old stuff</span>-<a name="line-88"></a><span class='comment'>-- validateDoc = arrL VA.validate</span>-<a name="line-89"></a><span class='comment'>-- transformDoc = arrL VA.transform</span>-<a name="line-90"></a>-<a name="line-91"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-92"></a>-<a name="line-93"></a><span class='comment'>-- | substitution of all predefined XHTMT entities for none ASCII chars</span>-<a name="line-94"></a><span class='comment'>--</span>-<a name="line-95"></a><span class='comment'>-- This arrow recurses through a whole XML tree and substitutes all</span>-<a name="line-96"></a><span class='comment'>-- entity refs within text nodes and attribute values by a text node</span>-<a name="line-97"></a><span class='comment'>-- containing of a single char corresponding to this entity.</span>-<a name="line-98"></a><span class='comment'>--</span>-<a name="line-99"></a><span class='comment'>-- Unknown entity refs remain unchanged</span>-<a name="line-100"></a>-<a name="line-101"></a><a name="substHtmlEntityRefs"></a><span class='definition'>substHtmlEntityRefs</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-102"></a><span class='definition'>substHtmlEntityRefs</span> <span class='keyglyph'>=</span> <span class='varid'>substEntityRefs</span> <span class='varid'>xhtmlEntities</span>-<a name="line-103"></a>-<a name="line-104"></a>-<a name="line-105"></a><span class='comment'>-- | substitution of the five predefined XMT entities, works like 'substHtmlEntityRefs'</span>-<a name="line-106"></a>-<a name="line-107"></a><a name="substXmlEntityRefs"></a><span class='definition'>substXmlEntityRefs</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-108"></a><span class='definition'>substXmlEntityRefs</span> <span class='keyglyph'>=</span> <span class='varid'>substEntityRefs</span> <span class='varid'>xmlEntities</span>-<a name="line-109"></a>-<a name="line-110"></a><span class='comment'>-- | the entity substitution arrow called from 'substXmlEntityRefs' and 'substHtmlEntityRefs'</span>-<a name="line-111"></a>-<a name="line-112"></a><a name="substEntityRefs"></a><span class='definition'>substEntityRefs</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>Int</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-113"></a><span class='definition'>substEntityRefs</span> <span class='varid'>entities</span>-<a name="line-114"></a> <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varid'>substEntities</span>-<a name="line-115"></a> <span class='keyword'>where</span>-<a name="line-116"></a> <span class='varid'>substEntities</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-117"></a> <span class='varid'>substEntities</span>-<a name="line-118"></a> <span class='keyglyph'>=</span> <span class='varid'>choiceA</span>-<a name="line-119"></a> <span class='keyglyph'>[</span> <span class='varid'>isEntityRef</span> <span class='conop'>:-></span> <span class='layout'>(</span> <span class='varid'>substEntity</span> <span class='varop'>$<</span> <span class='varid'>getEntityRef</span> <span class='layout'>)</span>-<a name="line-120"></a> <span class='layout'>,</span> <span class='varid'>isElem</span> <span class='conop'>:-></span> <span class='layout'>(</span> <span class='varid'>processAttrl</span> <span class='layout'>(</span><span class='varid'>processChildren</span> <span class='varid'>substEntities</span><span class='layout'>)</span>-<a name="line-121"></a> <span class='varop'>>>></span>-<a name="line-122"></a> <span class='varid'>processChildren</span> <span class='varid'>substEntities</span>-<a name="line-123"></a> <span class='layout'>)</span>-<a name="line-124"></a> <span class='layout'>,</span> <span class='varid'>this</span> <span class='conop'>:-></span> <span class='varid'>this</span>-<a name="line-125"></a> <span class='keyglyph'>]</span>-<a name="line-126"></a> <span class='keyword'>where</span>-<a name="line-127"></a> <span class='varid'>substEntity</span> <span class='varid'>en</span>-<a name="line-128"></a> <span class='keyglyph'>=</span> <span class='keyword'>case</span> <span class='layout'>(</span><span class='varid'>lookup</span> <span class='varid'>en</span> <span class='varid'>entities</span><span class='layout'>)</span> <span class='keyword'>of</span>-<a name="line-129"></a> <span class='conid'>Just</span> <span class='varid'>i</span>-<a name="line-130"></a> <span class='keyglyph'>-></span> <span class='varid'>txt</span> <span class='keyglyph'>[</span><span class='varid'>toEnum</span> <span class='varid'>i</span><span class='keyglyph'>]</span> <span class='comment'>-- constA i >>> mkCharRef</span>-<a name="line-131"></a> <span class='conid'>Nothing</span>-<a name="line-132"></a> <span class='keyglyph'>-></span> <span class='varid'>this</span>-<a name="line-133"></a>-<a name="line-134"></a>-<a name="line-135"></a><span class='comment'>-- ------------------------------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-Arrow-Pickle-DTD.html
@@ -1,342 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Text.XML.HXT.Arrow.Pickle.DTD-<a name="line-5"></a> Copyright : Copyright (C) 2005 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe@fh-wedel.de)-<a name="line-9"></a> Stability : experimental-<a name="line-10"></a> Portability: portable-<a name="line-11"></a> Version : $Id$-<a name="line-12"></a>-<a name="line-13"></a>Functions for converting a pickler schema-<a name="line-14"></a>into a DTD-<a name="line-15"></a>-<a name="line-16"></a>-}</span>-<a name="line-17"></a>-<a name="line-18"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-19"></a>-<a name="line-20"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>Pickle</span><span class='varop'>.</span><span class='conid'>DTD</span>-<a name="line-21"></a><span class='keyword'>where</span>-<a name="line-22"></a>-<a name="line-23"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>-<a name="line-24"></a>-<a name="line-25"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlNode</span> <span class='keyword'>as</span> <span class='conid'>XN</span>-<a name="line-26"></a>-<a name="line-27"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>-<a name="line-28"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>Pickle</span><span class='varop'>.</span><span class='conid'>Schema</span>-<a name="line-29"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>XmlSchema</span><span class='varop'>.</span><span class='conid'>DataTypeLibW3C</span>-<a name="line-30"></a>-<a name="line-31"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-32"></a>-<a name="line-33"></a><a name="DTDdescr"></a><span class='keyword'>data</span> <span class='conid'>DTDdescr</span> <span class='keyglyph'>=</span> <span class='conid'>DTDdescr</span> <span class='conid'>Name</span> <span class='conid'>Schemas</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>Name</span><span class='layout'>,</span><span class='conid'>Schemas</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-34"></a>-<a name="line-35"></a><span class='keyword'>instance</span> <span class='conid'>Show</span> <span class='conid'>DTDdescr</span> <span class='keyword'>where</span>-<a name="line-36"></a> <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>DTDdescr</span> <span class='varid'>n</span> <span class='varid'>es</span> <span class='keyword'>as</span><span class='layout'>)</span>-<a name="line-37"></a> <span class='keyglyph'>=</span> <span class='str'>"root element: "</span> <span class='varop'>++</span> <span class='varid'>n</span> <span class='varop'>++</span> <span class='str'>"\n"</span>-<a name="line-38"></a> <span class='varop'>++</span>-<a name="line-39"></a> <span class='str'>"elements:\n"</span>-<a name="line-40"></a> <span class='varop'>++</span>-<a name="line-41"></a> <span class='varid'>concatMap</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varop'>++</span> <span class='str'>"\n"</span><span class='layout'>)</span> <span class='varop'>.</span><span class='varid'>show</span><span class='layout'>)</span> <span class='varid'>es</span>-<a name="line-42"></a> <span class='varop'>++</span>-<a name="line-43"></a> <span class='str'>"attributes:\n"</span>-<a name="line-44"></a> <span class='varop'>++</span>-<a name="line-45"></a> <span class='varid'>concatMap</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varop'>++</span> <span class='str'>"\n"</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>showAttr</span><span class='layout'>)</span> <span class='keyword'>as</span>-<a name="line-46"></a> <span class='keyword'>where</span>-<a name="line-47"></a> <span class='varid'>showAttr</span> <span class='layout'>(</span><span class='varid'>n1</span><span class='layout'>,</span> <span class='varid'>sc</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>n1</span> <span class='varop'>++</span> <span class='str'>": "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>sc</span>-<a name="line-48"></a>-<a name="line-49"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-50"></a>-<a name="line-51"></a><span class='comment'>-- | convert a DTD descr into XmlTrees</span>-<a name="line-52"></a>-<a name="line-53"></a><a name="dtdDescrToXml"></a><span class='definition'>dtdDescrToXml</span> <span class='keyglyph'>::</span> <span class='conid'>DTDdescr</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span>-<a name="line-54"></a><span class='definition'>dtdDescrToXml</span> <span class='layout'>(</span><span class='conid'>DTDdescr</span> <span class='varid'>rt</span> <span class='varid'>es</span> <span class='keyword'>as</span><span class='layout'>)</span>-<a name="line-55"></a> <span class='keyglyph'>=</span> <span class='varid'>checkErr</span> <span class='layout'>(</span><span class='varid'>null</span> <span class='varid'>rt</span><span class='layout'>)</span> <span class='str'>"no unique root element found in pickler DTD, add an \"xpElem\" pickler"</span>-<a name="line-56"></a> <span class='varop'>++</span>-<a name="line-57"></a> <span class='varid'>concatMap</span> <span class='layout'>(</span><span class='varid'>checkErr</span> <span class='conid'>True</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='str'>"no element decl found in: "</span> <span class='varop'>++</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>show</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>filter</span> <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>isScElem</span><span class='layout'>)</span> <span class='varid'>es</span><span class='layout'>)</span>-<a name="line-58"></a> <span class='varop'>++</span>-<a name="line-59"></a> <span class='varid'>concatMap</span> <span class='layout'>(</span><span class='varid'>uncurry</span> <span class='varid'>checkContentModell</span> <span class='varop'>.</span> <span class='keyglyph'>\</span> <span class='layout'>(</span><span class='conid'>Element</span> <span class='varid'>n</span> <span class='varid'>sc</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='varid'>n</span><span class='layout'>,</span><span class='varid'>sc</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varid'>es1</span>-<a name="line-60"></a> <span class='varop'>++</span>-<a name="line-61"></a> <span class='varid'>concatMap</span> <span class='layout'>(</span><span class='varid'>uncurry</span> <span class='varid'>checkAttrModell</span><span class='layout'>)</span> <span class='keyword'>as</span>-<a name="line-62"></a> <span class='varop'>++</span>-<a name="line-63"></a> <span class='keyglyph'>[</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkDTDElem</span> <span class='conid'>DOCTYPE</span> <span class='varid'>docAttrs</span> <span class='layout'>(</span> <span class='varid'>concatMap</span> <span class='varid'>elemDTD</span> <span class='varid'>es1</span>-<a name="line-64"></a> <span class='varop'>++</span>-<a name="line-65"></a> <span class='varid'>concatMap</span> <span class='layout'>(</span><span class='varid'>uncurry</span> <span class='varid'>attrDTDs</span><span class='layout'>)</span> <span class='keyword'>as</span>-<a name="line-66"></a> <span class='layout'>)</span> <span class='keyglyph'>]</span>-<a name="line-67"></a> <span class='keyword'>where</span>-<a name="line-68"></a> <span class='varid'>es1</span> <span class='keyglyph'>=</span> <span class='varid'>filter</span> <span class='varid'>isScElem</span> <span class='varid'>es</span>-<a name="line-69"></a> -<a name="line-70"></a> <span class='varid'>docAttrs</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a_name</span><span class='layout'>,</span> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>rt</span> <span class='keyword'>then</span> <span class='str'>"no-unique-root-element-found"</span> <span class='keyword'>else</span> <span class='varid'>rt</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-71"></a>-<a name="line-72"></a> <span class='varid'>elemDTD</span> <span class='layout'>(</span><span class='conid'>Element</span> <span class='varid'>n</span> <span class='varid'>sc</span><span class='layout'>)</span>-<a name="line-73"></a> <span class='keyglyph'>|</span> <span class='varid'>lookup1</span> <span class='varid'>a_type</span> <span class='varid'>al</span> <span class='varop'>==</span> <span class='str'>"unknown"</span>-<a name="line-74"></a> <span class='keyglyph'>=</span> <span class='varid'>cl</span>-<a name="line-75"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-76"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkDTDElem</span> <span class='conid'>ELEMENT</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>a_name</span><span class='layout'>,</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varid'>cl</span> <span class='keyglyph'>]</span>-<a name="line-77"></a> <span class='keyword'>where</span>-<a name="line-78"></a> <span class='layout'>(</span><span class='varid'>al</span><span class='layout'>,</span> <span class='varid'>cl</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>scContToXml</span> <span class='varid'>sc</span>-<a name="line-79"></a> <span class='varid'>elemDTD</span> <span class='keyword'>_</span>-<a name="line-80"></a> <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='str'>"illegal case in elemDTD"</span>-<a name="line-81"></a>-<a name="line-82"></a> <span class='varid'>attrDTDs</span> <span class='varid'>en</span> <span class='keyglyph'>=</span> <span class='varid'>concatMap</span> <span class='layout'>(</span><span class='varid'>attrDTD</span> <span class='varid'>en</span><span class='layout'>)</span>-<a name="line-83"></a> <span class='varid'>attrDTD</span> <span class='varid'>en</span> <span class='layout'>(</span><span class='conid'>Attribute</span> <span class='varid'>an</span> <span class='varid'>sc</span><span class='layout'>)</span>-<a name="line-84"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkDTDElem</span> <span class='conid'>ATTLIST</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>a_name</span><span class='layout'>,</span> <span class='varid'>en</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='layout'>(</span><span class='varid'>a_value</span><span class='layout'>,</span> <span class='varid'>an</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varid'>cl</span> <span class='keyglyph'>]</span>-<a name="line-85"></a> <span class='keyword'>where</span>-<a name="line-86"></a> <span class='layout'>(</span><span class='varid'>al</span><span class='layout'>,</span> <span class='varid'>cl</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>scAttrToXml</span> <span class='varid'>sc</span>-<a name="line-87"></a> <span class='varid'>attrDTD</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='str'>"illegal case in attrDTD"</span>-<a name="line-88"></a>-<a name="line-89"></a>-<a name="line-90"></a><a name="checkAttrModell"></a><span class='definition'>checkAttrModell</span> <span class='keyglyph'>::</span> <span class='conid'>Name</span> <span class='keyglyph'>-></span> <span class='conid'>Schemas</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span>-<a name="line-91"></a><span class='definition'>checkAttrModell</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='varid'>concatMap</span> <span class='layout'>(</span><span class='varid'>checkAM</span> <span class='varid'>n</span><span class='layout'>)</span>-<a name="line-92"></a>-<a name="line-93"></a><a name="checkAM"></a><span class='definition'>checkAM</span> <span class='keyglyph'>::</span> <span class='conid'>Name</span> <span class='keyglyph'>-></span> <span class='conid'>Schema</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span>-<a name="line-94"></a><span class='definition'>checkAM</span> <span class='varid'>en</span> <span class='layout'>(</span><span class='conid'>Attribute</span> <span class='varid'>an</span> <span class='varid'>sc</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>checkAMC</span> <span class='varid'>en</span> <span class='varid'>an</span> <span class='varid'>sc</span>-<a name="line-95"></a><span class='definition'>checkAM</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-96"></a>-<a name="line-97"></a><a name="checkAMC"></a><span class='definition'>checkAMC</span> <span class='keyglyph'>::</span> <span class='conid'>Name</span> <span class='keyglyph'>-></span> <span class='conid'>Name</span> <span class='keyglyph'>-></span> <span class='conid'>Schema</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span>-<a name="line-98"></a><span class='definition'>checkAMC</span> <span class='sel'>_en</span> <span class='sel'>_an</span> <span class='layout'>(</span><span class='conid'>CharData</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-99"></a><span class='definition'>checkAMC</span> <span class='varid'>en</span> <span class='varid'>an</span> <span class='varid'>sc</span>-<a name="line-100"></a> <span class='keyglyph'>|</span> <span class='varid'>isScCharData</span> <span class='varid'>sc</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-101"></a> <span class='keyglyph'>|</span> <span class='varid'>isScList</span> <span class='varid'>sc</span>-<a name="line-102"></a> <span class='varop'>&&</span>-<a name="line-103"></a> <span class='layout'>(</span><span class='varid'>sc_1</span> <span class='varid'>sc</span> <span class='varop'>==</span> <span class='varid'>scNmtoken</span><span class='layout'>)</span>-<a name="line-104"></a> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-105"></a> <span class='keyglyph'>|</span> <span class='varid'>isScOpt</span> <span class='varid'>sc</span> <span class='keyglyph'>=</span> <span class='varid'>checkAMC</span> <span class='varid'>en</span> <span class='varid'>an</span> <span class='layout'>(</span><span class='varid'>sc_1</span> <span class='varid'>sc</span><span class='layout'>)</span>-<a name="line-106"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>foundErr</span>-<a name="line-107"></a> <span class='layout'>(</span> <span class='str'>"weird attribute type found for attribute "</span>-<a name="line-108"></a> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>an</span>-<a name="line-109"></a> <span class='varop'>++</span> <span class='str'>" for element "</span>-<a name="line-110"></a> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>en</span>-<a name="line-111"></a> <span class='varop'>++</span> <span class='str'>"\n\t(internal structure: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>sc</span> <span class='varop'>++</span> <span class='str'>")"</span>-<a name="line-112"></a> <span class='varop'>++</span> <span class='str'>"\n\thint: create an element instead of an attribute for "</span>-<a name="line-113"></a> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>an</span>-<a name="line-114"></a> <span class='layout'>)</span>-<a name="line-115"></a>-<a name="line-116"></a><span class='comment'>-- checkContentModell1 n sc = foundErr (n ++ " : " ++ show sc) ++ checkContentModell n sc</span>-<a name="line-117"></a>-<a name="line-118"></a><a name="checkContentModell"></a><span class='definition'>checkContentModell</span> <span class='keyglyph'>::</span> <span class='conid'>Name</span> <span class='keyglyph'>-></span> <span class='conid'>Schema</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span>-<a name="line-119"></a>-<a name="line-120"></a><span class='definition'>checkContentModell</span> <span class='keyword'>_</span> <span class='conid'>Any</span>-<a name="line-121"></a> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-122"></a>-<a name="line-123"></a><span class='definition'>checkContentModell</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>ElemRef</span> <span class='keyword'>_</span><span class='layout'>)</span>-<a name="line-124"></a> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-125"></a>-<a name="line-126"></a><span class='definition'>checkContentModell</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>CharData</span> <span class='keyword'>_</span><span class='layout'>)</span>-<a name="line-127"></a> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-128"></a>-<a name="line-129"></a><span class='definition'>checkContentModell</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>Seq</span> <span class='conid'>[]</span><span class='layout'>)</span>-<a name="line-130"></a> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-131"></a>-<a name="line-132"></a><span class='definition'>checkContentModell</span> <span class='varid'>n</span> <span class='layout'>(</span><span class='conid'>Seq</span> <span class='varid'>scs</span><span class='layout'>)</span>-<a name="line-133"></a> <span class='keyglyph'>=</span> <span class='varid'>checkErr</span> <span class='varid'>pcDataInCM</span>-<a name="line-134"></a> <span class='layout'>(</span> <span class='str'>"PCDATA found in a sequence spec in the content modell for "</span>-<a name="line-135"></a> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span>-<a name="line-136"></a> <span class='varop'>++</span> <span class='str'>"\n\thint: create an element for this data"</span>-<a name="line-137"></a> <span class='layout'>)</span>-<a name="line-138"></a> <span class='varop'>++</span>-<a name="line-139"></a> <span class='varid'>checkErr</span> <span class='varid'>somethingElseInCM</span>-<a name="line-140"></a> <span class='layout'>(</span> <span class='str'>"something weired found in a sequence spec in the content modell for "</span>-<a name="line-141"></a> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span>-<a name="line-142"></a> <span class='layout'>)</span>-<a name="line-143"></a> <span class='varop'>++</span>-<a name="line-144"></a> <span class='varid'>concatMap</span> <span class='layout'>(</span><span class='varid'>checkContentModell</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='varid'>scs</span>-<a name="line-145"></a> <span class='keyword'>where</span>-<a name="line-146"></a> <span class='varid'>pcDataInCM</span> <span class='keyglyph'>=</span> <span class='varid'>any</span> <span class='varid'>isScCharData</span> <span class='varid'>scs</span>-<a name="line-147"></a> <span class='varid'>somethingElseInCM</span> <span class='keyglyph'>=</span> <span class='varid'>any</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>sc</span> <span class='keyglyph'>-></span> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>isScSARE</span> <span class='varid'>sc</span><span class='layout'>)</span> <span class='varop'>&&</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>isScCharData</span> <span class='varid'>sc</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varid'>scs</span>-<a name="line-148"></a>-<a name="line-149"></a><span class='definition'>checkContentModell</span> <span class='varid'>n</span> <span class='layout'>(</span><span class='conid'>Alt</span> <span class='varid'>scs</span><span class='layout'>)</span>-<a name="line-150"></a> <span class='keyglyph'>=</span> <span class='varid'>checkErr</span> <span class='varid'>mixedCM</span>-<a name="line-151"></a> <span class='layout'>(</span> <span class='str'>"PCDATA mixed up with illegal content spec in mixed contents for "</span>-<a name="line-152"></a> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span>-<a name="line-153"></a> <span class='varop'>++</span> <span class='str'>"\n\thint: create an element for this data"</span>-<a name="line-154"></a> <span class='layout'>)</span>-<a name="line-155"></a> <span class='varop'>++</span>-<a name="line-156"></a> <span class='varid'>concatMap</span> <span class='layout'>(</span><span class='varid'>checkContentModell</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='varid'>scs</span>-<a name="line-157"></a> <span class='keyword'>where</span>-<a name="line-158"></a> <span class='varid'>mixedCM</span>-<a name="line-159"></a> <span class='keyglyph'>|</span> <span class='varid'>any</span> <span class='varid'>isScCharData</span> <span class='varid'>scs</span>-<a name="line-160"></a> <span class='keyglyph'>=</span> <span class='varid'>any</span> <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>isScElemRef</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>filter</span> <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>isScCharData</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>scs</span>-<a name="line-161"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-162"></a> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-163"></a>-<a name="line-164"></a><span class='definition'>checkContentModell</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>Rep</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>ElemRef</span> <span class='keyword'>_</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-165"></a> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-166"></a>-<a name="line-167"></a><span class='definition'>checkContentModell</span> <span class='varid'>n</span> <span class='layout'>(</span><span class='conid'>Rep</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='varid'>sc</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Seq</span> <span class='keyword'>_</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-168"></a> <span class='keyglyph'>=</span> <span class='varid'>checkContentModell</span> <span class='varid'>n</span> <span class='varid'>sc</span>-<a name="line-169"></a>-<a name="line-170"></a><span class='definition'>checkContentModell</span> <span class='varid'>n</span> <span class='layout'>(</span><span class='conid'>Rep</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='varid'>sc</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Alt</span> <span class='keyword'>_</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-171"></a> <span class='keyglyph'>=</span> <span class='varid'>checkContentModell</span> <span class='varid'>n</span> <span class='varid'>sc</span>-<a name="line-172"></a>-<a name="line-173"></a><span class='definition'>checkContentModell</span> <span class='varid'>n</span> <span class='layout'>(</span><span class='conid'>Rep</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span>-<a name="line-174"></a> <span class='keyglyph'>=</span> <span class='varid'>foundErr</span>-<a name="line-175"></a> <span class='layout'>(</span> <span class='str'>"illegal content spec found for "</span>-<a name="line-176"></a> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span>-<a name="line-177"></a> <span class='layout'>)</span>-<a name="line-178"></a>-<a name="line-179"></a><span class='definition'>checkContentModell</span> <span class='keyword'>_</span> <span class='keyword'>_</span>-<a name="line-180"></a> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-181"></a>-<a name="line-182"></a>-<a name="line-183"></a><a name="scContToXml"></a><span class='definition'>scContToXml</span> <span class='keyglyph'>::</span> <span class='conid'>Schema</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='conid'>Attributes</span><span class='layout'>,</span> <span class='conid'>XmlTrees</span><span class='layout'>)</span>-<a name="line-184"></a>-<a name="line-185"></a><span class='definition'>scContToXml</span> <span class='conid'>Any</span> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a_type</span><span class='layout'>,</span> <span class='varid'>v_any</span><span class='layout'>)</span><span class='keyglyph'>]</span><span class='layout'>,</span> <span class='conid'>[]</span> <span class='layout'>)</span>-<a name="line-186"></a><span class='definition'>scContToXml</span> <span class='layout'>(</span><span class='conid'>CharData</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a_type</span><span class='layout'>,</span> <span class='varid'>v_pcdata</span><span class='layout'>)</span><span class='keyglyph'>]</span><span class='layout'>,</span> <span class='conid'>[]</span> <span class='layout'>)</span>-<a name="line-187"></a><span class='definition'>scContToXml</span> <span class='layout'>(</span><span class='conid'>Seq</span> <span class='conid'>[]</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a_type</span><span class='layout'>,</span> <span class='varid'>v_empty</span><span class='layout'>)</span><span class='keyglyph'>]</span><span class='layout'>,</span> <span class='conid'>[]</span> <span class='layout'>)</span>-<a name="line-188"></a><span class='definition'>scContToXml</span> <span class='varid'>sc</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>ElemRef</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>scContToXml</span> <span class='layout'>(</span><span class='conid'>Seq</span> <span class='keyglyph'>[</span><span class='varid'>sc</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-189"></a><span class='definition'>scContToXml</span> <span class='varid'>sc</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Seq</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a_type</span><span class='layout'>,</span> <span class='varid'>v_children</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-190"></a> <span class='layout'>,</span> <span class='varid'>scCont</span> <span class='conid'>[]</span> <span class='varid'>sc</span>-<a name="line-191"></a> <span class='layout'>)</span>-<a name="line-192"></a><span class='definition'>scContToXml</span> <span class='varid'>sc</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Alt</span> <span class='varid'>sc1</span><span class='layout'>)</span>-<a name="line-193"></a> <span class='keyglyph'>|</span> <span class='varid'>isMixed</span> <span class='varid'>sc1</span> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a_type</span><span class='layout'>,</span> <span class='varid'>v_mixed</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-194"></a> <span class='layout'>,</span> <span class='varid'>scCont</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>a_modifier</span><span class='layout'>,</span> <span class='str'>"*"</span><span class='layout'>)</span> <span class='keyglyph'>]</span> <span class='varid'>sc</span>-<a name="line-195"></a> <span class='layout'>)</span>-<a name="line-196"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a_type</span><span class='layout'>,</span> <span class='varid'>v_children</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-197"></a> <span class='layout'>,</span> <span class='varid'>scCont</span> <span class='conid'>[]</span> <span class='varid'>sc</span>-<a name="line-198"></a> <span class='layout'>)</span> -<a name="line-199"></a> <span class='keyword'>where</span>-<a name="line-200"></a> <span class='varid'>isMixed</span> <span class='keyglyph'>=</span> <span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>null</span> <span class='varop'>.</span> <span class='varid'>filter</span> <span class='varid'>isScCharData</span>-<a name="line-201"></a><span class='definition'>scContToXml</span> <span class='varid'>sc</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Rep</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a_type</span><span class='layout'>,</span> <span class='varid'>v_children</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-202"></a> <span class='layout'>,</span> <span class='varid'>scCont</span> <span class='conid'>[]</span> <span class='varid'>sc</span>-<a name="line-203"></a> <span class='layout'>)</span>-<a name="line-204"></a><span class='definition'>scContToXml</span> <span class='sel'>_sc</span> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a_type</span><span class='layout'>,</span> <span class='varid'>v_any</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='comment'>-- default: everything is allowed</span>-<a name="line-205"></a> <span class='layout'>,</span> <span class='conid'>[]</span>-<a name="line-206"></a> <span class='layout'>)</span>-<a name="line-207"></a>-<a name="line-208"></a><a name="scWrap"></a><span class='definition'>scWrap</span> <span class='keyglyph'>::</span> <span class='conid'>Schema</span> <span class='keyglyph'>-></span> <span class='conid'>Schema</span>-<a name="line-209"></a><span class='definition'>scWrap</span> <span class='varid'>sc</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Alt</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>sc</span>-<a name="line-210"></a><span class='definition'>scWrap</span> <span class='varid'>sc</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Seq</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>sc</span>-<a name="line-211"></a><span class='definition'>scWrap</span> <span class='varid'>sc</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Rep</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>sc</span>-<a name="line-212"></a><span class='definition'>scWrap</span> <span class='varid'>sc</span> <span class='keyglyph'>=</span> <span class='conid'>Seq</span> <span class='keyglyph'>[</span><span class='varid'>sc</span><span class='keyglyph'>]</span>-<a name="line-213"></a>-<a name="line-214"></a><a name="scCont"></a><span class='definition'>scCont</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>Schema</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span>-<a name="line-215"></a><span class='definition'>scCont</span> <span class='varid'>al</span> <span class='layout'>(</span><span class='conid'>Seq</span> <span class='varid'>scs</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>scConts</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>a_kind</span><span class='layout'>,</span> <span class='varid'>v_seq</span> <span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varid'>scs</span>-<a name="line-216"></a><span class='definition'>scCont</span> <span class='varid'>al</span> <span class='layout'>(</span><span class='conid'>Alt</span> <span class='varid'>scs</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>scConts</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>a_kind</span><span class='layout'>,</span> <span class='varid'>v_choice</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varid'>scs</span>-<a name="line-217"></a><span class='definition'>scCont</span> <span class='varid'>al</span> <span class='layout'>(</span><span class='conid'>Rep</span> <span class='num'>0</span> <span class='layout'>(</span><span class='comment'>-</span><span class='num'>1</span><span class='layout'>)</span> <span class='varid'>sc</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>scCont</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>a_modifier</span><span class='layout'>,</span> <span class='str'>"*"</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>scWrap</span> <span class='varid'>sc</span><span class='layout'>)</span>-<a name="line-218"></a><span class='definition'>scCont</span> <span class='varid'>al</span> <span class='layout'>(</span><span class='conid'>Rep</span> <span class='num'>1</span> <span class='layout'>(</span><span class='comment'>-</span><span class='num'>1</span><span class='layout'>)</span> <span class='varid'>sc</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>scCont</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>a_modifier</span><span class='layout'>,</span> <span class='str'>"+"</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>scWrap</span> <span class='varid'>sc</span><span class='layout'>)</span>-<a name="line-219"></a><span class='definition'>scCont</span> <span class='varid'>al</span> <span class='layout'>(</span><span class='conid'>Rep</span> <span class='num'>0</span> <span class='num'>1</span> <span class='varid'>sc</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>scCont</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>a_modifier</span><span class='layout'>,</span> <span class='str'>"?"</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>scWrap</span> <span class='varid'>sc</span><span class='layout'>)</span>-<a name="line-220"></a><span class='definition'>scCont</span> <span class='varid'>al</span> <span class='layout'>(</span><span class='conid'>ElemRef</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkDTDElem</span> <span class='conid'>NAME</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>a_name</span><span class='layout'>,</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='conid'>[]</span><span class='keyglyph'>]</span>-<a name="line-221"></a><span class='definition'>scCont</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>CharData</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkDTDElem</span> <span class='conid'>NAME</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a_name</span><span class='layout'>,</span> <span class='str'>"#PCDATA"</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='conid'>[]</span><span class='keyglyph'>]</span>-<a name="line-222"></a><span class='definition'>scCont</span> <span class='keyword'>_</span> <span class='sel'>_sc</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkDTDElem</span> <span class='conid'>NAME</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a_name</span><span class='layout'>,</span> <span class='str'>"bad-content-spec"</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='conid'>[]</span><span class='keyglyph'>]</span> <span class='comment'>-- error case</span>-<a name="line-223"></a>-<a name="line-224"></a><a name="scConts"></a><span class='definition'>scConts</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>Schemas</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span>-<a name="line-225"></a><span class='definition'>scConts</span> <span class='varid'>al</span> <span class='varid'>scs</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkDTDElem</span> <span class='conid'>CONTENT</span> <span class='varid'>al</span> <span class='layout'>(</span><span class='varid'>concatMap</span> <span class='layout'>(</span><span class='varid'>scCont</span> <span class='conid'>[]</span><span class='layout'>)</span> <span class='varid'>scs</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-226"></a>-<a name="line-227"></a><a name="scAttrToXml"></a><span class='definition'>scAttrToXml</span> <span class='keyglyph'>::</span> <span class='conid'>Schema</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='conid'>Attributes</span><span class='layout'>,</span> <span class='conid'>XmlTrees</span><span class='layout'>)</span>-<a name="line-228"></a>-<a name="line-229"></a><span class='definition'>scAttrToXml</span> <span class='varid'>sc</span>-<a name="line-230"></a> <span class='keyglyph'>|</span> <span class='varid'>isScFixed</span> <span class='varid'>sc</span> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>a_kind</span><span class='layout'>,</span> <span class='varid'>k_fixed</span><span class='layout'>)</span>-<a name="line-231"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>a_type</span><span class='layout'>,</span> <span class='varid'>k_cdata</span><span class='layout'>)</span>-<a name="line-232"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>a_default</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsdParam</span> <span class='varid'>xsd_enumeration</span> <span class='varid'>sc</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-233"></a> <span class='keyglyph'>]</span>-<a name="line-234"></a> <span class='layout'>,</span> <span class='conid'>[]</span><span class='layout'>)</span>-<a name="line-235"></a> <span class='keyglyph'>|</span> <span class='varid'>isScEnum</span> <span class='varid'>sc</span> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>a_kind</span><span class='layout'>,</span> <span class='varid'>k_required</span><span class='layout'>)</span>-<a name="line-236"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>a_type</span><span class='layout'>,</span> <span class='varid'>k_enumeration</span><span class='layout'>)</span>-<a name="line-237"></a> <span class='keyglyph'>]</span>-<a name="line-238"></a> <span class='layout'>,</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='keyglyph'>-></span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkDTDElem</span> <span class='conid'>NAME</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a_name</span><span class='layout'>,</span> <span class='varid'>n</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='conid'>[]</span><span class='layout'>)</span> <span class='varid'>enums</span>-<a name="line-239"></a> <span class='layout'>)</span>-<a name="line-240"></a> <span class='keyglyph'>|</span> <span class='varid'>isScCharData</span> <span class='varid'>sc</span> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>a_kind</span><span class='layout'>,</span> <span class='varid'>k_required</span><span class='layout'>)</span>-<a name="line-241"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>a_type</span><span class='layout'>,</span> <span class='varid'>d_type</span><span class='layout'>)</span>-<a name="line-242"></a> <span class='keyglyph'>]</span>-<a name="line-243"></a> <span class='layout'>,</span> <span class='conid'>[]</span><span class='layout'>)</span>-<a name="line-244"></a> <span class='keyglyph'>|</span> <span class='varid'>isScOpt</span> <span class='varid'>sc</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>addEntry</span> <span class='varid'>a_kind</span> <span class='varid'>k_implied</span> <span class='varid'>al</span><span class='layout'>,</span> <span class='varid'>cl</span><span class='layout'>)</span>-<a name="line-245"></a> <span class='keyglyph'>|</span> <span class='varid'>isScList</span> <span class='varid'>sc</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>addEntry</span> <span class='varid'>a_type</span> <span class='varid'>k_nmtokens</span> <span class='varid'>al</span><span class='layout'>,</span> <span class='varid'>cl</span><span class='layout'>)</span>-<a name="line-246"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>a_kind</span><span class='layout'>,</span> <span class='varid'>k_fixed</span><span class='layout'>)</span>-<a name="line-247"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>a_default</span><span class='layout'>,</span> <span class='str'>"bad-attribute-type: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>sc</span><span class='layout'>)</span>-<a name="line-248"></a> <span class='keyglyph'>]</span>-<a name="line-249"></a> <span class='layout'>,</span> <span class='conid'>[]</span> <span class='layout'>)</span>-<a name="line-250"></a> <span class='keyword'>where</span>-<a name="line-251"></a> <span class='layout'>(</span><span class='varid'>al</span><span class='layout'>,</span> <span class='varid'>cl</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>scAttrToXml</span> <span class='layout'>(</span><span class='varid'>sc_1</span> <span class='varid'>sc</span><span class='layout'>)</span>-<a name="line-252"></a> <span class='varid'>d_type</span>-<a name="line-253"></a> <span class='keyglyph'>|</span> <span class='varid'>sc</span> <span class='varop'>==</span> <span class='varid'>scNmtoken</span> <span class='keyglyph'>=</span> <span class='varid'>k_nmtoken</span>-<a name="line-254"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>k_cdata</span>-<a name="line-255"></a> <span class='varid'>enums</span> <span class='keyglyph'>=</span> <span class='varid'>words</span> <span class='varop'>.</span> <span class='varid'>xsdParam</span> <span class='varid'>xsd_enumeration</span> <span class='varop'>$</span> <span class='varid'>sc</span>-<a name="line-256"></a>-<a name="line-257"></a><a name="checkErr"></a><span class='definition'>checkErr</span> <span class='keyglyph'>::</span> <span class='conid'>Bool</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span>-<a name="line-258"></a><span class='definition'>checkErr</span> <span class='conid'>True</span> <span class='varid'>s</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkError</span> <span class='varid'>c_err</span> <span class='varid'>s</span><span class='keyglyph'>]</span>-<a name="line-259"></a><span class='definition'>checkErr</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-260"></a>-<a name="line-261"></a><a name="foundErr"></a><span class='definition'>foundErr</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span>-<a name="line-262"></a><span class='definition'>foundErr</span> <span class='keyglyph'>=</span> <span class='varid'>checkErr</span> <span class='conid'>True</span>-<a name="line-263"></a>-<a name="line-264"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-265"></a>-<a name="line-266"></a><span class='comment'>-- | convert a pickler schema into a DTD descr</span>-<a name="line-267"></a>-<a name="line-268"></a><a name="dtdDescr"></a><span class='definition'>dtdDescr</span> <span class='keyglyph'>::</span> <span class='conid'>Schema</span> <span class='keyglyph'>-></span> <span class='conid'>DTDdescr</span>-<a name="line-269"></a><span class='definition'>dtdDescr</span> <span class='varid'>sc</span>-<a name="line-270"></a> <span class='keyglyph'>=</span> <span class='conid'>DTDdescr</span> <span class='varid'>rt</span> <span class='varid'>es1</span> <span class='keyword'>as</span>-<a name="line-271"></a> <span class='keyword'>where</span>-<a name="line-272"></a> <span class='varid'>es</span> <span class='keyglyph'>=</span> <span class='varid'>elementDeclarations</span> <span class='varid'>sc</span>-<a name="line-273"></a> <span class='varid'>es1</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>remAttrDec</span> <span class='varid'>es</span>-<a name="line-274"></a> <span class='keyword'>as</span> <span class='keyglyph'>=</span> <span class='varid'>filter</span> <span class='layout'>(</span><span class='varid'>not</span><span class='varop'>.</span> <span class='varid'>null</span> <span class='varop'>.</span> <span class='varid'>snd</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>concatMap</span> <span class='varid'>attrDec</span> <span class='varop'>$</span> <span class='varid'>es</span>-<a name="line-275"></a> <span class='varid'>rt</span> <span class='keyglyph'>=</span> <span class='varid'>fromMaybe</span> <span class='str'>""</span> <span class='varop'>.</span> <span class='varid'>elemName</span> <span class='varop'>$</span> <span class='varid'>sc</span>-<a name="line-276"></a>-<a name="line-277"></a><a name="elementDeclarations"></a><span class='definition'>elementDeclarations</span> <span class='keyglyph'>::</span> <span class='conid'>Schema</span> <span class='keyglyph'>-></span> <span class='conid'>Schemas</span>-<a name="line-278"></a><span class='definition'>elementDeclarations</span> <span class='varid'>sc</span> <span class='keyglyph'>=</span> <span class='varid'>elemRefs</span> <span class='varop'>.</span> <span class='varid'>elementDecs</span> <span class='conid'>[]</span> <span class='varop'>$</span> <span class='keyglyph'>[</span><span class='varid'>sc</span><span class='keyglyph'>]</span>-<a name="line-279"></a>-<a name="line-280"></a><a name="elementDecs"></a><span class='definition'>elementDecs</span> <span class='keyglyph'>::</span> <span class='conid'>Schemas</span> <span class='keyglyph'>-></span> <span class='conid'>Schemas</span> <span class='keyglyph'>-></span> <span class='conid'>Schemas</span>-<a name="line-281"></a><span class='definition'>elementDecs</span> <span class='varid'>es</span> <span class='conid'>[]</span>-<a name="line-282"></a> <span class='keyglyph'>=</span> <span class='varid'>es</span>-<a name="line-283"></a><span class='definition'>elementDecs</span> <span class='varid'>es</span> <span class='layout'>(</span><span class='varid'>s</span><span class='conop'>:</span><span class='varid'>ss</span><span class='layout'>)</span>-<a name="line-284"></a> <span class='keyglyph'>=</span> <span class='varid'>elementDecs</span> <span class='layout'>(</span><span class='varid'>elemDecs</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='varid'>ss</span>-<a name="line-285"></a> <span class='keyword'>where</span>-<a name="line-286"></a> <span class='varid'>elemDecs</span> <span class='layout'>(</span><span class='conid'>Seq</span> <span class='varid'>scs</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>elementDecs</span> <span class='varid'>es</span> <span class='varid'>scs</span>-<a name="line-287"></a> <span class='varid'>elemDecs</span> <span class='layout'>(</span><span class='conid'>Alt</span> <span class='varid'>scs</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>elementDecs</span> <span class='varid'>es</span> <span class='varid'>scs</span>-<a name="line-288"></a> <span class='varid'>elemDecs</span> <span class='layout'>(</span><span class='conid'>Rep</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='varid'>sc</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>elemDecs</span> <span class='varid'>sc</span>-<a name="line-289"></a> <span class='varid'>elemDecs</span> <span class='varid'>e</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Element</span> <span class='varid'>n</span> <span class='varid'>sc</span><span class='layout'>)</span>-<a name="line-290"></a> <span class='keyglyph'>|</span> <span class='varid'>n</span> <span class='varop'>`elem`</span> <span class='varid'>elemNames</span> <span class='varid'>es</span> <span class='keyglyph'>=</span> <span class='varid'>es</span>-<a name="line-291"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>elementDecs</span> <span class='layout'>(</span><span class='varid'>e</span><span class='conop'>:</span><span class='varid'>es</span><span class='layout'>)</span> <span class='keyglyph'>[</span><span class='varid'>sc</span><span class='keyglyph'>]</span>-<a name="line-292"></a> <span class='varid'>elemDecs</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='varid'>es</span>-<a name="line-293"></a>-<a name="line-294"></a><a name="elemNames"></a><span class='definition'>elemNames</span> <span class='keyglyph'>::</span> <span class='conid'>Schemas</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>Name</span><span class='keyglyph'>]</span>-<a name="line-295"></a><span class='definition'>elemNames</span> <span class='keyglyph'>=</span> <span class='varid'>concatMap</span> <span class='layout'>(</span><span class='varid'>maybeToList</span> <span class='varop'>.</span> <span class='varid'>elemName</span><span class='layout'>)</span>-<a name="line-296"></a>-<a name="line-297"></a><a name="elemName"></a><span class='definition'>elemName</span> <span class='keyglyph'>::</span> <span class='conid'>Schema</span> <span class='keyglyph'>-></span> <span class='conid'>Maybe</span> <span class='conid'>Name</span>-<a name="line-298"></a><span class='definition'>elemName</span> <span class='layout'>(</span><span class='conid'>Element</span> <span class='varid'>n</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='varid'>n</span>-<a name="line-299"></a><span class='definition'>elemName</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>Nothing</span>-<a name="line-300"></a>-<a name="line-301"></a><a name="elemRefs"></a><span class='definition'>elemRefs</span> <span class='keyglyph'>::</span> <span class='conid'>Schemas</span> <span class='keyglyph'>-></span> <span class='conid'>Schemas</span>-<a name="line-302"></a><span class='definition'>elemRefs</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>elemRef</span>-<a name="line-303"></a> <span class='keyword'>where</span>-<a name="line-304"></a> <span class='varid'>elemRef</span> <span class='layout'>(</span><span class='conid'>Element</span> <span class='varid'>n</span> <span class='varid'>sc</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>Element</span> <span class='varid'>n</span> <span class='layout'>(</span><span class='varid'>pruneElem</span> <span class='varid'>sc</span><span class='layout'>)</span>-<a name="line-305"></a> <span class='varid'>elemRef</span> <span class='varid'>sc</span> <span class='keyglyph'>=</span> <span class='varid'>sc</span>-<a name="line-306"></a> <span class='varid'>pruneElem</span> <span class='layout'>(</span><span class='conid'>Element</span> <span class='varid'>n</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>ElemRef</span> <span class='varid'>n</span>-<a name="line-307"></a> <span class='varid'>pruneElem</span> <span class='layout'>(</span><span class='conid'>Seq</span> <span class='varid'>scs</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>Seq</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>pruneElem</span> <span class='varid'>scs</span><span class='layout'>)</span>-<a name="line-308"></a> <span class='varid'>pruneElem</span> <span class='layout'>(</span><span class='conid'>Alt</span> <span class='varid'>scs</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>Alt</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>pruneElem</span> <span class='varid'>scs</span><span class='layout'>)</span>-<a name="line-309"></a> <span class='varid'>pruneElem</span> <span class='layout'>(</span><span class='conid'>Rep</span> <span class='varid'>l</span> <span class='varid'>u</span> <span class='varid'>sc</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>Rep</span> <span class='varid'>l</span> <span class='varid'>u</span> <span class='layout'>(</span><span class='varid'>pruneElem</span> <span class='varid'>sc</span><span class='layout'>)</span>-<a name="line-310"></a> <span class='varid'>pruneElem</span> <span class='varid'>sc</span> <span class='keyglyph'>=</span> <span class='varid'>sc</span>-<a name="line-311"></a>-<a name="line-312"></a><a name="attrDec"></a><span class='definition'>attrDec</span> <span class='keyglyph'>::</span> <span class='conid'>Schema</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>Name</span><span class='layout'>,</span> <span class='conid'>Schemas</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-313"></a><span class='definition'>attrDec</span> <span class='layout'>(</span><span class='conid'>Element</span> <span class='varid'>n</span> <span class='varid'>sc</span><span class='layout'>)</span>-<a name="line-314"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>n</span><span class='layout'>,</span> <span class='varid'>attrDecs</span> <span class='varid'>sc</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-315"></a> <span class='keyword'>where</span>-<a name="line-316"></a> <span class='varid'>attrDecs</span> <span class='varid'>a</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Attribute</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span>-<a name="line-317"></a> <span class='varid'>attrDecs</span> <span class='layout'>(</span><span class='conid'>Seq</span> <span class='varid'>scs</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>concatMap</span> <span class='varid'>attrDecs</span> <span class='varid'>scs</span>-<a name="line-318"></a> <span class='varid'>attrDecs</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-319"></a><span class='definition'>attrDec</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-320"></a>-<a name="line-321"></a><a name="remAttrDec"></a><span class='definition'>remAttrDec</span> <span class='keyglyph'>::</span> <span class='conid'>Schema</span> <span class='keyglyph'>-></span> <span class='conid'>Schema</span>-<a name="line-322"></a><span class='definition'>remAttrDec</span> <span class='layout'>(</span><span class='conid'>Element</span> <span class='varid'>n</span> <span class='varid'>sc</span><span class='layout'>)</span>-<a name="line-323"></a> <span class='keyglyph'>=</span> <span class='conid'>Element</span> <span class='varid'>n</span> <span class='layout'>(</span><span class='varid'>remA</span> <span class='varid'>sc</span><span class='layout'>)</span>-<a name="line-324"></a> <span class='keyword'>where</span>-<a name="line-325"></a> <span class='varid'>remA</span> <span class='layout'>(</span><span class='conid'>Attribute</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>scEmpty</span>-<a name="line-326"></a> <span class='varid'>remA</span> <span class='layout'>(</span><span class='conid'>Seq</span> <span class='varid'>scs</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>scSeqs</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='varid'>remA</span> <span class='varop'>$</span> <span class='varid'>scs</span>-<a name="line-327"></a> <span class='varid'>remA</span> <span class='varid'>sc1</span> <span class='keyglyph'>=</span> <span class='varid'>sc1</span>-<a name="line-328"></a><span class='definition'>remAttrDec</span> <span class='keyword'>_</span>-<a name="line-329"></a> <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='str'>"illegal case in remAttrDec"</span>-<a name="line-330"></a>-<a name="line-331"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-332"></a>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-Arrow-Pickle-Schema.html
@@ -1,231 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Text.XML.HXT.Arrow.Pickle.Schema-<a name="line-5"></a> Copyright : Copyright (C) 2005 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe@fh-wedel.de)-<a name="line-9"></a> Stability : experimental-<a name="line-10"></a> Portability: portable-<a name="line-11"></a> Version : $Id$-<a name="line-12"></a>-<a name="line-13"></a>Datatypes and functions for building a content model-<a name="line-14"></a>for XML picklers. A schema is part of every pickler-<a name="line-15"></a>and can be used to derive a corrensponding DTD (or Relax NG schema).-<a name="line-16"></a>This schema further enables checking the picklers.-<a name="line-17"></a>-<a name="line-18"></a>-}</span>-<a name="line-19"></a>-<a name="line-20"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-21"></a>-<a name="line-22"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>Pickle</span><span class='varop'>.</span><span class='conid'>Schema</span>-<a name="line-23"></a><span class='keyword'>where</span>-<a name="line-24"></a>-<a name="line-25"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>TypeDefs</span>-<a name="line-26"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>XmlSchema</span><span class='varop'>.</span><span class='conid'>DataTypeLibW3C</span>-<a name="line-27"></a>-<a name="line-28"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>List</span>-<a name="line-29"></a> <span class='layout'>(</span> <span class='varid'>sort</span> <span class='layout'>)</span>-<a name="line-30"></a>-<a name="line-31"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-32"></a>-<a name="line-33"></a><span class='comment'>-- | The datatype for modelling the structure of an</span>-<a name="line-34"></a>-<a name="line-35"></a><a name="Schema"></a><span class='keyword'>data</span> <span class='conid'>Schema</span> <span class='keyglyph'>=</span> <span class='conid'>Any</span>-<a name="line-36"></a> <span class='keyglyph'>|</span> <span class='conid'>Seq</span> <span class='layout'>{</span> <span class='varid'>sc_l</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>Schema</span><span class='keyglyph'>]</span>-<a name="line-37"></a> <span class='layout'>}</span>-<a name="line-38"></a> <span class='keyglyph'>|</span> <span class='conid'>Alt</span> <span class='layout'>{</span> <span class='varid'>sc_l</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>Schema</span><span class='keyglyph'>]</span>-<a name="line-39"></a> <span class='layout'>}</span>-<a name="line-40"></a> <span class='keyglyph'>|</span> <span class='conid'>Rep</span> <span class='layout'>{</span> <span class='varid'>sc_lb</span> <span class='keyglyph'>::</span> <span class='conid'>Int</span>-<a name="line-41"></a> <span class='layout'>,</span> <span class='varid'>sc_ub</span> <span class='keyglyph'>::</span> <span class='conid'>Int</span>-<a name="line-42"></a> <span class='layout'>,</span> <span class='varid'>sc_1</span> <span class='keyglyph'>::</span> <span class='conid'>Schema</span>-<a name="line-43"></a> <span class='layout'>}</span>-<a name="line-44"></a> <span class='keyglyph'>|</span> <span class='conid'>Element</span> <span class='layout'>{</span> <span class='varid'>sc_n</span> <span class='keyglyph'>::</span> <span class='conid'>Name</span>-<a name="line-45"></a> <span class='layout'>,</span> <span class='varid'>sc_1</span> <span class='keyglyph'>::</span> <span class='conid'>Schema</span>-<a name="line-46"></a> <span class='layout'>}</span>-<a name="line-47"></a> <span class='keyglyph'>|</span> <span class='conid'>Attribute</span> <span class='layout'>{</span> <span class='varid'>sc_n</span> <span class='keyglyph'>::</span> <span class='conid'>Name</span>-<a name="line-48"></a> <span class='layout'>,</span> <span class='varid'>sc_1</span> <span class='keyglyph'>::</span> <span class='conid'>Schema</span>-<a name="line-49"></a> <span class='layout'>}</span>-<a name="line-50"></a> <span class='keyglyph'>|</span> <span class='conid'>ElemRef</span> <span class='layout'>{</span> <span class='varid'>sc_n</span> <span class='keyglyph'>::</span> <span class='conid'>Name</span>-<a name="line-51"></a> <span class='layout'>}</span>-<a name="line-52"></a> <span class='keyglyph'>|</span> <span class='conid'>CharData</span> <span class='layout'>{</span> <span class='varid'>sc_dt</span> <span class='keyglyph'>::</span> <span class='conid'>DataTypeDescr</span>-<a name="line-53"></a> <span class='layout'>}</span>-<a name="line-54"></a> <span class='keyword'>deriving</span> <span class='layout'>(</span><span class='conid'>Eq</span><span class='layout'>,</span> <span class='conid'>Show</span><span class='layout'>)</span>-<a name="line-55"></a>-<a name="line-56"></a><a name="Name"></a><span class='keyword'>type</span> <span class='conid'>Name</span> <span class='keyglyph'>=</span> <span class='conid'>String</span>-<a name="line-57"></a><a name="Schemas"></a><span class='keyword'>type</span> <span class='conid'>Schemas</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>Schema</span><span class='keyglyph'>]</span>-<a name="line-58"></a>-<a name="line-59"></a><a name="DataTypeDescr"></a><span class='keyword'>data</span> <span class='conid'>DataTypeDescr</span> <span class='keyglyph'>=</span> <span class='conid'>DTDescr</span> <span class='layout'>{</span> <span class='varid'>dtLib</span> <span class='keyglyph'>::</span> <span class='conid'>String</span>-<a name="line-60"></a> <span class='layout'>,</span> <span class='varid'>dtName</span> <span class='keyglyph'>::</span> <span class='conid'>String</span>-<a name="line-61"></a> <span class='layout'>,</span> <span class='varid'>dtParams</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</span>-<a name="line-62"></a> <span class='layout'>}</span>-<a name="line-63"></a> <span class='keyword'>deriving</span> <span class='layout'>(</span><span class='conid'>Show</span><span class='layout'>)</span>-<a name="line-64"></a>-<a name="line-65"></a><span class='keyword'>instance</span> <span class='conid'>Eq</span> <span class='conid'>DataTypeDescr</span> <span class='keyword'>where</span>-<a name="line-66"></a> <span class='varid'>x1</span> <span class='varop'>==</span> <span class='varid'>x2</span> <span class='keyglyph'>=</span> <span class='varid'>dtLib</span> <span class='varid'>x1</span> <span class='varop'>==</span> <span class='varid'>dtLib</span> <span class='varid'>x2</span>-<a name="line-67"></a> <span class='varop'>&&</span>-<a name="line-68"></a> <span class='varid'>dtName</span> <span class='varid'>x1</span> <span class='varop'>==</span> <span class='varid'>dtName</span> <span class='varid'>x2</span>-<a name="line-69"></a> <span class='varop'>&&</span>-<a name="line-70"></a> <span class='varid'>sort</span> <span class='layout'>(</span><span class='varid'>dtParams</span> <span class='varid'>x1</span><span class='layout'>)</span> <span class='varop'>==</span> <span class='varid'>sort</span> <span class='layout'>(</span><span class='varid'>dtParams</span> <span class='varid'>x2</span><span class='layout'>)</span>-<a name="line-71"></a>-<a name="line-72"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-73"></a>-<a name="line-74"></a><span class='comment'>-- | test: is schema a simple XML Schema datatype</span>-<a name="line-75"></a>-<a name="line-76"></a><a name="isScXsd"></a><span class='definition'>isScXsd</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>Schema</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-77"></a>-<a name="line-78"></a><span class='definition'>isScXsd</span> <span class='varid'>p</span> <span class='layout'>(</span><span class='conid'>CharData</span> <span class='layout'>(</span><span class='conid'>DTDescr</span> <span class='varid'>lib</span> <span class='varid'>n</span> <span class='sel'>_ps</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-79"></a> <span class='keyglyph'>=</span> <span class='varid'>lib</span> <span class='varop'>==</span> <span class='varid'>w3cNS</span>-<a name="line-80"></a> <span class='varop'>&&</span>-<a name="line-81"></a> <span class='varid'>p</span> <span class='varid'>n</span>-<a name="line-82"></a><span class='definition'>isScXsd</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-83"></a>-<a name="line-84"></a><span class='comment'>-- | test: is type a fixed value attribute type</span>-<a name="line-85"></a>-<a name="line-86"></a><a name="isScFixed"></a><span class='definition'>isScFixed</span> <span class='keyglyph'>::</span> <span class='conid'>Schema</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-87"></a><span class='definition'>isScFixed</span> <span class='varid'>sc</span> <span class='keyglyph'>=</span> <span class='varid'>isScXsd</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='varid'>xsd_string</span><span class='layout'>)</span> <span class='varid'>sc</span>-<a name="line-88"></a> <span class='varop'>&&</span>-<a name="line-89"></a> <span class='layout'>(</span><span class='layout'>(</span><span class='varop'>==</span> <span class='num'>1</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>length</span> <span class='varop'>.</span> <span class='varid'>words</span> <span class='varop'>.</span> <span class='varid'>xsdParam</span> <span class='varid'>xsd_enumeration</span><span class='layout'>)</span> <span class='varid'>sc</span>-<a name="line-90"></a>-<a name="line-91"></a><a name="isScEnum"></a><span class='definition'>isScEnum</span> <span class='keyglyph'>::</span> <span class='conid'>Schema</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-92"></a><span class='definition'>isScEnum</span> <span class='varid'>sc</span> <span class='keyglyph'>=</span> <span class='varid'>isScXsd</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='varid'>xsd_string</span><span class='layout'>)</span> <span class='varid'>sc</span>-<a name="line-93"></a> <span class='varop'>&&</span>-<a name="line-94"></a> <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>null</span> <span class='varop'>.</span> <span class='varid'>xsdParam</span> <span class='varid'>xsd_enumeration</span><span class='layout'>)</span> <span class='varid'>sc</span>-<a name="line-95"></a>-<a name="line-96"></a><a name="isScElem"></a><span class='definition'>isScElem</span> <span class='keyglyph'>::</span> <span class='conid'>Schema</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-97"></a><span class='definition'>isScElem</span> <span class='layout'>(</span><span class='conid'>Element</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-98"></a><span class='definition'>isScElem</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-99"></a>-<a name="line-100"></a><a name="isScAttr"></a><span class='definition'>isScAttr</span> <span class='keyglyph'>::</span> <span class='conid'>Schema</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-101"></a><span class='definition'>isScAttr</span> <span class='layout'>(</span><span class='conid'>Attribute</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span><span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-102"></a><span class='definition'>isScAttr</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-103"></a>-<a name="line-104"></a><a name="isScElemRef"></a><span class='definition'>isScElemRef</span> <span class='keyglyph'>::</span> <span class='conid'>Schema</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-105"></a><span class='definition'>isScElemRef</span> <span class='layout'>(</span><span class='conid'>ElemRef</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-106"></a><span class='definition'>isScElemRef</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-107"></a>-<a name="line-108"></a><a name="isScCharData"></a><span class='definition'>isScCharData</span> <span class='keyglyph'>::</span> <span class='conid'>Schema</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-109"></a><span class='definition'>isScCharData</span> <span class='layout'>(</span><span class='conid'>CharData</span> <span class='keyword'>_</span><span class='layout'>)</span><span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-110"></a><span class='definition'>isScCharData</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-111"></a>-<a name="line-112"></a><a name="isScSARE"></a><span class='definition'>isScSARE</span> <span class='keyglyph'>::</span> <span class='conid'>Schema</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-113"></a><span class='definition'>isScSARE</span> <span class='layout'>(</span><span class='conid'>Seq</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-114"></a><span class='definition'>isScSARE</span> <span class='layout'>(</span><span class='conid'>Alt</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-115"></a><span class='definition'>isScSARE</span> <span class='layout'>(</span><span class='conid'>Rep</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-116"></a><span class='definition'>isScSARE</span> <span class='layout'>(</span><span class='conid'>ElemRef</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-117"></a><span class='definition'>isScSARE</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-118"></a>-<a name="line-119"></a><a name="isScList"></a><span class='definition'>isScList</span> <span class='keyglyph'>::</span> <span class='conid'>Schema</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-120"></a><span class='definition'>isScList</span> <span class='layout'>(</span><span class='conid'>Rep</span> <span class='num'>0</span> <span class='layout'>(</span><span class='comment'>-</span><span class='num'>1</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-121"></a><span class='definition'>isScList</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-122"></a>-<a name="line-123"></a><a name="isScOpt"></a><span class='definition'>isScOpt</span> <span class='keyglyph'>::</span> <span class='conid'>Schema</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-124"></a><span class='definition'>isScOpt</span> <span class='layout'>(</span><span class='conid'>Rep</span> <span class='num'>0</span> <span class='num'>1</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-125"></a><span class='definition'>isScOpt</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-126"></a>-<a name="line-127"></a><span class='comment'>-- | access an attribute of a descr of an atomic type</span>-<a name="line-128"></a>-<a name="line-129"></a><a name="xsdParam"></a><span class='definition'>xsdParam</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Schema</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-130"></a><span class='definition'>xsdParam</span> <span class='varid'>n</span> <span class='layout'>(</span><span class='conid'>CharData</span> <span class='varid'>dtd</span><span class='layout'>)</span>-<a name="line-131"></a> <span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>n</span> <span class='layout'>(</span><span class='varid'>dtParams</span> <span class='varid'>dtd</span><span class='layout'>)</span>-<a name="line-132"></a><span class='definition'>xsdParam</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='str'>""</span>-<a name="line-133"></a>-<a name="line-134"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-135"></a>-<a name="line-136"></a><span class='comment'>-- smart constructors for Schema datatype</span>-<a name="line-137"></a>-<a name="line-138"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-139"></a><span class='comment'>--</span>-<a name="line-140"></a><span class='comment'>-- predefined xsd data types for representation of DTD types</span>-<a name="line-141"></a>-<a name="line-142"></a><a name="scDT"></a><span class='definition'>scDT</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>Schema</span>-<a name="line-143"></a><span class='definition'>scDT</span> <span class='varid'>l</span> <span class='varid'>n</span> <span class='varid'>rl</span> <span class='keyglyph'>=</span> <span class='conid'>CharData</span> <span class='varop'>$</span> <span class='conid'>DTDescr</span> <span class='varid'>l</span> <span class='varid'>n</span> <span class='varid'>rl</span>-<a name="line-144"></a>-<a name="line-145"></a><a name="scDTxsd"></a><span class='definition'>scDTxsd</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>Schema</span>-<a name="line-146"></a><span class='definition'>scDTxsd</span> <span class='keyglyph'>=</span> <span class='varid'>scDT</span> <span class='varid'>w3cNS</span>-<a name="line-147"></a>-<a name="line-148"></a><a name="scString"></a><span class='definition'>scString</span> <span class='keyglyph'>::</span> <span class='conid'>Schema</span>-<a name="line-149"></a><span class='definition'>scString</span> <span class='keyglyph'>=</span> <span class='varid'>scDTxsd</span> <span class='varid'>xsd_string</span> <span class='conid'>[]</span>-<a name="line-150"></a>-<a name="line-151"></a><a name="scString1"></a><span class='definition'>scString1</span> <span class='keyglyph'>::</span> <span class='conid'>Schema</span>-<a name="line-152"></a><span class='definition'>scString1</span> <span class='keyglyph'>=</span> <span class='varid'>scDTxsd</span> <span class='varid'>xsd_string</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>xsd_minLength</span><span class='layout'>,</span> <span class='str'>"1"</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-153"></a>-<a name="line-154"></a><a name="scFixed"></a><span class='definition'>scFixed</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Schema</span>-<a name="line-155"></a><span class='definition'>scFixed</span> <span class='varid'>v</span> <span class='keyglyph'>=</span> <span class='varid'>scDTxsd</span> <span class='varid'>xsd_string</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>xsd_enumeration</span><span class='layout'>,</span> <span class='varid'>v</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-156"></a>-<a name="line-157"></a><a name="scEnum"></a><span class='definition'>scEnum</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>Schema</span>-<a name="line-158"></a><span class='definition'>scEnum</span> <span class='varid'>vs</span> <span class='keyglyph'>=</span> <span class='varid'>scFixed</span> <span class='layout'>(</span><span class='varid'>unwords</span> <span class='varid'>vs</span><span class='layout'>)</span>-<a name="line-159"></a>-<a name="line-160"></a><a name="scNmtoken"></a><span class='definition'>scNmtoken</span> <span class='keyglyph'>::</span> <span class='conid'>Schema</span>-<a name="line-161"></a><span class='definition'>scNmtoken</span> <span class='keyglyph'>=</span> <span class='varid'>scDTxsd</span> <span class='varid'>xsd_NCName</span> <span class='conid'>[]</span>-<a name="line-162"></a>-<a name="line-163"></a><a name="scNmtokens"></a><span class='definition'>scNmtokens</span> <span class='keyglyph'>::</span> <span class='conid'>Schema</span>-<a name="line-164"></a><span class='definition'>scNmtokens</span> <span class='keyglyph'>=</span> <span class='varid'>scList</span> <span class='varid'>scNmtoken</span>-<a name="line-165"></a>-<a name="line-166"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-167"></a>-<a name="line-168"></a><a name="scEmpty"></a><span class='definition'>scEmpty</span> <span class='keyglyph'>::</span> <span class='conid'>Schema</span>-<a name="line-169"></a><span class='definition'>scEmpty</span> <span class='keyglyph'>=</span> <span class='conid'>Seq</span> <span class='conid'>[]</span>-<a name="line-170"></a>-<a name="line-171"></a><a name="scSeq"></a><span class='definition'>scSeq</span> <span class='keyglyph'>::</span> <span class='conid'>Schema</span> <span class='keyglyph'>-></span> <span class='conid'>Schema</span> <span class='keyglyph'>-></span> <span class='conid'>Schema</span>-<a name="line-172"></a><span class='definition'>scSeq</span> <span class='layout'>(</span><span class='conid'>Seq</span> <span class='conid'>[]</span><span class='layout'>)</span> <span class='varid'>sc2</span> <span class='keyglyph'>=</span> <span class='varid'>sc2</span>-<a name="line-173"></a><span class='definition'>scSeq</span> <span class='varid'>sc1</span> <span class='layout'>(</span><span class='conid'>Seq</span> <span class='conid'>[]</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>sc1</span>-<a name="line-174"></a><span class='definition'>scSeq</span> <span class='layout'>(</span><span class='conid'>Seq</span> <span class='varid'>scs1</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>Seq</span> <span class='varid'>scs2</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>Seq</span> <span class='layout'>(</span><span class='varid'>scs1</span> <span class='varop'>++</span> <span class='varid'>scs2</span><span class='layout'>)</span> <span class='comment'>-- prevent nested Seq expr</span>-<a name="line-175"></a><span class='definition'>scSeq</span> <span class='layout'>(</span><span class='conid'>Seq</span> <span class='varid'>scs1</span><span class='layout'>)</span> <span class='varid'>sc2</span> <span class='keyglyph'>=</span> <span class='conid'>Seq</span> <span class='layout'>(</span><span class='varid'>scs1</span> <span class='varop'>++</span> <span class='keyglyph'>[</span><span class='varid'>sc2</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-176"></a><span class='definition'>scSeq</span> <span class='varid'>sc1</span> <span class='layout'>(</span><span class='conid'>Seq</span> <span class='varid'>scs2</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>Seq</span> <span class='layout'>(</span><span class='varid'>sc1</span> <span class='conop'>:</span> <span class='varid'>scs2</span><span class='layout'>)</span>-<a name="line-177"></a><span class='definition'>scSeq</span> <span class='varid'>sc1</span> <span class='varid'>sc2</span> <span class='keyglyph'>=</span> <span class='conid'>Seq</span> <span class='keyglyph'>[</span><span class='varid'>sc1</span><span class='layout'>,</span><span class='varid'>sc2</span><span class='keyglyph'>]</span>-<a name="line-178"></a>-<a name="line-179"></a><a name="scSeqs"></a><span class='definition'>scSeqs</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>Schema</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>Schema</span>-<a name="line-180"></a><span class='definition'>scSeqs</span> <span class='keyglyph'>=</span> <span class='varid'>foldl</span> <span class='varid'>scSeq</span> <span class='varid'>scEmpty</span>-<a name="line-181"></a>-<a name="line-182"></a><a name="scNull"></a><span class='definition'>scNull</span> <span class='keyglyph'>::</span> <span class='conid'>Schema</span>-<a name="line-183"></a><span class='definition'>scNull</span> <span class='keyglyph'>=</span> <span class='conid'>Alt</span> <span class='conid'>[]</span>-<a name="line-184"></a>-<a name="line-185"></a><a name="scAlt"></a><span class='definition'>scAlt</span> <span class='keyglyph'>::</span> <span class='conid'>Schema</span> <span class='keyglyph'>-></span> <span class='conid'>Schema</span> <span class='keyglyph'>-></span> <span class='conid'>Schema</span>-<a name="line-186"></a><span class='definition'>scAlt</span> <span class='layout'>(</span><span class='conid'>Alt</span> <span class='conid'>[]</span><span class='layout'>)</span> <span class='varid'>sc2</span> <span class='keyglyph'>=</span> <span class='varid'>sc2</span>-<a name="line-187"></a><span class='definition'>scAlt</span> <span class='varid'>sc1</span> <span class='layout'>(</span><span class='conid'>Alt</span> <span class='conid'>[]</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>sc1</span>-<a name="line-188"></a><span class='definition'>scAlt</span> <span class='layout'>(</span><span class='conid'>Alt</span> <span class='varid'>scs1</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>Alt</span> <span class='varid'>scs2</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>Alt</span> <span class='layout'>(</span><span class='varid'>scs1</span> <span class='varop'>++</span> <span class='varid'>scs2</span><span class='layout'>)</span> <span class='comment'>-- prevent nested Alt expr</span>-<a name="line-189"></a><span class='definition'>scAlt</span> <span class='layout'>(</span><span class='conid'>Alt</span> <span class='varid'>scs1</span><span class='layout'>)</span> <span class='varid'>sc2</span> <span class='keyglyph'>=</span> <span class='conid'>Alt</span> <span class='layout'>(</span><span class='varid'>scs1</span> <span class='varop'>++</span> <span class='keyglyph'>[</span><span class='varid'>sc2</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-190"></a><span class='definition'>scAlt</span> <span class='varid'>sc1</span> <span class='layout'>(</span><span class='conid'>Alt</span> <span class='varid'>scs2</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>Alt</span> <span class='layout'>(</span><span class='varid'>sc1</span> <span class='conop'>:</span> <span class='varid'>scs2</span><span class='layout'>)</span>-<a name="line-191"></a><span class='definition'>scAlt</span> <span class='varid'>sc1</span> <span class='varid'>sc2</span> <span class='keyglyph'>=</span> <span class='conid'>Alt</span> <span class='keyglyph'>[</span><span class='varid'>sc1</span><span class='layout'>,</span><span class='varid'>sc2</span><span class='keyglyph'>]</span>-<a name="line-192"></a>-<a name="line-193"></a><a name="scAlts"></a><span class='definition'>scAlts</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>Schema</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>Schema</span>-<a name="line-194"></a><span class='definition'>scAlts</span> <span class='keyglyph'>=</span> <span class='varid'>foldl</span> <span class='varid'>scAlt</span> <span class='varid'>scNull</span>-<a name="line-195"></a>-<a name="line-196"></a><a name="scOption"></a><span class='definition'>scOption</span> <span class='keyglyph'>::</span> <span class='conid'>Schema</span> <span class='keyglyph'>-></span> <span class='conid'>Schema</span>-<a name="line-197"></a><span class='definition'>scOption</span> <span class='layout'>(</span><span class='conid'>Seq</span> <span class='conid'>[]</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>scEmpty</span>-<a name="line-198"></a><span class='definition'>scOption</span> <span class='layout'>(</span><span class='conid'>Attribute</span> <span class='varid'>n</span> <span class='varid'>sc2</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>Attribute</span> <span class='varid'>n</span> <span class='layout'>(</span><span class='varid'>scOption</span> <span class='varid'>sc2</span><span class='layout'>)</span>-<a name="line-199"></a><span class='definition'>scOption</span> <span class='varid'>sc1</span>-<a name="line-200"></a> <span class='keyglyph'>|</span> <span class='varid'>sc1</span> <span class='varop'>==</span> <span class='varid'>scString1</span> <span class='keyglyph'>=</span> <span class='varid'>scString</span>-<a name="line-201"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>scOpt</span> <span class='varid'>sc1</span>-<a name="line-202"></a>-<a name="line-203"></a><a name="scList"></a><span class='definition'>scList</span> <span class='keyglyph'>::</span> <span class='conid'>Schema</span> <span class='keyglyph'>-></span> <span class='conid'>Schema</span>-<a name="line-204"></a><span class='definition'>scList</span> <span class='keyglyph'>=</span> <span class='varid'>scRep</span> <span class='num'>0</span> <span class='layout'>(</span><span class='comment'>-</span><span class='num'>1</span><span class='layout'>)</span>-<a name="line-205"></a>-<a name="line-206"></a><a name="scList1"></a><span class='definition'>scList1</span> <span class='keyglyph'>::</span> <span class='conid'>Schema</span> <span class='keyglyph'>-></span> <span class='conid'>Schema</span>-<a name="line-207"></a><span class='definition'>scList1</span> <span class='keyglyph'>=</span> <span class='varid'>scRep</span> <span class='num'>1</span> <span class='layout'>(</span><span class='comment'>-</span><span class='num'>1</span><span class='layout'>)</span>-<a name="line-208"></a>-<a name="line-209"></a><a name="scOpt"></a><span class='definition'>scOpt</span> <span class='keyglyph'>::</span> <span class='conid'>Schema</span> <span class='keyglyph'>-></span> <span class='conid'>Schema</span>-<a name="line-210"></a><span class='definition'>scOpt</span> <span class='keyglyph'>=</span> <span class='varid'>scRep</span> <span class='num'>0</span> <span class='num'>1</span>-<a name="line-211"></a>-<a name="line-212"></a><a name="scRep"></a><span class='definition'>scRep</span> <span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-></span> <span class='conid'>Int</span> <span class='keyglyph'>-></span> <span class='conid'>Schema</span> <span class='keyglyph'>-></span> <span class='conid'>Schema</span>-<a name="line-213"></a><span class='definition'>scRep</span> <span class='varid'>l</span> <span class='varid'>u</span> <span class='varid'>sc1</span> <span class='keyglyph'>=</span> <span class='conid'>Rep</span> <span class='varid'>l</span> <span class='varid'>u</span> <span class='varid'>sc1</span>-<a name="line-214"></a>-<a name="line-215"></a><a name="scElem"></a><span class='definition'>scElem</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Schema</span> <span class='keyglyph'>-></span> <span class='conid'>Schema</span>-<a name="line-216"></a><span class='definition'>scElem</span> <span class='varid'>n</span> <span class='varid'>sc1</span> <span class='keyglyph'>=</span> <span class='conid'>Element</span> <span class='varid'>n</span> <span class='varid'>sc1</span>-<a name="line-217"></a>-<a name="line-218"></a><a name="scAttr"></a><span class='definition'>scAttr</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Schema</span> <span class='keyglyph'>-></span> <span class='conid'>Schema</span>-<a name="line-219"></a><span class='definition'>scAttr</span> <span class='varid'>n</span> <span class='varid'>sc1</span> <span class='keyglyph'>=</span> <span class='conid'>Attribute</span> <span class='varid'>n</span> <span class='varid'>sc1</span>-<a name="line-220"></a>-<a name="line-221"></a><span class='comment'>-- ------------------------------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-Arrow-Pickle-Xml.html
@@ -1,704 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Text.XML.HXT.Arrow.Pickle.Xml-<a name="line-5"></a> Copyright : Copyright (C) 2005-2008 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe@fh-wedel.de)-<a name="line-9"></a> Stability : experimental-<a name="line-10"></a> Portability: portable-<a name="line-11"></a>-<a name="line-12"></a> Pickler functions for converting between user defined data types-<a name="line-13"></a> and XmlTree data. Usefull for persistent storage and retreival-<a name="line-14"></a> of arbitray data as XML documents-<a name="line-15"></a>-<a name="line-16"></a> This module is an adaptation of the pickler combinators-<a name="line-17"></a> developed by Andrew Kennedy-<a name="line-18"></a> ( http:\/\/research.microsoft.com\/~akenn\/fun\/picklercombinators.pdf )-<a name="line-19"></a>-<a name="line-20"></a> The difference to Kennedys approach is that the target is not-<a name="line-21"></a> a list of Chars but a list of XmlTrees. The basic picklers will-<a name="line-22"></a> convert data into XML text nodes. New are the picklers for-<a name="line-23"></a> creating elements and attributes.-<a name="line-24"></a>-<a name="line-25"></a> One extension was neccessary: The unpickling may fail.-<a name="line-26"></a> Therefore the unpickler has a Maybe result type.-<a name="line-27"></a> Failure is used to unpickle optional elements-<a name="line-28"></a> (Maybe data) and lists of arbitray length-<a name="line-29"></a>-<a name="line-30"></a> There is an example program demonstrating the use-<a name="line-31"></a> of the picklers for a none trivial data structure.-<a name="line-32"></a> (see \"examples\/arrows\/pickle\" directory)-<a name="line-33"></a>-<a name="line-34"></a>-}</span>-<a name="line-35"></a>-<a name="line-36"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-37"></a>-<a name="line-38"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>Pickle</span><span class='varop'>.</span><span class='conid'>Xml</span>-<a name="line-39"></a><span class='keyword'>where</span>-<a name="line-40"></a>-<a name="line-41"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>-<a name="line-42"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Map</span> <span class='layout'>(</span><span class='conid'>Map</span><span class='layout'>)</span>-<a name="line-43"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Map</span> <span class='keyword'>as</span> <span class='conid'>M</span>-<a name="line-44"></a>-<a name="line-45"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>-<a name="line-46"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlNode</span> <span class='keyword'>as</span> <span class='conid'>XN</span>-<a name="line-47"></a>-<a name="line-48"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ListArrows</span>-<a name="line-49"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlArrow</span>-<a name="line-50"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>Pickle</span><span class='varop'>.</span><span class='conid'>Schema</span>-<a name="line-51"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ReadDocument</span> <span class='layout'>(</span><span class='varid'>xread</span><span class='layout'>)</span>-<a name="line-52"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>Edit</span> <span class='layout'>(</span><span class='varid'>xshowEscapeXml</span><span class='layout'>)</span>-<a name="line-53"></a>-<a name="line-54"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-55"></a>-<a name="line-56"></a><a name="St"></a><span class='keyword'>data</span> <span class='conid'>St</span> <span class='keyglyph'>=</span> <span class='conid'>St</span> <span class='layout'>{</span> <span class='varid'>attributes</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>-<a name="line-57"></a> <span class='layout'>,</span> <span class='varid'>contents</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>-<a name="line-58"></a> <span class='layout'>}</span>-<a name="line-59"></a>-<a name="line-60"></a><a name="PU"></a><span class='keyword'>data</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>=</span> <span class='conid'>PU</span> <span class='layout'>{</span> <span class='varid'>appPickle</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='conid'>St</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>St</span>-<a name="line-61"></a> <span class='layout'>,</span> <span class='varid'>appUnPickle</span> <span class='keyglyph'>::</span> <span class='conid'>St</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='conid'>Maybe</span> <span class='varid'>a</span><span class='layout'>,</span> <span class='conid'>St</span><span class='layout'>)</span>-<a name="line-62"></a> <span class='layout'>,</span> <span class='varid'>theSchema</span> <span class='keyglyph'>::</span> <span class='conid'>Schema</span>-<a name="line-63"></a> <span class='layout'>}</span>-<a name="line-64"></a>-<a name="line-65"></a><a name="emptySt"></a><span class='definition'>emptySt</span> <span class='keyglyph'>::</span> <span class='conid'>St</span>-<a name="line-66"></a><span class='definition'>emptySt</span> <span class='keyglyph'>=</span> <span class='conid'>St</span> <span class='layout'>{</span> <span class='varid'>attributes</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-67"></a> <span class='layout'>,</span> <span class='varid'>contents</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-68"></a> <span class='layout'>}</span>-<a name="line-69"></a>-<a name="line-70"></a><a name="addAtt"></a><span class='definition'>addAtt</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>St</span> <span class='keyglyph'>-></span> <span class='conid'>St</span>-<a name="line-71"></a><span class='definition'>addAtt</span> <span class='varid'>x</span> <span class='varid'>s</span> <span class='keyglyph'>=</span> <span class='varid'>s</span> <span class='layout'>{</span><span class='varid'>attributes</span> <span class='keyglyph'>=</span> <span class='varid'>x</span> <span class='conop'>:</span> <span class='varid'>attributes</span> <span class='varid'>s</span><span class='layout'>}</span>-<a name="line-72"></a>-<a name="line-73"></a><a name="addCont"></a><span class='definition'>addCont</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>St</span> <span class='keyglyph'>-></span> <span class='conid'>St</span>-<a name="line-74"></a><span class='definition'>addCont</span> <span class='varid'>x</span> <span class='varid'>s</span> <span class='keyglyph'>=</span> <span class='varid'>s</span> <span class='layout'>{</span><span class='varid'>contents</span> <span class='keyglyph'>=</span> <span class='varid'>x</span> <span class='conop'>:</span> <span class='varid'>contents</span> <span class='varid'>s</span><span class='layout'>}</span>-<a name="line-75"></a>-<a name="line-76"></a><a name="dropCont"></a><span class='definition'>dropCont</span> <span class='keyglyph'>::</span> <span class='conid'>St</span> <span class='keyglyph'>-></span> <span class='conid'>St</span>-<a name="line-77"></a><span class='definition'>dropCont</span> <span class='varid'>s</span> <span class='keyglyph'>=</span> <span class='varid'>s</span> <span class='layout'>{</span> <span class='varid'>contents</span> <span class='keyglyph'>=</span> <span class='varid'>drop</span> <span class='num'>1</span> <span class='layout'>(</span><span class='varid'>contents</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='layout'>}</span>-<a name="line-78"></a>-<a name="line-79"></a><a name="getAtt"></a><span class='definition'>getAtt</span> <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='conid'>St</span> <span class='keyglyph'>-></span> <span class='conid'>Maybe</span> <span class='conid'>XmlTree</span>-<a name="line-80"></a><span class='definition'>getAtt</span> <span class='varid'>qn</span> <span class='varid'>s</span>-<a name="line-81"></a> <span class='keyglyph'>=</span> <span class='varid'>listToMaybe</span> <span class='varop'>$</span>-<a name="line-82"></a> <span class='varid'>runLA</span> <span class='layout'>(</span> <span class='varid'>arrL</span> <span class='varid'>attributes</span>-<a name="line-83"></a> <span class='varop'>>>></span>-<a name="line-84"></a> <span class='varid'>isAttr</span> <span class='varop'>>>></span> <span class='varid'>hasQName</span> <span class='varid'>qn</span>-<a name="line-85"></a> <span class='layout'>)</span> <span class='varid'>s</span>-<a name="line-86"></a>-<a name="line-87"></a><a name="getCont"></a><span class='definition'>getCont</span> <span class='keyglyph'>::</span> <span class='conid'>St</span> <span class='keyglyph'>-></span> <span class='conid'>Maybe</span> <span class='conid'>XmlTree</span>-<a name="line-88"></a><span class='definition'>getCont</span> <span class='varid'>s</span> <span class='keyglyph'>=</span> <span class='varid'>listToMaybe</span> <span class='varop'>.</span> <span class='varid'>contents</span> <span class='varop'>$</span> <span class='varid'>s</span>-<a name="line-89"></a>-<a name="line-90"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-91"></a>-<a name="line-92"></a><span class='comment'>-- | conversion of an arbitrary value into an XML document tree.</span>-<a name="line-93"></a><span class='comment'>--</span>-<a name="line-94"></a><span class='comment'>-- The pickler, first parameter, controls the conversion process.</span>-<a name="line-95"></a><span class='comment'>-- Result is a complete document tree including a root node</span>-<a name="line-96"></a>-<a name="line-97"></a><a name="pickleDoc"></a><span class='definition'>pickleDoc</span> <span class='keyglyph'>::</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span>-<a name="line-98"></a><span class='definition'>pickleDoc</span> <span class='varid'>p</span> <span class='varid'>v</span>-<a name="line-99"></a> <span class='keyglyph'>=</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkRoot</span> <span class='layout'>(</span><span class='varid'>attributes</span> <span class='varid'>st</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>contents</span> <span class='varid'>st</span><span class='layout'>)</span>-<a name="line-100"></a> <span class='keyword'>where</span>-<a name="line-101"></a> <span class='varid'>st</span> <span class='keyglyph'>=</span> <span class='varid'>appPickle</span> <span class='varid'>p</span> <span class='layout'>(</span><span class='varid'>v</span><span class='layout'>,</span> <span class='varid'>emptySt</span><span class='layout'>)</span>-<a name="line-102"></a>-<a name="line-103"></a><span class='comment'>-- | Conversion of an XML document tree into an arbitrary data type</span>-<a name="line-104"></a><span class='comment'>--</span>-<a name="line-105"></a><span class='comment'>-- The inverse of 'pickleDoc'.</span>-<a name="line-106"></a><span class='comment'>-- This law should hold for all picklers: @ unpickle px . pickle px $ v == Just v @.</span>-<a name="line-107"></a><span class='comment'>-- Not every possible combination of picklers make sense.</span>-<a name="line-108"></a><span class='comment'>-- For reconverting a value from an XML tree, is becomes neccessary,</span>-<a name="line-109"></a><span class='comment'>-- to introduce \"enough\" markup for unpickling the value</span>-<a name="line-110"></a>-<a name="line-111"></a><a name="unpickleDoc"></a><span class='definition'>unpickleDoc</span> <span class='keyglyph'>::</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>Maybe</span> <span class='varid'>a</span>-<a name="line-112"></a><span class='definition'>unpickleDoc</span> <span class='varid'>p</span> <span class='varid'>t</span>-<a name="line-113"></a> <span class='keyglyph'>|</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isRoot</span> <span class='varid'>t</span>-<a name="line-114"></a> <span class='keyglyph'>=</span> <span class='varid'>fst</span> <span class='varop'>.</span> <span class='varid'>appUnPickle</span> <span class='varid'>p</span> <span class='varop'>$</span> <span class='conid'>St</span> <span class='layout'>{</span> <span class='varid'>attributes</span> <span class='keyglyph'>=</span> <span class='varid'>fromJust</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getAttrl</span> <span class='varop'>$</span> <span class='varid'>t</span>-<a name="line-115"></a> <span class='layout'>,</span> <span class='varid'>contents</span> <span class='keyglyph'>=</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getChildren</span> <span class='varid'>t</span>-<a name="line-116"></a> <span class='layout'>}</span>-<a name="line-117"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-118"></a> <span class='keyglyph'>=</span> <span class='varid'>unpickleDoc</span> <span class='varid'>p</span> <span class='layout'>(</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkRoot</span> <span class='conid'>[]</span> <span class='keyglyph'>[</span><span class='varid'>t</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-119"></a>-<a name="line-120"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-121"></a>-<a name="line-122"></a><span class='comment'>-- | The zero pickler</span>-<a name="line-123"></a><span class='comment'>--</span>-<a name="line-124"></a><span class='comment'>-- Encodes nothing, fails always during unpickling</span>-<a name="line-125"></a>-<a name="line-126"></a><a name="xpZero"></a><span class='definition'>xpZero</span> <span class='keyglyph'>::</span> <span class='conid'>PU</span> <span class='varid'>a</span>-<a name="line-127"></a><span class='definition'>xpZero</span> <span class='keyglyph'>=</span> <span class='conid'>PU</span> <span class='layout'>{</span> <span class='varid'>appPickle</span> <span class='keyglyph'>=</span> <span class='varid'>snd</span>-<a name="line-128"></a> <span class='layout'>,</span> <span class='varid'>appUnPickle</span> <span class='keyglyph'>=</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='conid'>Nothing</span><span class='layout'>,</span> <span class='varid'>s</span><span class='layout'>)</span>-<a name="line-129"></a> <span class='layout'>,</span> <span class='varid'>theSchema</span> <span class='keyglyph'>=</span> <span class='varid'>scNull</span>-<a name="line-130"></a> <span class='layout'>}</span>-<a name="line-131"></a>-<a name="line-132"></a><span class='comment'>-- unit pickler</span>-<a name="line-133"></a>-<a name="line-134"></a><a name="xpUnit"></a><span class='definition'>xpUnit</span> <span class='keyglyph'>::</span> <span class='conid'>PU</span> <span class='conid'>()</span>-<a name="line-135"></a><span class='definition'>xpUnit</span> <span class='keyglyph'>=</span> <span class='varid'>xpLift</span> <span class='conid'>()</span>-<a name="line-136"></a>-<a name="line-137"></a><span class='comment'>-- | Lift a value to a pickler</span>-<a name="line-138"></a><span class='comment'>--</span>-<a name="line-139"></a><span class='comment'>-- When pickling, nothing is encoded, when unpickling, the given value is inserted.</span>-<a name="line-140"></a><span class='comment'>-- This pickler always succeeds.</span>-<a name="line-141"></a>-<a name="line-142"></a><a name="xpLift"></a><span class='definition'>xpLift</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>PU</span> <span class='varid'>a</span>-<a name="line-143"></a><span class='definition'>xpLift</span> <span class='varid'>x</span> <span class='keyglyph'>=</span> <span class='conid'>PU</span> <span class='layout'>{</span> <span class='varid'>appPickle</span> <span class='keyglyph'>=</span> <span class='varid'>snd</span>-<a name="line-144"></a> <span class='layout'>,</span> <span class='varid'>appUnPickle</span> <span class='keyglyph'>=</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>x</span><span class='layout'>,</span> <span class='varid'>s</span><span class='layout'>)</span>-<a name="line-145"></a> <span class='layout'>,</span> <span class='varid'>theSchema</span> <span class='keyglyph'>=</span> <span class='varid'>scEmpty</span>-<a name="line-146"></a> <span class='layout'>}</span>-<a name="line-147"></a>-<a name="line-148"></a><span class='comment'>-- | Lift a Maybe value to a pickler.</span>-<a name="line-149"></a><span class='comment'>--</span>-<a name="line-150"></a><span class='comment'>-- @Nothing@ is mapped to the zero pickler, @Just x@ is pickled with @xpLift x@.</span>-<a name="line-151"></a>-<a name="line-152"></a><a name="xpLiftMaybe"></a><span class='definition'>xpLiftMaybe</span> <span class='keyglyph'>::</span> <span class='conid'>Maybe</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>PU</span> <span class='varid'>a</span>-<a name="line-153"></a><span class='definition'>xpLiftMaybe</span> <span class='varid'>v</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>xpLiftMaybe'</span> <span class='varid'>v</span><span class='layout'>)</span> <span class='layout'>{</span> <span class='varid'>theSchema</span> <span class='keyglyph'>=</span> <span class='varid'>scOption</span> <span class='varid'>scEmpty</span> <span class='layout'>}</span>-<a name="line-154"></a> <span class='keyword'>where</span>-<a name="line-155"></a> <span class='varid'>xpLiftMaybe'</span> <span class='conid'>Nothing</span> <span class='keyglyph'>=</span> <span class='varid'>xpZero</span>-<a name="line-156"></a> <span class='varid'>xpLiftMaybe'</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>x</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>xpLift</span> <span class='varid'>x</span>-<a name="line-157"></a>-<a name="line-158"></a>-<a name="line-159"></a><span class='comment'>-- | pickle\/unpickle combinator for sequence and choice.</span>-<a name="line-160"></a><span class='comment'>--</span>-<a name="line-161"></a><span class='comment'>-- When the first unpickler fails,</span>-<a name="line-162"></a><span class='comment'>-- the second one is taken, else the third one configured with the result from the first</span>-<a name="line-163"></a><span class='comment'>-- is taken. This pickler is a generalisation for 'xpSeq' and 'xpChoice' .</span>-<a name="line-164"></a><span class='comment'>--</span>-<a name="line-165"></a><span class='comment'>-- The schema must be attached later, e.g. in xpPair or other higher level combinators</span>-<a name="line-166"></a>-<a name="line-167"></a><a name="xpCondSeq"></a><span class='definition'>xpCondSeq</span> <span class='keyglyph'>::</span> <span class='conid'>PU</span> <span class='varid'>b</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='varid'>b</span> <span class='keyglyph'>-></span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>PU</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>PU</span> <span class='varid'>b</span>-<a name="line-168"></a><span class='definition'>xpCondSeq</span> <span class='varid'>pd</span> <span class='varid'>f</span> <span class='varid'>pa</span> <span class='varid'>k</span>-<a name="line-169"></a> <span class='keyglyph'>=</span> <span class='conid'>PU</span> <span class='layout'>{</span> <span class='varid'>appPickle</span> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyglyph'>\</span> <span class='layout'>(</span><span class='varid'>b</span><span class='layout'>,</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyglyph'>-></span>-<a name="line-170"></a> <span class='keyword'>let</span>-<a name="line-171"></a> <span class='varid'>a</span> <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varid'>b</span>-<a name="line-172"></a> <span class='varid'>pb</span> <span class='keyglyph'>=</span> <span class='varid'>k</span> <span class='varid'>a</span>-<a name="line-173"></a> <span class='keyword'>in</span>-<a name="line-174"></a> <span class='varid'>appPickle</span> <span class='varid'>pa</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>appPickle</span> <span class='varid'>pb</span> <span class='layout'>(</span><span class='varid'>b</span><span class='layout'>,</span> <span class='varid'>s</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-175"></a> <span class='layout'>)</span>-<a name="line-176"></a> <span class='layout'>,</span> <span class='varid'>appUnPickle</span> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='keyglyph'>-></span>-<a name="line-177"></a> <span class='keyword'>let</span>-<a name="line-178"></a> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>s'</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>appUnPickle</span> <span class='varid'>pa</span> <span class='varid'>s</span>-<a name="line-179"></a> <span class='keyword'>in</span>-<a name="line-180"></a> <span class='keyword'>case</span> <span class='varid'>a</span> <span class='keyword'>of</span>-<a name="line-181"></a> <span class='conid'>Nothing</span> <span class='keyglyph'>-></span> <span class='varid'>appUnPickle</span> <span class='varid'>pd</span> <span class='varid'>s</span>-<a name="line-182"></a> <span class='conid'>Just</span> <span class='varid'>a'</span> <span class='keyglyph'>-></span> <span class='varid'>appUnPickle</span> <span class='layout'>(</span><span class='varid'>k</span> <span class='varid'>a'</span><span class='layout'>)</span> <span class='varid'>s'</span>-<a name="line-183"></a> <span class='layout'>)</span>-<a name="line-184"></a> <span class='layout'>,</span> <span class='varid'>theSchema</span> <span class='keyglyph'>=</span> <span class='varid'>undefined</span>-<a name="line-185"></a> <span class='layout'>}</span>-<a name="line-186"></a>-<a name="line-187"></a>-<a name="line-188"></a><span class='comment'>-- | Combine two picklers sequentially.</span>-<a name="line-189"></a><span class='comment'>--</span>-<a name="line-190"></a><span class='comment'>-- If the first fails during</span>-<a name="line-191"></a><span class='comment'>-- unpickling, the whole unpickler fails</span>-<a name="line-192"></a>-<a name="line-193"></a><a name="xpSeq"></a><span class='definition'>xpSeq</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>b</span> <span class='keyglyph'>-></span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>PU</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>PU</span> <span class='varid'>b</span>-<a name="line-194"></a><span class='definition'>xpSeq</span> <span class='keyglyph'>=</span> <span class='varid'>xpCondSeq</span> <span class='varid'>xpZero</span>-<a name="line-195"></a>-<a name="line-196"></a>-<a name="line-197"></a><span class='comment'>-- | combine tow picklers with a choice</span>-<a name="line-198"></a><span class='comment'>--</span>-<a name="line-199"></a><span class='comment'>-- Run two picklers in sequence like with xpSeq.</span>-<a name="line-200"></a><span class='comment'>-- When during unpickling the first one fails,</span>-<a name="line-201"></a><span class='comment'>-- an alternative pickler (first argument) is applied.</span>-<a name="line-202"></a><span class='comment'>-- This pickler is only used as combinator for unpickling.</span>-<a name="line-203"></a> -<a name="line-204"></a><a name="xpChoice"></a><span class='definition'>xpChoice</span> <span class='keyglyph'>::</span> <span class='conid'>PU</span> <span class='varid'>b</span> <span class='keyglyph'>-></span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>PU</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>PU</span> <span class='varid'>b</span>-<a name="line-205"></a><span class='definition'>xpChoice</span> <span class='varid'>pb</span> <span class='keyglyph'>=</span> <span class='varid'>xpCondSeq</span> <span class='varid'>pb</span> <span class='varid'>undefined</span>-<a name="line-206"></a>-<a name="line-207"></a>-<a name="line-208"></a><span class='comment'>-- | map value into another domain and apply pickler there</span>-<a name="line-209"></a><span class='comment'>--</span>-<a name="line-210"></a><span class='comment'>-- One of the most often used picklers.</span>-<a name="line-211"></a>-<a name="line-212"></a><a name="xpWrap"></a><span class='definition'>xpWrap</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='varid'>b</span><span class='layout'>,</span> <span class='varid'>b</span> <span class='keyglyph'>-></span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>PU</span> <span class='varid'>b</span>-<a name="line-213"></a><span class='definition'>xpWrap</span> <span class='layout'>(</span><span class='varid'>i</span><span class='layout'>,</span> <span class='varid'>j</span><span class='layout'>)</span> <span class='varid'>pa</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>xpSeq</span> <span class='varid'>j</span> <span class='varid'>pa</span> <span class='layout'>(</span><span class='varid'>xpLift</span> <span class='varop'>.</span> <span class='varid'>i</span><span class='layout'>)</span><span class='layout'>)</span> <span class='layout'>{</span> <span class='varid'>theSchema</span> <span class='keyglyph'>=</span> <span class='varid'>theSchema</span> <span class='varid'>pa</span> <span class='layout'>}</span>-<a name="line-214"></a>-<a name="line-215"></a><span class='comment'>-- | like 'xpWrap', but if the inverse mapping is undefined, the unpickler fails</span>-<a name="line-216"></a><span class='comment'>--</span>-<a name="line-217"></a><span class='comment'>-- Map a value into another domain. If the inverse mapping is</span>-<a name="line-218"></a><span class='comment'>-- undefined (Nothing), the unpickler fails</span>-<a name="line-219"></a>-<a name="line-220"></a><a name="xpWrapMaybe"></a><span class='definition'>xpWrapMaybe</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>Maybe</span> <span class='varid'>b</span><span class='layout'>,</span> <span class='varid'>b</span> <span class='keyglyph'>-></span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>PU</span> <span class='varid'>b</span>-<a name="line-221"></a><span class='definition'>xpWrapMaybe</span> <span class='layout'>(</span><span class='varid'>i</span><span class='layout'>,</span> <span class='varid'>j</span><span class='layout'>)</span> <span class='varid'>pa</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>xpSeq</span> <span class='varid'>j</span> <span class='varid'>pa</span> <span class='layout'>(</span><span class='varid'>xpLiftMaybe</span> <span class='varop'>.</span> <span class='varid'>i</span><span class='layout'>)</span><span class='layout'>)</span> <span class='layout'>{</span> <span class='varid'>theSchema</span> <span class='keyglyph'>=</span> <span class='varid'>theSchema</span> <span class='varid'>pa</span> <span class='layout'>}</span>-<a name="line-222"></a>-<a name="line-223"></a><span class='comment'>-- | pickle a pair of values sequentially</span>-<a name="line-224"></a><span class='comment'>--</span>-<a name="line-225"></a><span class='comment'>-- Used for pairs or together with wrap for pickling</span>-<a name="line-226"></a><span class='comment'>-- algebraic data types with two components</span>-<a name="line-227"></a>-<a name="line-228"></a><a name="xpPair"></a><span class='definition'>xpPair</span> <span class='keyglyph'>::</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>PU</span> <span class='varid'>b</span> <span class='keyglyph'>-></span> <span class='conid'>PU</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>b</span><span class='layout'>)</span>-<a name="line-229"></a><span class='definition'>xpPair</span> <span class='varid'>pa</span> <span class='varid'>pb</span>-<a name="line-230"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>xpSeq</span> <span class='varid'>fst</span> <span class='varid'>pa</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>a</span> <span class='keyglyph'>-></span>-<a name="line-231"></a> <span class='varid'>xpSeq</span> <span class='varid'>snd</span> <span class='varid'>pb</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>b</span> <span class='keyglyph'>-></span>-<a name="line-232"></a> <span class='varid'>xpLift</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span><span class='varid'>b</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-233"></a> <span class='layout'>)</span> <span class='layout'>{</span> <span class='varid'>theSchema</span> <span class='keyglyph'>=</span> <span class='varid'>scSeq</span> <span class='layout'>(</span><span class='varid'>theSchema</span> <span class='varid'>pa</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>theSchema</span> <span class='varid'>pb</span><span class='layout'>)</span> <span class='layout'>}</span>-<a name="line-234"></a>-<a name="line-235"></a><span class='comment'>-- | Like 'xpPair' but for triples</span>-<a name="line-236"></a>-<a name="line-237"></a><a name="xpTriple"></a><span class='definition'>xpTriple</span> <span class='keyglyph'>::</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>PU</span> <span class='varid'>b</span> <span class='keyglyph'>-></span> <span class='conid'>PU</span> <span class='varid'>c</span> <span class='keyglyph'>-></span> <span class='conid'>PU</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>b</span><span class='layout'>,</span> <span class='varid'>c</span><span class='layout'>)</span>-<a name="line-238"></a><span class='definition'>xpTriple</span> <span class='varid'>pa</span> <span class='varid'>pb</span> <span class='varid'>pc</span>-<a name="line-239"></a> <span class='keyglyph'>=</span> <span class='varid'>xpWrap</span> <span class='layout'>(</span><span class='varid'>toTriple</span><span class='layout'>,</span> <span class='varid'>fromTriple</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>xpPair</span> <span class='varid'>pa</span> <span class='layout'>(</span><span class='varid'>xpPair</span> <span class='varid'>pb</span> <span class='varid'>pc</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-240"></a> <span class='keyword'>where</span>-<a name="line-241"></a> <span class='varid'>toTriple</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>b</span><span class='layout'>,</span> <span class='varid'>c</span><span class='layout'>)</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>b</span><span class='layout'>,</span> <span class='varid'>c</span> <span class='layout'>)</span>-<a name="line-242"></a> <span class='varid'>fromTriple</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>b</span><span class='layout'>,</span> <span class='varid'>c</span> <span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>b</span><span class='layout'>,</span> <span class='varid'>c</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-243"></a>-<a name="line-244"></a><span class='comment'>-- | Like 'xpPair' and 'xpTriple' but for 4-tuples</span>-<a name="line-245"></a>-<a name="line-246"></a><a name="xp4Tuple"></a><span class='definition'>xp4Tuple</span> <span class='keyglyph'>::</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>PU</span> <span class='varid'>b</span> <span class='keyglyph'>-></span> <span class='conid'>PU</span> <span class='varid'>c</span> <span class='keyglyph'>-></span> <span class='conid'>PU</span> <span class='varid'>d</span> <span class='keyglyph'>-></span> <span class='conid'>PU</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>b</span><span class='layout'>,</span> <span class='varid'>c</span><span class='layout'>,</span> <span class='varid'>d</span><span class='layout'>)</span>-<a name="line-247"></a><span class='definition'>xp4Tuple</span> <span class='varid'>pa</span> <span class='varid'>pb</span> <span class='varid'>pc</span> <span class='varid'>pd</span>-<a name="line-248"></a> <span class='keyglyph'>=</span> <span class='varid'>xpWrap</span> <span class='layout'>(</span><span class='varid'>toQuad</span><span class='layout'>,</span> <span class='varid'>fromQuad</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>xpPair</span> <span class='varid'>pa</span> <span class='layout'>(</span><span class='varid'>xpPair</span> <span class='varid'>pb</span> <span class='layout'>(</span><span class='varid'>xpPair</span> <span class='varid'>pc</span> <span class='varid'>pd</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-249"></a> <span class='keyword'>where</span>-<a name="line-250"></a> <span class='varid'>toQuad</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>b</span><span class='layout'>,</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>c</span><span class='layout'>,</span> <span class='varid'>d</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>b</span><span class='layout'>,</span> <span class='varid'>c</span><span class='layout'>,</span> <span class='varid'>d</span> <span class='layout'>)</span>-<a name="line-251"></a> <span class='varid'>fromQuad</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>b</span><span class='layout'>,</span> <span class='varid'>c</span><span class='layout'>,</span> <span class='varid'>d</span> <span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>b</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>c</span><span class='layout'>,</span> <span class='varid'>d</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-252"></a>-<a name="line-253"></a><span class='comment'>-- | Like 'xpPair' and 'xpTriple' but for 5-tuples</span>-<a name="line-254"></a>-<a name="line-255"></a><a name="xp5Tuple"></a><span class='definition'>xp5Tuple</span> <span class='keyglyph'>::</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>PU</span> <span class='varid'>b</span> <span class='keyglyph'>-></span> <span class='conid'>PU</span> <span class='varid'>c</span> <span class='keyglyph'>-></span> <span class='conid'>PU</span> <span class='varid'>d</span> <span class='keyglyph'>-></span> <span class='conid'>PU</span> <span class='varid'>e</span> <span class='keyglyph'>-></span> <span class='conid'>PU</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>b</span><span class='layout'>,</span> <span class='varid'>c</span><span class='layout'>,</span> <span class='varid'>d</span><span class='layout'>,</span> <span class='varid'>e</span><span class='layout'>)</span>-<a name="line-256"></a><span class='definition'>xp5Tuple</span> <span class='varid'>pa</span> <span class='varid'>pb</span> <span class='varid'>pc</span> <span class='varid'>pd</span> <span class='varid'>pe</span>-<a name="line-257"></a> <span class='keyglyph'>=</span> <span class='varid'>xpWrap</span> <span class='layout'>(</span><span class='varid'>toQuint</span><span class='layout'>,</span> <span class='varid'>fromQuint</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>xpPair</span> <span class='varid'>pa</span> <span class='layout'>(</span><span class='varid'>xpPair</span> <span class='varid'>pb</span> <span class='layout'>(</span><span class='varid'>xpPair</span> <span class='varid'>pc</span> <span class='layout'>(</span><span class='varid'>xpPair</span> <span class='varid'>pd</span> <span class='varid'>pe</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-258"></a> <span class='keyword'>where</span>-<a name="line-259"></a> <span class='varid'>toQuint</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>b</span><span class='layout'>,</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>c</span><span class='layout'>,</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>d</span><span class='layout'>,</span> <span class='varid'>e</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>b</span><span class='layout'>,</span> <span class='varid'>c</span><span class='layout'>,</span> <span class='varid'>d</span><span class='layout'>,</span> <span class='varid'>e</span> <span class='layout'>)</span>-<a name="line-260"></a> <span class='varid'>fromQuint</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>b</span><span class='layout'>,</span> <span class='varid'>c</span><span class='layout'>,</span> <span class='varid'>d</span><span class='layout'>,</span> <span class='varid'>e</span> <span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>b</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>c</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>d</span><span class='layout'>,</span> <span class='varid'>e</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-261"></a>-<a name="line-262"></a><span class='comment'>-- | Like 'xpPair' and 'xpTriple' but for 6-tuples</span>-<a name="line-263"></a>-<a name="line-264"></a><a name="xp6Tuple"></a><span class='definition'>xp6Tuple</span> <span class='keyglyph'>::</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>PU</span> <span class='varid'>b</span> <span class='keyglyph'>-></span> <span class='conid'>PU</span> <span class='varid'>c</span> <span class='keyglyph'>-></span> <span class='conid'>PU</span> <span class='varid'>d</span> <span class='keyglyph'>-></span> <span class='conid'>PU</span> <span class='varid'>e</span> <span class='keyglyph'>-></span> <span class='conid'>PU</span> <span class='varid'>f</span> <span class='keyglyph'>-></span> <span class='conid'>PU</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>b</span><span class='layout'>,</span> <span class='varid'>c</span><span class='layout'>,</span> <span class='varid'>d</span><span class='layout'>,</span> <span class='varid'>e</span><span class='layout'>,</span> <span class='varid'>f</span><span class='layout'>)</span>-<a name="line-265"></a><span class='definition'>xp6Tuple</span> <span class='varid'>pa</span> <span class='varid'>pb</span> <span class='varid'>pc</span> <span class='varid'>pd</span> <span class='varid'>pe</span> <span class='varid'>pf</span>-<a name="line-266"></a> <span class='keyglyph'>=</span> <span class='varid'>xpWrap</span> <span class='layout'>(</span><span class='varid'>toSix</span><span class='layout'>,</span> <span class='varid'>fromSix</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>xpPair</span> <span class='varid'>pa</span> <span class='layout'>(</span><span class='varid'>xpPair</span> <span class='varid'>pb</span> <span class='layout'>(</span><span class='varid'>xpPair</span> <span class='varid'>pc</span> <span class='layout'>(</span><span class='varid'>xpPair</span> <span class='varid'>pd</span> <span class='layout'>(</span><span class='varid'>xpPair</span> <span class='varid'>pe</span> <span class='varid'>pf</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-267"></a> <span class='keyword'>where</span>-<a name="line-268"></a> <span class='varid'>toSix</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>b</span><span class='layout'>,</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>c</span><span class='layout'>,</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>d</span><span class='layout'>,</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>e</span><span class='layout'>,</span> <span class='varid'>f</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>b</span><span class='layout'>,</span> <span class='varid'>c</span><span class='layout'>,</span> <span class='varid'>d</span><span class='layout'>,</span> <span class='varid'>e</span><span class='layout'>,</span> <span class='varid'>f</span> <span class='layout'>)</span>-<a name="line-269"></a> <span class='varid'>fromSix</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>b</span><span class='layout'>,</span> <span class='varid'>c</span><span class='layout'>,</span> <span class='varid'>d</span><span class='layout'>,</span> <span class='varid'>e</span><span class='layout'>,</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>b</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>c</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>d</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>e</span><span class='layout'>,</span> <span class='varid'>f</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-270"></a>-<a name="line-271"></a><span class='comment'>-- | Pickle a string into an XML text node</span>-<a name="line-272"></a><span class='comment'>--</span>-<a name="line-273"></a><span class='comment'>-- One of the most often used primitive picklers. Attention:</span>-<a name="line-274"></a><span class='comment'>-- For pickling empty strings use 'xpText0'. If the text has a more</span>-<a name="line-275"></a><span class='comment'>-- specific datatype than xsd:string, use 'xpTextDT'</span>-<a name="line-276"></a>-<a name="line-277"></a><a name="xpText"></a><span class='definition'>xpText</span> <span class='keyglyph'>::</span> <span class='conid'>PU</span> <span class='conid'>String</span>-<a name="line-278"></a><span class='definition'>xpText</span> <span class='keyglyph'>=</span> <span class='varid'>xpTextDT</span> <span class='varid'>scString1</span>-<a name="line-279"></a>-<a name="line-280"></a><span class='comment'>-- | Pickle a string into an XML text node</span>-<a name="line-281"></a><span class='comment'>--</span>-<a name="line-282"></a><span class='comment'>-- Text pickler with a description of the structure of the text</span>-<a name="line-283"></a><span class='comment'>-- by a schema. A schema for a data type can be defined by 'Text.XML.HXT.Arrow.Pickle.Schema.scDT'.</span>-<a name="line-284"></a><span class='comment'>-- In 'Text.XML.HXT.Arrow.Pickle.Schema' there are some more functions for creating</span>-<a name="line-285"></a><span class='comment'>-- simple datatype descriptions.</span>-<a name="line-286"></a>-<a name="line-287"></a><a name="xpTextDT"></a><span class='definition'>xpTextDT</span> <span class='keyglyph'>::</span> <span class='conid'>Schema</span> <span class='keyglyph'>-></span> <span class='conid'>PU</span> <span class='conid'>String</span>-<a name="line-288"></a><span class='definition'>xpTextDT</span> <span class='varid'>sc</span>-<a name="line-289"></a> <span class='keyglyph'>=</span> <span class='conid'>PU</span> <span class='layout'>{</span> <span class='varid'>appPickle</span> <span class='keyglyph'>=</span> <span class='keyglyph'>\</span> <span class='layout'>(</span><span class='varid'>s</span><span class='layout'>,</span> <span class='varid'>st</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>addCont</span> <span class='layout'>(</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkText</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='varid'>st</span>-<a name="line-290"></a> <span class='layout'>,</span> <span class='varid'>appUnPickle</span> <span class='keyglyph'>=</span> <span class='keyglyph'>\</span> <span class='varid'>st</span> <span class='keyglyph'>-></span> <span class='varid'>fromMaybe</span> <span class='layout'>(</span><span class='conid'>Nothing</span><span class='layout'>,</span> <span class='varid'>st</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>unpickleString</span> <span class='varid'>st</span><span class='layout'>)</span>-<a name="line-291"></a> <span class='layout'>,</span> <span class='varid'>theSchema</span> <span class='keyglyph'>=</span> <span class='varid'>sc</span>-<a name="line-292"></a> <span class='layout'>}</span>-<a name="line-293"></a> <span class='keyword'>where</span>-<a name="line-294"></a> <span class='varid'>unpickleString</span> <span class='varid'>st</span>-<a name="line-295"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-296"></a> <span class='varid'>t</span> <span class='keyglyph'><-</span> <span class='varid'>getCont</span> <span class='varid'>st</span>-<a name="line-297"></a> <span class='varid'>s</span> <span class='keyglyph'><-</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getText</span> <span class='varid'>t</span>-<a name="line-298"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>s</span><span class='layout'>,</span> <span class='varid'>dropCont</span> <span class='varid'>st</span><span class='layout'>)</span>-<a name="line-299"></a>-<a name="line-300"></a><span class='comment'>-- | Pickle a possibly empty string into an XML node.</span>-<a name="line-301"></a><span class='comment'>--</span>-<a name="line-302"></a><span class='comment'>-- Must be used in all places, where empty strings are legal values.</span>-<a name="line-303"></a><span class='comment'>-- If the content of an element can be an empty string, this string disapears</span>-<a name="line-304"></a><span class='comment'>-- during storing the DOM into a document and reparse the document.</span>-<a name="line-305"></a><span class='comment'>-- So the empty text node becomes nothing, and the pickler must deliver an empty string,</span>-<a name="line-306"></a><span class='comment'>-- if there is no text node in the document.</span>-<a name="line-307"></a>-<a name="line-308"></a><a name="xpText0"></a><span class='definition'>xpText0</span> <span class='keyglyph'>::</span> <span class='conid'>PU</span> <span class='conid'>String</span>-<a name="line-309"></a><span class='definition'>xpText0</span> <span class='keyglyph'>=</span> <span class='varid'>xpText0DT</span> <span class='varid'>scString1</span>-<a name="line-310"></a>-<a name="line-311"></a><span class='comment'>-- | Pickle a possibly empty string with a datatype description into an XML node.</span>-<a name="line-312"></a><span class='comment'>--</span>-<a name="line-313"></a><span class='comment'>-- Like 'xpText0' but with extra Parameter for datatype description as in 'xpTextDT'.</span>-<a name="line-314"></a>-<a name="line-315"></a><a name="xpText0DT"></a><span class='definition'>xpText0DT</span> <span class='keyglyph'>::</span> <span class='conid'>Schema</span> <span class='keyglyph'>-></span> <span class='conid'>PU</span> <span class='conid'>String</span>-<a name="line-316"></a><span class='definition'>xpText0DT</span> <span class='varid'>sc</span>-<a name="line-317"></a> <span class='keyglyph'>=</span> <span class='varid'>xpWrap</span> <span class='layout'>(</span><span class='varid'>fromMaybe</span> <span class='str'>""</span><span class='layout'>,</span> <span class='varid'>emptyToNothing</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>xpOption</span> <span class='varop'>$</span> <span class='varid'>xpTextDT</span> <span class='varid'>sc</span>-<a name="line-318"></a> <span class='keyword'>where</span>-<a name="line-319"></a> <span class='varid'>emptyToNothing</span> <span class='str'>""</span> <span class='keyglyph'>=</span> <span class='conid'>Nothing</span>-<a name="line-320"></a> <span class='varid'>emptyToNothing</span> <span class='varid'>x</span> <span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='varid'>x</span>-<a name="line-321"></a>-<a name="line-322"></a><span class='comment'>-- | Pickle an arbitrary value by applyling show during pickling</span>-<a name="line-323"></a><span class='comment'>-- and read during unpickling.</span>-<a name="line-324"></a><span class='comment'>--</span>-<a name="line-325"></a><span class='comment'>-- Real pickling is then done with 'xpText'.</span>-<a name="line-326"></a><span class='comment'>-- One of the most often used pimitive picklers. Applicable for all</span>-<a name="line-327"></a><span class='comment'>-- types which are instances of @Read@ and @Show@</span>-<a name="line-328"></a>-<a name="line-329"></a><a name="xpPrim"></a><span class='definition'>xpPrim</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Read</span> <span class='varid'>a</span><span class='layout'>,</span> <span class='conid'>Show</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>=></span> <span class='conid'>PU</span> <span class='varid'>a</span>-<a name="line-330"></a><span class='definition'>xpPrim</span>-<a name="line-331"></a> <span class='keyglyph'>=</span> <span class='varid'>xpWrapMaybe</span> <span class='layout'>(</span><span class='varid'>readMaybe</span><span class='layout'>,</span> <span class='varid'>show</span><span class='layout'>)</span> <span class='varid'>xpText</span>-<a name="line-332"></a> <span class='keyword'>where</span>-<a name="line-333"></a> <span class='varid'>readMaybe</span> <span class='keyglyph'>::</span> <span class='conid'>Read</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Maybe</span> <span class='varid'>a</span>-<a name="line-334"></a> <span class='varid'>readMaybe</span> <span class='varid'>str</span>-<a name="line-335"></a> <span class='keyglyph'>=</span> <span class='varid'>val</span> <span class='layout'>(</span><span class='varid'>reads</span> <span class='varid'>str</span><span class='layout'>)</span>-<a name="line-336"></a> <span class='keyword'>where</span>-<a name="line-337"></a> <span class='varid'>val</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>x</span><span class='layout'>,</span><span class='str'>""</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='varid'>x</span>-<a name="line-338"></a> <span class='varid'>val</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>Nothing</span>-<a name="line-339"></a>-<a name="line-340"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-341"></a>-<a name="line-342"></a><span class='comment'>-- | Pickle an XmlTree by just adding it</span>-<a name="line-343"></a><span class='comment'>--</span>-<a name="line-344"></a><span class='comment'>-- Usefull for components of type XmlTree in other data structures</span>-<a name="line-345"></a>-<a name="line-346"></a><a name="xpTree"></a><span class='definition'>xpTree</span> <span class='keyglyph'>::</span> <span class='conid'>PU</span> <span class='conid'>XmlTree</span>-<a name="line-347"></a><span class='definition'>xpTree</span> <span class='keyglyph'>=</span> <span class='conid'>PU</span> <span class='layout'>{</span> <span class='varid'>appPickle</span> <span class='keyglyph'>=</span> <span class='keyglyph'>\</span> <span class='layout'>(</span><span class='varid'>s</span><span class='layout'>,</span> <span class='varid'>st</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>addCont</span> <span class='varid'>s</span> <span class='varid'>st</span>-<a name="line-348"></a> <span class='layout'>,</span> <span class='varid'>appUnPickle</span> <span class='keyglyph'>=</span> <span class='keyglyph'>\</span> <span class='varid'>st</span> <span class='keyglyph'>-></span> <span class='varid'>fromMaybe</span> <span class='layout'>(</span><span class='conid'>Nothing</span><span class='layout'>,</span> <span class='varid'>st</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>unpickleTree</span> <span class='varid'>st</span><span class='layout'>)</span>-<a name="line-349"></a> <span class='layout'>,</span> <span class='varid'>theSchema</span> <span class='keyglyph'>=</span> <span class='conid'>Any</span>-<a name="line-350"></a> <span class='layout'>}</span>-<a name="line-351"></a> <span class='keyword'>where</span>-<a name="line-352"></a> <span class='varid'>unpickleTree</span> <span class='varid'>st</span>-<a name="line-353"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-354"></a> <span class='varid'>t</span> <span class='keyglyph'><-</span> <span class='varid'>getCont</span> <span class='varid'>st</span>-<a name="line-355"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>t</span><span class='layout'>,</span> <span class='varid'>dropCont</span> <span class='varid'>st</span><span class='layout'>)</span>-<a name="line-356"></a>-<a name="line-357"></a><span class='comment'>-- | Pickle a whole list of XmlTrees by just adding the list, unpickle is done by taking all element contens.</span>-<a name="line-358"></a><span class='comment'>--</span>-<a name="line-359"></a><span class='comment'>-- This pickler should always combined with 'xpElem' for taking the whole contents of an element.</span>-<a name="line-360"></a>-<a name="line-361"></a><a name="xpTrees"></a><span class='definition'>xpTrees</span> <span class='keyglyph'>::</span> <span class='conid'>PU</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>-<a name="line-362"></a><span class='definition'>xpTrees</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>xpList</span> <span class='varid'>xpTree</span><span class='layout'>)</span> <span class='layout'>{</span> <span class='varid'>theSchema</span> <span class='keyglyph'>=</span> <span class='conid'>Any</span> <span class='layout'>}</span>-<a name="line-363"></a>-<a name="line-364"></a><span class='comment'>-- | Pickle a string representing XML contents by inserting the tree representation into the XML document.</span>-<a name="line-365"></a><span class='comment'>--</span>-<a name="line-366"></a><span class='comment'>-- Unpickling is done by converting the contents with</span>-<a name="line-367"></a><span class='comment'>-- 'Text.XML.HXT.Arrow.Edit.xshowEscapeXml' into a string,</span>-<a name="line-368"></a><span class='comment'>-- this function will escape all XML special chars, such that pickling the value back becomes save.</span>-<a name="line-369"></a><span class='comment'>-- Pickling is done with 'Text.XML.HXT.Arrow.ReadDocument.xread'</span>-<a name="line-370"></a>-<a name="line-371"></a><a name="xpXmlText"></a><span class='definition'>xpXmlText</span> <span class='keyglyph'>::</span> <span class='conid'>PU</span> <span class='conid'>String</span>-<a name="line-372"></a><span class='definition'>xpXmlText</span>-<a name="line-373"></a> <span class='keyglyph'>=</span> <span class='varid'>xpWrap</span> <span class='layout'>(</span> <span class='varid'>showXML</span><span class='layout'>,</span> <span class='varid'>readXML</span> <span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>xpTrees</span>-<a name="line-374"></a> <span class='keyword'>where</span>-<a name="line-375"></a> <span class='varid'>showXML</span> <span class='keyglyph'>=</span> <span class='varid'>concat</span> <span class='varop'>.</span> <span class='varid'>runLA</span> <span class='layout'>(</span> <span class='varid'>xshowEscapeXml</span> <span class='varid'>unlistA</span> <span class='layout'>)</span>-<a name="line-376"></a> <span class='varid'>readXML</span> <span class='keyglyph'>=</span> <span class='varid'>runLA</span> <span class='varid'>xread</span>-<a name="line-377"></a>-<a name="line-378"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-379"></a>-<a name="line-380"></a><span class='comment'>-- | Encoding of optional data by ignoring the Nothing case during pickling</span>-<a name="line-381"></a><span class='comment'>-- and relying on failure during unpickling to recompute the Nothing case</span>-<a name="line-382"></a><span class='comment'>--</span>-<a name="line-383"></a><span class='comment'>-- The default pickler for Maybe types</span>-<a name="line-384"></a>-<a name="line-385"></a><a name="xpOption"></a><span class='definition'>xpOption</span> <span class='keyglyph'>::</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>PU</span> <span class='layout'>(</span><span class='conid'>Maybe</span> <span class='varid'>a</span><span class='layout'>)</span>-<a name="line-386"></a><span class='definition'>xpOption</span> <span class='varid'>pa</span>-<a name="line-387"></a> <span class='keyglyph'>=</span> <span class='conid'>PU</span> <span class='layout'>{</span> <span class='varid'>appPickle</span> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyglyph'>\</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>st</span><span class='layout'>)</span> <span class='keyglyph'>-></span>-<a name="line-388"></a> <span class='keyword'>case</span> <span class='varid'>a</span> <span class='keyword'>of</span>-<a name="line-389"></a> <span class='conid'>Nothing</span> <span class='keyglyph'>-></span> <span class='varid'>st</span>-<a name="line-390"></a> <span class='conid'>Just</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='varid'>appPickle</span> <span class='varid'>pa</span> <span class='layout'>(</span><span class='varid'>x</span><span class='layout'>,</span> <span class='varid'>st</span><span class='layout'>)</span>-<a name="line-391"></a> <span class='layout'>)</span>-<a name="line-392"></a>-<a name="line-393"></a> <span class='layout'>,</span> <span class='varid'>appUnPickle</span> <span class='keyglyph'>=</span> <span class='varid'>appUnPickle</span> <span class='varop'>$</span>-<a name="line-394"></a> <span class='varid'>xpChoice</span> <span class='layout'>(</span><span class='varid'>xpLift</span> <span class='conid'>Nothing</span><span class='layout'>)</span> <span class='varid'>pa</span> <span class='layout'>(</span><span class='varid'>xpLift</span> <span class='varop'>.</span> <span class='conid'>Just</span><span class='layout'>)</span>-<a name="line-395"></a>-<a name="line-396"></a> <span class='layout'>,</span> <span class='varid'>theSchema</span> <span class='keyglyph'>=</span> <span class='varid'>scOption</span> <span class='layout'>(</span><span class='varid'>theSchema</span> <span class='varid'>pa</span><span class='layout'>)</span>-<a name="line-397"></a> <span class='layout'>}</span>-<a name="line-398"></a>-<a name="line-399"></a><span class='comment'>-- | Optional conversion with default value</span>-<a name="line-400"></a><span class='comment'>--</span>-<a name="line-401"></a><span class='comment'>-- The default value is not encoded in the XML document,</span>-<a name="line-402"></a><span class='comment'>-- during unpickling the default value is inserted if the pickler fails</span>-<a name="line-403"></a>-<a name="line-404"></a><a name="xpDefault"></a><span class='definition'>xpDefault</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Eq</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>PU</span> <span class='varid'>a</span>-<a name="line-405"></a><span class='definition'>xpDefault</span> <span class='varid'>df</span>-<a name="line-406"></a> <span class='keyglyph'>=</span> <span class='varid'>xpWrap</span> <span class='layout'>(</span> <span class='varid'>fromMaybe</span> <span class='varid'>df</span>-<a name="line-407"></a> <span class='layout'>,</span> <span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='keyword'>if</span> <span class='varid'>x</span> <span class='varop'>==</span> <span class='varid'>df</span> <span class='keyword'>then</span> <span class='conid'>Nothing</span> <span class='keyword'>else</span> <span class='conid'>Just</span> <span class='varid'>x</span>-<a name="line-408"></a> <span class='layout'>)</span> <span class='varop'>.</span>-<a name="line-409"></a> <span class='varid'>xpOption</span>-<a name="line-410"></a>-<a name="line-411"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-412"></a>-<a name="line-413"></a><span class='comment'>-- | Encoding of list values by pickling all list elements sequentially.</span>-<a name="line-414"></a><span class='comment'>--</span>-<a name="line-415"></a><span class='comment'>-- Unpickler relies on failure for detecting the end of the list.</span>-<a name="line-416"></a><span class='comment'>-- The standard pickler for lists. Can also be used in combination with 'xpWrap'</span>-<a name="line-417"></a><span class='comment'>-- for constructing set and map picklers</span>-<a name="line-418"></a>-<a name="line-419"></a><a name="xpList"></a><span class='definition'>xpList</span> <span class='keyglyph'>::</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>PU</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span>-<a name="line-420"></a><span class='definition'>xpList</span> <span class='varid'>pa</span>-<a name="line-421"></a> <span class='keyglyph'>=</span> <span class='conid'>PU</span> <span class='layout'>{</span> <span class='varid'>appPickle</span> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyglyph'>\</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>st</span><span class='layout'>)</span> <span class='keyglyph'>-></span>-<a name="line-422"></a> <span class='keyword'>case</span> <span class='varid'>a</span> <span class='keyword'>of</span>-<a name="line-423"></a> <span class='conid'>[]</span> <span class='keyglyph'>-></span> <span class='varid'>st</span>-<a name="line-424"></a> <span class='keyword'>_</span><span class='conop'>:</span><span class='keyword'>_</span> <span class='keyglyph'>-></span> <span class='varid'>appPickle</span> <span class='varid'>pc</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>st</span><span class='layout'>)</span>-<a name="line-425"></a> <span class='layout'>)</span>-<a name="line-426"></a> <span class='layout'>,</span> <span class='varid'>appUnPickle</span> <span class='keyglyph'>=</span> <span class='varid'>appUnPickle</span> <span class='varop'>$</span>-<a name="line-427"></a> <span class='varid'>xpChoice</span> <span class='layout'>(</span><span class='varid'>xpLift</span> <span class='conid'>[]</span><span class='layout'>)</span> <span class='varid'>pa</span>-<a name="line-428"></a> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='varid'>xpSeq</span> <span class='varid'>id</span> <span class='layout'>(</span><span class='varid'>xpList</span> <span class='varid'>pa</span><span class='layout'>)</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>xs</span> <span class='keyglyph'>-></span> <span class='varid'>xpLift</span> <span class='layout'>(</span><span class='varid'>x</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-429"></a>-<a name="line-430"></a> <span class='layout'>,</span> <span class='varid'>theSchema</span> <span class='keyglyph'>=</span> <span class='varid'>scList</span> <span class='layout'>(</span><span class='varid'>theSchema</span> <span class='varid'>pa</span><span class='layout'>)</span>-<a name="line-431"></a> <span class='layout'>}</span>-<a name="line-432"></a> <span class='keyword'>where</span>-<a name="line-433"></a> <span class='varid'>pc</span> <span class='keyglyph'>=</span> <span class='varid'>xpSeq</span> <span class='varid'>head</span> <span class='varid'>pa</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-></span>-<a name="line-434"></a> <span class='varid'>xpSeq</span> <span class='varid'>tail</span> <span class='layout'>(</span><span class='varid'>xpList</span> <span class='varid'>pa</span><span class='layout'>)</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>xs</span> <span class='keyglyph'>-></span>-<a name="line-435"></a> <span class='varid'>xpLift</span> <span class='layout'>(</span><span class='varid'>x</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-436"></a>-<a name="line-437"></a><span class='comment'>-- | Encoding of a none empty list of values</span>-<a name="line-438"></a><span class='comment'>--</span>-<a name="line-439"></a><span class='comment'>-- Attention: when calling this pickler with an empty list,</span>-<a name="line-440"></a><span class='comment'>-- an internal error \"head of empty list is raised\".</span>-<a name="line-441"></a>-<a name="line-442"></a><a name="xpList1"></a><span class='definition'>xpList1</span> <span class='keyglyph'>::</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>PU</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span>-<a name="line-443"></a><span class='definition'>xpList1</span> <span class='varid'>pa</span>-<a name="line-444"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>xpWrap</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='layout'>(</span><span class='varid'>x</span><span class='layout'>,</span> <span class='varid'>xs</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>x</span> <span class='conop'>:</span> <span class='varid'>xs</span>-<a name="line-445"></a> <span class='layout'>,</span><span class='keyglyph'>\</span> <span class='layout'>(</span><span class='varid'>x</span> <span class='conop'>:</span> <span class='varid'>xs</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='varid'>x</span><span class='layout'>,</span> <span class='varid'>xs</span><span class='layout'>)</span>-<a name="line-446"></a> <span class='layout'>)</span> <span class='varop'>$</span>-<a name="line-447"></a> <span class='varid'>xpPair</span> <span class='varid'>pa</span> <span class='layout'>(</span><span class='varid'>xpList</span> <span class='varid'>pa</span><span class='layout'>)</span>-<a name="line-448"></a> <span class='layout'>)</span> <span class='layout'>{</span> <span class='varid'>theSchema</span> <span class='keyglyph'>=</span> <span class='varid'>scList1</span> <span class='layout'>(</span><span class='varid'>theSchema</span> <span class='varid'>pa</span><span class='layout'>)</span> <span class='layout'>}</span>-<a name="line-449"></a>-<a name="line-450"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-451"></a>-<a name="line-452"></a><span class='comment'>-- | Standard pickler for maps</span>-<a name="line-453"></a><span class='comment'>--</span>-<a name="line-454"></a><span class='comment'>-- This pickler converts a map into a list of pairs.</span>-<a name="line-455"></a><span class='comment'>-- All key value pairs are mapped to an element with name (1.arg),</span>-<a name="line-456"></a><span class='comment'>-- the key is encoded as an attribute named by the 2. argument,</span>-<a name="line-457"></a><span class='comment'>-- the 3. arg is the pickler for the keys, the last one for the values</span>-<a name="line-458"></a>-<a name="line-459"></a><a name="xpMap"></a><span class='definition'>xpMap</span> <span class='keyglyph'>::</span> <span class='conid'>Ord</span> <span class='varid'>k</span> <span class='keyglyph'>=></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>PU</span> <span class='varid'>k</span> <span class='keyglyph'>-></span> <span class='conid'>PU</span> <span class='varid'>v</span> <span class='keyglyph'>-></span> <span class='conid'>PU</span> <span class='layout'>(</span><span class='conid'>Map</span> <span class='varid'>k</span> <span class='varid'>v</span><span class='layout'>)</span>-<a name="line-460"></a><span class='definition'>xpMap</span> <span class='varid'>en</span> <span class='varid'>an</span> <span class='varid'>xpk</span> <span class='varid'>xpv</span>-<a name="line-461"></a> <span class='keyglyph'>=</span> <span class='varid'>xpWrap</span> <span class='layout'>(</span> <span class='conid'>M</span><span class='varop'>.</span><span class='varid'>fromList</span>-<a name="line-462"></a> <span class='layout'>,</span> <span class='conid'>M</span><span class='varop'>.</span><span class='varid'>toList</span>-<a name="line-463"></a> <span class='layout'>)</span> <span class='varop'>$</span>-<a name="line-464"></a> <span class='varid'>xpList</span> <span class='varop'>$</span>-<a name="line-465"></a> <span class='varid'>xpElem</span> <span class='varid'>en</span> <span class='varop'>$</span>-<a name="line-466"></a> <span class='varid'>xpPair</span> <span class='layout'>(</span> <span class='varid'>xpAttr</span> <span class='varid'>an</span> <span class='varop'>$</span> <span class='varid'>xpk</span> <span class='layout'>)</span> <span class='varid'>xpv</span>-<a name="line-467"></a>-<a name="line-468"></a>-<a name="line-469"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-470"></a>-<a name="line-471"></a><span class='comment'>-- | Pickler for sum data types.</span>-<a name="line-472"></a><span class='comment'>--</span>-<a name="line-473"></a><span class='comment'>-- Every constructor is mapped to an index into the list of picklers.</span>-<a name="line-474"></a><span class='comment'>-- The index is used only during pickling, not during unpickling, there the 1. match is taken</span>-<a name="line-475"></a>-<a name="line-476"></a><a name="xpAlt"></a><span class='definition'>xpAlt</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>Int</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>PU</span> <span class='varid'>a</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>PU</span> <span class='varid'>a</span>-<a name="line-477"></a><span class='definition'>xpAlt</span> <span class='varid'>tag</span> <span class='varid'>ps</span>-<a name="line-478"></a> <span class='keyglyph'>=</span> <span class='conid'>PU</span> <span class='layout'>{</span> <span class='varid'>appPickle</span> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyglyph'>\</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>st</span><span class='layout'>)</span> <span class='keyglyph'>-></span>-<a name="line-479"></a> <span class='keyword'>let</span>-<a name="line-480"></a> <span class='varid'>pa</span> <span class='keyglyph'>=</span> <span class='varid'>ps</span> <span class='varop'>!!</span> <span class='layout'>(</span><span class='varid'>tag</span> <span class='varid'>a</span><span class='layout'>)</span>-<a name="line-481"></a> <span class='keyword'>in</span>-<a name="line-482"></a> <span class='varid'>appPickle</span> <span class='varid'>pa</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>st</span><span class='layout'>)</span>-<a name="line-483"></a> <span class='layout'>)</span>-<a name="line-484"></a> <span class='layout'>,</span> <span class='varid'>appUnPickle</span> <span class='keyglyph'>=</span> <span class='varid'>appUnPickle</span> <span class='varop'>$</span>-<a name="line-485"></a> <span class='layout'>(</span> <span class='keyword'>case</span> <span class='varid'>ps</span> <span class='keyword'>of</span>-<a name="line-486"></a> <span class='conid'>[]</span> <span class='keyglyph'>-></span> <span class='varid'>xpZero</span>-<a name="line-487"></a> <span class='varid'>pa</span><span class='conop'>:</span><span class='varid'>ps1</span> <span class='keyglyph'>-></span> <span class='varid'>xpChoice</span> <span class='layout'>(</span><span class='varid'>xpAlt</span> <span class='varid'>tag</span> <span class='varid'>ps1</span><span class='layout'>)</span> <span class='varid'>pa</span> <span class='varid'>xpLift</span>-<a name="line-488"></a> <span class='layout'>)</span>-<a name="line-489"></a> <span class='layout'>,</span> <span class='varid'>theSchema</span> <span class='keyglyph'>=</span> <span class='varid'>scAlts</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>theSchema</span> <span class='varid'>ps</span><span class='layout'>)</span>-<a name="line-490"></a> <span class='layout'>}</span>-<a name="line-491"></a>-<a name="line-492"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-493"></a>-<a name="line-494"></a><span class='comment'>-- | Pickler for wrapping\/unwrapping data into an XML element</span>-<a name="line-495"></a><span class='comment'>--</span>-<a name="line-496"></a><span class='comment'>-- Extra parameter is the element name given as a QName. THE pickler for constructing</span>-<a name="line-497"></a><span class='comment'>-- nested structures</span>-<a name="line-498"></a><span class='comment'>--</span>-<a name="line-499"></a><span class='comment'>-- Example:</span>-<a name="line-500"></a><span class='comment'>--</span>-<a name="line-501"></a><span class='comment'>-- > xpElemQN (mkName "number") $ xpickle</span>-<a name="line-502"></a><span class='comment'>--</span>-<a name="line-503"></a><span class='comment'>-- will map an (42::Int) onto</span>-<a name="line-504"></a><span class='comment'>--</span>-<a name="line-505"></a><span class='comment'>-- > <number>42</number></span>-<a name="line-506"></a>-<a name="line-507"></a><a name="xpElemQN"></a><span class='definition'>xpElemQN</span> <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>PU</span> <span class='varid'>a</span>-<a name="line-508"></a><span class='definition'>xpElemQN</span> <span class='varid'>qn</span> <span class='varid'>pa</span>-<a name="line-509"></a> <span class='keyglyph'>=</span> <span class='conid'>PU</span> <span class='layout'>{</span> <span class='varid'>appPickle</span> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyglyph'>\</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>st</span><span class='layout'>)</span> <span class='keyglyph'>-></span>-<a name="line-510"></a> <span class='keyword'>let</span>-<a name="line-511"></a> <span class='varid'>st'</span> <span class='keyglyph'>=</span> <span class='varid'>appPickle</span> <span class='varid'>pa</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>emptySt</span><span class='layout'>)</span>-<a name="line-512"></a> <span class='keyword'>in</span>-<a name="line-513"></a> <span class='varid'>addCont</span> <span class='layout'>(</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkElement</span> <span class='varid'>qn</span> <span class='layout'>(</span><span class='varid'>attributes</span> <span class='varid'>st'</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>contents</span> <span class='varid'>st'</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varid'>st</span>-<a name="line-514"></a> <span class='layout'>)</span>-<a name="line-515"></a> <span class='layout'>,</span> <span class='varid'>appUnPickle</span> <span class='keyglyph'>=</span> <span class='keyglyph'>\</span> <span class='varid'>st</span> <span class='keyglyph'>-></span> <span class='varid'>fromMaybe</span> <span class='layout'>(</span><span class='conid'>Nothing</span><span class='layout'>,</span> <span class='varid'>st</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>unpickleElement</span> <span class='varid'>st</span><span class='layout'>)</span>-<a name="line-516"></a> <span class='layout'>,</span> <span class='varid'>theSchema</span> <span class='keyglyph'>=</span> <span class='varid'>scElem</span> <span class='layout'>(</span><span class='varid'>qualifiedName</span> <span class='varid'>qn</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>theSchema</span> <span class='varid'>pa</span><span class='layout'>)</span>-<a name="line-517"></a> <span class='layout'>}</span>-<a name="line-518"></a> <span class='keyword'>where</span>-<a name="line-519"></a> <span class='varid'>unpickleElement</span> <span class='varid'>st</span>-<a name="line-520"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-521"></a> <span class='varid'>t</span> <span class='keyglyph'><-</span> <span class='varid'>getCont</span> <span class='varid'>st</span>-<a name="line-522"></a> <span class='varid'>n</span> <span class='keyglyph'><-</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getElemName</span> <span class='varid'>t</span>-<a name="line-523"></a> <span class='keyword'>if</span> <span class='varid'>n</span> <span class='varop'>/=</span> <span class='varid'>qn</span>-<a name="line-524"></a> <span class='keyword'>then</span> <span class='varid'>fail</span> <span class='layout'>(</span><span class='str'>"element name "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span> <span class='varop'>++</span> <span class='str'>" does not match"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>qn</span><span class='layout'>)</span>-<a name="line-525"></a> <span class='keyword'>else</span> <span class='keyword'>do</span>-<a name="line-526"></a> <span class='keyword'>let</span> <span class='varid'>cs</span> <span class='keyglyph'>=</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getChildren</span> <span class='varid'>t</span>-<a name="line-527"></a> <span class='varid'>al</span> <span class='keyglyph'><-</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getAttrl</span> <span class='varid'>t</span>-<a name="line-528"></a> <span class='varid'>res</span> <span class='keyglyph'><-</span> <span class='varid'>fst</span> <span class='varop'>.</span> <span class='varid'>appUnPickle</span> <span class='varid'>pa</span> <span class='varop'>$</span> <span class='conid'>St</span> <span class='layout'>{</span><span class='varid'>attributes</span> <span class='keyglyph'>=</span> <span class='varid'>al</span><span class='layout'>,</span> <span class='varid'>contents</span> <span class='keyglyph'>=</span> <span class='varid'>cs</span><span class='layout'>}</span>-<a name="line-529"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>res</span><span class='layout'>,</span> <span class='varid'>dropCont</span> <span class='varid'>st</span><span class='layout'>)</span>-<a name="line-530"></a>-<a name="line-531"></a><span class='comment'>-- | convenient Pickler for xpElemQN</span>-<a name="line-532"></a><span class='comment'>--</span>-<a name="line-533"></a><span class='comment'>-- > xpElem n = xpElemQN (mkName n)</span>-<a name="line-534"></a>-<a name="line-535"></a><a name="xpElem"></a><span class='definition'>xpElem</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>PU</span> <span class='varid'>a</span>-<a name="line-536"></a><span class='definition'>xpElem</span> <span class='keyglyph'>=</span> <span class='varid'>xpElemQN</span> <span class='varop'>.</span> <span class='varid'>mkName</span>-<a name="line-537"></a>-<a name="line-538"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-539"></a>-<a name="line-540"></a><span class='comment'>-- | Pickler for wrapping\/unwrapping data into an XML element with an attribute with given value</span>-<a name="line-541"></a><span class='comment'>--</span>-<a name="line-542"></a><span class='comment'>-- To make XML structures flexible but limit the number of different elements, it's sometimes</span>-<a name="line-543"></a><span class='comment'>-- useful to use a kind of generic element with a key value structure</span>-<a name="line-544"></a><span class='comment'>--</span>-<a name="line-545"></a><span class='comment'>-- Example:</span>-<a name="line-546"></a><span class='comment'>--</span>-<a name="line-547"></a><span class='comment'>-- > <attr name="key1">value1</attr></span>-<a name="line-548"></a><span class='comment'>-- > <attr name="key2">value2</attr></span>-<a name="line-549"></a><span class='comment'>-- > <attr name="key3">value3</attr></span>-<a name="line-550"></a><span class='comment'>--</span>-<a name="line-551"></a><span class='comment'>-- the Haskell datatype may look like this</span>-<a name="line-552"></a><span class='comment'>--</span>-<a name="line-553"></a><span class='comment'>-- > type T = T { key1 :: Int ; key2 :: String ; key3 :: Double }</span>-<a name="line-554"></a><span class='comment'>--</span>-<a name="line-555"></a><span class='comment'>-- Then the picker for that type looks like this</span>-<a name="line-556"></a><span class='comment'>--</span>-<a name="line-557"></a><span class='comment'>-- > xpT :: PU T</span>-<a name="line-558"></a><span class='comment'>-- > xpT = xpWrap ( uncurry3 T, \ t -> (key1 t, key2 t, key3 t) ) $</span>-<a name="line-559"></a><span class='comment'>-- > xpTriple (xpElemWithAttrValue "attr" "name" "key1" $ xpickle)</span>-<a name="line-560"></a><span class='comment'>-- > (xpElemWithAttrValue "attr" "name" "key2" $ xpText0)</span>-<a name="line-561"></a><span class='comment'>-- > (xpElemWithAttrValue "attr" "name" "key3" $ xpickle)</span>-<a name="line-562"></a>-<a name="line-563"></a><a name="xpElemWithAttrValue"></a><span class='definition'>xpElemWithAttrValue</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>PU</span> <span class='varid'>a</span>-<a name="line-564"></a><span class='definition'>xpElemWithAttrValue</span> <span class='varid'>name</span> <span class='varid'>an</span> <span class='varid'>av</span> <span class='varid'>pa</span>-<a name="line-565"></a> <span class='keyglyph'>=</span> <span class='conid'>PU</span> <span class='layout'>{</span> <span class='varid'>appPickle</span> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyglyph'>\</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>st</span><span class='layout'>)</span> <span class='keyglyph'>-></span>-<a name="line-566"></a> <span class='keyword'>let</span>-<a name="line-567"></a> <span class='varid'>st'</span> <span class='keyglyph'>=</span> <span class='varid'>appPickle</span> <span class='varid'>pa'</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>emptySt</span><span class='layout'>)</span>-<a name="line-568"></a> <span class='keyword'>in</span>-<a name="line-569"></a> <span class='varid'>addCont</span> <span class='layout'>(</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkElement</span> <span class='layout'>(</span><span class='varid'>mkName</span> <span class='varid'>name</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>attributes</span> <span class='varid'>st'</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>contents</span> <span class='varid'>st'</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varid'>st</span>-<a name="line-570"></a> <span class='layout'>)</span>-<a name="line-571"></a> <span class='layout'>,</span> <span class='varid'>appUnPickle</span> <span class='keyglyph'>=</span> <span class='keyglyph'>\</span> <span class='varid'>st</span> <span class='keyglyph'>-></span> <span class='varid'>fromMaybe</span> <span class='layout'>(</span><span class='conid'>Nothing</span><span class='layout'>,</span> <span class='varid'>st</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>unpickleElement</span> <span class='varid'>st</span><span class='layout'>)</span>-<a name="line-572"></a> <span class='layout'>,</span> <span class='varid'>theSchema</span> <span class='keyglyph'>=</span> <span class='varid'>scElem</span> <span class='varid'>name</span> <span class='layout'>(</span><span class='varid'>theSchema</span> <span class='varid'>pa'</span><span class='layout'>)</span>-<a name="line-573"></a> <span class='layout'>}</span>-<a name="line-574"></a> <span class='keyword'>where</span>-<a name="line-575"></a> <span class='varid'>pa'</span> <span class='keyglyph'>=</span> <span class='varid'>xpAddFixedAttr</span> <span class='varid'>an</span> <span class='varid'>av</span> <span class='varop'>$</span> <span class='varid'>pa</span>-<a name="line-576"></a> <span class='varid'>noMatch</span> <span class='keyglyph'>=</span> <span class='varid'>null</span> <span class='varop'>.</span> <span class='varid'>runLA</span> <span class='layout'>(</span> <span class='varid'>isElem</span>-<a name="line-577"></a> <span class='varop'>>>></span>-<a name="line-578"></a> <span class='varid'>hasName</span> <span class='varid'>name</span>-<a name="line-579"></a> <span class='varop'>>>></span>-<a name="line-580"></a> <span class='varid'>hasAttrValue</span> <span class='varid'>an</span> <span class='layout'>(</span><span class='varop'>==</span><span class='varid'>av</span><span class='layout'>)</span>-<a name="line-581"></a> <span class='layout'>)</span>-<a name="line-582"></a> <span class='varid'>unpickleElement</span> <span class='varid'>st</span>-<a name="line-583"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-584"></a> <span class='varid'>t</span> <span class='keyglyph'><-</span> <span class='varid'>getCont</span> <span class='varid'>st</span>-<a name="line-585"></a> <span class='keyword'>if</span> <span class='varid'>noMatch</span> <span class='varid'>t</span>-<a name="line-586"></a> <span class='keyword'>then</span> <span class='varid'>fail</span> <span class='str'>"element name or attr value does not match"</span>-<a name="line-587"></a> <span class='keyword'>else</span> <span class='keyword'>do</span>-<a name="line-588"></a> <span class='keyword'>let</span> <span class='varid'>cs</span> <span class='keyglyph'>=</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getChildren</span> <span class='varid'>t</span>-<a name="line-589"></a> <span class='varid'>al</span> <span class='keyglyph'><-</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getAttrl</span> <span class='varid'>t</span>-<a name="line-590"></a> <span class='varid'>res</span> <span class='keyglyph'><-</span> <span class='varid'>fst</span> <span class='varop'>.</span> <span class='varid'>appUnPickle</span> <span class='varid'>pa</span> <span class='varop'>$</span> <span class='conid'>St</span> <span class='layout'>{</span><span class='varid'>attributes</span> <span class='keyglyph'>=</span> <span class='varid'>al</span><span class='layout'>,</span> <span class='varid'>contents</span> <span class='keyglyph'>=</span> <span class='varid'>cs</span><span class='layout'>}</span>-<a name="line-591"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>res</span><span class='layout'>,</span> <span class='varid'>dropCont</span> <span class='varid'>st</span><span class='layout'>)</span>-<a name="line-592"></a>-<a name="line-593"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-594"></a>-<a name="line-595"></a><span class='comment'>-- | Pickler for storing\/retreiving data into\/from an attribute value</span>-<a name="line-596"></a><span class='comment'>--</span>-<a name="line-597"></a><span class='comment'>-- The attribute is inserted in the surrounding element constructed by the 'xpElem' pickler</span>-<a name="line-598"></a>-<a name="line-599"></a><a name="xpAttrQN"></a><span class='definition'>xpAttrQN</span> <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>PU</span> <span class='varid'>a</span>-<a name="line-600"></a><span class='definition'>xpAttrQN</span> <span class='varid'>qn</span> <span class='varid'>pa</span>-<a name="line-601"></a> <span class='keyglyph'>=</span> <span class='conid'>PU</span> <span class='layout'>{</span> <span class='varid'>appPickle</span> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyglyph'>\</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>st</span><span class='layout'>)</span> <span class='keyglyph'>-></span>-<a name="line-602"></a> <span class='keyword'>let</span>-<a name="line-603"></a> <span class='varid'>st'</span> <span class='keyglyph'>=</span> <span class='varid'>appPickle</span> <span class='varid'>pa</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>emptySt</span><span class='layout'>)</span>-<a name="line-604"></a> <span class='keyword'>in</span>-<a name="line-605"></a> <span class='varid'>addAtt</span> <span class='layout'>(</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkAttr</span> <span class='varid'>qn</span> <span class='layout'>(</span><span class='varid'>contents</span> <span class='varid'>st'</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varid'>st</span>-<a name="line-606"></a> <span class='layout'>)</span>-<a name="line-607"></a> <span class='layout'>,</span> <span class='varid'>appUnPickle</span> <span class='keyglyph'>=</span> <span class='keyglyph'>\</span> <span class='varid'>st</span> <span class='keyglyph'>-></span> <span class='varid'>fromMaybe</span> <span class='layout'>(</span><span class='conid'>Nothing</span><span class='layout'>,</span> <span class='varid'>st</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>unpickleAttr</span> <span class='varid'>st</span><span class='layout'>)</span>-<a name="line-608"></a> <span class='layout'>,</span> <span class='varid'>theSchema</span> <span class='keyglyph'>=</span> <span class='varid'>scAttr</span> <span class='layout'>(</span><span class='varid'>qualifiedName</span> <span class='varid'>qn</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>theSchema</span> <span class='varid'>pa</span><span class='layout'>)</span>-<a name="line-609"></a> <span class='layout'>}</span>-<a name="line-610"></a> <span class='keyword'>where</span>-<a name="line-611"></a> <span class='varid'>unpickleAttr</span> <span class='varid'>st</span>-<a name="line-612"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-613"></a> <span class='varid'>a</span> <span class='keyglyph'><-</span> <span class='varid'>getAtt</span> <span class='varid'>qn</span> <span class='varid'>st</span>-<a name="line-614"></a> <span class='keyword'>let</span> <span class='varid'>av</span> <span class='keyglyph'>=</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getChildren</span> <span class='varid'>a</span>-<a name="line-615"></a> <span class='varid'>res</span> <span class='keyglyph'><-</span> <span class='varid'>fst</span> <span class='varop'>.</span> <span class='varid'>appUnPickle</span> <span class='varid'>pa</span> <span class='varop'>$</span> <span class='conid'>St</span> <span class='layout'>{</span><span class='varid'>attributes</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span><span class='layout'>,</span> <span class='varid'>contents</span> <span class='keyglyph'>=</span> <span class='varid'>av</span><span class='layout'>}</span>-<a name="line-616"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>res</span><span class='layout'>,</span> <span class='varid'>st</span><span class='layout'>)</span> <span class='comment'>-- attribute is not removed from attribute list,</span>-<a name="line-617"></a> <span class='comment'>-- attributes are selected by name</span>-<a name="line-618"></a>-<a name="line-619"></a><span class='comment'>-- | convenient Pickler for xpAttrQN</span>-<a name="line-620"></a><span class='comment'>--</span>-<a name="line-621"></a><span class='comment'>-- > xpAttr n = xpAttrQN (mkName n)</span>-<a name="line-622"></a>-<a name="line-623"></a><a name="xpAttr"></a><span class='definition'>xpAttr</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>PU</span> <span class='varid'>a</span>-<a name="line-624"></a><span class='definition'>xpAttr</span> <span class='keyglyph'>=</span> <span class='varid'>xpAttrQN</span> <span class='varop'>.</span> <span class='varid'>mkName</span>-<a name="line-625"></a>-<a name="line-626"></a><span class='comment'>-- | Add an optional attribute for an optional value (Maybe a).</span>-<a name="line-627"></a>-<a name="line-628"></a><a name="xpAttrImplied"></a><span class='definition'>xpAttrImplied</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>PU</span> <span class='layout'>(</span><span class='conid'>Maybe</span> <span class='varid'>a</span><span class='layout'>)</span>-<a name="line-629"></a><span class='definition'>xpAttrImplied</span> <span class='varid'>name</span> <span class='varid'>pa</span>-<a name="line-630"></a> <span class='keyglyph'>=</span> <span class='varid'>xpOption</span> <span class='varop'>$</span> <span class='varid'>xpAttr</span> <span class='varid'>name</span> <span class='varid'>pa</span>-<a name="line-631"></a>-<a name="line-632"></a><a name="xpAttrFixed"></a><span class='definition'>xpAttrFixed</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>PU</span> <span class='conid'>()</span>-<a name="line-633"></a><span class='definition'>xpAttrFixed</span> <span class='varid'>name</span> <span class='varid'>val</span>-<a name="line-634"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>xpWrapMaybe</span> <span class='layout'>(</span> <span class='keyglyph'>\</span> <span class='varid'>v</span> <span class='keyglyph'>-></span> <span class='keyword'>if</span> <span class='varid'>v</span> <span class='varop'>==</span> <span class='varid'>val</span> <span class='keyword'>then</span> <span class='conid'>Just</span> <span class='conid'>()</span> <span class='keyword'>else</span> <span class='conid'>Nothing</span>-<a name="line-635"></a> <span class='layout'>,</span> <span class='varid'>const</span> <span class='varid'>val</span>-<a name="line-636"></a> <span class='layout'>)</span> <span class='varop'>$</span>-<a name="line-637"></a> <span class='varid'>xpAttr</span> <span class='varid'>name</span> <span class='varid'>xpText</span>-<a name="line-638"></a> <span class='layout'>)</span> <span class='layout'>{</span> <span class='varid'>theSchema</span> <span class='keyglyph'>=</span> <span class='varid'>scAttr</span> <span class='varid'>name</span> <span class='layout'>(</span><span class='varid'>scFixed</span> <span class='varid'>val</span><span class='layout'>)</span> <span class='layout'>}</span>-<a name="line-639"></a>-<a name="line-640"></a><span class='comment'>-- | Add an attribute with a fixed value.</span>-<a name="line-641"></a><span class='comment'>--</span>-<a name="line-642"></a><span class='comment'>-- Useful e.g. to declare namespaces. Is implemented by 'xpAttrFixed'</span>-<a name="line-643"></a>-<a name="line-644"></a><a name="xpAddFixedAttr"></a><span class='definition'>xpAddFixedAttr</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>PU</span> <span class='varid'>a</span>-<a name="line-645"></a><span class='definition'>xpAddFixedAttr</span> <span class='varid'>name</span> <span class='varid'>val</span> <span class='varid'>pa</span>-<a name="line-646"></a> <span class='keyglyph'>=</span> <span class='varid'>xpWrap</span> <span class='layout'>(</span> <span class='varid'>snd</span>-<a name="line-647"></a> <span class='layout'>,</span> <span class='conid'>(,)</span> <span class='conid'>()</span>-<a name="line-648"></a> <span class='layout'>)</span> <span class='varop'>$</span>-<a name="line-649"></a> <span class='varid'>xpPair</span> <span class='layout'>(</span><span class='varid'>xpAttrFixed</span> <span class='varid'>name</span> <span class='varid'>val</span><span class='layout'>)</span> <span class='varid'>pa</span>-<a name="line-650"></a>-<a name="line-651"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-652"></a>-<a name="line-653"></a><span class='comment'>-- | The class for overloading 'xpickle', the default pickler</span>-<a name="line-654"></a>-<a name="line-655"></a><a name="XmlPickler"></a><span class='keyword'>class</span> <span class='conid'>XmlPickler</span> <span class='varid'>a</span> <span class='keyword'>where</span>-<a name="line-656"></a> <span class='varid'>xpickle</span> <span class='keyglyph'>::</span> <span class='conid'>PU</span> <span class='varid'>a</span>-<a name="line-657"></a>-<a name="line-658"></a><span class='keyword'>instance</span> <span class='conid'>XmlPickler</span> <span class='conid'>Int</span> <span class='keyword'>where</span>-<a name="line-659"></a> <span class='varid'>xpickle</span> <span class='keyglyph'>=</span> <span class='varid'>xpPrim</span>-<a name="line-660"></a>-<a name="line-661"></a><span class='keyword'>instance</span> <span class='conid'>XmlPickler</span> <span class='conid'>Integer</span> <span class='keyword'>where</span>-<a name="line-662"></a> <span class='varid'>xpickle</span> <span class='keyglyph'>=</span> <span class='varid'>xpPrim</span>-<a name="line-663"></a>-<a name="line-664"></a><span class='comment'>{--<a name="line-665"></a> no instance of XmlPickler Char-<a name="line-666"></a> because then every text would be encoded-<a name="line-667"></a> char by char, because of the instance for lists-<a name="line-668"></a>-<a name="line-669"></a>instance XmlPickler Char where-<a name="line-670"></a> xpickle = xpPrim-<a name="line-671"></a>-}</span>-<a name="line-672"></a>-<a name="line-673"></a><span class='keyword'>instance</span> <span class='conid'>XmlPickler</span> <span class='conid'>()</span> <span class='keyword'>where</span>-<a name="line-674"></a> <span class='varid'>xpickle</span> <span class='keyglyph'>=</span> <span class='varid'>xpUnit</span>-<a name="line-675"></a>-<a name="line-676"></a><span class='keyword'>instance</span> <span class='layout'>(</span><span class='conid'>XmlPickler</span> <span class='varid'>a</span><span class='layout'>,</span> <span class='conid'>XmlPickler</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>=></span> <span class='conid'>XmlPickler</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span><span class='varid'>b</span><span class='layout'>)</span> <span class='keyword'>where</span>-<a name="line-677"></a> <span class='varid'>xpickle</span> <span class='keyglyph'>=</span> <span class='varid'>xpPair</span> <span class='varid'>xpickle</span> <span class='varid'>xpickle</span>-<a name="line-678"></a>-<a name="line-679"></a><span class='keyword'>instance</span> <span class='layout'>(</span><span class='conid'>XmlPickler</span> <span class='varid'>a</span><span class='layout'>,</span> <span class='conid'>XmlPickler</span> <span class='varid'>b</span><span class='layout'>,</span> <span class='conid'>XmlPickler</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='keyglyph'>=></span> <span class='conid'>XmlPickler</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span><span class='varid'>b</span><span class='layout'>,</span><span class='varid'>c</span><span class='layout'>)</span> <span class='keyword'>where</span>-<a name="line-680"></a> <span class='varid'>xpickle</span> <span class='keyglyph'>=</span> <span class='varid'>xpTriple</span> <span class='varid'>xpickle</span> <span class='varid'>xpickle</span> <span class='varid'>xpickle</span>-<a name="line-681"></a>-<a name="line-682"></a><span class='keyword'>instance</span> <span class='layout'>(</span><span class='conid'>XmlPickler</span> <span class='varid'>a</span><span class='layout'>,</span> <span class='conid'>XmlPickler</span> <span class='varid'>b</span><span class='layout'>,</span> <span class='conid'>XmlPickler</span> <span class='varid'>c</span><span class='layout'>,</span> <span class='conid'>XmlPickler</span> <span class='varid'>d</span><span class='layout'>)</span> <span class='keyglyph'>=></span> <span class='conid'>XmlPickler</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span><span class='varid'>b</span><span class='layout'>,</span><span class='varid'>c</span><span class='layout'>,</span><span class='varid'>d</span><span class='layout'>)</span> <span class='keyword'>where</span>-<a name="line-683"></a> <span class='varid'>xpickle</span> <span class='keyglyph'>=</span> <span class='varid'>xp4Tuple</span> <span class='varid'>xpickle</span> <span class='varid'>xpickle</span> <span class='varid'>xpickle</span> <span class='varid'>xpickle</span>-<a name="line-684"></a>-<a name="line-685"></a><span class='keyword'>instance</span> <span class='layout'>(</span><span class='conid'>XmlPickler</span> <span class='varid'>a</span><span class='layout'>,</span> <span class='conid'>XmlPickler</span> <span class='varid'>b</span><span class='layout'>,</span> <span class='conid'>XmlPickler</span> <span class='varid'>c</span><span class='layout'>,</span> <span class='conid'>XmlPickler</span> <span class='varid'>d</span><span class='layout'>,</span> <span class='conid'>XmlPickler</span> <span class='varid'>e</span><span class='layout'>)</span> <span class='keyglyph'>=></span> <span class='conid'>XmlPickler</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span><span class='varid'>b</span><span class='layout'>,</span><span class='varid'>c</span><span class='layout'>,</span><span class='varid'>d</span><span class='layout'>,</span><span class='varid'>e</span><span class='layout'>)</span> <span class='keyword'>where</span>-<a name="line-686"></a> <span class='varid'>xpickle</span> <span class='keyglyph'>=</span> <span class='varid'>xp5Tuple</span> <span class='varid'>xpickle</span> <span class='varid'>xpickle</span> <span class='varid'>xpickle</span> <span class='varid'>xpickle</span> <span class='varid'>xpickle</span>-<a name="line-687"></a>-<a name="line-688"></a><span class='keyword'>instance</span> <span class='conid'>XmlPickler</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='conid'>XmlPickler</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span> <span class='keyword'>where</span>-<a name="line-689"></a> <span class='varid'>xpickle</span> <span class='keyglyph'>=</span> <span class='varid'>xpList</span> <span class='varid'>xpickle</span>-<a name="line-690"></a>-<a name="line-691"></a><span class='keyword'>instance</span> <span class='conid'>XmlPickler</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='conid'>XmlPickler</span> <span class='layout'>(</span><span class='conid'>Maybe</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyword'>where</span>-<a name="line-692"></a> <span class='varid'>xpickle</span> <span class='keyglyph'>=</span> <span class='varid'>xpOption</span> <span class='varid'>xpickle</span>-<a name="line-693"></a>-<a name="line-694"></a><span class='comment'>-- ------------------------------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-Arrow-Pickle.html
@@ -1,254 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Text.XML.HXT.Arrow.Pickle-<a name="line-5"></a> Copyright : Copyright (C) 2005 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe@fh-wedel.de)-<a name="line-9"></a> Stability : experimental-<a name="line-10"></a> Portability: portable-<a name="line-11"></a> Version : $Id$-<a name="line-12"></a>-<a name="line-13"></a>Pickler functions for converting between user defined data types-<a name="line-14"></a>and XmlTree data. Usefull for persistent storage and retreival-<a name="line-15"></a>of arbitray data as XML documents-<a name="line-16"></a>-<a name="line-17"></a>This module is an adaptation of the pickler combinators-<a name="line-18"></a>developed by Andrew Kennedy-<a name="line-19"></a>( http:\/\/research.microsoft.com\/~akenn\/fun\/picklercombinators.pdf )-<a name="line-20"></a>-<a name="line-21"></a>The difference to Kennedys approach is that the target is not-<a name="line-22"></a>a list of Chars but a list of XmlTrees. The basic picklers will-<a name="line-23"></a>convert data into XML text nodes. New are the picklers for-<a name="line-24"></a>creating elements and attributes.-<a name="line-25"></a>-<a name="line-26"></a>One extension was neccessary: The unpickling may fail.-<a name="line-27"></a>Therefore the unpickler has a Maybe result type.-<a name="line-28"></a>Failure is used to unpickle optional elements-<a name="line-29"></a>(Maybe data) and lists of arbitray length-<a name="line-30"></a>-<a name="line-31"></a>There is an example program demonstrating the use-<a name="line-32"></a>of the picklers for a none trivial data structure.-<a name="line-33"></a>(see \"examples\/arrows\/pickle\" directory)-<a name="line-34"></a>-<a name="line-35"></a>-}</span>-<a name="line-36"></a>-<a name="line-37"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-38"></a>-<a name="line-39"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>Pickle</span>-<a name="line-40"></a> <span class='layout'>(</span> <span class='varid'>xpickleDocument</span> <span class='comment'>-- from this module Text.XML.HXT.Arrow.Pickle</span>-<a name="line-41"></a> <span class='layout'>,</span> <span class='varid'>xunpickleDocument</span>-<a name="line-42"></a> <span class='layout'>,</span> <span class='varid'>xpickleWriteDTD</span>-<a name="line-43"></a> <span class='layout'>,</span> <span class='varid'>xpickleDTD</span>-<a name="line-44"></a> <span class='layout'>,</span> <span class='varid'>checkPickler</span>-<a name="line-45"></a> <span class='layout'>,</span> <span class='varid'>xpickleVal</span>-<a name="line-46"></a> <span class='layout'>,</span> <span class='varid'>xunpickleVal</span>-<a name="line-47"></a> <span class='layout'>,</span> <span class='varid'>thePicklerDTD</span>-<a name="line-48"></a> <span class='layout'>,</span> <span class='varid'>a_addDTD</span>-<a name="line-49"></a>-<a name="line-50"></a> <span class='comment'>-- from Text.XML.HXT.Arrow.Pickle.Xml</span>-<a name="line-51"></a> <span class='layout'>,</span> <span class='varid'>pickleDoc</span>-<a name="line-52"></a> <span class='layout'>,</span> <span class='varid'>unpickleDoc</span>-<a name="line-53"></a>-<a name="line-54"></a> <span class='layout'>,</span> <span class='conid'>PU</span><span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span>-<a name="line-55"></a> <span class='layout'>,</span> <span class='conid'>XmlPickler</span>-<a name="line-56"></a>-<a name="line-57"></a> <span class='layout'>,</span> <span class='varid'>xp4Tuple</span>-<a name="line-58"></a> <span class='layout'>,</span> <span class='varid'>xp5Tuple</span>-<a name="line-59"></a> <span class='layout'>,</span> <span class='varid'>xp6Tuple</span>-<a name="line-60"></a> <span class='layout'>,</span> <span class='varid'>xpAddFixedAttr</span>-<a name="line-61"></a> <span class='layout'>,</span> <span class='varid'>xpAlt</span>-<a name="line-62"></a> <span class='layout'>,</span> <span class='varid'>xpAttr</span>-<a name="line-63"></a> <span class='layout'>,</span> <span class='varid'>xpAttrFixed</span>-<a name="line-64"></a> <span class='layout'>,</span> <span class='varid'>xpAttrImplied</span>-<a name="line-65"></a> <span class='layout'>,</span> <span class='varid'>xpChoice</span>-<a name="line-66"></a> <span class='layout'>,</span> <span class='varid'>xpCondSeq</span>-<a name="line-67"></a> <span class='layout'>,</span> <span class='varid'>xpDefault</span>-<a name="line-68"></a> <span class='layout'>,</span> <span class='varid'>xpElem</span>-<a name="line-69"></a> <span class='layout'>,</span> <span class='varid'>xpElemWithAttrValue</span>-<a name="line-70"></a> <span class='layout'>,</span> <span class='varid'>xpickle</span>-<a name="line-71"></a> <span class='layout'>,</span> <span class='varid'>xpLift</span>-<a name="line-72"></a> <span class='layout'>,</span> <span class='varid'>xpLiftMaybe</span>-<a name="line-73"></a> <span class='layout'>,</span> <span class='varid'>xpList</span>-<a name="line-74"></a> <span class='layout'>,</span> <span class='varid'>xpList1</span>-<a name="line-75"></a> <span class='layout'>,</span> <span class='varid'>xpMap</span>-<a name="line-76"></a> <span class='layout'>,</span> <span class='varid'>xpOption</span>-<a name="line-77"></a> <span class='layout'>,</span> <span class='varid'>xpPair</span>-<a name="line-78"></a> <span class='layout'>,</span> <span class='varid'>xpPrim</span>-<a name="line-79"></a> <span class='layout'>,</span> <span class='varid'>xpSeq</span>-<a name="line-80"></a> <span class='layout'>,</span> <span class='varid'>xpText</span>-<a name="line-81"></a> <span class='layout'>,</span> <span class='varid'>xpText0</span>-<a name="line-82"></a> <span class='layout'>,</span> <span class='varid'>xpTextDT</span>-<a name="line-83"></a> <span class='layout'>,</span> <span class='varid'>xpText0DT</span>-<a name="line-84"></a> <span class='layout'>,</span> <span class='varid'>xpTree</span>-<a name="line-85"></a> <span class='layout'>,</span> <span class='varid'>xpTrees</span>-<a name="line-86"></a> <span class='layout'>,</span> <span class='varid'>xpTriple</span>-<a name="line-87"></a> <span class='layout'>,</span> <span class='varid'>xpUnit</span>-<a name="line-88"></a> <span class='layout'>,</span> <span class='varid'>xpWrap</span>-<a name="line-89"></a> <span class='layout'>,</span> <span class='varid'>xpWrapMaybe</span>-<a name="line-90"></a> <span class='layout'>,</span> <span class='varid'>xpXmlText</span>-<a name="line-91"></a> <span class='layout'>,</span> <span class='varid'>xpZero</span>-<a name="line-92"></a>-<a name="line-93"></a> <span class='comment'>-- from Text.XML.HXT.Arrow.Pickle.Schema</span>-<a name="line-94"></a> <span class='layout'>,</span> <span class='conid'>Schema</span>-<a name="line-95"></a> <span class='layout'>,</span> <span class='conid'>Schemas</span>-<a name="line-96"></a> <span class='layout'>,</span> <span class='conid'>DataTypeDescr</span>-<a name="line-97"></a> <span class='layout'>)</span>-<a name="line-98"></a><span class='keyword'>where</span>-<a name="line-99"></a>-<a name="line-100"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>-<a name="line-101"></a>-<a name="line-102"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ListArrows</span>-<a name="line-103"></a>-<a name="line-104"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>-<a name="line-105"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlArrow</span>-<a name="line-106"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlIOStateArrow</span>-<a name="line-107"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ReadDocument</span>-<a name="line-108"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>WriteDocument</span>-<a name="line-109"></a>-<a name="line-110"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>Pickle</span><span class='varop'>.</span><span class='conid'>Xml</span>-<a name="line-111"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>Pickle</span><span class='varop'>.</span><span class='conid'>Schema</span>-<a name="line-112"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>Pickle</span><span class='varop'>.</span><span class='conid'>DTD</span>-<a name="line-113"></a>-<a name="line-114"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-115"></a>-<a name="line-116"></a><span class='comment'>-- the arrow interface for pickling and unpickling</span>-<a name="line-117"></a>-<a name="line-118"></a><span class='comment'>-- | store an arbitray value in a persistent XML document</span>-<a name="line-119"></a><span class='comment'>--</span>-<a name="line-120"></a><span class='comment'>-- The pickler converts a value into an XML tree, this is written out with</span>-<a name="line-121"></a><span class='comment'>-- 'Text.XML.HXT.Arrow.writeDocument'. The option list is passed to 'Text.XML.HXT.Arrow.writeDocument'</span>-<a name="line-122"></a><span class='comment'>--</span>-<a name="line-123"></a><span class='comment'>-- An option evaluated by this arrow is 'a_addDTD'.</span>-<a name="line-124"></a><span class='comment'>-- If 'a_addDTD' is set ('v_1'), the pickler DTD is added as an inline DTD into the document.</span>-<a name="line-125"></a>-<a name="line-126"></a><a name="xpickleDocument"></a><span class='definition'>xpickleDocument</span> <span class='keyglyph'>::</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span>-<a name="line-127"></a><span class='definition'>xpickleDocument</span> <span class='varid'>xp</span> <span class='varid'>al</span> <span class='varid'>dest</span>-<a name="line-128"></a> <span class='keyglyph'>=</span> <span class='varid'>xpickleVal</span> <span class='varid'>xp</span>-<a name="line-129"></a> <span class='varop'>>>></span>-<a name="line-130"></a> <span class='varid'>traceMsg</span> <span class='num'>1</span> <span class='str'>"xpickleVal applied"</span>-<a name="line-131"></a> <span class='varop'>>>></span>-<a name="line-132"></a> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>lookup1</span> <span class='varid'>a_addDTD</span> <span class='varid'>al</span> <span class='varop'>==</span> <span class='varid'>v_1</span>-<a name="line-133"></a> <span class='keyword'>then</span> <span class='varid'>replaceChildren</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>constA</span> <span class='varid'>undefined</span> <span class='varop'>>>></span> <span class='varid'>xpickleDTD</span> <span class='varid'>xp</span> <span class='varop'>>>></span> <span class='varid'>getChildren</span><span class='layout'>)</span>-<a name="line-134"></a> <span class='varop'><+></span>-<a name="line-135"></a> <span class='varid'>getChildren</span>-<a name="line-136"></a> <span class='layout'>)</span>-<a name="line-137"></a> <span class='keyword'>else</span> <span class='varid'>this</span>-<a name="line-138"></a> <span class='layout'>)</span>-<a name="line-139"></a> <span class='varop'>>>></span>-<a name="line-140"></a> <span class='varid'>writeDocument</span> <span class='varid'>al</span> <span class='varid'>dest</span>-<a name="line-141"></a>-<a name="line-142"></a><span class='comment'>-- | Option for generating and adding DTD when document is pickled</span>-<a name="line-143"></a>-<a name="line-144"></a><a name="a_addDTD"></a><span class='definition'>a_addDTD</span> <span class='keyglyph'>::</span> <span class='conid'>String</span>-<a name="line-145"></a><span class='definition'>a_addDTD</span> <span class='keyglyph'>=</span> <span class='str'>"addDTD"</span>-<a name="line-146"></a>-<a name="line-147"></a><span class='comment'>-- | read an arbitray value from an XML document</span>-<a name="line-148"></a><span class='comment'>--</span>-<a name="line-149"></a><span class='comment'>-- The document is read with 'Text.XML.HXT.Arrow.readDocument'. Options are passed</span>-<a name="line-150"></a><span class='comment'>-- to 'Text.XML.HXT.Arrow.readDocument'. The conversion from XmlTree is done with the</span>-<a name="line-151"></a><span class='comment'>-- pickler.</span>-<a name="line-152"></a><span class='comment'>--</span>-<a name="line-153"></a><span class='comment'>-- @ xpickleDocument xp al dest >>> xunpickleDocument xp al' dest @ is the identity arrow</span>-<a name="line-154"></a><span class='comment'>-- when applied with the appropriate options. When during pickling indentation is switched on,</span>-<a name="line-155"></a><span class='comment'>-- the whitespace must be removed during unpickling.</span>-<a name="line-156"></a>-<a name="line-157"></a><a name="xunpickleDocument"></a><span class='definition'>xunpickleDocument</span> <span class='keyglyph'>::</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>a</span>-<a name="line-158"></a><span class='definition'>xunpickleDocument</span> <span class='varid'>xp</span> <span class='varid'>al</span> <span class='varid'>src</span>-<a name="line-159"></a> <span class='keyglyph'>=</span> <span class='varid'>readDocument</span> <span class='varid'>al</span> <span class='varid'>src</span>-<a name="line-160"></a> <span class='varop'>>>></span>-<a name="line-161"></a> <span class='varid'>traceMsg</span> <span class='num'>1</span> <span class='layout'>(</span><span class='str'>"xunpickleVal for "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>src</span> <span class='varop'>++</span> <span class='str'>" started"</span><span class='layout'>)</span>-<a name="line-162"></a> <span class='varop'>>>></span>-<a name="line-163"></a> <span class='varid'>xunpickleVal</span> <span class='varid'>xp</span>-<a name="line-164"></a> <span class='varop'>>>></span>-<a name="line-165"></a> <span class='varid'>traceMsg</span> <span class='num'>1</span> <span class='layout'>(</span><span class='str'>"xunpickleVal for "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>src</span> <span class='varop'>++</span> <span class='str'>" finished"</span><span class='layout'>)</span>-<a name="line-166"></a>-<a name="line-167"></a><span class='comment'>-- | Write out the DTD generated out of a pickler. Calls 'xpicklerDTD'</span>-<a name="line-168"></a>-<a name="line-169"></a><a name="xpickleWriteDTD"></a><span class='definition'>xpickleWriteDTD</span> <span class='keyglyph'>::</span> <span class='conid'>PU</span> <span class='varid'>b</span> <span class='keyglyph'>-></span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='conid'>XmlTree</span>-<a name="line-170"></a><span class='definition'>xpickleWriteDTD</span> <span class='varid'>xp</span> <span class='varid'>al</span> <span class='varid'>dest</span>-<a name="line-171"></a> <span class='keyglyph'>=</span> <span class='varid'>xpickleDTD</span> <span class='varid'>xp</span>-<a name="line-172"></a> <span class='varop'>>>></span>-<a name="line-173"></a> <span class='varid'>writeDocument</span> <span class='varid'>al</span> <span class='varid'>dest</span>-<a name="line-174"></a>-<a name="line-175"></a><span class='comment'>-- | The arrow for generating the DTD out of a pickler</span>-<a name="line-176"></a><span class='comment'>--</span>-<a name="line-177"></a><span class='comment'>-- A DTD is generated from a pickler and check for consistency.</span>-<a name="line-178"></a><span class='comment'>-- Errors concerning the DTD are issued.</span>-<a name="line-179"></a>-<a name="line-180"></a><a name="xpickleDTD"></a><span class='definition'>xpickleDTD</span> <span class='keyglyph'>::</span> <span class='conid'>PU</span> <span class='varid'>b</span> <span class='keyglyph'>-></span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='conid'>XmlTree</span>-<a name="line-181"></a><span class='definition'>xpickleDTD</span> <span class='varid'>xp</span> <span class='keyglyph'>=</span> <span class='varid'>root</span> <span class='conid'>[]</span> <span class='keyglyph'>[</span> <span class='varid'>constL</span> <span class='layout'>(</span><span class='varid'>thePicklerDTD</span> <span class='varid'>xp</span><span class='layout'>)</span>-<a name="line-182"></a> <span class='varop'>>>></span>-<a name="line-183"></a> <span class='varid'>filterErrorMsg</span>-<a name="line-184"></a> <span class='keyglyph'>]</span>-<a name="line-185"></a>-<a name="line-186"></a><span class='comment'>-- | An arrow for checking picklers</span>-<a name="line-187"></a><span class='comment'>--</span>-<a name="line-188"></a><span class='comment'>-- A value is transformed into an XML document by a given pickler,</span>-<a name="line-189"></a><span class='comment'>-- the associated DTD is extracted from the pickler and checked,</span>-<a name="line-190"></a><span class='comment'>-- the document including the DTD is tranlated into a string,</span>-<a name="line-191"></a><span class='comment'>-- this string is read and validated against the included DTD,</span>-<a name="line-192"></a><span class='comment'>-- and unpickled.</span>-<a name="line-193"></a><span class='comment'>-- The last step is the equality with the input.</span>-<a name="line-194"></a><span class='comment'>--</span>-<a name="line-195"></a><span class='comment'>-- If the check succeeds, the arrow works like this, else it fails.</span>-<a name="line-196"></a>-<a name="line-197"></a><a name="checkPickler"></a><span class='definition'>checkPickler</span> <span class='keyglyph'>::</span> <span class='conid'>Eq</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>a</span> <span class='varid'>a</span>-<a name="line-198"></a><span class='definition'>checkPickler</span> <span class='varid'>xp</span> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>xpickleVal</span> <span class='varid'>xp</span>-<a name="line-199"></a> <span class='varop'>>>></span>-<a name="line-200"></a> <span class='varid'>replaceChildren</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>constA</span> <span class='varid'>undefined</span> <span class='varop'>>>></span> <span class='varid'>xpickleDTD</span> <span class='varid'>xp</span> <span class='varop'>>>></span> <span class='varid'>getChildren</span><span class='layout'>)</span>-<a name="line-201"></a> <span class='varop'><+></span>-<a name="line-202"></a> <span class='varid'>getChildren</span>-<a name="line-203"></a> <span class='layout'>)</span>-<a name="line-204"></a> <span class='varop'>>>></span>-<a name="line-205"></a> <span class='varid'>writeDocumentToString</span> <span class='conid'>[]</span>-<a name="line-206"></a> <span class='varop'>>>></span>-<a name="line-207"></a> <span class='varid'>readFromString</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a_validate</span><span class='layout'>,</span> <span class='varid'>v_1</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-208"></a> <span class='varop'>>>></span>-<a name="line-209"></a> <span class='layout'>(</span> <span class='varid'>xunpickleVal</span> <span class='varid'>xp</span>-<a name="line-210"></a> <span class='varop'>`orElse`</span>-<a name="line-211"></a> <span class='layout'>(</span> <span class='varid'>issueErr</span> <span class='str'>"unpickling the document failed"</span>-<a name="line-212"></a> <span class='varop'>>>></span>-<a name="line-213"></a> <span class='varid'>none</span>-<a name="line-214"></a> <span class='layout'>)</span>-<a name="line-215"></a> <span class='layout'>)</span>-<a name="line-216"></a> <span class='layout'>)</span>-<a name="line-217"></a> <span class='varop'>&&&</span> -<a name="line-218"></a> <span class='varid'>this</span>-<a name="line-219"></a> <span class='layout'>)</span>-<a name="line-220"></a> <span class='varop'>>>></span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>uncurry</span> <span class='layout'>(</span><span class='varop'>==</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-221"></a> <span class='layout'>)</span>-<a name="line-222"></a> <span class='varop'>`guards`</span> <span class='varid'>this</span>-<a name="line-223"></a> <span class='layout'>)</span>-<a name="line-224"></a> <span class='varop'>`orElse`</span> <span class='varid'>issueErr</span> <span class='str'>"pickle/unpickle combinators failed"</span>-<a name="line-225"></a>-<a name="line-226"></a><span class='comment'>-- | The arrow version of the pickler function</span>-<a name="line-227"></a>-<a name="line-228"></a><a name="xpickleVal"></a><span class='definition'>xpickleVal</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='conid'>PU</span> <span class='varid'>b</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='conid'>XmlTree</span>-<a name="line-229"></a><span class='definition'>xpickleVal</span> <span class='varid'>xp</span> <span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='varid'>pickleDoc</span> <span class='varid'>xp</span><span class='layout'>)</span>-<a name="line-230"></a>-<a name="line-231"></a><span class='comment'>-- | The arrow version of the unpickler function</span>-<a name="line-232"></a>-<a name="line-233"></a><a name="xunpickleVal"></a><span class='definition'>xunpickleVal</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='conid'>PU</span> <span class='varid'>b</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='varid'>b</span>-<a name="line-234"></a><span class='definition'>xunpickleVal</span> <span class='varid'>xp</span> <span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>maybeToList</span> <span class='varop'>.</span> <span class='varid'>unpickleDoc</span> <span class='varid'>xp</span><span class='layout'>)</span>-<a name="line-235"></a>-<a name="line-236"></a>-<a name="line-237"></a><span class='comment'>-- | Compute the associated DTD of a pickler</span>-<a name="line-238"></a>-<a name="line-239"></a><a name="thePicklerDTD"></a><span class='definition'>thePicklerDTD</span> <span class='keyglyph'>::</span> <span class='conid'>PU</span> <span class='varid'>b</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span>-<a name="line-240"></a><span class='definition'>thePicklerDTD</span> <span class='keyglyph'>=</span> <span class='varid'>dtdDescrToXml</span> <span class='varop'>.</span> <span class='varid'>dtdDescr</span> <span class='varop'>.</span> <span class='varid'>theSchema</span>-<a name="line-241"></a>-<a name="line-242"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-243"></a>-<a name="line-244"></a>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-Arrow-ProcessDocument.html
@@ -1,294 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Text.XML.HXT.Arrow.ProcessDocument-<a name="line-5"></a> Copyright : Copyright (C) 2005 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe@fh-wedel.de)-<a name="line-9"></a> Stability : experimental-<a name="line-10"></a> Portability: portable-<a name="line-11"></a> Version : $Id: ProcessDocument.hs,v 1.3 2006/08/30 16:20:52 hxml Exp $-<a name="line-12"></a>-<a name="line-13"></a> Compound arrows for reading, parsing, validating and writing XML documents-<a name="line-14"></a>-<a name="line-15"></a> All arrows use IO and a global state for options, errorhandling, ...-<a name="line-16"></a>-}</span>-<a name="line-17"></a>-<a name="line-18"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-19"></a>-<a name="line-20"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ProcessDocument</span>-<a name="line-21"></a> <span class='layout'>(</span> <span class='varid'>parseXmlDocument</span>-<a name="line-22"></a> <span class='layout'>,</span> <span class='varid'>parseHtmlDocument</span>-<a name="line-23"></a> <span class='layout'>,</span> <span class='varid'>validateDocument</span>-<a name="line-24"></a> <span class='layout'>,</span> <span class='varid'>propagateAndValidateNamespaces</span>-<a name="line-25"></a> <span class='layout'>,</span> <span class='varid'>getDocumentContents</span>-<a name="line-26"></a> <span class='layout'>)</span>-<a name="line-27"></a><span class='keyword'>where</span>-<a name="line-28"></a>-<a name="line-29"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span> <span class='comment'>-- arrow classes</span>-<a name="line-30"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowList</span>-<a name="line-31"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowIf</span>-<a name="line-32"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowTree</span>-<a name="line-33"></a>-<a name="line-34"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>-<a name="line-35"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlArrow</span>-<a name="line-36"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlIOStateArrow</span>-<a name="line-37"></a>-<a name="line-38"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ParserInterface</span>-<a name="line-39"></a> <span class='layout'>(</span> <span class='varid'>parseXmlDoc</span>-<a name="line-40"></a> <span class='layout'>,</span> <span class='varid'>parseHtmlDoc</span>-<a name="line-41"></a> <span class='layout'>,</span> <span class='varid'>parseHtmlTagSoup</span>-<a name="line-42"></a> <span class='layout'>,</span> <span class='varid'>substHtmlEntityRefs</span>-<a name="line-43"></a> <span class='layout'>,</span> <span class='varid'>validateDoc</span>-<a name="line-44"></a> <span class='layout'>,</span> <span class='varid'>transformDoc</span>-<a name="line-45"></a> <span class='layout'>)</span>-<a name="line-46"></a>-<a name="line-47"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>Edit</span>-<a name="line-48"></a> <span class='layout'>(</span> <span class='varid'>transfAllCharRef</span>-<a name="line-49"></a> <span class='layout'>)</span>-<a name="line-50"></a>-<a name="line-51"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>GeneralEntitySubstitution</span>-<a name="line-52"></a> <span class='layout'>(</span> <span class='varid'>processGeneralEntities</span>-<a name="line-53"></a> <span class='layout'>)</span>-<a name="line-54"></a>-<a name="line-55"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>DTDProcessing</span>-<a name="line-56"></a> <span class='layout'>(</span> <span class='varid'>processDTD</span>-<a name="line-57"></a> <span class='layout'>)</span>-<a name="line-58"></a>-<a name="line-59"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>DocumentInput</span>-<a name="line-60"></a> <span class='layout'>(</span> <span class='varid'>getXmlContents</span>-<a name="line-61"></a> <span class='layout'>)</span>-<a name="line-62"></a>-<a name="line-63"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>Namespace</span>-<a name="line-64"></a> <span class='layout'>(</span> <span class='varid'>propagateNamespaces</span>-<a name="line-65"></a> <span class='layout'>,</span> <span class='varid'>validateNamespaces</span>-<a name="line-66"></a> <span class='layout'>)</span>-<a name="line-67"></a>-<a name="line-68"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-69"></a>-<a name="line-70"></a><span class='comment'>{- | -<a name="line-71"></a>XML parser-<a name="line-72"></a>-<a name="line-73"></a>Input tree must be a root tree with a text tree as child containing the document to be parsed.-<a name="line-74"></a>The parser generates from the input string a tree of a wellformed XML document,-<a name="line-75"></a>processes the DTD (parameter substitution, conditional DTD parts, ...) and-<a name="line-76"></a>substitutes all general entity references. Next step is character reference substitution.-<a name="line-77"></a>Last step is the document validation.-<a name="line-78"></a>Validation can be controlled by an extra parameter.-<a name="line-79"></a>-<a name="line-80"></a>Example:-<a name="line-81"></a>-<a name="line-82"></a>> parseXmlDocument True -- parse and validate document-<a name="line-83"></a>>-<a name="line-84"></a>> parseXmlDocument False -- only parse document, don't validate-<a name="line-85"></a>-<a name="line-86"></a>This parser is useful for applications processing correct XML documents.-<a name="line-87"></a>-}</span>-<a name="line-88"></a>-<a name="line-89"></a><a name="parseXmlDocument"></a><span class='definition'>parseXmlDocument</span> <span class='keyglyph'>::</span> <span class='conid'>Bool</span> <span class='keyglyph'>-></span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-90"></a><span class='definition'>parseXmlDocument</span> <span class='varid'>validate</span>-<a name="line-91"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>replaceChildren</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>getAttrValue</span> <span class='varid'>a_source</span>-<a name="line-92"></a> <span class='varop'>&&&</span>-<a name="line-93"></a> <span class='varid'>xshow</span> <span class='varid'>getChildren</span>-<a name="line-94"></a> <span class='layout'>)</span>-<a name="line-95"></a> <span class='varop'>>>></span>-<a name="line-96"></a> <span class='varid'>parseXmlDoc</span>-<a name="line-97"></a> <span class='varop'>>>></span>-<a name="line-98"></a> <span class='varid'>filterErrorMsg</span>-<a name="line-99"></a> <span class='layout'>)</span>-<a name="line-100"></a> <span class='varop'>>>></span>-<a name="line-101"></a> <span class='varid'>setDocumentStatusFromSystemState</span> <span class='str'>"parse XML document"</span>-<a name="line-102"></a> <span class='varop'>>>></span>-<a name="line-103"></a> <span class='varid'>processDTD</span>-<a name="line-104"></a> <span class='varop'>>>></span>-<a name="line-105"></a> <span class='varid'>processGeneralEntities</span>-<a name="line-106"></a> <span class='varop'>>>></span>-<a name="line-107"></a> <span class='varid'>transfAllCharRef</span>-<a name="line-108"></a> <span class='varop'>>>></span>-<a name="line-109"></a> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>validate</span>-<a name="line-110"></a> <span class='keyword'>then</span> <span class='varid'>validateDocument</span>-<a name="line-111"></a> <span class='keyword'>else</span> <span class='varid'>this</span>-<a name="line-112"></a> <span class='layout'>)</span>-<a name="line-113"></a> <span class='layout'>)</span>-<a name="line-114"></a> <span class='varop'>`when`</span> <span class='varid'>documentStatusOk</span>-<a name="line-115"></a>-<a name="line-116"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-117"></a>-<a name="line-118"></a><span class='comment'>{- | -<a name="line-119"></a>HTML parser-<a name="line-120"></a>-<a name="line-121"></a>Input tree must be a root tree with a text tree as child containing the document to be parsed.-<a name="line-122"></a>The parser tries to parse everything as HTML, if the HTML document is not wellformed XML or if-<a name="line-123"></a>errors occur, warnings are generated. The warnings can be issued, or suppressed.-<a name="line-124"></a>-<a name="line-125"></a>Example: @ parseHtmlDocument True @ : parse document and issue warnings-<a name="line-126"></a>-<a name="line-127"></a>This parser is useful for applications like web crawlers, where the pages may contain-<a name="line-128"></a>arbitray errors, but the application is only interested in parts of the document, e.g. the plain text.-<a name="line-129"></a>-<a name="line-130"></a>-}</span>-<a name="line-131"></a>-<a name="line-132"></a><a name="parseHtmlDocument"></a><span class='definition'>parseHtmlDocument</span> <span class='keyglyph'>::</span> <span class='conid'>Bool</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span> <span class='keyglyph'>-></span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-133"></a><span class='definition'>parseHtmlDocument</span> <span class='varid'>withTagSoup</span> <span class='varid'>withNamespaces</span> <span class='varid'>warnings</span> <span class='varid'>preserveCmt</span> <span class='varid'>removeWhitespace</span> <span class='varid'>asHtml</span>-<a name="line-134"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>perform</span> <span class='layout'>(</span> <span class='varid'>getAttrValue</span> <span class='varid'>a_source</span> <span class='varop'>>>></span> <span class='varid'>traceValue</span> <span class='num'>1</span> <span class='layout'>(</span><span class='layout'>(</span><span class='str'>"parseHtmlDoc: parse HTML document "</span> <span class='varop'>++</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>show</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-135"></a> <span class='varop'>>>></span>-<a name="line-136"></a> <span class='varid'>replaceChildren</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>getAttrValue</span> <span class='varid'>a_source</span> <span class='comment'>-- get source name</span>-<a name="line-137"></a> <span class='varop'>&&&</span>-<a name="line-138"></a> <span class='varid'>xshow</span> <span class='varid'>getChildren</span>-<a name="line-139"></a> <span class='layout'>)</span> <span class='comment'>-- get string to be parsed</span>-<a name="line-140"></a> <span class='varop'>>>></span>-<a name="line-141"></a> <span class='varid'>parseHtml</span>-<a name="line-142"></a> <span class='layout'>)</span>-<a name="line-143"></a> <span class='varop'>>>></span>-<a name="line-144"></a> <span class='varid'>removeWarnings</span>-<a name="line-145"></a> <span class='varop'>>>></span>-<a name="line-146"></a> <span class='varid'>setDocumentStatusFromSystemState</span> <span class='str'>"parse HTML document"</span>-<a name="line-147"></a> <span class='varop'>>>></span>-<a name="line-148"></a> <span class='varid'>traceTree</span>-<a name="line-149"></a> <span class='varop'>>>></span>-<a name="line-150"></a> <span class='varid'>traceSource</span>-<a name="line-151"></a> <span class='varop'>>>></span>-<a name="line-152"></a> <span class='varid'>perform</span> <span class='layout'>(</span> <span class='varid'>getAttrValue</span> <span class='varid'>a_source</span>-<a name="line-153"></a> <span class='varop'>>>></span>-<a name="line-154"></a> <span class='varid'>traceValue</span> <span class='num'>1</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>src</span> <span class='keyglyph'>-></span> <span class='str'>"parse HTML document "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>src</span> <span class='varop'>++</span> <span class='str'>" finished"</span><span class='layout'>)</span>-<a name="line-155"></a> <span class='layout'>)</span>-<a name="line-156"></a> <span class='layout'>)</span>-<a name="line-157"></a> <span class='varop'>`when`</span> <span class='varid'>documentStatusOk</span>-<a name="line-158"></a> <span class='keyword'>where</span>-<a name="line-159"></a> <span class='varid'>parseHtml</span>-<a name="line-160"></a> <span class='keyglyph'>|</span> <span class='varid'>withTagSoup</span> <span class='keyglyph'>=</span> <span class='varid'>traceMsg</span> <span class='num'>1</span> <span class='layout'>(</span><span class='str'>"parse document with tagsoup "</span> <span class='varop'>++</span>-<a name="line-161"></a> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>asHtml</span> <span class='keyword'>then</span> <span class='str'>"HT"</span> <span class='keyword'>else</span> <span class='str'>"X"</span> <span class='layout'>)</span> <span class='varop'>++</span> <span class='str'>"ML parser"</span>-<a name="line-162"></a> <span class='layout'>)</span>-<a name="line-163"></a> <span class='varop'>>>></span>-<a name="line-164"></a> <span class='varid'>parseHtmlTagSoup</span> <span class='varid'>withNamespaces</span> <span class='varid'>warnings</span> <span class='varid'>preserveCmt</span> <span class='varid'>removeWhitespace</span> <span class='varid'>asHtml</span>-<a name="line-165"></a>-<a name="line-166"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>traceMsg</span> <span class='num'>1</span> <span class='layout'>(</span><span class='str'>"parse document with parsec HTML parser"</span><span class='layout'>)</span>-<a name="line-167"></a> <span class='varop'>>>></span>-<a name="line-168"></a> <span class='varid'>parseHtmlDoc</span> <span class='comment'>-- run parser</span>-<a name="line-169"></a> <span class='varop'>>>></span>-<a name="line-170"></a> <span class='varid'>substHtmlEntityRefs</span> <span class='comment'>-- substitute entity refs</span>-<a name="line-171"></a> <span class='varid'>removeWarnings</span>-<a name="line-172"></a> <span class='keyglyph'>|</span> <span class='varid'>withTagSoup</span>-<a name="line-173"></a> <span class='varop'>&&</span>-<a name="line-174"></a> <span class='varid'>not</span> <span class='varid'>warnings</span> <span class='keyglyph'>=</span> <span class='varid'>this</span>-<a name="line-175"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>processTopDownWithAttrl</span>-<a name="line-176"></a> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>warnings</span> <span class='comment'>-- remove warnings inserted by parser and entity subst</span>-<a name="line-177"></a> <span class='keyword'>then</span> <span class='varid'>filterErrorMsg</span>-<a name="line-178"></a> <span class='keyword'>else</span> <span class='layout'>(</span> <span class='varid'>none</span>-<a name="line-179"></a> <span class='varop'>`when`</span>-<a name="line-180"></a> <span class='varid'>isError</span>-<a name="line-181"></a> <span class='layout'>)</span>-<a name="line-182"></a> <span class='layout'>)</span>-<a name="line-183"></a>-<a name="line-184"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-185"></a>-<a name="line-186"></a><span class='comment'>{- | Document validation-<a name="line-187"></a>-<a name="line-188"></a>Input must be a complete document tree. The document-<a name="line-189"></a>is validated with respect to the DTD spec.-<a name="line-190"></a>Only useful for XML documents containing a DTD.-<a name="line-191"></a>-<a name="line-192"></a>If the document is valid, it is transformed with respect to the DTD,-<a name="line-193"></a>normalization of attribute values, adding default values, sorting attributes by name,...-<a name="line-194"></a>-<a name="line-195"></a>If no error was found, result is the normalized tree,-<a name="line-196"></a>else the error status is set in the list of attributes-<a name="line-197"></a>of the root node \"\/\" and the document content is removed from the tree.-<a name="line-198"></a>-<a name="line-199"></a>-}</span>-<a name="line-200"></a>-<a name="line-201"></a><a name="validateDocument"></a><span class='definition'>validateDocument</span> <span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-202"></a><span class='definition'>validateDocument</span>-<a name="line-203"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>traceMsg</span> <span class='num'>1</span> <span class='str'>"validating document"</span>-<a name="line-204"></a> <span class='varop'>>>></span>-<a name="line-205"></a> <span class='varid'>perform</span> <span class='layout'>(</span> <span class='varid'>validateDoc</span>-<a name="line-206"></a> <span class='varop'>>>></span>-<a name="line-207"></a> <span class='varid'>filterErrorMsg</span>-<a name="line-208"></a> <span class='layout'>)</span>-<a name="line-209"></a> <span class='varop'>>>></span>-<a name="line-210"></a> <span class='varid'>setDocumentStatusFromSystemState</span> <span class='str'>"document validation"</span>-<a name="line-211"></a> <span class='varop'>>>></span>-<a name="line-212"></a> <span class='varid'>transformDoc</span>-<a name="line-213"></a> <span class='varop'>>>></span>-<a name="line-214"></a> <span class='varid'>traceMsg</span> <span class='num'>1</span> <span class='str'>"document validated"</span>-<a name="line-215"></a> <span class='varop'>>>></span>-<a name="line-216"></a> <span class='varid'>traceSource</span>-<a name="line-217"></a> <span class='varop'>>>></span>-<a name="line-218"></a> <span class='varid'>traceTree</span>-<a name="line-219"></a> <span class='layout'>)</span>-<a name="line-220"></a> <span class='varop'>`when`</span>-<a name="line-221"></a> <span class='varid'>documentStatusOk</span>-<a name="line-222"></a> -<a name="line-223"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-224"></a>-<a name="line-225"></a><span class='comment'>{- | Namespace propagation-<a name="line-226"></a>-<a name="line-227"></a>Input must be a complete document tree. The namespace declarations-<a name="line-228"></a>are evaluated and all element and attribute names are processed by-<a name="line-229"></a>splitting the name into prefix, local part and namespace URI.-<a name="line-230"></a>-<a name="line-231"></a>Naames are checked with respect to the XML namespace definition-<a name="line-232"></a>-<a name="line-233"></a>If no error was found, result is the unchanged input tree,-<a name="line-234"></a>else the error status is set in the list of attributes-<a name="line-235"></a>of the root node \"\/\" and the document content is removed from the tree.-<a name="line-236"></a>-<a name="line-237"></a>-<a name="line-238"></a>-}</span>-<a name="line-239"></a>-<a name="line-240"></a><a name="propagateAndValidateNamespaces"></a><span class='definition'>propagateAndValidateNamespaces</span> <span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-241"></a><span class='definition'>propagateAndValidateNamespaces</span>-<a name="line-242"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>traceMsg</span> <span class='num'>1</span> <span class='str'>"propagating namespaces"</span>-<a name="line-243"></a> <span class='varop'>>>></span>-<a name="line-244"></a> <span class='varid'>propagateNamespaces</span>-<a name="line-245"></a> <span class='varop'>>>></span>-<a name="line-246"></a> <span class='varid'>traceDoc</span> <span class='str'>"propagating namespaces done"</span>-<a name="line-247"></a> <span class='varop'>>>></span>-<a name="line-248"></a> <span class='varid'>traceMsg</span> <span class='num'>1</span> <span class='str'>"validating namespaces"</span>-<a name="line-249"></a> <span class='varop'>>>></span>-<a name="line-250"></a> <span class='layout'>(</span> <span class='varid'>setDocumentStatusFromSystemState</span> <span class='str'>"namespace propagation"</span>-<a name="line-251"></a> <span class='varop'>`when`</span>-<a name="line-252"></a> <span class='layout'>(</span> <span class='varid'>validateNamespaces</span> <span class='varop'>>>></span> <span class='varid'>perform</span> <span class='varid'>filterErrorMsg</span> <span class='layout'>)</span>-<a name="line-253"></a> <span class='layout'>)</span>-<a name="line-254"></a> <span class='varop'>>>></span>-<a name="line-255"></a> <span class='varid'>traceMsg</span> <span class='num'>1</span> <span class='str'>"namespace validation finished"</span>-<a name="line-256"></a> <span class='layout'>)</span>-<a name="line-257"></a> <span class='varop'>`when`</span>-<a name="line-258"></a> <span class='varid'>documentStatusOk</span>-<a name="line-259"></a>-<a name="line-260"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-261"></a>-<a name="line-262"></a><span class='comment'>{- |-<a name="line-263"></a> creates a new document root, adds all options-<a name="line-264"></a> as attributes to the document root and calls 'getXmlContents'.-<a name="line-265"></a>-<a name="line-266"></a> If the document name is the empty string, the document will be read-<a name="line-267"></a> from standard input.-<a name="line-268"></a>-<a name="line-269"></a> For supported protocols see 'Text.XML.HXT.Arrow.DocumentInput.getXmlContents'-<a name="line-270"></a>-}</span>-<a name="line-271"></a>-<a name="line-272"></a><a name="getDocumentContents"></a><span class='definition'>getDocumentContents</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='conid'>XmlTree</span>-<a name="line-273"></a><span class='definition'>getDocumentContents</span> <span class='varid'>options</span> <span class='varid'>src</span>-<a name="line-274"></a> <span class='keyglyph'>=</span> <span class='varid'>root</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-275"></a> <span class='varop'>>>></span>-<a name="line-276"></a> <span class='varid'>addAttr</span> <span class='varid'>a_source</span> <span class='varid'>src</span>-<a name="line-277"></a> <span class='varop'>>>></span>-<a name="line-278"></a> <span class='varid'>seqA</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>uncurry</span> <span class='varid'>addAttr</span><span class='layout'>)</span> <span class='varid'>options</span><span class='layout'>)</span> <span class='comment'>-- add all options to doc root</span>-<a name="line-279"></a> <span class='varop'>>>></span> <span class='comment'>-- e.g. getXmlContents needs some of these</span>-<a name="line-280"></a> <span class='varid'>traceMsg</span> <span class='num'>1</span> <span class='layout'>(</span><span class='str'>"readDocument: start processing document "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>src</span><span class='layout'>)</span>-<a name="line-281"></a> <span class='varop'>>>></span>-<a name="line-282"></a> <span class='varid'>getXmlContents</span>-<a name="line-283"></a>-<a name="line-284"></a><span class='comment'>-- ------------------------------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-Arrow-ReadDocument.html
@@ -1,386 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Text.XML.HXT.Arrow.ReadDocument-<a name="line-5"></a> Copyright : Copyright (C) 2005 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe@fh-wedel.de)-<a name="line-9"></a> Stability : experimental-<a name="line-10"></a> Portability: portable-<a name="line-11"></a> Version : $Id: ReadDocument.hs,v 1.10 2006/11/24 07:41:37 hxml Exp $-<a name="line-12"></a>-<a name="line-13"></a>Compound arrows for reading an XML\/HTML document or an XML\/HTML string-<a name="line-14"></a>-<a name="line-15"></a>-}</span>-<a name="line-16"></a>-<a name="line-17"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-18"></a>-<a name="line-19"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ReadDocument</span>-<a name="line-20"></a> <span class='layout'>(</span> <span class='varid'>readDocument</span>-<a name="line-21"></a> <span class='layout'>,</span> <span class='varid'>readFromDocument</span>-<a name="line-22"></a> <span class='layout'>,</span> <span class='varid'>readString</span>-<a name="line-23"></a> <span class='layout'>,</span> <span class='varid'>readFromString</span>-<a name="line-24"></a> <span class='layout'>,</span> <span class='varid'>hread</span>-<a name="line-25"></a> <span class='layout'>,</span> <span class='varid'>xread</span>-<a name="line-26"></a> <span class='layout'>)</span>-<a name="line-27"></a><span class='keyword'>where</span>-<a name="line-28"></a>-<a name="line-29"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ListArrows</span>-<a name="line-30"></a>-<a name="line-31"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>-<a name="line-32"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlArrow</span>-<a name="line-33"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlIOStateArrow</span>-<a name="line-34"></a>-<a name="line-35"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>Edit</span>-<a name="line-36"></a> <span class='layout'>(</span> <span class='varid'>canonicalizeAllNodes</span>-<a name="line-37"></a> <span class='layout'>,</span> <span class='varid'>canonicalizeForXPath</span>-<a name="line-38"></a> <span class='layout'>,</span> <span class='varid'>canonicalizeContents</span>-<a name="line-39"></a> <span class='layout'>,</span> <span class='varid'>removeDocWhiteSpace</span>-<a name="line-40"></a> <span class='layout'>)</span>-<a name="line-41"></a>-<a name="line-42"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ParserInterface</span>-<a name="line-43"></a> -<a name="line-44"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ProcessDocument</span>-<a name="line-45"></a> <span class='layout'>(</span> <span class='varid'>getDocumentContents</span>-<a name="line-46"></a> <span class='layout'>,</span> <span class='varid'>parseXmlDocument</span>-<a name="line-47"></a> <span class='layout'>,</span> <span class='varid'>parseHtmlDocument</span>-<a name="line-48"></a> <span class='layout'>,</span> <span class='varid'>propagateAndValidateNamespaces</span>-<a name="line-49"></a> <span class='layout'>)</span>-<a name="line-50"></a>-<a name="line-51"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>Validator</span>-<a name="line-52"></a> <span class='layout'>(</span> <span class='varid'>validateDocumentWithRelaxSchema</span>-<a name="line-53"></a> <span class='layout'>)</span>-<a name="line-54"></a>-<a name="line-55"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Char</span>-<a name="line-56"></a> <span class='layout'>(</span> <span class='varid'>toLower</span>-<a name="line-57"></a> <span class='layout'>)</span>-<a name="line-58"></a>-<a name="line-59"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-60"></a>-<a name="line-61"></a><span class='comment'>{- |-<a name="line-62"></a>the main document input filter-<a name="line-63"></a>-<a name="line-64"></a>this filter can be configured by an option list, a value of type "Attributes"-<a name="line-65"></a>-<a name="line-66"></a>available options:-<a name="line-67"></a>-<a name="line-68"></a>* 'a_parse_html': use HTML parser, else use XML parser (default)-<a name="line-69"></a>-<a name="line-70"></a>- 'a_tagsoup' : use light weight and lasy parser based on tagsoup lib-<a name="line-71"></a>-<a name="line-72"></a>- 'a_parse_by_mimetype' : select the parser by the mime type of the document-<a name="line-73"></a> (pulled out of the HTTP header). When the mime type is set to \"text\/html\"-<a name="line-74"></a> the HTML parser (parsec or tagsoup) is taken, when it\'s set to-<a name="line-75"></a> \"text\/xml\" or \"text\/xhtml\" the XML parser (parsec or tagsoup) is taken.-<a name="line-76"></a> If the mime type is something else no further processing is performed,-<a name="line-77"></a> the contents is given back to the application in form of a single text node.-<a name="line-78"></a> If the default document encoding ('a_encoding') is set to isoLatin1, this even enables processing-<a name="line-79"></a> of arbitray binary data.-<a name="line-80"></a>-<a name="line-81"></a>- 'a_validate' : validate document againsd DTD (default), else skip validation-<a name="line-82"></a>-<a name="line-83"></a>- 'a_relax_schema' : validate document with Relax NG, the options value is the schema URI-<a name="line-84"></a> this implies using XML parser, no validation against DTD, and canonicalisation-<a name="line-85"></a>-<a name="line-86"></a>- 'a_check_namespaces' : check namespaces, else skip namespace processing (default)-<a name="line-87"></a>-<a name="line-88"></a>- 'a_canonicalize' : canonicalize document (default), else skip canonicalization-<a name="line-89"></a>-<a name="line-90"></a>- 'a_preserve_comment' : preserve comments during canonicalization, else remove comments (default)-<a name="line-91"></a>-<a name="line-92"></a>- 'a_remove_whitespace' : remove all whitespace, used for document indentation, else skip this step (default)-<a name="line-93"></a>-<a name="line-94"></a>- 'a_indent' : indent document by inserting whitespace, else skip this step (default)-<a name="line-95"></a>-<a name="line-96"></a>- 'a_issue_warnings' : issue warnings, when parsing HTML (default), else ignore HTML parser warnings-<a name="line-97"></a>-<a name="line-98"></a>- 'a_issue_errors' : issue all error messages on stderr (default), or ignore all error messages-<a name="line-99"></a>-<a name="line-100"></a>- 'a_ignore_encoding_errors': ignore all encoding errors, default is issue all encoding errors-<a name="line-101"></a>-<a name="line-102"></a>- 'a_ignore_none_xml_contents': ignore document contents of none XML\/HTML documents.-<a name="line-103"></a> This option can be useful for implementing crawler like applications, e.g. an URL checker.-<a name="line-104"></a> In those cases net traffic can be reduced.-<a name="line-105"></a>-<a name="line-106"></a>- 'a_trace' : trace level: values: 0 - 4-<a name="line-107"></a>-<a name="line-108"></a>- 'a_proxy' : proxy for http access, e.g. www-cache:3128-<a name="line-109"></a>-<a name="line-110"></a>- 'a_use_curl' : obsolete and ignored, HTTP acccess is always done with curl bindings for libcurl-<a name="line-111"></a>-<a name="line-112"></a>- 'a_strict_input' : file input is done strictly using the 'Data.ByteString' input functions. This ensures correct closing of files, especially when working with-<a name="line-113"></a> the tagsoup parser and not processing the whole input data. Default is off. The @ByteString@ input usually is not faster than the buildin @hGetContents@-<a name="line-114"></a> for strings.-<a name="line-115"></a>-<a name="line-116"></a>- 'a_options_curl' : deprecated but for compatibility reasons still supported.-<a name="line-117"></a> More options passed to the curl binding.-<a name="line-118"></a> Instead of using this option to set a whole bunch of options at once for curl-<a name="line-119"></a> it is recomended to use the @curl-.*@ options syntax described below.-<a name="line-120"></a>-<a name="line-121"></a>- 'a_encoding' : default document encoding ('utf8', 'isoLatin1', 'usAscii', 'iso8859_2', ... , 'iso8859_16', ...).-<a name="line-122"></a> Only XML and HTML documents are decoded, documents with none XML\/HTML mime types are not decoded. The whole content is returned in a single text node-<a name="line-123"></a>-<a name="line-124"></a>- 'a_mime_types' : set the mime type table for file input with given file. The format of this config file must be in the syntax of a debian linux \"mime.types\" config file-<a name="line-125"></a>-<a name="line-126"></a>- curl options : the HTTP interface with libcurl can be configured with a lot of options. To support these options in an easy way, there is a naming convetion:-<a name="line-127"></a> Every option, which has the prefix @curl@ and the rest of the name forms an option as described in the curl man page, is passed to the curl binding lib.-<a name="line-128"></a> See 'Text.XML.HXT.IO.GetHTTPLibCurl.getCont' for examples. Currently most of the options concerning HTTP requests are implemented.-<a name="line-129"></a>-<a name="line-130"></a>All attributes not evaluated by readDocument are stored in the created document root node for easy access of the various-<a name="line-131"></a>options in e.g. the input\/output modules-<a name="line-132"></a>-<a name="line-133"></a>If the document name is the empty string or an uri of the form \"stdin:\", the document is read from standard input.-<a name="line-134"></a>-<a name="line-135"></a>examples:-<a name="line-136"></a>-<a name="line-137"></a>> readDocument [ ] "test.xml"-<a name="line-138"></a>-<a name="line-139"></a>reads and validates a document \"test.xml\", no namespace propagation, only canonicalization is performed -<a name="line-140"></a>-<a name="line-141"></a>> readDocument [ (a_validate, "0")-<a name="line-142"></a>> , (a_encoding, isoLatin1)-<a name="line-143"></a>> , (a_parse_by_mimetype, "1")-<a name="line-144"></a>> ] "<a href="http://localhost/test.php">http://localhost/test.php</a>"-<a name="line-145"></a>-<a name="line-146"></a>reads document \"test.php\", parses it as HTML or XML depending on the mimetype given from the server, but without validation, default encoding 'isoLatin1'.-<a name="line-147"></a>-<a name="line-148"></a>-<a name="line-149"></a>> readDocument [ (a_parse_html, "1")-<a name="line-150"></a>> , (a_encoding, isoLatin1)-<a name="line-151"></a>> ] ""-<a name="line-152"></a>-<a name="line-153"></a>reads a HTML document from standard input, no validation is done when parsing HTML, default encoding is 'isoLatin1',-<a name="line-154"></a>parsing is done with tagsoup parser, but input is read strictly-<a name="line-155"></a>-<a name="line-156"></a>> readDocument [ (a_encoding, isoLatin1)-<a name="line-157"></a>> , (a_mime_type, "/etc/mime.types")-<a name="line-158"></a>> , (a_tagsoup, "1")-<a name="line-159"></a>> , (a_strict_input, "1")-<a name="line-160"></a>> ] "test.svg"-<a name="line-161"></a>-<a name="line-162"></a>reads an SVG document from standard input, sets the mime type by looking in the system mimetype config file, default encoding is 'isoLatin1',-<a name="line-163"></a>parsing is done with the lightweight tagsoup parser, which implies no validation.-<a name="line-164"></a>-<a name="line-165"></a>> readDocument [ (a_parse_html, "1")-<a name="line-166"></a>> , (a_proxy, "www-cache:3128")-<a name="line-167"></a>> , (a_curl, "1")-<a name="line-168"></a>> , (a_issue_warnings, "0")-<a name="line-169"></a>> ] "<a href="http://www.haskell.org/">http://www.haskell.org/</a>"-<a name="line-170"></a>-<a name="line-171"></a>reads Haskell homepage with HTML parser ignoring any warnings, with http access via external program curl and proxy \"www-cache\" at port 3128-<a name="line-172"></a>-<a name="line-173"></a>> readDocument [ (a_validate, "1")-<a name="line-174"></a>> , (a_check_namespace, "1")-<a name="line-175"></a>> , (a_remove_whitespace, "1")-<a name="line-176"></a>> , (a_trace, "2")-<a name="line-177"></a>> ] "<a href="http://www.w3c.org/">http://www.w3c.org/</a>"-<a name="line-178"></a>-<a name="line-179"></a>read w3c home page (xhtml), validate and check namespaces, remove whitespace between tags, trace activities with level 2-<a name="line-180"></a>-<a name="line-181"></a>for minimal complete examples see 'Text.XML.HXT.Arrow.WriteDocument.writeDocument' and 'runX', the main starting point for running an XML arrow.-<a name="line-182"></a>-}</span>-<a name="line-183"></a>-<a name="line-184"></a><a name="readDocument"></a><span class='definition'>readDocument</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='conid'>XmlTree</span>-<a name="line-185"></a><span class='definition'>readDocument</span> <span class='varid'>userOptions</span> <span class='varid'>src</span>-<a name="line-186"></a> <span class='keyglyph'>=</span> <span class='varid'>traceLevel</span>-<a name="line-187"></a> <span class='varop'>>>></span>-<a name="line-188"></a> <span class='varid'>addInputOptionsToSystemState</span>-<a name="line-189"></a> <span class='varop'>>>></span>-<a name="line-190"></a> <span class='varid'>getDocumentContents</span> <span class='varid'>options</span> <span class='varid'>src</span>-<a name="line-191"></a> <span class='varop'>>>></span>-<a name="line-192"></a> <span class='layout'>(</span> <span class='varid'>processDoc</span> <span class='varop'>$<</span> <span class='varid'>getMimeType</span> <span class='layout'>)</span>-<a name="line-193"></a> <span class='varop'>>>></span>-<a name="line-194"></a> <span class='varid'>traceMsg</span> <span class='num'>1</span> <span class='layout'>(</span><span class='str'>"readDocument: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>src</span> <span class='varop'>++</span> <span class='str'>" processed"</span><span class='layout'>)</span>-<a name="line-195"></a> <span class='varop'>>>></span>-<a name="line-196"></a> <span class='varid'>traceSource</span>-<a name="line-197"></a> <span class='varop'>>>></span>-<a name="line-198"></a> <span class='varid'>traceTree</span>-<a name="line-199"></a> <span class='keyword'>where</span>-<a name="line-200"></a> <span class='varid'>options</span>-<a name="line-201"></a> <span class='keyglyph'>=</span> <span class='varid'>addEntries</span> <span class='varid'>userOptions</span> <span class='varid'>defaultOptions</span>-<a name="line-202"></a>-<a name="line-203"></a> <span class='varid'>defaultOptions</span>-<a name="line-204"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span> <span class='varid'>a_parse_html</span><span class='layout'>,</span> <span class='varid'>v_0</span> <span class='layout'>)</span>-<a name="line-205"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>a_tagsoup</span><span class='layout'>,</span> <span class='varid'>v_0</span> <span class='layout'>)</span>-<a name="line-206"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>a_strict_input</span><span class='layout'>,</span> <span class='varid'>v_0</span> <span class='layout'>)</span>-<a name="line-207"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>a_validate</span><span class='layout'>,</span> <span class='varid'>v_1</span> <span class='layout'>)</span>-<a name="line-208"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>a_issue_warnings</span><span class='layout'>,</span> <span class='varid'>v_1</span> <span class='layout'>)</span>-<a name="line-209"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>a_check_namespaces</span><span class='layout'>,</span> <span class='varid'>v_0</span> <span class='layout'>)</span>-<a name="line-210"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>a_canonicalize</span><span class='layout'>,</span> <span class='varid'>v_1</span> <span class='layout'>)</span>-<a name="line-211"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>a_preserve_comment</span><span class='layout'>,</span> <span class='varid'>v_0</span> <span class='layout'>)</span>-<a name="line-212"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>a_remove_whitespace</span><span class='layout'>,</span> <span class='varid'>v_0</span> <span class='layout'>)</span>-<a name="line-213"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>a_parse_by_mimetype</span><span class='layout'>,</span> <span class='varid'>v_0</span> <span class='layout'>)</span>-<a name="line-214"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>a_ignore_encoding_errors</span><span class='layout'>,</span> <span class='varid'>v_0</span> <span class='layout'>)</span>-<a name="line-215"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>a_ignore_none_xml_contents</span><span class='layout'>,</span> <span class='varid'>v_0</span> <span class='layout'>)</span>-<a name="line-216"></a> <span class='keyglyph'>]</span>-<a name="line-217"></a>-<a name="line-218"></a> <span class='varid'>traceLevel</span>-<a name="line-219"></a> <span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='varid'>this</span> <span class='layout'>(</span><span class='varid'>setTraceLevel</span> <span class='varop'>.</span> <span class='varid'>read</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>lookup</span> <span class='varid'>a_trace</span> <span class='varop'>$</span> <span class='varid'>options</span>-<a name="line-220"></a>-<a name="line-221"></a> <span class='varid'>addInputOptionsToSystemState</span>-<a name="line-222"></a> <span class='keyglyph'>=</span> <span class='varid'>addSysOptions</span> <span class='varid'>options</span>-<a name="line-223"></a> <span class='varop'>>>></span>-<a name="line-224"></a> <span class='varid'>loadMineTypes</span> <span class='layout'>(</span><span class='varid'>lookup1</span> <span class='varid'>a_mime_types</span> <span class='varid'>userOptions</span><span class='layout'>)</span>-<a name="line-225"></a> <span class='keyword'>where</span>-<a name="line-226"></a> <span class='varid'>addSysOptions</span>-<a name="line-227"></a> <span class='keyglyph'>=</span> <span class='varid'>seqA</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>uncurry</span> <span class='varid'>setParamString</span><span class='layout'>)</span>-<a name="line-228"></a> <span class='varid'>loadMineTypes</span> <span class='str'>""</span> <span class='keyglyph'>=</span> <span class='varid'>this</span>-<a name="line-229"></a> <span class='varid'>loadMineTypes</span> <span class='varid'>f</span> <span class='keyglyph'>=</span> <span class='varid'>setMimeTypeTableFromFile</span> <span class='varid'>f</span>-<a name="line-230"></a>-<a name="line-231"></a> <span class='varid'>getMimeType</span>-<a name="line-232"></a> <span class='keyglyph'>=</span> <span class='varid'>getAttrValue</span> <span class='varid'>transferMimeType</span> <span class='varop'>>>^</span> <span class='varid'>map</span> <span class='varid'>toLower</span>-<a name="line-233"></a>-<a name="line-234"></a> <span class='varid'>processDoc</span> <span class='varid'>mimeType</span>-<a name="line-235"></a> <span class='keyglyph'>=</span> <span class='varid'>traceMsg</span> <span class='num'>1</span> <span class='layout'>(</span><span class='str'>"readDocument: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>src</span> <span class='varop'>++</span> <span class='str'>" (mime type: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>mimeType</span> <span class='varop'>++</span> <span class='str'>") will be processed"</span><span class='layout'>)</span>-<a name="line-236"></a> <span class='varop'>>>></span>-<a name="line-237"></a> <span class='varid'>parse</span>-<a name="line-238"></a> <span class='varop'>>>></span>-<a name="line-239"></a> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>isXmlOrHtml</span>-<a name="line-240"></a> <span class='keyword'>then</span> <span class='layout'>(</span> <span class='varid'>checknamespaces</span>-<a name="line-241"></a> <span class='varop'>>>></span>-<a name="line-242"></a> <span class='varid'>canonicalize</span>-<a name="line-243"></a> <span class='varop'>>>></span>-<a name="line-244"></a> <span class='varid'>whitespace</span>-<a name="line-245"></a> <span class='varop'>>>></span>-<a name="line-246"></a> <span class='varid'>relax</span>-<a name="line-247"></a> <span class='layout'>)</span>-<a name="line-248"></a> <span class='keyword'>else</span> <span class='varid'>this</span>-<a name="line-249"></a> <span class='layout'>)</span>-<a name="line-250"></a> <span class='keyword'>where</span>-<a name="line-251"></a> <span class='varid'>parse</span>-<a name="line-252"></a> <span class='keyglyph'>|</span> <span class='varid'>isHtml</span>-<a name="line-253"></a> <span class='varop'>||</span> -<a name="line-254"></a> <span class='varid'>withTagSoup</span> <span class='keyglyph'>=</span> <span class='varid'>parseHtmlDocument</span> <span class='comment'>-- parse as HTML or with tagsoup XML</span>-<a name="line-255"></a> <span class='varid'>withTagSoup</span>-<a name="line-256"></a> <span class='varid'>withNamespaces</span>-<a name="line-257"></a> <span class='varid'>issueW</span>-<a name="line-258"></a> <span class='layout'>(</span><span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>hasOption</span> <span class='varid'>a_canonicalize</span><span class='layout'>)</span> <span class='varop'>&&</span> <span class='varid'>preserveCmt</span><span class='layout'>)</span>-<a name="line-259"></a> <span class='varid'>removeWS</span>-<a name="line-260"></a> <span class='varid'>isHtml</span>-<a name="line-261"></a> <span class='keyglyph'>|</span> <span class='varid'>validateWithRelax</span> <span class='keyglyph'>=</span> <span class='varid'>parseXmlDocument</span> <span class='conid'>False</span> <span class='comment'>-- for Relax NG use XML parser without validation</span>-<a name="line-262"></a> <span class='keyglyph'>|</span> <span class='varid'>isXml</span> <span class='keyglyph'>=</span> <span class='varid'>parseXmlDocument</span> <span class='varid'>validate</span> <span class='comment'>-- parse as XML</span>-<a name="line-263"></a> <span class='keyglyph'>|</span> <span class='varid'>removeNoneXml</span> <span class='keyglyph'>=</span> <span class='varid'>replaceChildren</span> <span class='varid'>none</span> <span class='comment'>-- don't parse, if mime type is not XML nore HTML</span>-<a name="line-264"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>this</span> <span class='comment'>-- but remove contents when option is set</span>-<a name="line-265"></a> <span class='varid'>checknamespaces</span>-<a name="line-266"></a> <span class='keyglyph'>|</span> <span class='layout'>(</span><span class='varid'>withNamespaces</span> <span class='varop'>&&</span> <span class='varid'>not</span> <span class='varid'>withTagSoup</span><span class='layout'>)</span>-<a name="line-267"></a> <span class='varop'>||</span>-<a name="line-268"></a> <span class='varid'>validateWithRelax</span> <span class='keyglyph'>=</span> <span class='varid'>propagateAndValidateNamespaces</span>-<a name="line-269"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>this</span>-<a name="line-270"></a> <span class='varid'>canonicalize</span>-<a name="line-271"></a> <span class='keyglyph'>|</span> <span class='varid'>withTagSoup</span> <span class='keyglyph'>=</span> <span class='varid'>this</span> <span class='comment'>-- tagsoup already removes redundant struff</span>-<a name="line-272"></a> <span class='keyglyph'>|</span> <span class='varid'>validateWithRelax</span> <span class='keyglyph'>=</span> <span class='varid'>canonicalizeAllNodes</span>-<a name="line-273"></a> <span class='keyglyph'>|</span> <span class='varid'>hasOption</span> <span class='varid'>a_canonicalize</span>-<a name="line-274"></a> <span class='varop'>&&</span>-<a name="line-275"></a> <span class='varid'>preserveCmt</span> <span class='keyglyph'>=</span> <span class='varid'>canonicalizeForXPath</span>-<a name="line-276"></a> <span class='keyglyph'>|</span> <span class='varid'>hasOption</span> <span class='varid'>a_canonicalize</span> <span class='keyglyph'>=</span> <span class='varid'>canonicalizeAllNodes</span>-<a name="line-277"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>this</span>-<a name="line-278"></a> <span class='varid'>relax</span>-<a name="line-279"></a> <span class='keyglyph'>|</span> <span class='varid'>validateWithRelax</span> <span class='keyglyph'>=</span> <span class='varid'>validateDocumentWithRelaxSchema</span> <span class='varid'>options</span> <span class='varid'>relaxSchema</span>-<a name="line-280"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>this</span>-<a name="line-281"></a> <span class='varid'>whitespace</span>-<a name="line-282"></a> <span class='keyglyph'>|</span> <span class='varid'>removeWS</span>-<a name="line-283"></a> <span class='varop'>&&</span>-<a name="line-284"></a> <span class='varid'>not</span> <span class='varid'>withTagSoup</span> <span class='keyglyph'>=</span> <span class='varid'>removeDocWhiteSpace</span> <span class='comment'>-- tagsoup already removes whitespace</span>-<a name="line-285"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>this</span>-<a name="line-286"></a> <span class='varid'>validateWithRelax</span> <span class='keyglyph'>=</span> <span class='varid'>hasEntry</span> <span class='varid'>a_relax_schema</span> <span class='varid'>options</span>-<a name="line-287"></a> <span class='varid'>relaxSchema</span> <span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>a_relax_schema</span> <span class='varid'>options</span>-<a name="line-288"></a> <span class='varid'>parseHtml</span> <span class='keyglyph'>=</span> <span class='varid'>hasOption</span> <span class='varid'>a_parse_html</span>-<a name="line-289"></a> <span class='varid'>isHtml</span> <span class='keyglyph'>=</span> <span class='varid'>parseHtml</span> <span class='comment'>-- force HTML</span>-<a name="line-290"></a> <span class='varop'>||</span>-<a name="line-291"></a> <span class='layout'>(</span> <span class='varid'>parseByMimeType</span> <span class='varop'>&&</span> <span class='varid'>isHtmlMimeType</span> <span class='varid'>mimeType</span> <span class='layout'>)</span>-<a name="line-292"></a> <span class='varid'>isXml</span> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>not</span> <span class='varid'>parseByMimeType</span> <span class='varop'>&&</span> <span class='varid'>not</span> <span class='varid'>parseHtml</span> <span class='layout'>)</span>-<a name="line-293"></a> <span class='varop'>||</span>-<a name="line-294"></a> <span class='layout'>(</span> <span class='varid'>parseByMimeType</span>-<a name="line-295"></a> <span class='varop'>&&</span>-<a name="line-296"></a> <span class='layout'>(</span> <span class='varid'>isXmlMimeType</span> <span class='varid'>mimeType</span>-<a name="line-297"></a> <span class='varop'>||</span>-<a name="line-298"></a> <span class='varid'>null</span> <span class='varid'>mimeType</span>-<a name="line-299"></a> <span class='layout'>)</span> <span class='comment'>-- mime type is XML or not known</span>-<a name="line-300"></a> <span class='layout'>)</span>-<a name="line-301"></a> <span class='varid'>isXmlOrHtml</span> <span class='keyglyph'>=</span> <span class='varid'>isHtml</span> <span class='varop'>||</span> <span class='varid'>isXml</span>-<a name="line-302"></a> <span class='varid'>parseByMimeType</span> <span class='keyglyph'>=</span> <span class='varid'>hasOption</span> <span class='varid'>a_parse_by_mimetype</span>-<a name="line-303"></a> <span class='varid'>validate</span> <span class='keyglyph'>=</span> <span class='varid'>hasOption</span> <span class='varid'>a_validate</span>-<a name="line-304"></a> <span class='varid'>withNamespaces</span> <span class='keyglyph'>=</span> <span class='varid'>hasOption</span> <span class='varid'>a_check_namespaces</span>-<a name="line-305"></a> <span class='varid'>withTagSoup</span> <span class='keyglyph'>=</span> <span class='varid'>hasOption</span> <span class='varid'>a_tagsoup</span>-<a name="line-306"></a> <span class='varid'>issueW</span> <span class='keyglyph'>=</span> <span class='varid'>hasOption</span> <span class='varid'>a_issue_warnings</span>-<a name="line-307"></a> <span class='varid'>removeWS</span> <span class='keyglyph'>=</span> <span class='varid'>hasOption</span> <span class='varid'>a_remove_whitespace</span>-<a name="line-308"></a> <span class='varid'>preserveCmt</span> <span class='keyglyph'>=</span> <span class='varid'>hasOption</span> <span class='varid'>a_preserve_comment</span>-<a name="line-309"></a> <span class='varid'>removeNoneXml</span> <span class='keyglyph'>=</span> <span class='varid'>hasOption</span> <span class='varid'>a_ignore_none_xml_contents</span>-<a name="line-310"></a> <span class='varid'>hasOption</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='varid'>optionIsSet</span> <span class='varid'>n</span> <span class='varid'>options</span>-<a name="line-311"></a>-<a name="line-312"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-313"></a>-<a name="line-314"></a><span class='comment'>-- |</span>-<a name="line-315"></a><span class='comment'>-- the arrow version of 'readDocument', the arrow input is the source URI</span>-<a name="line-316"></a>-<a name="line-317"></a><a name="readFromDocument"></a><span class='definition'>readFromDocument</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>String</span> <span class='conid'>XmlTree</span>-<a name="line-318"></a><span class='definition'>readFromDocument</span> <span class='varid'>userOptions</span>-<a name="line-319"></a> <span class='keyglyph'>=</span> <span class='varid'>applyA</span> <span class='layout'>(</span> <span class='varid'>arr</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='keyglyph'>-></span> <span class='varid'>readDocument</span> <span class='varid'>userOptions</span> <span class='varid'>s</span> <span class='layout'>)</span>-<a name="line-320"></a>-<a name="line-321"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-322"></a>-<a name="line-323"></a><span class='comment'>-- |</span>-<a name="line-324"></a><span class='comment'>-- read a document that is stored in a normal Haskell String</span>-<a name="line-325"></a><span class='comment'>--</span>-<a name="line-326"></a><span class='comment'>-- the same function as readDocument, but the parameter forms the input.</span>-<a name="line-327"></a><span class='comment'>-- All options available for 'readDocument' are applicable for readString.</span>-<a name="line-328"></a><span class='comment'>--</span>-<a name="line-329"></a><span class='comment'>-- Default encoding: No encoding is done, the String argument is taken as Unicode string</span>-<a name="line-330"></a>-<a name="line-331"></a><a name="readString"></a><span class='definition'>readString</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='conid'>XmlTree</span>-<a name="line-332"></a><span class='definition'>readString</span> <span class='varid'>userOptions</span> <span class='varid'>content</span>-<a name="line-333"></a> <span class='keyglyph'>=</span> <span class='varid'>readDocument</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>a_encoding</span><span class='layout'>,</span> <span class='varid'>unicodeString</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>userOptions</span> <span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>stringProtocol</span> <span class='varop'>++</span> <span class='varid'>content</span><span class='layout'>)</span>-<a name="line-334"></a>-<a name="line-335"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-336"></a>-<a name="line-337"></a><span class='comment'>-- |</span>-<a name="line-338"></a><span class='comment'>-- the arrow version of 'readString', the arrow input is the source URI</span>-<a name="line-339"></a>-<a name="line-340"></a><a name="readFromString"></a><span class='definition'>readFromString</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>String</span> <span class='conid'>XmlTree</span>-<a name="line-341"></a><span class='definition'>readFromString</span> <span class='varid'>userOptions</span>-<a name="line-342"></a> <span class='keyglyph'>=</span> <span class='varid'>applyA</span> <span class='layout'>(</span> <span class='varid'>arr</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='keyglyph'>-></span> <span class='varid'>readString</span> <span class='varid'>userOptions</span> <span class='varid'>s</span> <span class='layout'>)</span>-<a name="line-343"></a>-<a name="line-344"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-345"></a>-<a name="line-346"></a><span class='comment'>-- |</span>-<a name="line-347"></a><span class='comment'>-- parse a string as HTML content, substitute all HTML entity refs and canonicalize tree</span>-<a name="line-348"></a><span class='comment'>-- (substitute char refs, ...). Errors are ignored.</span>-<a name="line-349"></a><span class='comment'>-- </span>-<a name="line-350"></a><span class='comment'>-- A simpler version of 'readFromString' but with less functionality.</span>-<a name="line-351"></a><span class='comment'>-- Does not run in the IO monad</span>-<a name="line-352"></a>-<a name="line-353"></a><a name="hread"></a><span class='definition'>hread</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>String</span> <span class='conid'>XmlTree</span>-<a name="line-354"></a><span class='definition'>hread</span>-<a name="line-355"></a> <span class='keyglyph'>=</span> <span class='varid'>parseHtmlContent</span>-<a name="line-356"></a> <span class='varop'>>>></span>-<a name="line-357"></a> <span class='varid'>substHtmlEntityRefs</span>-<a name="line-358"></a> <span class='varop'>>>></span>-<a name="line-359"></a> <span class='varid'>processTopDown</span> <span class='layout'>(</span> <span class='varid'>none</span> <span class='varop'>`when`</span> <span class='varid'>isError</span> <span class='layout'>)</span>-<a name="line-360"></a> <span class='varop'>>>></span>-<a name="line-361"></a> <span class='varid'>canonicalizeContents</span>-<a name="line-362"></a>-<a name="line-363"></a><span class='comment'>-- |</span>-<a name="line-364"></a><span class='comment'>-- parse a string as XML content, substitute all predefined XML entity refs and canonicalize tree</span>-<a name="line-365"></a><span class='comment'>-- (substitute char refs, ...)</span>-<a name="line-366"></a>-<a name="line-367"></a><a name="xread"></a><span class='definition'>xread</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>String</span> <span class='conid'>XmlTree</span>-<a name="line-368"></a><span class='definition'>xread</span>-<a name="line-369"></a> <span class='keyglyph'>=</span> <span class='varid'>parseXmlContent</span>-<a name="line-370"></a> <span class='varop'>>>></span>-<a name="line-371"></a> <span class='varid'>substXmlEntityRefs</span>-<a name="line-372"></a> <span class='varop'>>>></span>-<a name="line-373"></a> <span class='varid'>canonicalizeContents</span>-<a name="line-374"></a>-<a name="line-375"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-376"></a>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-Arrow-WriteDocument.html
@@ -1,217 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Text.XML.HXT.Arrow.WriteDocument-<a name="line-5"></a> Copyright : Copyright (C) 2005-9 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe@fh-wedel.de)-<a name="line-9"></a> Stability : experimental-<a name="line-10"></a> Portability: portable-<a name="line-11"></a>-<a name="line-12"></a> Compound arrow for writing XML documents-<a name="line-13"></a>-<a name="line-14"></a>-}</span>-<a name="line-15"></a>-<a name="line-16"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-17"></a>-<a name="line-18"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>WriteDocument</span>-<a name="line-19"></a> <span class='layout'>(</span> <span class='varid'>writeDocument</span>-<a name="line-20"></a> <span class='layout'>,</span> <span class='varid'>writeDocumentToString</span>-<a name="line-21"></a> <span class='layout'>,</span> <span class='varid'>prepareContents</span>-<a name="line-22"></a> <span class='layout'>)</span>-<a name="line-23"></a><span class='keyword'>where</span>-<a name="line-24"></a>-<a name="line-25"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span> <span class='comment'>-- arrow classes</span>-<a name="line-26"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowList</span>-<a name="line-27"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowIf</span>-<a name="line-28"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowTree</span>-<a name="line-29"></a>-<a name="line-30"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>-<a name="line-31"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlArrow</span>-<a name="line-32"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlIOStateArrow</span>-<a name="line-33"></a>-<a name="line-34"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>Edit</span> <span class='layout'>(</span> <span class='varid'>escapeHtmlDoc</span>-<a name="line-35"></a> <span class='layout'>,</span> <span class='varid'>escapeXmlDoc</span>-<a name="line-36"></a> <span class='layout'>,</span> <span class='varid'>haskellRepOfXmlDoc</span>-<a name="line-37"></a> <span class='layout'>,</span> <span class='varid'>indentDoc</span>-<a name="line-38"></a> <span class='layout'>,</span> <span class='varid'>preventEmptyElements</span>-<a name="line-39"></a> <span class='layout'>,</span> <span class='varid'>removeDocWhiteSpace</span>-<a name="line-40"></a> <span class='layout'>,</span> <span class='varid'>treeRepOfXmlDoc</span>-<a name="line-41"></a> <span class='layout'>)</span>-<a name="line-42"></a>-<a name="line-43"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>DocumentOutput</span> <span class='layout'>(</span> <span class='varid'>putXmlDocument</span>-<a name="line-44"></a> <span class='layout'>,</span> <span class='varid'>encodeDocument</span>-<a name="line-45"></a> <span class='layout'>)</span>-<a name="line-46"></a>-<a name="line-47"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-48"></a>-<a name="line-49"></a><span class='comment'>{- |-<a name="line-50"></a>the main filter for writing documents-<a name="line-51"></a>-<a name="line-52"></a>this filter can be configured by an option list like 'Text.XML.HXT.Arrow.ReadDocument.readDocument'-<a name="line-53"></a>-<a name="line-54"></a>usage: @ writeDocument optionList destination @-<a name="line-55"></a>-<a name="line-56"></a>if @ destination @ is the empty string or \"-\", stdout is used as output device-<a name="line-57"></a>-<a name="line-58"></a>available options are-<a name="line-59"></a>-<a name="line-60"></a>* 'a_indent' : indent document for readability, (default: no indentation)-<a name="line-61"></a>-<a name="line-62"></a>- 'a_remove_whitespace' : remove all redundant whitespace for shorten text (default: no removal)-<a name="line-63"></a>-<a name="line-64"></a>- 'a_output_encoding' : encoding of document, default is 'a_encoding' or 'utf8'-<a name="line-65"></a>-<a name="line-66"></a>- 'a_output_xml' : (default) issue XML: quote special XML chars \>,\<,\",\',& where neccessary-<a name="line-67"></a> add XML processing instruction-<a name="line-68"></a> and encode document with respect to 'a_output_encoding',-<a name="line-69"></a> if explicitly switched of, the plain text is issued, this is useful-<a name="line-70"></a> for non XML output, e.g. generated Haskell code, LaTex, Java, ...-<a name="line-71"></a>-<a name="line-72"></a>- 'a_output_html' : issue XHTML: quote alle XML chars, use HTML entity refs or char refs for none ASCII chars-<a name="line-73"></a>-<a name="line-74"></a>- 'a_no_empty_elements' : do not write the short form \<name .../\> for empty elements. When 'a_output_html' is set,-<a name="line-75"></a> the always empty HTML elements are still written in short form, but not the others, as e.g. the script element.-<a name="line-76"></a> Empty script elements, like \<script href=\"...\"/\>, are always a problem for firefox and others.-<a name="line-77"></a> When XML output is generated with this option, all empty elements are written in the long form.-<a name="line-78"></a>-<a name="line-79"></a>- 'a_no_xml_pi' : suppress generation of \<?xml ... ?\> processing instruction-<a name="line-80"></a>-<a name="line-81"></a>- 'a_show_tree' : show tree representation of document (for debugging)-<a name="line-82"></a>-<a name="line-83"></a>- 'a_show_haskell' : show Haskell representaion of document (for debugging)-<a name="line-84"></a>-<a name="line-85"></a> a minimal main program for copying a document-<a name="line-86"></a> has the following structure:-<a name="line-87"></a>-<a name="line-88"></a>> module Main-<a name="line-89"></a>> where-<a name="line-90"></a>> -<a name="line-91"></a>> import Text.XML.HXT.Arrow-<a name="line-92"></a>> -<a name="line-93"></a>> main :: IO ()-<a name="line-94"></a>> main-<a name="line-95"></a>> = do-<a name="line-96"></a>> runX ( readDocument [] "hello.xml"-<a name="line-97"></a>> >>>-<a name="line-98"></a>> writeDocument [] "bye.xml"-<a name="line-99"></a>> )-<a name="line-100"></a>> return ()-<a name="line-101"></a>-<a name="line-102"></a>an example for copying a document to standard output with tracing and evaluation of-<a name="line-103"></a>error code is:-<a name="line-104"></a>-<a name="line-105"></a>> module Main-<a name="line-106"></a>> where-<a name="line-107"></a>> -<a name="line-108"></a>> import Text.XML.HXT.Arrow-<a name="line-109"></a>> import System.Exit-<a name="line-110"></a>> -<a name="line-111"></a>> main :: IO ()-<a name="line-112"></a>> main-<a name="line-113"></a>> = do-<a name="line-114"></a>> [rc] <- runX ( readDocument [ (a_trace, "1")-<a name="line-115"></a>> ] "hello.xml"-<a name="line-116"></a>> >>>-<a name="line-117"></a>> writeDocument [ (a_output_encoding, isoLatin1)-<a name="line-118"></a>> ] "-" -- output to stdout-<a name="line-119"></a>> >>>-<a name="line-120"></a>> getErrStatus-<a name="line-121"></a>> )-<a name="line-122"></a>> exitWith ( if rc >= c_err-<a name="line-123"></a>> then ExitFailure 1-<a name="line-124"></a>> else ExitSuccess-<a name="line-125"></a>> )-<a name="line-126"></a>-}</span>-<a name="line-127"></a>-<a name="line-128"></a><a name="writeDocument"></a><span class='definition'>writeDocument</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-129"></a><span class='definition'>writeDocument</span> <span class='varid'>userOptions</span> <span class='varid'>dst</span>-<a name="line-130"></a> <span class='keyglyph'>=</span> <span class='varid'>perform</span> <span class='layout'>(</span> <span class='varid'>traceMsg</span> <span class='num'>1</span> <span class='layout'>(</span><span class='str'>"writeDocument: destination is "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>dst</span><span class='layout'>)</span>-<a name="line-131"></a> <span class='varop'>>>></span>-<a name="line-132"></a> <span class='varid'>prepareContents</span> <span class='varid'>userOptions</span>-<a name="line-133"></a> <span class='varop'>>>></span>-<a name="line-134"></a> <span class='varid'>putXmlDocument</span> <span class='varid'>dst</span>-<a name="line-135"></a> <span class='varop'>>>></span>-<a name="line-136"></a> <span class='varid'>traceMsg</span> <span class='num'>1</span> <span class='str'>"writeDocument: finished"</span>-<a name="line-137"></a> <span class='layout'>)</span>-<a name="line-138"></a> <span class='varop'>`when`</span>-<a name="line-139"></a> <span class='varid'>documentStatusOk</span>-<a name="line-140"></a>-<a name="line-141"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-142"></a>-<a name="line-143"></a><span class='comment'>-- |</span>-<a name="line-144"></a><span class='comment'>-- Convert a document into a string. Formating is done the same way</span>-<a name="line-145"></a><span class='comment'>-- and with the same options as in 'writeDocument'.</span>-<a name="line-146"></a>-<a name="line-147"></a><a name="writeDocumentToString"></a><span class='definition'>writeDocumentToString</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>-<a name="line-148"></a><span class='definition'>writeDocumentToString</span> <span class='varid'>userOptions</span>-<a name="line-149"></a> <span class='keyglyph'>=</span> <span class='varid'>prepareContents</span> <span class='varid'>userOptions</span>-<a name="line-150"></a> <span class='varop'>>>></span>-<a name="line-151"></a> <span class='varid'>xshow</span> <span class='varid'>getChildren</span>-<a name="line-152"></a>-<a name="line-153"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-154"></a>-<a name="line-155"></a><span class='comment'>-- |</span>-<a name="line-156"></a><span class='comment'>-- indent and format output</span>-<a name="line-157"></a>-<a name="line-158"></a><a name="prepareContents"></a><span class='definition'>prepareContents</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-159"></a><span class='definition'>prepareContents</span> <span class='varid'>userOptions</span>-<a name="line-160"></a> <span class='keyglyph'>=</span> <span class='varid'>indent</span>-<a name="line-161"></a> <span class='varop'>>>></span>-<a name="line-162"></a> <span class='varid'>format</span>-<a name="line-163"></a> <span class='keyword'>where</span>-<a name="line-164"></a> <span class='varid'>formatEmptyElems</span>-<a name="line-165"></a> <span class='keyglyph'>|</span> <span class='varid'>hasOption</span> <span class='varid'>a_no_empty_elements</span> <span class='keyglyph'>=</span> <span class='varid'>preventEmptyElements</span>-<a name="line-166"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>const</span> <span class='varid'>this</span>-<a name="line-167"></a> <span class='varid'>indent</span>-<a name="line-168"></a> <span class='keyglyph'>|</span> <span class='varid'>hasOption</span> <span class='varid'>a_indent</span> <span class='keyglyph'>=</span> <span class='varid'>indentDoc</span> <span class='comment'>-- document indentation</span>-<a name="line-169"></a> <span class='keyglyph'>|</span> <span class='varid'>hasOption</span> <span class='varid'>a_remove_whitespace</span> <span class='keyglyph'>=</span> <span class='varid'>removeDocWhiteSpace</span> <span class='comment'>-- remove all whitespace between tags</span>-<a name="line-170"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>this</span>-<a name="line-171"></a>-<a name="line-172"></a> <span class='varid'>format</span>-<a name="line-173"></a> <span class='keyglyph'>|</span> <span class='varid'>hasOption</span> <span class='varid'>a_show_tree</span> <span class='keyglyph'>=</span> <span class='varid'>treeRepOfXmlDoc</span>-<a name="line-174"></a> <span class='keyglyph'>|</span> <span class='varid'>hasOption</span> <span class='varid'>a_show_haskell</span> <span class='keyglyph'>=</span> <span class='varid'>haskellRepOfXmlDoc</span>-<a name="line-175"></a> <span class='keyglyph'>|</span> <span class='varid'>hasOption</span> <span class='varid'>a_output_html</span> <span class='keyglyph'>=</span> <span class='varid'>formatEmptyElems</span> <span class='conid'>True</span>-<a name="line-176"></a> <span class='varop'>>>></span>-<a name="line-177"></a> <span class='varid'>escapeHtmlDoc</span> <span class='comment'>-- escape al XML and HTML chars >= 128</span>-<a name="line-178"></a> <span class='varop'>>>></span>-<a name="line-179"></a> <span class='varid'>encodeDocument</span> <span class='comment'>-- convert doc into text with respect to output encoding with ASCII as default</span>-<a name="line-180"></a> <span class='varid'>suppressXmlPi</span> <span class='layout'>(</span> <span class='varid'>lookupDef</span> <span class='varid'>usAscii</span> <span class='varid'>a_output_encoding</span> <span class='varid'>options</span> <span class='layout'>)</span>-<a name="line-181"></a> <span class='keyglyph'>|</span> <span class='varid'>hasOption</span> <span class='varid'>a_output_xml</span> <span class='keyglyph'>=</span> <span class='varid'>formatEmptyElems</span> <span class='conid'>False</span>-<a name="line-182"></a> <span class='varop'>>>></span>-<a name="line-183"></a> <span class='varid'>escapeXmlDoc</span> <span class='comment'>-- escape lt, gt, amp, quot, </span>-<a name="line-184"></a> <span class='varop'>>>></span>-<a name="line-185"></a> <span class='varid'>encodeDocument</span> <span class='comment'>-- convert doc into text with respect to output encoding</span>-<a name="line-186"></a> <span class='varid'>suppressXmlPi</span> <span class='layout'>(</span> <span class='varid'>lookupDef</span> <span class='str'>""</span> <span class='varid'>a_output_encoding</span> <span class='varid'>options</span> <span class='layout'>)</span>-<a name="line-187"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>this</span>-<a name="line-188"></a>-<a name="line-189"></a> <span class='varid'>suppressXmlPi</span> <span class='comment'>-- remove <?xml ... ?> when set</span>-<a name="line-190"></a> <span class='keyglyph'>=</span> <span class='varid'>hasOption</span> <span class='varid'>a_no_xml_pi</span>-<a name="line-191"></a>-<a name="line-192"></a> <span class='varid'>hasOption</span> <span class='varid'>n</span>-<a name="line-193"></a> <span class='keyglyph'>=</span> <span class='varid'>optionIsSet</span> <span class='varid'>n</span> <span class='varid'>options</span>-<a name="line-194"></a>-<a name="line-195"></a> <span class='varid'>options</span> <span class='keyglyph'>=</span> <span class='varid'>addEntries</span> -<a name="line-196"></a> <span class='varid'>userOptions</span> -<a name="line-197"></a> <span class='keyglyph'>[</span> <span class='layout'>(</span> <span class='varid'>a_indent</span><span class='layout'>,</span> <span class='varid'>v_0</span> <span class='layout'>)</span>-<a name="line-198"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>a_remove_whitespace</span><span class='layout'>,</span> <span class='varid'>v_0</span> <span class='layout'>)</span>-<a name="line-199"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>a_output_xml</span><span class='layout'>,</span> <span class='varid'>v_1</span> <span class='layout'>)</span>-<a name="line-200"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>a_show_tree</span><span class='layout'>,</span> <span class='varid'>v_0</span> <span class='layout'>)</span>-<a name="line-201"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>a_show_haskell</span><span class='layout'>,</span> <span class='varid'>v_0</span> <span class='layout'>)</span>-<a name="line-202"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>a_output_html</span><span class='layout'>,</span> <span class='varid'>v_0</span> <span class='layout'>)</span>-<a name="line-203"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>a_no_xml_pi</span><span class='layout'>,</span> <span class='varid'>v_0</span> <span class='layout'>)</span>-<a name="line-204"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>a_no_empty_elements</span><span class='layout'>,</span> <span class='varid'>v_0</span> <span class='layout'>)</span>-<a name="line-205"></a> <span class='keyglyph'>]</span>-<a name="line-206"></a>-<a name="line-207"></a><span class='comment'>-- ------------------------------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-Arrow-XPath.html
@@ -1,297 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Text.XML.HXT.Arrow.XPath-<a name="line-5"></a> Copyright : Copyright (C) 2006 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe@fh-wedel.de)-<a name="line-9"></a> Stability : experimental-<a name="line-10"></a> Portability: portable-<a name="line-11"></a>-<a name="line-12"></a> Arrows for working with XPath and XmlNodeSets.-<a name="line-13"></a>-<a name="line-14"></a> Most of the XPath arrows come in two versions,-<a name="line-15"></a> one without dealing with namespaces, element and attribute names-<a name="line-16"></a> in XPath expressions are taken as they ar ignoring any prefix:localname structure.-<a name="line-17"></a>-<a name="line-18"></a> The second variant uses a namespace environment for associating the right-<a name="line-19"></a> namespace for the appropriate prefix. an entry for the empty prefix-<a name="line-20"></a> defines the default namespace for the expression.-<a name="line-21"></a>-<a name="line-22"></a> The second variant should be used, when in the application namespaces-<a name="line-23"></a> are significant, that means when namespace propagation is done for-<a name="line-24"></a> the documents to be processed.-<a name="line-25"></a>-<a name="line-26"></a> NodeSets are sets of \"pointer\" into an XML tree to reference-<a name="line-27"></a> subnodes. These nodesets can be computed by XPath expressions or-<a name="line-28"></a> normal arrows. The nodesets can then be used later for selecting-<a name="line-29"></a> or modifying subtrees of this tree in an efficient way.-<a name="line-30"></a>-<a name="line-31"></a>-}</span>-<a name="line-32"></a>-<a name="line-33"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-34"></a>-<a name="line-35"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XPath</span>-<a name="line-36"></a> <span class='layout'>(</span> <span class='varid'>getXPathTreesInDoc</span>-<a name="line-37"></a> <span class='layout'>,</span> <span class='varid'>getXPathTreesInDocWithNsEnv</span>-<a name="line-38"></a> <span class='layout'>,</span> <span class='varid'>getXPathTrees</span>-<a name="line-39"></a> <span class='layout'>,</span> <span class='varid'>getXPathTreesWithNsEnv</span>-<a name="line-40"></a> <span class='layout'>,</span> <span class='varid'>getElemNodeSet</span>-<a name="line-41"></a> <span class='layout'>,</span> <span class='varid'>getElemAndAttrNodeSet</span>-<a name="line-42"></a> <span class='layout'>,</span> <span class='varid'>getXPathNodeSet</span>-<a name="line-43"></a> <span class='layout'>,</span> <span class='varid'>getFromNodeSet</span>-<a name="line-44"></a> <span class='layout'>,</span> <span class='varid'>processXPathTrees</span>-<a name="line-45"></a> <span class='layout'>,</span> <span class='varid'>processXPathTreesWithNsEnv</span>-<a name="line-46"></a> <span class='layout'>,</span> <span class='varid'>processFromNodeSet</span>-<a name="line-47"></a> <span class='layout'>)</span>-<a name="line-48"></a><span class='keyword'>where</span>-<a name="line-49"></a>-<a name="line-50"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span> <span class='keyword'>as</span> <span class='conid'>PT</span>-<a name="line-51"></a> <span class='layout'>(</span> <span class='varid'>getXPathSubTreesWithNsEnv</span>-<a name="line-52"></a> <span class='layout'>,</span> <span class='varid'>getXPathNodeSetWithNsEnv</span>-<a name="line-53"></a> <span class='layout'>)</span>-<a name="line-54"></a>-<a name="line-55"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ListArrows</span>-<a name="line-56"></a>-<a name="line-57"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>-<a name="line-58"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlArrow</span>-<a name="line-59"></a>-<a name="line-60"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>Edit</span>-<a name="line-61"></a> <span class='layout'>(</span> <span class='varid'>canonicalizeForXPath</span>-<a name="line-62"></a> <span class='layout'>)</span>-<a name="line-63"></a>-<a name="line-64"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-65"></a>-<a name="line-66"></a><span class='comment'>-- |</span>-<a name="line-67"></a><span class='comment'>-- Select parts of a whole XML document with root node by a XPath expression.</span>-<a name="line-68"></a><span class='comment'>--</span>-<a name="line-69"></a><span class='comment'>-- The main filter for selecting parts of a document via XPath.</span>-<a name="line-70"></a><span class='comment'>--</span>-<a name="line-71"></a><span class='comment'>-- The string argument must be a XPath expression with an absolute location path,</span>-<a name="line-72"></a><span class='comment'>-- the argument tree must be a complete document tree.</span>-<a name="line-73"></a><span class='comment'>--</span>-<a name="line-74"></a><span class='comment'>-- Before evaluating the xpath query, the document is canonicalized</span>-<a name="line-75"></a><span class='comment'>-- with 'Text.XML.HXT.Arrow.Edit.canonicalizeForXPath'</span>-<a name="line-76"></a><span class='comment'>--</span>-<a name="line-77"></a><span class='comment'>-- Result is a possibly empty list of XmlTrees forming the set of selected XPath values.</span>-<a name="line-78"></a><span class='comment'>-- XPath values other than XmlTrees (numbers, attributes, tagnames, ...)</span>-<a name="line-79"></a><span class='comment'>-- are convertet to text nodes.</span>-<a name="line-80"></a>-<a name="line-81"></a><a name="getXPathTreesInDoc"></a><span class='definition'>getXPathTreesInDoc</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-82"></a><span class='definition'>getXPathTreesInDoc</span> <span class='keyglyph'>=</span> <span class='varid'>getXPathTreesInDocWithNsEnv</span> <span class='conid'>[]</span>-<a name="line-83"></a>-<a name="line-84"></a><span class='comment'>-- | Same as 'getXPathTreesInDoc' but with namespace environment for the XPath names</span>-<a name="line-85"></a>-<a name="line-86"></a><a name="getXPathTreesInDocWithNsEnv"></a><span class='definition'>getXPathTreesInDocWithNsEnv</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-87"></a><span class='definition'>getXPathTreesInDocWithNsEnv</span> <span class='varid'>env</span> <span class='varid'>query</span> <span class='keyglyph'>=</span> <span class='varid'>canonicalizeForXPath</span>-<a name="line-88"></a> <span class='varop'>>>></span>-<a name="line-89"></a> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='conid'>PT</span><span class='varop'>.</span><span class='varid'>getXPathSubTreesWithNsEnv</span> <span class='varid'>env</span> <span class='varid'>query</span><span class='layout'>)</span>-<a name="line-90"></a>-<a name="line-91"></a><span class='comment'>-- |</span>-<a name="line-92"></a><span class='comment'>-- Select parts of an arbitrary XML tree by a XPath expression.</span>-<a name="line-93"></a><span class='comment'>--</span>-<a name="line-94"></a><span class='comment'>-- The main filter for selecting parts of an arbitrary XML tree via XPath.</span>-<a name="line-95"></a><span class='comment'>-- The string argument must be a XPath expression with an absolute location path,</span>-<a name="line-96"></a><span class='comment'>-- There are no restrictions on the argument tree.</span>-<a name="line-97"></a><span class='comment'>--</span>-<a name="line-98"></a><span class='comment'>-- No canonicalization is performed before evaluating the query</span>-<a name="line-99"></a><span class='comment'>--</span>-<a name="line-100"></a><span class='comment'>-- Result is a possibly empty list of XmlTrees forming the set of selected XPath values.</span>-<a name="line-101"></a><span class='comment'>-- XPath values other than XmlTrees (numbers, attributes, tagnames, ...)</span>-<a name="line-102"></a><span class='comment'>-- are convertet to text nodes.</span>-<a name="line-103"></a>-<a name="line-104"></a><a name="getXPathTrees"></a><span class='definition'>getXPathTrees</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-105"></a><span class='definition'>getXPathTrees</span> <span class='keyglyph'>=</span> <span class='varid'>getXPathTreesWithNsEnv</span> <span class='conid'>[]</span>-<a name="line-106"></a>-<a name="line-107"></a><span class='comment'>-- | Same as 'getXPathTrees' but with namespace environment for the XPath names</span>-<a name="line-108"></a>-<a name="line-109"></a><a name="getXPathTreesWithNsEnv"></a><span class='definition'>getXPathTreesWithNsEnv</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-110"></a><span class='definition'>getXPathTreesWithNsEnv</span> <span class='varid'>env</span> <span class='varid'>query</span> <span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='conid'>PT</span><span class='varop'>.</span><span class='varid'>getXPathSubTreesWithNsEnv</span> <span class='varid'>env</span> <span class='varid'>query</span><span class='layout'>)</span>-<a name="line-111"></a>-<a name="line-112"></a><span class='comment'>-- | Select a set of nodes via an XPath expression from an arbitray XML tree</span>-<a name="line-113"></a><span class='comment'>--</span>-<a name="line-114"></a><span class='comment'>-- The result is a set of \"pointers\" to nodes. This set can be used to</span>-<a name="line-115"></a><span class='comment'>-- access or modify the values of the subnodes in subsequent calls to 'getFromNodeSet' or 'processFromNodeSet'.</span>-<a name="line-116"></a><span class='comment'>--</span>-<a name="line-117"></a><span class='comment'>-- This function enables for parsing an XPath expressions and traversing the tree for node selection once</span>-<a name="line-118"></a><span class='comment'>-- and reuse this result possibly many times for later selection and modification operations.</span>-<a name="line-119"></a>-<a name="line-120"></a><a name="getXPathNodeSet"></a><span class='definition'>getXPathNodeSet</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlNodeSet</span>-<a name="line-121"></a><span class='definition'>getXPathNodeSet</span> <span class='keyglyph'>=</span> <span class='varid'>getXPathNodeSetWithNsEnv</span> <span class='conid'>[]</span>-<a name="line-122"></a>-<a name="line-123"></a><span class='comment'>-- | Same as 'getXPathNodeSet' but with namespace environment for the XPath names</span>-<a name="line-124"></a>-<a name="line-125"></a><a name="getXPathNodeSetWithNsEnv"></a><span class='definition'>getXPathNodeSetWithNsEnv</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlNodeSet</span>-<a name="line-126"></a><span class='definition'>getXPathNodeSetWithNsEnv</span> <span class='varid'>nsEnv</span> <span class='varid'>query</span> <span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='conid'>PT</span><span class='varop'>.</span><span class='varid'>getXPathNodeSetWithNsEnv</span> <span class='varid'>nsEnv</span> <span class='varid'>query</span><span class='layout'>)</span>-<a name="line-127"></a>-<a name="line-128"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-129"></a>-<a name="line-130"></a><a name="getNodeSet"></a><span class='definition'>getNodeSet</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlNodeSet</span>-<a name="line-131"></a><span class='definition'>getNodeSet</span> <span class='varid'>af</span> <span class='varid'>f</span>-<a name="line-132"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>listA</span> <span class='layout'>(</span> <span class='varid'>getChildren</span>-<a name="line-133"></a> <span class='varop'>>>></span>-<a name="line-134"></a> <span class='varid'>getNodeSet</span> <span class='varid'>af</span> <span class='varid'>f</span>-<a name="line-135"></a> <span class='layout'>)</span>-<a name="line-136"></a> <span class='varop'>>>></span>-<a name="line-137"></a> <span class='varid'>arr</span> <span class='varid'>filterNodeSet</span>-<a name="line-138"></a> <span class='layout'>)</span>-<a name="line-139"></a> <span class='varop'>&&&</span>-<a name="line-140"></a> <span class='varid'>listA</span> <span class='varid'>af</span>-<a name="line-141"></a> <span class='varop'>&&&</span>-<a name="line-142"></a> <span class='varid'>listA</span> <span class='varid'>f</span>-<a name="line-143"></a> <span class='layout'>)</span>-<a name="line-144"></a> <span class='varop'>>>^</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>cl</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>al</span><span class='layout'>,</span> <span class='varid'>n</span><span class='layout'>)</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>XNS</span> <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>null</span> <span class='varop'>$</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='varid'>al</span> <span class='varid'>cl</span><span class='layout'>)</span>-<a name="line-145"></a> <span class='keyword'>where</span>-<a name="line-146"></a> <span class='varid'>filterNodeSet</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>XmlNodeSet</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>ChildNodes</span>-<a name="line-147"></a> <span class='varid'>filterNodeSet</span>-<a name="line-148"></a> <span class='keyglyph'>=</span> <span class='varid'>concat</span> <span class='varop'>.</span> <span class='varid'>zipWith</span> <span class='varid'>filterIx</span> <span class='keyglyph'>[</span><span class='num'>0</span><span class='keyglyph'>..</span><span class='keyglyph'>]</span>-<a name="line-149"></a>-<a name="line-150"></a> <span class='varid'>filterIx</span> <span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-></span> <span class='conid'>XmlNodeSet</span> <span class='keyglyph'>-></span> <span class='conid'>ChildNodes</span>-<a name="line-151"></a> <span class='varid'>filterIx</span> <span class='sel'>_ix</span> <span class='layout'>(</span><span class='conid'>XNS</span> <span class='conid'>False</span> <span class='conid'>[]</span> <span class='conid'>[]</span><span class='layout'>)</span>-<a name="line-152"></a> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-153"></a> <span class='varid'>filterIx</span> <span class='varid'>ix</span> <span class='varid'>ps</span>-<a name="line-154"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>ix</span><span class='layout'>,</span> <span class='varid'>ps</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-155"></a>-<a name="line-156"></a><span class='comment'>-- |</span>-<a name="line-157"></a><span class='comment'>-- compute a node set from a tree, containing all nodes selected by the predicate arrow</span>-<a name="line-158"></a><span class='comment'>--</span>-<a name="line-159"></a><span class='comment'>-- computation of the set of element nodes with name \"a\" is done with</span>-<a name="line-160"></a><span class='comment'>--</span>-<a name="line-161"></a><span class='comment'>-- > getElemNodeSet (hasName "a")</span>-<a name="line-162"></a>-<a name="line-163"></a><a name="getElemNodeSet"></a><span class='definition'>getElemNodeSet</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlNodeSet</span>-<a name="line-164"></a><span class='definition'>getElemNodeSet</span> <span class='varid'>f</span>-<a name="line-165"></a> <span class='keyglyph'>=</span> <span class='varid'>getNodeSet</span> <span class='varid'>none</span> <span class='varid'>f</span>-<a name="line-166"></a>-<a name="line-167"></a><span class='comment'>-- |</span>-<a name="line-168"></a><span class='comment'>-- compute a node set from a tree, containing all nodes including attribute nodes</span>-<a name="line-169"></a><span class='comment'>-- elected by the predicate arrow</span>-<a name="line-170"></a>-<a name="line-171"></a><a name="getElemAndAttrNodeSet"></a><span class='definition'>getElemAndAttrNodeSet</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlNodeSet</span>-<a name="line-172"></a><span class='definition'>getElemAndAttrNodeSet</span> <span class='varid'>f</span>-<a name="line-173"></a> <span class='keyglyph'>=</span> <span class='varid'>getNodeSet</span> <span class='layout'>(</span> <span class='varid'>getAttrl</span>-<a name="line-174"></a> <span class='varop'>>>></span>-<a name="line-175"></a> <span class='layout'>(</span> <span class='varid'>f</span> <span class='varop'>`guards`</span> <span class='varid'>getAttrName</span> <span class='layout'>)</span>-<a name="line-176"></a> <span class='layout'>)</span> <span class='varid'>f</span>-<a name="line-177"></a>-<a name="line-178"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-179"></a>-<a name="line-180"></a><span class='comment'>-- |</span>-<a name="line-181"></a><span class='comment'>-- select all subtrees specified by a previously computed node set</span>-<a name="line-182"></a><span class='comment'>--</span>-<a name="line-183"></a><span class='comment'>-- the following law holds:</span>-<a name="line-184"></a><span class='comment'>--</span>-<a name="line-185"></a><span class='comment'>-- > getFromNodeSet $< getElemNodeSet f == multi f</span>-<a name="line-186"></a>-<a name="line-187"></a><a name="getFromNodeSet"></a><span class='definition'>getFromNodeSet</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='conid'>XmlNodeSet</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-188"></a><span class='definition'>getFromNodeSet</span> <span class='layout'>(</span><span class='conid'>XNS</span> <span class='varid'>t</span> <span class='varid'>al</span> <span class='varid'>cl</span><span class='layout'>)</span>-<a name="line-189"></a> <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>-<a name="line-190"></a> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>t</span> <span class='keyword'>then</span> <span class='varid'>this</span> <span class='keyword'>else</span> <span class='varid'>none</span> <span class='layout'>)</span>-<a name="line-191"></a> <span class='varop'><+></span>-<a name="line-192"></a> <span class='layout'>(</span> <span class='varid'>getAttrl</span> <span class='varop'>>>></span> <span class='varid'>getFromAttrl</span> <span class='varid'>al</span> <span class='layout'>)</span>-<a name="line-193"></a> <span class='varop'><+></span>-<a name="line-194"></a> <span class='layout'>(</span> <span class='varid'>getFromChildren</span> <span class='layout'>(</span><span class='num'>0</span><span class='comment'>-</span><span class='num'>1</span><span class='layout'>)</span> <span class='varid'>cl</span> <span class='varop'>$<</span> <span class='varid'>listA</span> <span class='varid'>getChildren</span> <span class='layout'>)</span>-<a name="line-195"></a> <span class='keyword'>where</span>-<a name="line-196"></a>-<a name="line-197"></a> <span class='varid'>getFromAttrl</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>QName</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-198"></a> <span class='varid'>getFromAttrl</span> <span class='varid'>l</span>-<a name="line-199"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>catA</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='varid'>hasQName</span> <span class='varop'>$</span> <span class='varid'>l</span><span class='layout'>)</span>-<a name="line-200"></a> <span class='varop'>`guards`</span>-<a name="line-201"></a> <span class='varid'>this</span>-<a name="line-202"></a>-<a name="line-203"></a> <span class='varid'>getFromChildren</span> <span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-></span> <span class='conid'>ChildNodes</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-204"></a> <span class='varid'>getFromChildren</span> <span class='keyword'>_</span> <span class='conid'>[]</span> <span class='keyword'>_</span>-<a name="line-205"></a> <span class='keyglyph'>=</span> <span class='varid'>none</span>-<a name="line-206"></a>-<a name="line-207"></a> <span class='varid'>getFromChildren</span> <span class='varid'>i'</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>i</span><span class='layout'>,</span> <span class='varid'>sp</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>sps</span><span class='layout'>)</span> <span class='varid'>ts</span>-<a name="line-208"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varid'>t'</span><span class='layout'>)</span> <span class='varop'>>>></span> <span class='varid'>getFromNodeSet</span> <span class='varid'>sp</span> <span class='layout'>)</span>-<a name="line-209"></a> <span class='varop'><+></span>-<a name="line-210"></a> <span class='varid'>getFromChildren</span> <span class='varid'>i</span> <span class='varid'>sps</span> <span class='varid'>ts'</span>-<a name="line-211"></a> <span class='keyword'>where</span>-<a name="line-212"></a> <span class='layout'>(</span><span class='varid'>t'</span><span class='layout'>,</span> <span class='varid'>ts'</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>splitAt</span> <span class='num'>1</span> <span class='varop'>.</span> <span class='varid'>drop</span> <span class='layout'>(</span><span class='varid'>i</span><span class='comment'>-</span><span class='varid'>i'</span><span class='comment'>-</span><span class='num'>1</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>ts</span>-<a name="line-213"></a>-<a name="line-214"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-215"></a>-<a name="line-216"></a><span class='comment'>-- |</span>-<a name="line-217"></a><span class='comment'>-- process all subtrees selected by an XPath expression</span>-<a name="line-218"></a><span class='comment'>--</span>-<a name="line-219"></a><span class='comment'>-- the following law holds:</span>-<a name="line-220"></a><span class='comment'>--</span>-<a name="line-221"></a><span class='comment'>-- > processXPathTrees p xpathExpr == processFromNodeSet p $< getXPathNodeSet xpathExpr</span>-<a name="line-222"></a>-<a name="line-223"></a>-<a name="line-224"></a><a name="processXPathTrees"></a><span class='definition'>processXPathTrees</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-225"></a><span class='definition'>processXPathTrees</span> <span class='varid'>f</span> <span class='keyglyph'>=</span> <span class='varid'>processXPathTreesWithNsEnv</span> <span class='varid'>f</span> <span class='conid'>[]</span>-<a name="line-226"></a>-<a name="line-227"></a><span class='comment'>-- | Same as 'processXPathTrees' but with namespace environment for the XPath names</span>-<a name="line-228"></a>-<a name="line-229"></a><a name="processXPathTreesWithNsEnv"></a><span class='definition'>processXPathTreesWithNsEnv</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-230"></a><span class='definition'>processXPathTreesWithNsEnv</span> <span class='varid'>f</span> <span class='varid'>nsEnv</span> <span class='varid'>query</span>-<a name="line-231"></a> <span class='keyglyph'>=</span> <span class='varid'>choiceA</span>-<a name="line-232"></a> <span class='keyglyph'>[</span> <span class='varid'>isRoot</span> <span class='conop'>:-></span> <span class='varid'>processChildren</span> <span class='varid'>pns</span>-<a name="line-233"></a> <span class='layout'>,</span> <span class='varid'>this</span> <span class='conop'>:-></span> <span class='varid'>pns</span>-<a name="line-234"></a> <span class='keyglyph'>]</span>-<a name="line-235"></a> <span class='keyword'>where</span>-<a name="line-236"></a> <span class='varid'>pns</span> <span class='keyglyph'>=</span> <span class='varid'>processFromNodeSet</span> <span class='varid'>f</span> <span class='varop'>$<</span> <span class='varid'>getXPathNodeSetWithNsEnv</span> <span class='varid'>nsEnv</span> <span class='varid'>query</span>-<a name="line-237"></a>-<a name="line-238"></a><span class='comment'>-- |</span>-<a name="line-239"></a><span class='comment'>-- process all subtrees specified by a previously computed node set in bottom up manner</span>-<a name="line-240"></a><span class='comment'>--</span>-<a name="line-241"></a><span class='comment'>-- the follwoing law holds:</span>-<a name="line-242"></a><span class='comment'>--</span>-<a name="line-243"></a><span class='comment'>-- > processFromNodeSet g $< getElemNodeSet f == processBottomUp (g `when` f)</span>-<a name="line-244"></a><span class='comment'>--</span>-<a name="line-245"></a><span class='comment'>-- when attributes are contained in the node set (see 'getElemAndAttrNodeSet'), these are processed</span>-<a name="line-246"></a><span class='comment'>-- after the children and before the node itself</span>-<a name="line-247"></a><span class='comment'>--</span>-<a name="line-248"></a><span class='comment'>-- the advantage of processFromNodeSet is the separation of the selection of set of nodes to be processed (e.g. modified)</span>-<a name="line-249"></a><span class='comment'>-- from the real proccessing. The selection sometimes can be done once, the processing possibly many times.</span>-<a name="line-250"></a>-<a name="line-251"></a><a name="processFromNodeSet"></a><span class='definition'>processFromNodeSet</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XmlNodeSet</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-252"></a><span class='definition'>processFromNodeSet</span> <span class='varid'>f</span> <span class='layout'>(</span><span class='conid'>XNS</span> <span class='varid'>t</span> <span class='varid'>al</span> <span class='varid'>cl</span><span class='layout'>)</span>-<a name="line-253"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>cl</span>-<a name="line-254"></a> <span class='keyword'>then</span> <span class='varid'>this</span>-<a name="line-255"></a> <span class='keyword'>else</span> <span class='varid'>replaceChildren</span> <span class='layout'>(</span> <span class='varid'>processC</span> <span class='layout'>(</span><span class='num'>0</span><span class='comment'>-</span><span class='num'>1</span><span class='layout'>)</span> <span class='varid'>cl</span> <span class='varop'>$<</span> <span class='varid'>listA</span> <span class='varid'>getChildren</span> <span class='layout'>)</span>-<a name="line-256"></a> <span class='layout'>)</span>-<a name="line-257"></a> <span class='varop'>>>></span>-<a name="line-258"></a> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>al</span>-<a name="line-259"></a> <span class='keyword'>then</span> <span class='varid'>this</span>-<a name="line-260"></a> <span class='keyword'>else</span> <span class='varid'>processAttrl</span> <span class='layout'>(</span><span class='varid'>processA</span> <span class='varid'>al</span><span class='layout'>)</span>-<a name="line-261"></a> <span class='layout'>)</span>-<a name="line-262"></a> <span class='varop'>>>></span>-<a name="line-263"></a> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>not</span> <span class='varid'>t</span>-<a name="line-264"></a> <span class='keyword'>then</span> <span class='varid'>this</span>-<a name="line-265"></a> <span class='keyword'>else</span> <span class='varid'>f</span>-<a name="line-266"></a> <span class='layout'>)</span>-<a name="line-267"></a> <span class='keyword'>where</span>-<a name="line-268"></a>-<a name="line-269"></a> <span class='comment'>-- processA :: ChildNodes -> a XmlTree XmlTree</span>-<a name="line-270"></a> <span class='varid'>processA</span> <span class='varid'>l</span>-<a name="line-271"></a> <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varop'>`when`</span> <span class='layout'>(</span> <span class='varid'>catA</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='varid'>hasQName</span> <span class='varop'>$</span> <span class='varid'>l</span><span class='layout'>)</span>-<a name="line-272"></a>-<a name="line-273"></a> <span class='comment'>-- processC :: ChildNodes -> XmlTrees -> a XmlTree XmlTree</span>-<a name="line-274"></a> <span class='varid'>processC</span> <span class='keyword'>_</span> <span class='conid'>[]</span> <span class='varid'>ts</span>-<a name="line-275"></a> <span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varid'>ts</span><span class='layout'>)</span>-<a name="line-276"></a>-<a name="line-277"></a> <span class='varid'>processC</span> <span class='varid'>i'</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>i</span><span class='layout'>,</span> <span class='varid'>sp</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>sps</span><span class='layout'>)</span> <span class='varid'>ts</span>-<a name="line-278"></a> <span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varid'>ts1</span><span class='layout'>)</span>-<a name="line-279"></a> <span class='varop'><+></span>-<a name="line-280"></a> <span class='layout'>(</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varid'>ti</span><span class='layout'>)</span> <span class='varop'>>>></span> <span class='varid'>processFromNodeSet</span> <span class='varid'>f</span> <span class='varid'>sp</span><span class='layout'>)</span>-<a name="line-281"></a> <span class='varop'><+></span>-<a name="line-282"></a> <span class='varid'>processC</span> <span class='varid'>i</span> <span class='varid'>sps</span> <span class='varid'>ts21</span>-<a name="line-283"></a> <span class='keyword'>where</span>-<a name="line-284"></a> <span class='layout'>(</span><span class='varid'>ts1</span><span class='layout'>,</span> <span class='varid'>ts2</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>splitAt</span> <span class='layout'>(</span><span class='varid'>i</span><span class='comment'>-</span><span class='varid'>i'</span><span class='comment'>-</span><span class='num'>1</span><span class='layout'>)</span> <span class='varid'>ts</span>-<a name="line-285"></a> <span class='layout'>(</span><span class='varid'>ti</span><span class='layout'>,</span> <span class='varid'>ts21</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>splitAt</span> <span class='num'>1</span> <span class='varid'>ts2</span>-<a name="line-286"></a>-<a name="line-287"></a><span class='comment'>-- ------------------------------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-Arrow-XPathSimple.html
@@ -1,517 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Text.XML.HXT.XPath.GetSimpleXPath-<a name="line-5"></a> Copyright : Copyright (C) 2008 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe@fh-wedel.de)-<a name="line-9"></a> Stability : experimental-<a name="line-10"></a> Portability: portable-<a name="line-11"></a>-<a name="line-12"></a> XPath selection for simple XPath expressions with list arrows-<a name="line-13"></a> instead of navigatable trees.-<a name="line-14"></a>-<a name="line-15"></a> It is recomended, that this module is imported qualified,-<a name="line-16"></a> e.g like @Text.XML.HXT.Arrow.XPathSimple as XS@.-<a name="line-17"></a>-<a name="line-18"></a> The arrows defined in this module have the same-<a name="line-19"></a> functionality as the functions in 'Text.XML.HXT.Arrow.XPath'.-<a name="line-20"></a>-<a name="line-21"></a> The computation modell in XPath is a navigatable tree,-<a name="line-22"></a> that means a tree wicht can be traveresed in arbitrary directions,-<a name="line-23"></a> not only from the root to the leafs. Sometimes this modell-<a name="line-24"></a> leads to inefficent XPath processing for simple queries, which-<a name="line-25"></a> only need a top down tree traversal.-<a name="line-26"></a>-<a name="line-27"></a> When evaluating an XPath expression with these functions, first an attempt is made-<a name="line-28"></a> to map the XPath expression to a pure arrow. If this is possible-<a name="line-29"></a> due to the siplicity of the XPath expressions, the result is computed-<a name="line-30"></a> directly, else the query is processed by the corresponding-<a name="line-31"></a> function in 'Text.XML.HXT.Arrow.XPath'.-<a name="line-32"></a>-<a name="line-33"></a> The simple evaluation is possible, when in the XPath expression-<a name="line-34"></a> only the top down axis (self, child, descendant, descendant or self are used,-<a name="line-35"></a> when no builtin functions concerning the position of a node are used,-<a name="line-36"></a> and no comparison of nodes e.g. in node set union is required.-<a name="line-37"></a>-<a name="line-38"></a>-}</span>-<a name="line-39"></a>-<a name="line-40"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-41"></a>-<a name="line-42"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XPathSimple</span>-<a name="line-43"></a><span class='keyword'>where</span>-<a name="line-44"></a>-<a name="line-45"></a><span class='comment'>-- import qualified Debug.Trace as T</span>-<a name="line-46"></a>-<a name="line-47"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Monad</span>-<a name="line-48"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ListArrows</span>-<a name="line-49"></a>-<a name="line-50"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>-<a name="line-51"></a>-<a name="line-52"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>ParserCombinators</span><span class='varop'>.</span><span class='conid'>Parsec</span> <span class='layout'>(</span> <span class='varid'>runParser</span> <span class='layout'>)</span>-<a name="line-53"></a>-<a name="line-54"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>-<a name="line-55"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlArrow</span>-<a name="line-56"></a>-<a name="line-57"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XPath</span> <span class='keyword'>as</span> <span class='conid'>XP</span> <span class='layout'>(</span> <span class='varid'>getXPathTreesWithNsEnv</span>-<a name="line-58"></a> <span class='layout'>)</span>-<a name="line-59"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>Edit</span> <span class='layout'>(</span> <span class='varid'>canonicalizeForXPath</span>-<a name="line-60"></a> <span class='layout'>)</span>-<a name="line-61"></a>-<a name="line-62"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathDataTypes</span> <span class='layout'>(</span> <span class='conid'>XPNumber</span> <span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span>-<a name="line-63"></a> <span class='layout'>,</span> <span class='conid'>Expr</span> <span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span>-<a name="line-64"></a> <span class='layout'>,</span> <span class='conid'>Op</span> <span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span>-<a name="line-65"></a> <span class='layout'>,</span> <span class='conid'>XPathNode</span> <span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span>-<a name="line-66"></a> <span class='layout'>,</span> <span class='conid'>LocationPath</span> <span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span>-<a name="line-67"></a> <span class='layout'>,</span> <span class='conid'>Path</span> <span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span>-<a name="line-68"></a> <span class='layout'>,</span> <span class='conid'>XStep</span> <span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span>-<a name="line-69"></a> <span class='layout'>,</span> <span class='conid'>AxisSpec</span> <span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span>-<a name="line-70"></a> <span class='layout'>,</span> <span class='conid'>NodeTest</span> <span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span>-<a name="line-71"></a> <span class='layout'>,</span> <span class='conid'>XPathValue</span> <span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span>-<a name="line-72"></a> <span class='layout'>)</span>-<a name="line-73"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathParser</span> <span class='layout'>(</span> <span class='varid'>parseXPath</span>-<a name="line-74"></a> <span class='layout'>,</span> <span class='varid'>parseNumber</span>-<a name="line-75"></a> <span class='layout'>)</span>-<a name="line-76"></a>-<a name="line-77"></a><span class='comment'>-- ----------------------------------------</span>-<a name="line-78"></a>-<a name="line-79"></a><span class='comment'>-- |</span>-<a name="line-80"></a><span class='comment'>-- Same Functionality as 'Text.XML.HXT.Arrow.XPath.getXPathTreesInDoc'</span>-<a name="line-81"></a>-<a name="line-82"></a><a name="getXPathTreesInDoc"></a><span class='definition'>getXPathTreesInDoc</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-83"></a><span class='definition'>getXPathTreesInDoc</span> <span class='keyglyph'>=</span> <span class='varid'>getXPathTreesInDocWithNsEnv</span> <span class='conid'>[]</span>-<a name="line-84"></a>-<a name="line-85"></a><span class='comment'>-- |</span>-<a name="line-86"></a><span class='comment'>-- Same Functionality as 'Text.XML.HXT.Arrow.XPath.getXPathTreesInDocWithNsEnv'</span>-<a name="line-87"></a>-<a name="line-88"></a><a name="getXPathTreesInDocWithNsEnv"></a><span class='definition'>getXPathTreesInDocWithNsEnv</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-89"></a><span class='definition'>getXPathTreesInDocWithNsEnv</span> <span class='varid'>env</span> <span class='varid'>query</span> <span class='keyglyph'>=</span> <span class='varid'>canonicalizeForXPath</span>-<a name="line-90"></a> <span class='varop'>>>></span>-<a name="line-91"></a> <span class='varid'>tryGetXPath</span> <span class='varid'>env</span> <span class='varid'>query</span>-<a name="line-92"></a><span class='comment'>-- |</span>-<a name="line-93"></a><span class='comment'>-- Same Functionality as 'Text.XML.HXT.Arrow.XPath.getXPathTrees'</span>-<a name="line-94"></a>-<a name="line-95"></a><a name="getXPathTrees"></a><span class='definition'>getXPathTrees</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-96"></a><span class='definition'>getXPathTrees</span> <span class='keyglyph'>=</span> <span class='varid'>getXPathTreesWithNsEnv</span> <span class='conid'>[]</span>-<a name="line-97"></a>-<a name="line-98"></a><span class='comment'>-- |</span>-<a name="line-99"></a><span class='comment'>-- Same Functionality as 'Text.XML.HXT.Arrow.XPath.getXPathTreesWithNsEnv'</span>-<a name="line-100"></a>-<a name="line-101"></a><a name="getXPathTreesWithNsEnv"></a><span class='definition'>getXPathTreesWithNsEnv</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-102"></a><span class='definition'>getXPathTreesWithNsEnv</span> <span class='keyglyph'>=</span> <span class='varid'>tryGetXPath</span>-<a name="line-103"></a>-<a name="line-104"></a>-<a name="line-105"></a><a name="tryGetXPath"></a><span class='definition'>tryGetXPath</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-106"></a><span class='definition'>tryGetXPath</span> <span class='varid'>env</span> <span class='varid'>query</span> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>listA</span> <span class='layout'>(</span><span class='varid'>getXPathTreesWithNsEnvSimple</span> <span class='varid'>env</span> <span class='varid'>query</span><span class='layout'>)</span>-<a name="line-107"></a> <span class='varop'>&&&</span>-<a name="line-108"></a> <span class='varid'>listA</span> <span class='layout'>(</span> <span class='conid'>XP</span><span class='varop'>.</span><span class='varid'>getXPathTreesWithNsEnv</span> <span class='varid'>env</span> <span class='varid'>query</span><span class='layout'>)</span>-<a name="line-109"></a> <span class='layout'>)</span>-<a name="line-110"></a> <span class='varop'>>>></span>-<a name="line-111"></a> <span class='varid'>ifA</span> <span class='layout'>(</span><span class='varid'>arr</span> <span class='varid'>fst</span> <span class='varop'>>>></span> <span class='layout'>(</span><span class='varid'>unlistA</span> <span class='varop'>>>.</span> <span class='varid'>take</span> <span class='num'>1</span><span class='layout'>)</span> <span class='varop'>>>></span> <span class='varid'>isError</span><span class='layout'>)</span>-<a name="line-112"></a> <span class='layout'>(</span><span class='varid'>arr</span> <span class='varid'>snd</span> <span class='varop'>>>></span> <span class='varid'>unlistA</span><span class='layout'>)</span>-<a name="line-113"></a> <span class='layout'>(</span><span class='varid'>arr</span> <span class='varid'>fst</span> <span class='varop'>>>></span> <span class='varid'>unlistA</span><span class='layout'>)</span>-<a name="line-114"></a>-<a name="line-115"></a><span class='comment'>-- |</span>-<a name="line-116"></a><span class='comment'>-- The xpath interpreter for simple xpath expressions.</span>-<a name="line-117"></a><span class='comment'>--</span>-<a name="line-118"></a><span class='comment'>-- In case of a too complicated or illegal xpath expression an error</span>-<a name="line-119"></a><span class='comment'>-- node is returned, else the list of selected XML trees</span>-<a name="line-120"></a>-<a name="line-121"></a><a name="getXPathTreesWithNsEnvSimple"></a><span class='definition'>getXPathTreesWithNsEnvSimple</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-122"></a><span class='definition'>getXPathTreesWithNsEnvSimple</span> <span class='varid'>env</span> <span class='varid'>s</span> <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span> <span class='varid'>getXP</span> <span class='layout'>(</span><span class='varid'>toNsEnv</span> <span class='varid'>env</span><span class='layout'>)</span> <span class='varid'>s</span>-<a name="line-123"></a>-<a name="line-124"></a><span class='comment'>-- ----------------------------------------</span>-<a name="line-125"></a>-<a name="line-126"></a><a name="getXP"></a><span class='definition'>getXP</span> <span class='keyglyph'>::</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-127"></a><span class='definition'>getXP</span> <span class='varid'>env</span> <span class='varid'>s</span> <span class='keyglyph'>=</span> <span class='varid'>either</span> <span class='layout'>(</span> <span class='varid'>err</span>-<a name="line-128"></a> <span class='varop'>.</span>-<a name="line-129"></a> <span class='layout'>(</span><span class='layout'>(</span><span class='str'>"Syntax error in XPath expression "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>s</span> <span class='varop'>++</span> <span class='str'>": "</span><span class='layout'>)</span> <span class='varop'>++</span><span class='layout'>)</span>-<a name="line-130"></a> <span class='varop'>.</span>-<a name="line-131"></a> <span class='varid'>show</span> <span class='varop'>.</span> <span class='varid'>show</span>-<a name="line-132"></a> <span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>fromMaybe</span> <span class='layout'>(</span><span class='varid'>err</span> <span class='layout'>(</span> <span class='str'>"XPath expression "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>s</span> <span class='varop'>++</span>-<a name="line-133"></a> <span class='str'>" too complicated for simple arrow evaluation"</span>-<a name="line-134"></a> <span class='layout'>)</span>-<a name="line-135"></a> <span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>compXPath</span>-<a name="line-136"></a> <span class='layout'>)</span>-<a name="line-137"></a> <span class='comment'>-- . ( \ e -> T.trace (("getXP: xp = "++) . show $ e) e)</span>-<a name="line-138"></a> <span class='varop'>.</span>-<a name="line-139"></a> <span class='varid'>runParser</span> <span class='varid'>parseXPath</span> <span class='varid'>env</span> <span class='str'>""</span>-<a name="line-140"></a> <span class='varop'>$</span> <span class='varid'>s</span>-<a name="line-141"></a>-<a name="line-142"></a><span class='comment'>-- ----------------------------------------</span>-<a name="line-143"></a>-<a name="line-144"></a><a name="XPArrow"></a><span class='keyword'>type</span> <span class='conid'>XPArrow</span> <span class='varid'>b</span> <span class='varid'>c</span> <span class='keyglyph'>=</span> <span class='conid'>Maybe</span> <span class='layout'>(</span><span class='conid'>LA</span> <span class='varid'>b</span> <span class='varid'>c</span><span class='layout'>)</span>-<a name="line-145"></a>-<a name="line-146"></a><a name="mk"></a><span class='definition'>mk</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='varid'>b</span> <span class='varid'>c</span> <span class='keyglyph'>-></span> <span class='conid'>XPArrow</span> <span class='varid'>b</span> <span class='varid'>c</span>-<a name="line-147"></a><span class='definition'>mk</span> <span class='keyglyph'>=</span> <span class='conid'>Just</span>-<a name="line-148"></a>-<a name="line-149"></a><a name="unwrap"></a><span class='definition'>unwrap</span> <span class='keyglyph'>::</span> <span class='conid'>XPArrow</span> <span class='varid'>b</span> <span class='varid'>b</span> <span class='keyglyph'>-></span> <span class='conid'>LA</span> <span class='varid'>b</span> <span class='varid'>b</span>-<a name="line-150"></a><span class='definition'>unwrap</span> <span class='keyglyph'>=</span> <span class='varid'>fromJust</span> <span class='varop'>.</span> <span class='varid'>toThis</span>-<a name="line-151"></a>-<a name="line-152"></a><a name=">>>>"></a><span class='layout'>(</span><span class='varop'>>>>></span><span class='layout'>)</span> <span class='keyglyph'>::</span> <span class='conid'>XPArrow</span> <span class='varid'>b</span> <span class='varid'>b</span> <span class='keyglyph'>-></span> <span class='conid'>XPArrow</span> <span class='varid'>b</span> <span class='varid'>b</span> <span class='keyglyph'>-></span> <span class='conid'>XPArrow</span> <span class='varid'>b</span> <span class='varid'>b</span>-<a name="line-153"></a><span class='conid'>Nothing</span> <span class='varop'>>>>></span> <span class='varid'>a2</span> <span class='keyglyph'>=</span> <span class='varid'>a2</span>-<a name="line-154"></a><a name="a1"></a><span class='definition'>a1</span> <span class='varop'>>>>></span> <span class='conid'>Nothing</span> <span class='keyglyph'>=</span> <span class='varid'>a1</span>-<a name="line-155"></a><span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>f1</span><span class='layout'>)</span> <span class='varop'>>>>></span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>f2</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>f1</span> <span class='varop'>>>></span> <span class='varid'>f2</span>-<a name="line-156"></a>-<a name="line-157"></a><a name="&&&&"></a><span class='layout'>(</span><span class='varop'>&&&&</span><span class='layout'>)</span> <span class='keyglyph'>::</span> <span class='conid'>XPArrow</span> <span class='varid'>b</span> <span class='varid'>b</span> <span class='keyglyph'>-></span> <span class='conid'>XPArrow</span> <span class='varid'>b</span> <span class='varid'>b</span> <span class='keyglyph'>-></span> <span class='conid'>XPArrow</span> <span class='varid'>b</span> <span class='layout'>(</span><span class='varid'>b</span><span class='layout'>,</span> <span class='varid'>b</span><span class='layout'>)</span>-<a name="line-158"></a><span class='conid'>Nothing</span> <span class='varop'>&&&&</span> <span class='varid'>a2</span> <span class='keyglyph'>=</span> <span class='varid'>this''</span> <span class='varop'>&&&&</span> <span class='varid'>a2</span>-<a name="line-159"></a><span class='definition'>a1</span> <span class='varop'>&&&&</span> <span class='conid'>Nothing</span> <span class='keyglyph'>=</span> <span class='varid'>a1</span> <span class='varop'>&&&&</span> <span class='varid'>this''</span>-<a name="line-160"></a><span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>f1</span><span class='layout'>)</span> <span class='varop'>&&&&</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>f2</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>f1</span> <span class='varop'>&&&</span> <span class='varid'>f2</span>-<a name="line-161"></a>-<a name="line-162"></a><a name="<+>>"></a><span class='layout'>(</span><span class='varop'><+>></span><span class='layout'>)</span> <span class='keyglyph'>::</span> <span class='conid'>XPArrow</span> <span class='varid'>b</span> <span class='varid'>b</span> <span class='keyglyph'>-></span> <span class='conid'>XPArrow</span> <span class='varid'>b</span> <span class='varid'>b</span> <span class='keyglyph'>-></span> <span class='conid'>XPArrow</span> <span class='varid'>b</span> <span class='varid'>b</span>-<a name="line-163"></a><span class='conid'>Nothing</span> <span class='varop'><+>></span> <span class='sel'>_a2</span> <span class='keyglyph'>=</span> <span class='conid'>Nothing</span>-<a name="line-164"></a><span class='sel'>_a1</span> <span class='varop'><+>></span> <span class='conid'>Nothing</span> <span class='keyglyph'>=</span> <span class='conid'>Nothing</span>-<a name="line-165"></a><span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>f1</span><span class='layout'>)</span> <span class='varop'><+>></span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>f2</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>f1</span> <span class='varop'><+></span> <span class='varid'>f2</span>-<a name="line-166"></a>-<a name="line-167"></a><a name="guards'"></a><span class='definition'>guards'</span> <span class='keyglyph'>::</span> <span class='conid'>XPArrow</span> <span class='varid'>b</span> <span class='varid'>b</span> <span class='keyglyph'>-></span> <span class='conid'>XPArrow</span> <span class='varid'>b</span> <span class='varid'>b</span> <span class='keyglyph'>-></span> <span class='conid'>XPArrow</span> <span class='varid'>b</span> <span class='varid'>b</span>-<a name="line-168"></a><span class='conid'>Nothing</span> <span class='varop'>`guards'`</span> <span class='varid'>a2</span> <span class='keyglyph'>=</span> <span class='varid'>a2</span>-<a name="line-169"></a><a name="guards'"></a><span class='definition'>a1</span> <span class='varop'>`guards'`</span> <span class='conid'>Nothing</span> <span class='keyglyph'>=</span> <span class='varid'>a1</span> <span class='varop'>`guards'`</span> <span class='varid'>this''</span>-<a name="line-170"></a><a name="guards'"></a><span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>f1</span><span class='layout'>)</span> <span class='varop'>`guards'`</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>f2</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>f1</span> <span class='varop'>`guards`</span> <span class='varid'>f2</span>-<a name="line-171"></a>-<a name="line-172"></a><a name="this'"></a><span class='definition'>this'</span> <span class='keyglyph'>::</span> <span class='conid'>XPArrow</span> <span class='varid'>b</span> <span class='varid'>b</span>-<a name="line-173"></a><span class='definition'>this'</span> <span class='keyglyph'>=</span> <span class='conid'>Nothing</span>-<a name="line-174"></a>-<a name="line-175"></a><a name="this''"></a><span class='definition'>this''</span> <span class='keyglyph'>::</span> <span class='conid'>XPArrow</span> <span class='varid'>b</span> <span class='varid'>b</span>-<a name="line-176"></a><span class='definition'>this''</span> <span class='keyglyph'>=</span> <span class='varid'>mk</span> <span class='varid'>this</span>-<a name="line-177"></a>-<a name="line-178"></a><a name="toThis"></a><span class='definition'>toThis</span> <span class='keyglyph'>::</span> <span class='conid'>XPArrow</span> <span class='varid'>b</span> <span class='varid'>b</span> <span class='keyglyph'>-></span> <span class='conid'>XPArrow</span> <span class='varid'>b</span> <span class='varid'>b</span>-<a name="line-179"></a><span class='definition'>toThis</span> <span class='conid'>Nothing</span> <span class='keyglyph'>=</span> <span class='varid'>this''</span>-<a name="line-180"></a><span class='definition'>toThis</span> <span class='varid'>a</span> <span class='keyglyph'>=</span> <span class='varid'>a</span>-<a name="line-181"></a>-<a name="line-182"></a><a name="getChildren'"></a><span class='definition'>getChildren'</span> <span class='keyglyph'>::</span> <span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-183"></a><span class='definition'>getChildren'</span> <span class='varid'>a</span> <span class='keyglyph'>=</span> <span class='varid'>mk</span> <span class='varid'>getChildren</span> <span class='varop'>>>>></span> <span class='varid'>a</span>-<a name="line-184"></a>-<a name="line-185"></a><a name="getAttrl'"></a><span class='definition'>getAttrl'</span> <span class='keyglyph'>::</span> <span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-186"></a><span class='definition'>getAttrl'</span> <span class='varid'>a</span> <span class='keyglyph'>=</span> <span class='varid'>mk</span> <span class='varid'>getAttrl</span> <span class='varop'>>>>></span> <span class='varid'>a</span>-<a name="line-187"></a>-<a name="line-188"></a><a name="multi'"></a><span class='definition'>multi'</span> <span class='keyglyph'>::</span> <span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-189"></a><span class='definition'>multi'</span> <span class='varid'>a</span> <span class='keyglyph'>=</span> <span class='varid'>mk</span> <span class='varop'>$</span> <span class='varid'>multi</span> <span class='layout'>(</span><span class='varid'>unwrap</span> <span class='varid'>a</span><span class='layout'>)</span>-<a name="line-190"></a>-<a name="line-191"></a><a name="deep'"></a><span class='definition'>deep'</span> <span class='keyglyph'>::</span> <span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-192"></a><span class='definition'>deep'</span> <span class='varid'>a</span> <span class='keyglyph'>=</span> <span class='varid'>mk</span> <span class='varop'>$</span> <span class='varid'>deep</span> <span class='layout'>(</span><span class='varid'>unwrap</span> <span class='varid'>a</span><span class='layout'>)</span>-<a name="line-193"></a>-<a name="line-194"></a><a name="xIndex"></a><span class='definition'>xIndex</span> <span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-></span> <span class='conid'>LA</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span> <span class='varid'>b</span>-<a name="line-195"></a><span class='definition'>xIndex</span> <span class='varid'>i</span>-<a name="line-196"></a> <span class='keyglyph'>|</span> <span class='varid'>i</span> <span class='varop'><=</span> <span class='num'>0</span> <span class='keyglyph'>=</span> <span class='varid'>none</span>-<a name="line-197"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>take</span> <span class='num'>1</span> <span class='varop'>.</span> <span class='varid'>drop</span> <span class='layout'>(</span><span class='varid'>i</span><span class='comment'>-</span><span class='num'>1</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-198"></a>-<a name="line-199"></a><a name="xString"></a><span class='definition'>xString</span> <span class='keyglyph'>::</span> <span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>-<a name="line-200"></a><span class='definition'>xString</span> <span class='varid'>a</span> <span class='keyglyph'>=</span> <span class='varid'>unwrap</span> <span class='varid'>a</span> <span class='varop'>>>></span> <span class='varid'>xshow</span> <span class='layout'>(</span><span class='varid'>deep</span> <span class='varid'>isText</span><span class='layout'>)</span>-<a name="line-201"></a>-<a name="line-202"></a><a name="xNumber'"></a><span class='definition'>xNumber'</span> <span class='keyglyph'>::</span> <span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XPNumber</span>-<a name="line-203"></a><span class='definition'>xNumber'</span> <span class='varid'>a</span> <span class='keyglyph'>=</span> <span class='varid'>xString</span> <span class='varid'>a</span> <span class='varop'>>>></span> <span class='varid'>arr</span> <span class='varid'>toNumber</span>-<a name="line-204"></a>-<a name="line-205"></a><span class='comment'>-- ------------------------------</span>-<a name="line-206"></a>-<a name="line-207"></a><a name="deadEndStreet"></a><span class='definition'>deadEndStreet</span> <span class='keyglyph'>::</span> <span class='conid'>Monad</span> <span class='varid'>m</span> <span class='keyglyph'>=></span> <span class='varid'>m</span> <span class='varid'>a</span>-<a name="line-208"></a><span class='definition'>deadEndStreet</span> <span class='keyglyph'>=</span> <span class='varid'>fail</span> <span class='str'>"XPath expression too complicated for XmlArrows"</span>-<a name="line-209"></a>-<a name="line-210"></a><a name="compXPath"></a><span class='definition'>compXPath</span> <span class='keyglyph'>::</span> <span class='conid'>MonadPlus</span> <span class='varid'>m</span> <span class='keyglyph'>=></span> <span class='conid'>Expr</span> <span class='keyglyph'>-></span> <span class='varid'>m</span> <span class='layout'>(</span><span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span>-<a name="line-211"></a><span class='definition'>compXPath</span> <span class='varid'>e</span> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-212"></a> <span class='varid'>r</span> <span class='keyglyph'><-</span> <span class='varid'>compXP</span> <span class='varid'>e</span>-<a name="line-213"></a> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>unwrap</span> <span class='varid'>r</span>-<a name="line-214"></a>-<a name="line-215"></a><a name="compXP"></a><span class='definition'>compXP</span> <span class='keyglyph'>::</span> <span class='conid'>MonadPlus</span> <span class='varid'>m</span> <span class='keyglyph'>=></span> <span class='conid'>Expr</span> <span class='keyglyph'>-></span> <span class='varid'>m</span> <span class='layout'>(</span><span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span>-<a name="line-216"></a><span class='definition'>compXP</span> <span class='layout'>(</span><span class='conid'>PathExpr</span> <span class='conid'>Nothing</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='layout'>(</span><span class='conid'>LocPath</span> <span class='conid'>Abs</span> <span class='varid'>lp</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-217"></a> <span class='keyglyph'>=</span> <span class='varid'>compLP</span> <span class='varid'>lp</span> <span class='varid'>this'</span>-<a name="line-218"></a><span class='definition'>compXP</span> <span class='layout'>(</span><span class='conid'>FilterExpr</span> <span class='layout'>(</span><span class='varid'>e1</span><span class='conop'>:</span><span class='varid'>el</span><span class='layout'>)</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-219"></a> <span class='varid'>r</span> <span class='keyglyph'><-</span> <span class='varid'>compXP</span> <span class='varid'>e1</span>-<a name="line-220"></a> <span class='varid'>compFP</span> <span class='varid'>el</span> <span class='varid'>r</span>-<a name="line-221"></a><span class='definition'>compXP</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='varid'>deadEndStreet</span>-<a name="line-222"></a>-<a name="line-223"></a><a name="compFP"></a><span class='definition'>compFP</span> <span class='keyglyph'>::</span> <span class='conid'>MonadPlus</span> <span class='varid'>m</span> <span class='keyglyph'>=></span> <span class='keyglyph'>[</span><span class='conid'>Expr</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='varid'>m</span> <span class='layout'>(</span><span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span>-<a name="line-224"></a><span class='definition'>compFP</span> <span class='conid'>[]</span> <span class='varid'>r</span> <span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varid'>r</span>-<a name="line-225"></a><span class='definition'>compFP</span> <span class='layout'>(</span><span class='varid'>e1</span><span class='conop'>:</span><span class='varid'>es</span><span class='layout'>)</span> <span class='varid'>r</span> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-226"></a> <span class='varid'>r1</span> <span class='keyglyph'><-</span> <span class='varid'>compPred</span> <span class='keyglyph'>[</span><span class='varid'>e1</span><span class='keyglyph'>]</span> <span class='varid'>r</span>-<a name="line-227"></a> <span class='varid'>compFP</span> <span class='varid'>es</span> <span class='varid'>r1</span>-<a name="line-228"></a>-<a name="line-229"></a><a name="compLP"></a><span class='definition'>compLP</span> <span class='keyglyph'>::</span> <span class='conid'>MonadPlus</span> <span class='varid'>m</span> <span class='keyglyph'>=></span> <span class='keyglyph'>[</span><span class='conid'>XStep</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='varid'>m</span> <span class='layout'>(</span><span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span>-<a name="line-230"></a><span class='definition'>compLP</span> <span class='conid'>[]</span> <span class='varid'>r</span> <span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varid'>r</span>-<a name="line-231"></a><span class='definition'>compLP</span> <span class='layout'>(</span><span class='varid'>x</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span> <span class='varid'>r</span> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-232"></a> <span class='varid'>a1</span> <span class='keyglyph'><-</span> <span class='varid'>compXS</span> <span class='varid'>x</span> <span class='varid'>r</span>-<a name="line-233"></a> <span class='keyword'>as</span> <span class='keyglyph'><-</span> <span class='varid'>compLP</span> <span class='varid'>xs</span> <span class='varid'>a1</span>-<a name="line-234"></a> <span class='varid'>return</span> <span class='keyword'>as</span>-<a name="line-235"></a>-<a name="line-236"></a><a name="compXS"></a><span class='definition'>compXS</span> <span class='keyglyph'>::</span> <span class='conid'>MonadPlus</span> <span class='varid'>m</span> <span class='keyglyph'>=></span> <span class='conid'>XStep</span> <span class='keyglyph'>-></span> <span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='varid'>m</span> <span class='layout'>(</span><span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span>-<a name="line-237"></a><span class='definition'>compXS</span> <span class='layout'>(</span><span class='conid'>Step</span> <span class='conid'>Child</span> <span class='varid'>nt</span> <span class='varid'>ps</span><span class='layout'>)</span> <span class='varid'>s</span> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-238"></a> <span class='varid'>an</span> <span class='keyglyph'><-</span> <span class='varid'>compNTE</span> <span class='varid'>nt</span>-<a name="line-239"></a> <span class='varid'>compPred</span> <span class='varid'>ps</span> <span class='layout'>(</span><span class='varid'>s</span> <span class='varop'>>>>></span> <span class='varid'>mk</span> <span class='varid'>getChildren</span> <span class='varop'>>>>></span> <span class='varid'>an</span><span class='layout'>)</span>-<a name="line-240"></a>-<a name="line-241"></a><span class='definition'>compXS</span> <span class='layout'>(</span><span class='conid'>Step</span> <span class='conid'>DescendantOrSelf</span> <span class='varid'>nt</span> <span class='varid'>ps</span><span class='layout'>)</span> <span class='varid'>s</span>-<a name="line-242"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-243"></a> <span class='varid'>an</span> <span class='keyglyph'><-</span> <span class='varid'>compNTE</span> <span class='varid'>nt</span>-<a name="line-244"></a> <span class='varid'>compPred</span> <span class='varid'>ps</span> <span class='layout'>(</span><span class='varid'>s</span> <span class='varop'>>>>></span> <span class='varid'>multi'</span> <span class='varid'>an</span><span class='layout'>)</span>-<a name="line-245"></a>-<a name="line-246"></a><span class='definition'>compXS</span> <span class='layout'>(</span><span class='conid'>Step</span> <span class='conid'>Descendant</span> <span class='varid'>nt</span> <span class='varid'>ps</span><span class='layout'>)</span> <span class='varid'>s</span>-<a name="line-247"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-248"></a> <span class='varid'>an</span> <span class='keyglyph'><-</span> <span class='varid'>compNTE</span> <span class='varid'>nt</span>-<a name="line-249"></a> <span class='varid'>compPred</span> <span class='varid'>ps</span> <span class='layout'>(</span><span class='varid'>s</span> <span class='varop'>>>>></span> <span class='varid'>mk</span> <span class='varid'>getChildren</span> <span class='varop'>>>>></span> <span class='varid'>multi'</span> <span class='varid'>an</span><span class='layout'>)</span>-<a name="line-250"></a>-<a name="line-251"></a><span class='definition'>compXS</span> <span class='layout'>(</span><span class='conid'>Step</span> <span class='conid'>Self</span> <span class='varid'>nt</span> <span class='varid'>ps</span><span class='layout'>)</span> <span class='varid'>s</span>-<a name="line-252"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-253"></a> <span class='varid'>an</span> <span class='keyglyph'><-</span> <span class='varid'>compNTE</span> <span class='varid'>nt</span>-<a name="line-254"></a> <span class='varid'>compPred</span> <span class='varid'>ps</span> <span class='layout'>(</span><span class='varid'>s</span> <span class='varop'>>>>></span> <span class='varid'>an</span><span class='layout'>)</span>-<a name="line-255"></a><span class='definition'>compXS</span> <span class='layout'>(</span><span class='conid'>Step</span> <span class='conid'>Attribute</span> <span class='varid'>nt</span> <span class='varid'>ps</span><span class='layout'>)</span> <span class='varid'>s</span>-<a name="line-256"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-257"></a> <span class='varid'>an</span> <span class='keyglyph'><-</span> <span class='varid'>compNTA</span> <span class='varid'>nt</span>-<a name="line-258"></a> <span class='varid'>compPred</span> <span class='varid'>ps</span> <span class='layout'>(</span><span class='varid'>s</span> <span class='varop'>>>>></span> <span class='varid'>getAttrl'</span> <span class='varid'>an</span><span class='layout'>)</span>-<a name="line-259"></a>-<a name="line-260"></a><span class='definition'>compXS</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='varid'>deadEndStreet</span>-<a name="line-261"></a>-<a name="line-262"></a><a name="compNTE"></a><span class='definition'>compNTE</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Monad</span> <span class='varid'>m</span><span class='layout'>)</span> <span class='keyglyph'>=></span> <span class='conid'>NodeTest</span> <span class='keyglyph'>-></span> <span class='varid'>m</span> <span class='layout'>(</span><span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span>-<a name="line-263"></a><span class='definition'>compNTE</span> <span class='layout'>(</span><span class='conid'>NameTest</span> <span class='varid'>qn</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>compNameT</span> <span class='varid'>isElem</span> <span class='varid'>qn</span>-<a name="line-264"></a><span class='definition'>compNTE</span> <span class='varid'>nt</span> <span class='keyglyph'>=</span> <span class='varid'>compNT</span> <span class='varid'>nt</span>-<a name="line-265"></a>-<a name="line-266"></a><a name="compNTA"></a><span class='definition'>compNTA</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Monad</span> <span class='varid'>m</span><span class='layout'>)</span> <span class='keyglyph'>=></span> <span class='conid'>NodeTest</span> <span class='keyglyph'>-></span> <span class='varid'>m</span> <span class='layout'>(</span><span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span>-<a name="line-267"></a><span class='definition'>compNTA</span> <span class='layout'>(</span><span class='conid'>NameTest</span> <span class='varid'>qn</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>compNameT</span> <span class='varid'>isAttr</span> <span class='varid'>qn</span>-<a name="line-268"></a><span class='definition'>compNTA</span> <span class='varid'>nt</span> <span class='keyglyph'>=</span> <span class='varid'>compNT</span> <span class='varid'>nt</span>-<a name="line-269"></a>-<a name="line-270"></a><a name="compNameT"></a><span class='definition'>compNameT</span> <span class='keyglyph'>::</span> <span class='conid'>Monad</span> <span class='varid'>m</span> <span class='keyglyph'>=></span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='varid'>m</span> <span class='layout'>(</span><span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span>-<a name="line-271"></a><span class='definition'>compNameT</span> <span class='varid'>ist</span> <span class='varid'>qn</span>-<a name="line-272"></a> <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='layout'>(</span><span class='varid'>namespaceUri</span> <span class='varid'>qn</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mk</span>-<a name="line-273"></a> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>qualifiedName</span> <span class='varid'>qn</span> <span class='varop'>==</span> <span class='str'>"*"</span>-<a name="line-274"></a> <span class='keyword'>then</span> <span class='varid'>ist</span>-<a name="line-275"></a> <span class='keyword'>else</span> <span class='varid'>ist</span> <span class='varop'>>>></span> <span class='varid'>hasName</span> <span class='layout'>(</span><span class='varid'>qualifiedName</span> <span class='varid'>qn</span><span class='layout'>)</span>-<a name="line-276"></a> <span class='layout'>)</span>-<a name="line-277"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mk</span>-<a name="line-278"></a> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>localPart</span> <span class='varid'>qn</span> <span class='varop'>==</span> <span class='str'>"*"</span>-<a name="line-279"></a> <span class='keyword'>then</span> <span class='varid'>ist</span> <span class='varop'>>>></span> <span class='varid'>hasNamespaceUri</span> <span class='layout'>(</span><span class='varid'>namespaceUri</span> <span class='varid'>qn</span><span class='layout'>)</span>-<a name="line-280"></a> <span class='keyword'>else</span> <span class='varid'>ist</span> <span class='varop'>>>></span> <span class='varid'>hasQName</span> <span class='varid'>qn</span>-<a name="line-281"></a>-<a name="line-282"></a> <span class='layout'>)</span>-<a name="line-283"></a>-<a name="line-284"></a><a name="compNT"></a><span class='definition'>compNT</span> <span class='keyglyph'>::</span> <span class='conid'>Monad</span> <span class='varid'>m</span> <span class='keyglyph'>=></span> <span class='conid'>NodeTest</span> <span class='keyglyph'>-></span> <span class='varid'>m</span> <span class='layout'>(</span><span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span>-<a name="line-285"></a><span class='definition'>compNT</span> <span class='layout'>(</span><span class='conid'>TypeTest</span> <span class='conid'>XPNode</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varid'>this'</span>-<a name="line-286"></a><span class='definition'>compNT</span> <span class='layout'>(</span><span class='conid'>TypeTest</span> <span class='conid'>XPCommentNode</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mk</span> <span class='varid'>isCmt</span>-<a name="line-287"></a><span class='definition'>compNT</span> <span class='layout'>(</span><span class='conid'>TypeTest</span> <span class='conid'>XPPINode</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mk</span> <span class='varid'>isPi</span>-<a name="line-288"></a><span class='definition'>compNT</span> <span class='layout'>(</span><span class='conid'>TypeTest</span> <span class='conid'>XPTextNode</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mk</span> <span class='varid'>isText</span>-<a name="line-289"></a>-<a name="line-290"></a><span class='definition'>compNT</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='varid'>deadEndStreet</span>-<a name="line-291"></a>-<a name="line-292"></a><a name="compPred"></a><span class='definition'>compPred</span> <span class='keyglyph'>::</span> <span class='conid'>MonadPlus</span> <span class='varid'>m</span> <span class='keyglyph'>=></span> <span class='keyglyph'>[</span><span class='conid'>Expr</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='varid'>m</span> <span class='layout'>(</span><span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span>-<a name="line-293"></a><span class='definition'>compPred</span> <span class='conid'>[]</span> <span class='varid'>r</span> <span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varid'>r</span>-<a name="line-294"></a><span class='definition'>compPred</span> <span class='layout'>(</span><span class='varid'>e</span><span class='conop'>:</span><span class='varid'>es</span><span class='layout'>)</span> <span class='varid'>r</span> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-295"></a> <span class='varid'>r1</span> <span class='keyglyph'><-</span> <span class='varid'>compPred1</span> <span class='varid'>e</span> <span class='varid'>r</span>-<a name="line-296"></a> <span class='varid'>compPred</span> <span class='varid'>es</span> <span class='varid'>r1</span>-<a name="line-297"></a>-<a name="line-298"></a><a name="compPred1"></a><span class='definition'>compPred1</span> <span class='keyglyph'>::</span> <span class='conid'>MonadPlus</span> <span class='varid'>m</span> <span class='keyglyph'>=></span> <span class='conid'>Expr</span> <span class='keyglyph'>-></span> <span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='varid'>m</span> <span class='layout'>(</span><span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span>-<a name="line-299"></a><span class='definition'>compPred1</span> <span class='varid'>e</span> <span class='varid'>r</span> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-300"></a> <span class='varid'>ix</span> <span class='keyglyph'><-</span> <span class='varid'>compIntExpr</span> <span class='varid'>e</span>-<a name="line-301"></a> <span class='varid'>return</span> <span class='varop'>.</span> <span class='varid'>mk</span> <span class='varop'>$</span> <span class='varid'>listA</span> <span class='layout'>(</span><span class='varid'>unwrap</span> <span class='varid'>r</span><span class='layout'>)</span> <span class='varop'>>>></span> <span class='varid'>xIndex</span> <span class='varid'>ix</span>-<a name="line-302"></a> <span class='layout'>)</span>-<a name="line-303"></a> <span class='varop'>`mplus`</span>-<a name="line-304"></a> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-305"></a> <span class='varid'>a1</span> <span class='keyglyph'><-</span> <span class='varid'>compRelPathExpr</span> <span class='varid'>e</span>-<a name="line-306"></a> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>r</span> <span class='varop'>>>>></span> <span class='layout'>(</span><span class='varid'>a1</span> <span class='varop'>`guards'`</span> <span class='varid'>this'</span><span class='layout'>)</span>-<a name="line-307"></a> <span class='layout'>)</span>-<a name="line-308"></a> <span class='varop'>`mplus`</span>-<a name="line-309"></a> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-310"></a> <span class='varid'>a1</span> <span class='keyglyph'><-</span> <span class='varid'>compGenExpr</span> <span class='varid'>e</span>-<a name="line-311"></a> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>r</span> <span class='varop'>>>>></span> <span class='layout'>(</span><span class='varid'>a1</span> <span class='varop'>`guards'`</span> <span class='varid'>this'</span><span class='layout'>)</span>-<a name="line-312"></a> <span class='layout'>)</span>-<a name="line-313"></a> <span class='varop'>`mplus`</span>-<a name="line-314"></a> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-315"></a> <span class='varid'>b1</span> <span class='keyglyph'><-</span> <span class='varid'>compBoolExpr</span> <span class='varid'>e</span>-<a name="line-316"></a> <span class='varid'>return</span> <span class='varop'>$</span> <span class='keyword'>if</span> <span class='varid'>b1</span> <span class='keyword'>then</span> <span class='varid'>r</span> <span class='keyword'>else</span> <span class='varid'>mk</span> <span class='varid'>none</span>-<a name="line-317"></a> <span class='layout'>)</span>-<a name="line-318"></a>-<a name="line-319"></a><a name="compRelPathExpr"></a><span class='definition'>compRelPathExpr</span> <span class='keyglyph'>::</span> <span class='conid'>MonadPlus</span> <span class='varid'>m</span> <span class='keyglyph'>=></span> <span class='conid'>Expr</span> <span class='keyglyph'>-></span> <span class='varid'>m</span> <span class='layout'>(</span><span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span>-<a name="line-320"></a><span class='definition'>compRelPathExpr</span> <span class='layout'>(</span><span class='conid'>PathExpr</span> <span class='conid'>Nothing</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='layout'>(</span><span class='conid'>LocPath</span> <span class='conid'>Rel</span> <span class='varid'>lp</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-321"></a> <span class='keyglyph'>=</span> <span class='varid'>compLP</span> <span class='varid'>lp</span> <span class='varid'>this'</span>-<a name="line-322"></a><span class='definition'>compRelPathExpr</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='varid'>deadEndStreet</span>-<a name="line-323"></a>-<a name="line-324"></a><a name="compStringExpr"></a><span class='definition'>compStringExpr</span> <span class='keyglyph'>::</span> <span class='conid'>MonadPlus</span> <span class='varid'>m</span> <span class='keyglyph'>=></span> <span class='conid'>Expr</span> <span class='keyglyph'>-></span> <span class='varid'>m</span> <span class='conid'>String</span>-<a name="line-325"></a><span class='definition'>compStringExpr</span> <span class='layout'>(</span><span class='conid'>LiteralExpr</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varid'>s</span>-<a name="line-326"></a><span class='definition'>compStringExpr</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='varid'>deadEndStreet</span>-<a name="line-327"></a>-<a name="line-328"></a><a name="compNumberExpr"></a><span class='definition'>compNumberExpr</span> <span class='keyglyph'>::</span> <span class='conid'>MonadPlus</span> <span class='varid'>m</span> <span class='keyglyph'>=></span> <span class='conid'>Expr</span> <span class='keyglyph'>-></span> <span class='varid'>m</span> <span class='conid'>XPNumber</span>-<a name="line-329"></a><span class='definition'>compNumberExpr</span> <span class='layout'>(</span><span class='conid'>NumberExpr</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varid'>n</span>-<a name="line-330"></a><span class='definition'>compNumberExpr</span> <span class='layout'>(</span><span class='conid'>FctExpr</span> <span class='str'>"number"</span> <span class='keyglyph'>[</span><span class='varid'>f1</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-331"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-332"></a> <span class='varid'>b</span> <span class='keyglyph'><-</span> <span class='varid'>compBoolExpr</span> <span class='varid'>f1</span>-<a name="line-333"></a> <span class='varid'>return</span> <span class='varop'>$</span> <span class='keyword'>if</span> <span class='varid'>b</span> <span class='keyword'>then</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='num'>1</span><span class='layout'>)</span> <span class='keyword'>else</span> <span class='conid'>Pos0</span>-<a name="line-334"></a> <span class='layout'>)</span>-<a name="line-335"></a> <span class='varop'>`mplus`</span>-<a name="line-336"></a> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-337"></a> <span class='varid'>s</span> <span class='keyglyph'><-</span> <span class='varid'>compStringExpr</span> <span class='varid'>f1</span>-<a name="line-338"></a> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>toNumber</span> <span class='varid'>s</span>-<a name="line-339"></a> <span class='layout'>)</span>-<a name="line-340"></a><span class='definition'>compNumberExpr</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='varid'>deadEndStreet</span>-<a name="line-341"></a>-<a name="line-342"></a><a name="compIntExpr"></a><span class='definition'>compIntExpr</span> <span class='keyglyph'>::</span> <span class='conid'>MonadPlus</span> <span class='varid'>m</span> <span class='keyglyph'>=></span> <span class='conid'>Expr</span> <span class='keyglyph'>-></span> <span class='varid'>m</span> <span class='conid'>Int</span>-<a name="line-343"></a><span class='definition'>compIntExpr</span> <span class='varid'>e</span> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-344"></a> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='keyglyph'><-</span> <span class='varid'>compNumberExpr</span> <span class='varid'>e</span>-<a name="line-345"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>round</span> <span class='varid'>f</span><span class='layout'>)</span>-<a name="line-346"></a> <span class='layout'>)</span>-<a name="line-347"></a> <span class='varop'>`mplus`</span>-<a name="line-348"></a> <span class='varid'>deadEndStreet</span>-<a name="line-349"></a>-<a name="line-350"></a>-<a name="line-351"></a><a name="compBoolExpr"></a><span class='definition'>compBoolExpr</span> <span class='keyglyph'>::</span> <span class='conid'>MonadPlus</span> <span class='varid'>m</span> <span class='keyglyph'>=></span> <span class='conid'>Expr</span> <span class='keyglyph'>-></span> <span class='varid'>m</span> <span class='conid'>Bool</span>-<a name="line-352"></a><span class='definition'>compBoolExpr</span> <span class='layout'>(</span><span class='conid'>FctExpr</span> <span class='varid'>f</span> <span class='conid'>[]</span><span class='layout'>)</span>-<a name="line-353"></a> <span class='keyglyph'>|</span> <span class='varid'>f</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='str'>"true"</span><span class='layout'>,</span> <span class='str'>"false"</span><span class='keyglyph'>]</span>-<a name="line-354"></a> <span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>f</span> <span class='varop'>==</span> <span class='str'>"true"</span>-<a name="line-355"></a><span class='definition'>compBoolExpr</span> <span class='layout'>(</span><span class='conid'>FctExpr</span> <span class='str'>"not"</span> <span class='keyglyph'>[</span><span class='varid'>f1</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-356"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-357"></a> <span class='varid'>v1</span> <span class='keyglyph'><-</span> <span class='varid'>compBoolExpr</span> <span class='varid'>f1</span>-<a name="line-358"></a> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>not</span> <span class='varid'>v1</span>-<a name="line-359"></a><span class='definition'>compBoolExpr</span> <span class='layout'>(</span><span class='conid'>LiteralExpr</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>null</span> <span class='varid'>s</span><span class='layout'>)</span>-<a name="line-360"></a><span class='definition'>compBoolExpr</span> <span class='layout'>(</span><span class='conid'>NumberExpr</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>nz</span> <span class='varid'>n</span>-<a name="line-361"></a> <span class='keyword'>where</span>-<a name="line-362"></a> <span class='varid'>nz</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varop'>/=</span> <span class='num'>0</span>-<a name="line-363"></a> <span class='varid'>nz</span> <span class='conid'>NegInf</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-364"></a> <span class='varid'>nz</span> <span class='conid'>PosInf</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-365"></a> <span class='varid'>nz</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-366"></a><span class='definition'>compBoolExpr</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='varid'>deadEndStreet</span>-<a name="line-367"></a>-<a name="line-368"></a><a name="compGenExpr"></a><span class='definition'>compGenExpr</span> <span class='keyglyph'>::</span> <span class='conid'>MonadPlus</span> <span class='varid'>m</span> <span class='keyglyph'>=></span> <span class='conid'>Expr</span> <span class='keyglyph'>-></span> <span class='varid'>m</span> <span class='layout'>(</span><span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span>-<a name="line-369"></a><span class='definition'>compGenExpr</span> <span class='layout'>(</span><span class='conid'>GenExpr</span> <span class='varid'>op</span> <span class='keyglyph'>[</span><span class='varid'>e1</span><span class='layout'>,</span><span class='varid'>e2</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-370"></a> <span class='keyglyph'>=</span> <span class='varid'>compString</span> <span class='varid'>op</span> <span class='varid'>e1</span> <span class='varid'>e2</span> <span class='comment'>-- on arg is a string expr</span>-<a name="line-371"></a> <span class='varop'>`mplus`</span>-<a name="line-372"></a> <span class='varid'>compNumber</span> <span class='varid'>op</span> <span class='varid'>e1</span> <span class='varid'>e2</span> <span class='comment'>-- one arg is a number expr</span>-<a name="line-373"></a> <span class='varop'>`mplus`</span>-<a name="line-374"></a> <span class='varid'>compBool</span> <span class='varid'>op</span> <span class='varid'>e1</span> <span class='varid'>e2</span> <span class='comment'>-- and/or</span>-<a name="line-375"></a> <span class='varop'>`mplus`</span>-<a name="line-376"></a> <span class='varid'>compPath</span> <span class='varid'>op</span> <span class='varid'>e1</span> <span class='varid'>e2</span> <span class='comment'>-- nodeset equality</span>-<a name="line-377"></a>-<a name="line-378"></a><span class='definition'>compGenExpr</span> <span class='layout'>(</span><span class='conid'>GenExpr</span> <span class='varid'>op</span> <span class='layout'>(</span><span class='varid'>e1</span><span class='conop'>:</span><span class='varid'>el</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-379"></a> <span class='keyglyph'>|</span> <span class='varid'>op</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='conid'>And</span><span class='layout'>,</span> <span class='conid'>Or</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='varid'>compGenExpr</span> <span class='layout'>(</span><span class='conid'>GenExpr</span> <span class='varid'>op</span> <span class='keyglyph'>[</span><span class='varid'>e1</span><span class='layout'>,</span> <span class='conid'>GenExpr</span> <span class='varid'>op</span> <span class='varid'>el</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-380"></a>-<a name="line-381"></a><span class='definition'>compGenExpr</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='varid'>deadEndStreet</span>-<a name="line-382"></a>-<a name="line-383"></a><a name="compString"></a><span class='definition'>compString</span> <span class='keyglyph'>::</span> <span class='conid'>MonadPlus</span> <span class='varid'>m</span> <span class='keyglyph'>=></span> <span class='conid'>Op</span> <span class='keyglyph'>-></span> <span class='conid'>Expr</span> <span class='keyglyph'>-></span> <span class='conid'>Expr</span> <span class='keyglyph'>-></span> <span class='varid'>m</span> <span class='layout'>(</span><span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span>-<a name="line-384"></a><span class='definition'>compString</span> <span class='varid'>op</span> <span class='varid'>e1</span> <span class='varid'>e2</span>-<a name="line-385"></a> <span class='keyglyph'>|</span> <span class='varid'>op</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='conid'>Eq</span><span class='layout'>,</span> <span class='conid'>NEq</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-386"></a> <span class='varid'>s</span> <span class='keyglyph'><-</span> <span class='varid'>compStringExpr</span> <span class='varid'>e2</span>-<a name="line-387"></a> <span class='varid'>a</span> <span class='keyglyph'><-</span> <span class='varid'>compRelPathExpr</span> <span class='varid'>e1</span>-<a name="line-388"></a> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mkEq'</span> <span class='varid'>a</span> <span class='varid'>s</span>-<a name="line-389"></a> <span class='layout'>)</span>-<a name="line-390"></a> <span class='varop'>`mplus`</span>-<a name="line-391"></a> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-392"></a> <span class='varid'>s</span> <span class='keyglyph'><-</span> <span class='varid'>compStringExpr</span> <span class='varid'>e1</span>-<a name="line-393"></a> <span class='varid'>a</span> <span class='keyglyph'><-</span> <span class='varid'>compRelPathExpr</span> <span class='varid'>e2</span>-<a name="line-394"></a> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mkEq'</span> <span class='varid'>a</span> <span class='varid'>s</span>-<a name="line-395"></a> <span class='layout'>)</span>-<a name="line-396"></a> <span class='keyword'>where</span>-<a name="line-397"></a> <span class='varid'>mkEq'</span> <span class='varid'>a'</span> <span class='varid'>s'</span> <span class='keyglyph'>=</span> <span class='varid'>mk</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>xString</span> <span class='varid'>a'</span>-<a name="line-398"></a> <span class='varop'>>>></span>-<a name="line-399"></a> <span class='varid'>isA</span> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>op</span> <span class='varop'>==</span> <span class='conid'>Eq</span>-<a name="line-400"></a> <span class='keyword'>then</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='varid'>s'</span><span class='layout'>)</span>-<a name="line-401"></a> <span class='keyword'>else</span> <span class='layout'>(</span><span class='varop'>/=</span> <span class='varid'>s'</span><span class='layout'>)</span>-<a name="line-402"></a> <span class='layout'>)</span>-<a name="line-403"></a> <span class='layout'>)</span>-<a name="line-404"></a> <span class='varop'>`guards`</span> <span class='varid'>this</span> <span class='comment'>-- just for type match</span>-<a name="line-405"></a> <span class='layout'>)</span>-<a name="line-406"></a><span class='definition'>compString</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='varid'>deadEndStreet</span>-<a name="line-407"></a>-<a name="line-408"></a><a name="compNumber"></a><span class='definition'>compNumber</span> <span class='keyglyph'>::</span> <span class='conid'>MonadPlus</span> <span class='varid'>m</span> <span class='keyglyph'>=></span> <span class='conid'>Op</span> <span class='keyglyph'>-></span> <span class='conid'>Expr</span> <span class='keyglyph'>-></span> <span class='conid'>Expr</span> <span class='keyglyph'>-></span> <span class='varid'>m</span> <span class='layout'>(</span><span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span>-<a name="line-409"></a><span class='definition'>compNumber</span> <span class='varid'>op</span> <span class='varid'>e1</span> <span class='varid'>e2</span>-<a name="line-410"></a> <span class='keyglyph'>|</span> <span class='varid'>op</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='conid'>Eq</span><span class='layout'>,</span> <span class='conid'>NEq</span><span class='layout'>,</span> <span class='conid'>Less</span><span class='layout'>,</span> <span class='conid'>Greater</span><span class='layout'>,</span> <span class='conid'>LessEq</span><span class='layout'>,</span> <span class='conid'>GreaterEq</span><span class='keyglyph'>]</span>-<a name="line-411"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-412"></a> <span class='varid'>n</span> <span class='keyglyph'><-</span> <span class='varid'>compNumberExpr</span> <span class='varid'>e2</span>-<a name="line-413"></a> <span class='varid'>a</span> <span class='keyglyph'><-</span> <span class='varid'>compRelPathExpr</span> <span class='varid'>e1</span>-<a name="line-414"></a> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mkEq'</span> <span class='varid'>a</span> <span class='varid'>n</span>-<a name="line-415"></a> <span class='layout'>)</span>-<a name="line-416"></a> <span class='varop'>`mplus`</span>-<a name="line-417"></a> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-418"></a> <span class='varid'>n</span> <span class='keyglyph'><-</span> <span class='varid'>compNumberExpr</span> <span class='varid'>e1</span>-<a name="line-419"></a> <span class='varid'>a</span> <span class='keyglyph'><-</span> <span class='varid'>compRelPathExpr</span> <span class='varid'>e2</span>-<a name="line-420"></a> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mkEq'</span> <span class='varid'>a</span> <span class='varid'>n</span>-<a name="line-421"></a> <span class='layout'>)</span>-<a name="line-422"></a> <span class='keyword'>where</span>-<a name="line-423"></a> <span class='varid'>mkEq'</span> <span class='varid'>a'</span> <span class='varid'>n'</span> <span class='keyglyph'>=</span> <span class='varid'>mk</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>xNumber'</span> <span class='varid'>a'</span>-<a name="line-424"></a> <span class='varop'>>>></span>-<a name="line-425"></a> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>flip</span> <span class='layout'>(</span> <span class='keyword'>case</span> <span class='varid'>op</span> <span class='keyword'>of</span>-<a name="line-426"></a> <span class='conid'>Eq</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='varop'>==</span><span class='layout'>)</span>-<a name="line-427"></a> <span class='conid'>NEq</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='varop'>/=</span><span class='layout'>)</span>-<a name="line-428"></a> <span class='conid'>Less</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='varop'><</span><span class='layout'>)</span>-<a name="line-429"></a> <span class='conid'>Greater</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='varop'>></span><span class='layout'>)</span>-<a name="line-430"></a> <span class='conid'>LessEq</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='varop'><=</span><span class='layout'>)</span>-<a name="line-431"></a> <span class='conid'>GreaterEq</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='varop'>>=</span><span class='layout'>)</span>-<a name="line-432"></a> <span class='keyword'>_</span> <span class='keyglyph'>-></span> <span class='varid'>error</span> <span class='str'>"compNumber: wrong arg"</span>-<a name="line-433"></a> <span class='layout'>)</span> <span class='varid'>n'</span>-<a name="line-434"></a> <span class='layout'>)</span>-<a name="line-435"></a> <span class='layout'>)</span>-<a name="line-436"></a> <span class='varop'>`guards`</span> <span class='varid'>this</span>-<a name="line-437"></a> <span class='layout'>)</span>-<a name="line-438"></a><span class='definition'>compNumber</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='varid'>deadEndStreet</span>-<a name="line-439"></a>-<a name="line-440"></a><a name="compBool"></a><span class='definition'>compBool</span> <span class='keyglyph'>::</span> <span class='conid'>MonadPlus</span> <span class='varid'>m</span> <span class='keyglyph'>=></span> <span class='conid'>Op</span> <span class='keyglyph'>-></span> <span class='conid'>Expr</span> <span class='keyglyph'>-></span> <span class='conid'>Expr</span> <span class='keyglyph'>-></span> <span class='varid'>m</span> <span class='layout'>(</span><span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span>-<a name="line-441"></a><span class='definition'>compBool</span> <span class='conid'>And</span> <span class='varid'>e1</span> <span class='varid'>e2</span> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-442"></a> <span class='varid'>b</span> <span class='keyglyph'><-</span> <span class='varid'>compBoolExpr</span> <span class='varid'>e1</span>-<a name="line-443"></a> <span class='keyword'>if</span> <span class='varid'>b</span>-<a name="line-444"></a> <span class='keyword'>then</span> <span class='varid'>compGenExpr</span> <span class='varid'>e2</span>-<a name="line-445"></a> <span class='keyword'>else</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mk</span> <span class='varid'>none</span>-<a name="line-446"></a> <span class='layout'>)</span>-<a name="line-447"></a> <span class='varop'>`mplus`</span>-<a name="line-448"></a> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-449"></a> <span class='varid'>b</span> <span class='keyglyph'><-</span> <span class='varid'>compBoolExpr</span> <span class='varid'>e2</span>-<a name="line-450"></a> <span class='keyword'>if</span> <span class='varid'>b</span>-<a name="line-451"></a> <span class='keyword'>then</span> <span class='varid'>compGenExpr</span> <span class='varid'>e1</span>-<a name="line-452"></a> <span class='keyword'>else</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mk</span> <span class='varid'>none</span>-<a name="line-453"></a> <span class='layout'>)</span>-<a name="line-454"></a> <span class='varop'>`mplus`</span>-<a name="line-455"></a> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-456"></a> <span class='varid'>a1</span> <span class='keyglyph'><-</span> <span class='varid'>compGenExpr</span> <span class='varid'>e1</span>-<a name="line-457"></a> <span class='varid'>a2</span> <span class='keyglyph'><-</span> <span class='varid'>compGenExpr</span> <span class='varid'>e2</span>-<a name="line-458"></a> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>a1</span> <span class='varop'>`guards'`</span> <span class='varid'>a2</span>-<a name="line-459"></a> <span class='layout'>)</span>-<a name="line-460"></a><span class='definition'>compBool</span> <span class='conid'>Or</span> <span class='varid'>e1</span> <span class='varid'>e2</span> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-461"></a> <span class='varid'>b</span> <span class='keyglyph'><-</span> <span class='varid'>compBoolExpr</span> <span class='varid'>e1</span>-<a name="line-462"></a> <span class='keyword'>if</span> <span class='varid'>b</span>-<a name="line-463"></a> <span class='keyword'>then</span> <span class='varid'>return</span> <span class='varid'>this'</span>-<a name="line-464"></a> <span class='keyword'>else</span> <span class='varid'>compGenExpr</span> <span class='varid'>e2</span>-<a name="line-465"></a> <span class='layout'>)</span>-<a name="line-466"></a> <span class='varop'>`mplus`</span>-<a name="line-467"></a> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-468"></a> <span class='varid'>b</span> <span class='keyglyph'><-</span> <span class='varid'>compBoolExpr</span> <span class='varid'>e2</span>-<a name="line-469"></a> <span class='keyword'>if</span> <span class='varid'>b</span>-<a name="line-470"></a> <span class='keyword'>then</span> <span class='varid'>return</span> <span class='varid'>this'</span>-<a name="line-471"></a> <span class='keyword'>else</span> <span class='varid'>compGenExpr</span> <span class='varid'>e1</span>-<a name="line-472"></a> <span class='layout'>)</span>-<a name="line-473"></a> <span class='varop'>`mplus`</span>-<a name="line-474"></a> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-475"></a> <span class='varid'>a1</span> <span class='keyglyph'><-</span> <span class='varid'>compGenExpr</span> <span class='varid'>e1</span>-<a name="line-476"></a> <span class='varid'>a2</span> <span class='keyglyph'><-</span> <span class='varid'>compGenExpr</span> <span class='varid'>e2</span>-<a name="line-477"></a> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>a1</span> <span class='varop'><+>></span> <span class='varid'>a2</span>-<a name="line-478"></a> <span class='layout'>)</span>-<a name="line-479"></a><span class='definition'>compBool</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='varid'>deadEndStreet</span>-<a name="line-480"></a>-<a name="line-481"></a><a name="compPath"></a><span class='definition'>compPath</span> <span class='keyglyph'>::</span> <span class='conid'>MonadPlus</span> <span class='varid'>m</span> <span class='keyglyph'>=></span> <span class='conid'>Op</span> <span class='keyglyph'>-></span> <span class='conid'>Expr</span> <span class='keyglyph'>-></span> <span class='conid'>Expr</span> <span class='keyglyph'>-></span> <span class='varid'>m</span> <span class='layout'>(</span><span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span>-<a name="line-482"></a><span class='definition'>compPath</span> <span class='varid'>op</span> <span class='varid'>e1</span> <span class='varid'>e2</span>-<a name="line-483"></a> <span class='keyglyph'>|</span> <span class='varid'>op</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='conid'>Eq</span><span class='layout'>,</span> <span class='conid'>NEq</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-484"></a> <span class='varid'>a1</span> <span class='keyglyph'><-</span> <span class='varid'>compRelPathExpr</span> <span class='varid'>e2</span>-<a name="line-485"></a> <span class='varid'>a2</span> <span class='keyglyph'><-</span> <span class='varid'>compRelPathExpr</span> <span class='varid'>e1</span>-<a name="line-486"></a> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mk</span> <span class='varop'>.</span> <span class='varid'>cmp</span> <span class='varid'>op</span> <span class='varop'>$</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>listA</span> <span class='layout'>(</span><span class='varid'>xString</span> <span class='varid'>a1</span><span class='layout'>)</span> <span class='varop'>&&&</span> <span class='varid'>listA</span> <span class='layout'>(</span><span class='varid'>xString</span> <span class='varid'>a2</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-487"></a> <span class='varop'>>>></span>-<a name="line-488"></a> <span class='varid'>eqs</span>-<a name="line-489"></a> <span class='layout'>)</span>-<a name="line-490"></a> <span class='layout'>)</span>-<a name="line-491"></a> <span class='keyword'>where</span>-<a name="line-492"></a> <span class='varid'>eqs</span> <span class='keyglyph'>=</span> <span class='varid'>arr2L</span> <span class='varid'>equalNodeSet</span>-<a name="line-493"></a> <span class='varid'>cmp</span> <span class='conid'>Eq</span> <span class='varid'>a</span> <span class='keyglyph'>=</span> <span class='varid'>a</span> <span class='varop'>`guards`</span> <span class='varid'>this</span>-<a name="line-494"></a> <span class='varid'>cmp</span> <span class='conid'>NEq</span> <span class='varid'>a</span> <span class='keyglyph'>=</span> <span class='varid'>ifA</span> <span class='varid'>a</span> <span class='varid'>none</span> <span class='varid'>this</span>-<a name="line-495"></a> <span class='varid'>cmp</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='str'>"compPath: wrong agruments"</span>-<a name="line-496"></a>-<a name="line-497"></a><span class='definition'>compPath</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='varid'>deadEndStreet</span>-<a name="line-498"></a>-<a name="line-499"></a><span class='comment'>-- ----------------------------------------</span>-<a name="line-500"></a>-<a name="line-501"></a><a name="toNumber"></a><span class='definition'>toNumber</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>XPNumber</span>-<a name="line-502"></a><span class='definition'>toNumber</span> <span class='varid'>s</span> <span class='keyglyph'>=</span> <span class='keyword'>let</span> <span class='layout'>(</span> <span class='conid'>XPVNumber</span> <span class='varid'>v</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>parseNumber</span> <span class='varid'>s</span> <span class='keyword'>in</span> <span class='varid'>v</span>-<a name="line-503"></a>-<a name="line-504"></a><a name="equalNodeSet"></a><span class='definition'>equalNodeSet</span> <span class='keyglyph'>::</span> <span class='conid'>Eq</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span>-<a name="line-505"></a><span class='definition'>equalNodeSet</span> <span class='varid'>s1</span> <span class='varid'>s2</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='varid'>x</span> <span class='keyglyph'>|</span> <span class='varid'>x</span> <span class='keyglyph'><-</span> <span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>y</span> <span class='keyglyph'><-</span> <span class='varid'>s2</span><span class='layout'>,</span> <span class='varid'>x</span> <span class='varop'>==</span> <span class='varid'>y</span><span class='keyglyph'>]</span>-<a name="line-506"></a>-<a name="line-507"></a><span class='comment'>-- ----------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-Arrow-XmlArrow.html
@@ -1,642 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Text.XML.HXT.Arrow.XmlArrow-<a name="line-5"></a> Copyright : Copyright (C) 2005-9 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe@fh-wedel.de)-<a name="line-9"></a> Stability : experimental-<a name="line-10"></a> Portability: portable-<a name="line-11"></a>-<a name="line-12"></a> Basic arrows for processing XML documents-<a name="line-13"></a>-<a name="line-14"></a> All arrows use IO and a global state for options, errorhandling, ...-<a name="line-15"></a>-<a name="line-16"></a>-}</span>-<a name="line-17"></a>-<a name="line-18"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-19"></a>-<a name="line-20"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlArrow</span>-<a name="line-21"></a> <span class='layout'>(</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlArrow</span> <span class='layout'>)</span>-<a name="line-22"></a><span class='keyword'>where</span>-<a name="line-23"></a>-<a name="line-24"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span> <span class='comment'>-- classes</span>-<a name="line-25"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowList</span>-<a name="line-26"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowIf</span>-<a name="line-27"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowTree</span>-<a name="line-28"></a>-<a name="line-29"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ListArrow</span> <span class='comment'>-- arrow types</span>-<a name="line-30"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>StateListArrow</span>-<a name="line-31"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>IOListArrow</span>-<a name="line-32"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>IOStateListArrow</span>-<a name="line-33"></a>-<a name="line-34"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>-<a name="line-35"></a>-<a name="line-36"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>-<a name="line-37"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Unicode</span> <span class='layout'>(</span> <span class='varid'>isXmlSpaceChar</span>-<a name="line-38"></a> <span class='layout'>)</span>-<a name="line-39"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlNode</span> <span class='keyword'>as</span> <span class='conid'>XN</span>-<a name="line-40"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>ShowXml</span> <span class='keyword'>as</span> <span class='conid'>XS</span>-<a name="line-41"></a>-<a name="line-42"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-43"></a>-<a name="line-44"></a><span class='comment'>{- | Arrows for processing 'Text.XML.HXT.DOM.TypeDefs.XmlTree's-<a name="line-45"></a>-<a name="line-46"></a>These arrows can be grouped into predicates, selectors, constructors, and transformers.-<a name="line-47"></a>-<a name="line-48"></a>All predicates (tests) act like 'Control.Arrow.ArrowIf.none' for failure and 'Control.Arrow.ArrowIf.this' for success.-<a name="line-49"></a>A logical and can be formed by @ a1 >>> a2 @, a locical or by @ a1 \<+\> a2 @.-<a name="line-50"></a>-<a name="line-51"></a>Selector arrows will fail, when applied to wrong input, e.g. selecting the text of a node with 'getText'-<a name="line-52"></a>will fail when applied to a none text node.-<a name="line-53"></a>-<a name="line-54"></a>Edit arrows will remain the input unchanged, when applied to wrong argument, e.g. editing the content of a text node-<a name="line-55"></a>with 'changeText' applied to an element node will return the unchanged element node.-<a name="line-56"></a>-}</span>-<a name="line-57"></a>-<a name="line-58"></a><span class='keyword'>infixl</span> <span class='num'>7</span> <span class='varop'>+=</span>-<a name="line-59"></a>-<a name="line-60"></a><a name="ArrowXml"></a><span class='keyword'>class</span> <span class='layout'>(</span><span class='conid'>Arrow</span> <span class='varid'>a</span><span class='layout'>,</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span><span class='layout'>,</span> <span class='conid'>ArrowTree</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>=></span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyword'>where</span>-<a name="line-61"></a>-<a name="line-62"></a> <span class='comment'>-- discriminating predicates</span>-<a name="line-63"></a>-<a name="line-64"></a> <span class='comment'>-- | test for text nodes</span>-<a name="line-65"></a> <span class='varid'>isText</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-66"></a> <span class='varid'>isText</span> <span class='keyglyph'>=</span> <span class='varid'>isA</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isText</span>-<a name="line-67"></a>-<a name="line-68"></a> <span class='comment'>-- | test for char reference, used during parsing</span>-<a name="line-69"></a> <span class='varid'>isCharRef</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-70"></a> <span class='varid'>isCharRef</span> <span class='keyglyph'>=</span> <span class='varid'>isA</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isCharRef</span>-<a name="line-71"></a>-<a name="line-72"></a> <span class='comment'>-- | test for entity reference, used during parsing</span>-<a name="line-73"></a> <span class='varid'>isEntityRef</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-74"></a> <span class='varid'>isEntityRef</span> <span class='keyglyph'>=</span> <span class='varid'>isA</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isEntityRef</span>-<a name="line-75"></a>-<a name="line-76"></a> <span class='comment'>-- | test for comment</span>-<a name="line-77"></a> <span class='varid'>isCmt</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-78"></a> <span class='varid'>isCmt</span> <span class='keyglyph'>=</span> <span class='varid'>isA</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isCmt</span>-<a name="line-79"></a>-<a name="line-80"></a> <span class='comment'>-- | test for CDATA section, used during parsing</span>-<a name="line-81"></a> <span class='varid'>isCdata</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-82"></a> <span class='varid'>isCdata</span> <span class='keyglyph'>=</span> <span class='varid'>isA</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isCdata</span>-<a name="line-83"></a>-<a name="line-84"></a> <span class='comment'>-- | test for processing instruction</span>-<a name="line-85"></a> <span class='varid'>isPi</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-86"></a> <span class='varid'>isPi</span> <span class='keyglyph'>=</span> <span class='varid'>isA</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isPi</span>-<a name="line-87"></a>-<a name="line-88"></a> <span class='comment'>-- | test for processing instruction \<?xml ...\></span>-<a name="line-89"></a> <span class='varid'>isXmlPi</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-90"></a> <span class='varid'>isXmlPi</span> <span class='keyglyph'>=</span> <span class='varid'>isPi</span> <span class='varop'>>>></span> <span class='varid'>hasName</span> <span class='str'>"xml"</span>-<a name="line-91"></a>-<a name="line-92"></a> <span class='comment'>-- | test for element</span>-<a name="line-93"></a> <span class='varid'>isElem</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-94"></a> <span class='varid'>isElem</span> <span class='keyglyph'>=</span> <span class='varid'>isA</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isElem</span>-<a name="line-95"></a>-<a name="line-96"></a> <span class='comment'>-- | test for DTD part, used during parsing</span>-<a name="line-97"></a> <span class='varid'>isDTD</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-98"></a> <span class='varid'>isDTD</span> <span class='keyglyph'>=</span> <span class='varid'>isA</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isDTD</span>-<a name="line-99"></a>-<a name="line-100"></a> <span class='comment'>-- | test for attribute tree</span>-<a name="line-101"></a> <span class='varid'>isAttr</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-102"></a> <span class='varid'>isAttr</span> <span class='keyglyph'>=</span> <span class='varid'>isA</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isAttr</span>-<a name="line-103"></a>-<a name="line-104"></a> <span class='comment'>-- | test for error message</span>-<a name="line-105"></a> <span class='varid'>isError</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-106"></a> <span class='varid'>isError</span> <span class='keyglyph'>=</span> <span class='varid'>isA</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isError</span>-<a name="line-107"></a>-<a name="line-108"></a> <span class='comment'>-- | test for root node (element with name \"\/\")</span>-<a name="line-109"></a> <span class='varid'>isRoot</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-110"></a> <span class='varid'>isRoot</span> <span class='keyglyph'>=</span> <span class='varid'>isA</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isRoot</span>-<a name="line-111"></a>-<a name="line-112"></a> <span class='comment'>-- | test for text nodes with text, for which a predicate holds</span>-<a name="line-113"></a> <span class='comment'>--</span>-<a name="line-114"></a> <span class='comment'>-- example: @hasText (all (\`elem\` \" \\t\\n\"))@ check for text nodes with only whitespace content</span>-<a name="line-115"></a> -<a name="line-116"></a> <span class='varid'>hasText</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-117"></a> <span class='varid'>hasText</span> <span class='varid'>p</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>isText</span> <span class='varop'>>>></span> <span class='varid'>getText</span> <span class='varop'>>>></span> <span class='varid'>isA</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='varop'>`guards`</span> <span class='varid'>this</span>-<a name="line-118"></a>-<a name="line-119"></a> <span class='comment'>-- | test for text nodes with only white space</span>-<a name="line-120"></a> <span class='comment'>--</span>-<a name="line-121"></a> <span class='comment'>-- implemented with 'hasTest'</span>-<a name="line-122"></a>-<a name="line-123"></a> <span class='varid'>isWhiteSpace</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-124"></a> <span class='varid'>isWhiteSpace</span> <span class='keyglyph'>=</span> <span class='varid'>hasText</span> <span class='layout'>(</span><span class='varid'>all</span> <span class='varid'>isXmlSpaceChar</span><span class='layout'>)</span>-<a name="line-125"></a>-<a name="line-126"></a> <span class='comment'>-- |</span>-<a name="line-127"></a> <span class='comment'>-- test whether a node (element, attribute, pi) has a name with a special property</span>-<a name="line-128"></a>-<a name="line-129"></a> <span class='varid'>hasNameWith</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-130"></a> <span class='varid'>hasNameWith</span> <span class='varid'>p</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>getQName</span> <span class='varop'>>>></span> <span class='varid'>isA</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='varop'>`guards`</span> <span class='varid'>this</span>-<a name="line-131"></a>-<a name="line-132"></a> <span class='comment'>-- |</span>-<a name="line-133"></a> <span class='comment'>-- test whether a node (element, attribute, pi) has a specific qualified name</span>-<a name="line-134"></a> <span class='comment'>-- useful only after namespace propagation</span>-<a name="line-135"></a> <span class='varid'>hasQName</span> <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-136"></a> <span class='varid'>hasQName</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>getQName</span> <span class='varop'>>>></span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='varid'>n</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varop'>`guards`</span> <span class='varid'>this</span>-<a name="line-137"></a>-<a name="line-138"></a> <span class='comment'>-- |</span>-<a name="line-139"></a> <span class='comment'>-- test whether a node has a specific name (prefix:localPart ore localPart),</span>-<a name="line-140"></a> <span class='comment'>-- generally useful, even without namespace handling</span>-<a name="line-141"></a> <span class='varid'>hasName</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-142"></a> <span class='varid'>hasName</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>getName</span> <span class='varop'>>>></span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='varid'>n</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varop'>`guards`</span> <span class='varid'>this</span>-<a name="line-143"></a>-<a name="line-144"></a> <span class='comment'>-- |</span>-<a name="line-145"></a> <span class='comment'>-- test whether a node has a specific name as local part,</span>-<a name="line-146"></a> <span class='comment'>-- useful only after namespace propagation</span>-<a name="line-147"></a> <span class='varid'>hasLocalPart</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-148"></a> <span class='varid'>hasLocalPart</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>getLocalPart</span> <span class='varop'>>>></span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='varid'>n</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varop'>`guards`</span> <span class='varid'>this</span>-<a name="line-149"></a>-<a name="line-150"></a> <span class='comment'>-- |</span>-<a name="line-151"></a> <span class='comment'>-- test whether a node has a specific name prefix,</span>-<a name="line-152"></a> <span class='comment'>-- useful only after namespace propagation</span>-<a name="line-153"></a> <span class='varid'>hasNamePrefix</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-154"></a> <span class='varid'>hasNamePrefix</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>getNamePrefix</span> <span class='varop'>>>></span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='varid'>n</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varop'>`guards`</span> <span class='varid'>this</span>-<a name="line-155"></a>-<a name="line-156"></a> <span class='comment'>-- |</span>-<a name="line-157"></a> <span class='comment'>-- test whether a node has a specific namespace URI</span>-<a name="line-158"></a> <span class='comment'>-- useful only after namespace propagation</span>-<a name="line-159"></a> <span class='varid'>hasNamespaceUri</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-160"></a> <span class='varid'>hasNamespaceUri</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>getNamespaceUri</span> <span class='varop'>>>></span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='varid'>n</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varop'>`guards`</span> <span class='varid'>this</span>-<a name="line-161"></a>-<a name="line-162"></a> <span class='comment'>-- |</span>-<a name="line-163"></a> <span class='comment'>-- test whether an element node has an attribute node with a specific name</span>-<a name="line-164"></a> <span class='varid'>hasAttr</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-165"></a> <span class='varid'>hasAttr</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>getAttrl</span> <span class='varop'>>>></span> <span class='varid'>hasName</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='varop'>`guards`</span> <span class='varid'>this</span>-<a name="line-166"></a>-<a name="line-167"></a> <span class='comment'>-- |</span>-<a name="line-168"></a> <span class='comment'>-- test whether an element node has an attribute node with a specific qualified name</span>-<a name="line-169"></a> <span class='varid'>hasQAttr</span> <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-170"></a> <span class='varid'>hasQAttr</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>getAttrl</span> <span class='varop'>>>></span> <span class='varid'>hasQName</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='varop'>`guards`</span> <span class='varid'>this</span>-<a name="line-171"></a>-<a name="line-172"></a> <span class='comment'>-- |</span>-<a name="line-173"></a> <span class='comment'>-- test whether an element node has an attribute with a specific value</span>-<a name="line-174"></a> <span class='varid'>hasAttrValue</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-175"></a> <span class='varid'>hasAttrValue</span> <span class='varid'>n</span> <span class='varid'>p</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>getAttrl</span> <span class='varop'>>>></span> <span class='varid'>hasName</span> <span class='varid'>n</span> <span class='varop'>>>></span> <span class='varid'>xshow</span> <span class='varid'>getChildren</span> <span class='varop'>>>></span> <span class='varid'>isA</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='varop'>`guards`</span> <span class='varid'>this</span>-<a name="line-176"></a>-<a name="line-177"></a> <span class='comment'>-- |</span>-<a name="line-178"></a> <span class='comment'>-- test whether an element node has an attribute with a qualified name and a specific value</span>-<a name="line-179"></a> <span class='varid'>hasQAttrValue</span> <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-180"></a> <span class='varid'>hasQAttrValue</span> <span class='varid'>n</span> <span class='varid'>p</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>getAttrl</span> <span class='varop'>>>></span> <span class='varid'>hasQName</span> <span class='varid'>n</span> <span class='varop'>>>></span> <span class='varid'>xshow</span> <span class='varid'>getChildren</span> <span class='varop'>>>></span> <span class='varid'>isA</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='varop'>`guards`</span> <span class='varid'>this</span>-<a name="line-181"></a>-<a name="line-182"></a> <span class='comment'>-- constructor arrows ------------------------------------------------------------</span>-<a name="line-183"></a>-<a name="line-184"></a> <span class='comment'>-- | text node construction arrow</span>-<a name="line-185"></a> <span class='varid'>mkText</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>String</span> <span class='conid'>XmlTree</span>-<a name="line-186"></a> <span class='varid'>mkText</span> <span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkText</span>-<a name="line-187"></a>-<a name="line-188"></a> <span class='comment'>-- | char reference construction arrow, useful for document output</span>-<a name="line-189"></a> <span class='varid'>mkCharRef</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>Int</span> <span class='conid'>XmlTree</span>-<a name="line-190"></a> <span class='varid'>mkCharRef</span> <span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkCharRef</span>-<a name="line-191"></a>-<a name="line-192"></a> <span class='comment'>-- | entity reference construction arrow, useful for document output</span>-<a name="line-193"></a> <span class='varid'>mkEntityRef</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>String</span> <span class='conid'>XmlTree</span>-<a name="line-194"></a> <span class='varid'>mkEntityRef</span> <span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkEntityRef</span>-<a name="line-195"></a>-<a name="line-196"></a> <span class='comment'>-- | comment node construction, useful for document output</span>-<a name="line-197"></a> <span class='varid'>mkCmt</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>String</span> <span class='conid'>XmlTree</span>-<a name="line-198"></a> <span class='varid'>mkCmt</span> <span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkCmt</span>-<a name="line-199"></a>-<a name="line-200"></a> <span class='comment'>-- | CDATA construction, useful for document output</span>-<a name="line-201"></a> <span class='varid'>mkCdata</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>String</span> <span class='conid'>XmlTree</span>-<a name="line-202"></a> <span class='varid'>mkCdata</span> <span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkCdata</span>-<a name="line-203"></a>-<a name="line-204"></a> <span class='comment'>-- | error node construction, useful only internally</span>-<a name="line-205"></a> <span class='varid'>mkError</span> <span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>String</span> <span class='conid'>XmlTree</span>-<a name="line-206"></a> <span class='varid'>mkError</span> <span class='varid'>level</span> <span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkError</span> <span class='varid'>level</span><span class='layout'>)</span>-<a name="line-207"></a>-<a name="line-208"></a> <span class='comment'>-- | element construction:</span>-<a name="line-209"></a> <span class='comment'>-- | the attributes and the content of the element are computed by applying arrows</span>-<a name="line-210"></a> <span class='comment'>-- to the input</span>-<a name="line-211"></a> <span class='varid'>mkElement</span> <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span>-<a name="line-212"></a> <span class='varid'>mkElement</span> <span class='varid'>n</span> <span class='varid'>af</span> <span class='varid'>cf</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>listA</span> <span class='varid'>af</span> <span class='varop'>&&&</span> <span class='varid'>listA</span> <span class='varid'>cf</span><span class='layout'>)</span>-<a name="line-213"></a> <span class='varop'>>>></span>-<a name="line-214"></a> <span class='varid'>arr2</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>al</span> <span class='varid'>cl</span> <span class='keyglyph'>-></span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkElement</span> <span class='varid'>n</span> <span class='varid'>al</span> <span class='varid'>cl</span><span class='layout'>)</span>-<a name="line-215"></a> <span class='comment'>-- | attribute node construction:</span>-<a name="line-216"></a> <span class='comment'>-- | the attribute value is computed by applying an arrow to the input</span>-<a name="line-217"></a> <span class='varid'>mkAttr</span> <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span>-<a name="line-218"></a> <span class='varid'>mkAttr</span> <span class='varid'>qn</span> <span class='varid'>f</span> <span class='keyglyph'>=</span> <span class='varid'>listA</span> <span class='varid'>f</span> <span class='varop'>>>></span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkAttr</span> <span class='varid'>qn</span><span class='layout'>)</span>-<a name="line-219"></a>-<a name="line-220"></a> <span class='comment'>-- | processing instruction construction:</span>-<a name="line-221"></a> <span class='comment'>-- | the content of the processing instruction is computed by applying an arrow to the input</span>-<a name="line-222"></a> <span class='varid'>mkPi</span> <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span>-<a name="line-223"></a> <span class='varid'>mkPi</span> <span class='varid'>qn</span> <span class='varid'>f</span> <span class='keyglyph'>=</span> <span class='varid'>listA</span> <span class='varid'>f</span> <span class='varop'>>>></span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkPi</span> <span class='varid'>qn</span><span class='layout'>)</span>-<a name="line-224"></a>-<a name="line-225"></a> <span class='comment'>-- convenient arrows for constructors --------------------------------------------------</span>-<a name="line-226"></a>-<a name="line-227"></a> <span class='comment'>-- | convenient arrow for element construction, more comfortable variant of 'mkElement'</span>-<a name="line-228"></a> <span class='comment'>--</span>-<a name="line-229"></a> <span class='comment'>-- example for simplifying 'mkElement' :</span>-<a name="line-230"></a> <span class='comment'>--</span>-<a name="line-231"></a> <span class='comment'>-- > mkElement qn (a1 <+> ... <+> ai) (c1 <+> ... <+> cj)</span>-<a name="line-232"></a> <span class='comment'>--</span>-<a name="line-233"></a> <span class='comment'>-- equals</span>-<a name="line-234"></a> <span class='comment'>--</span>-<a name="line-235"></a> <span class='comment'>-- > mkqelem qn [a1,...,ai] [c1,...,cj]</span>-<a name="line-236"></a>-<a name="line-237"></a> <span class='varid'>mkqelem</span> <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span>-<a name="line-238"></a> <span class='varid'>mkqelem</span> <span class='varid'>n</span> <span class='varid'>afs</span> <span class='varid'>cfs</span> <span class='keyglyph'>=</span> <span class='varid'>mkElement</span> <span class='varid'>n</span> <span class='layout'>(</span><span class='varid'>catA</span> <span class='varid'>afs</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>catA</span> <span class='varid'>cfs</span><span class='layout'>)</span>-<a name="line-239"></a>-<a name="line-240"></a> <span class='comment'>-- | convenient arrow for element construction with strings instead of qualified names as element names, see also 'mkElement' and 'mkelem'</span>-<a name="line-241"></a> <span class='varid'>mkelem</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span>-<a name="line-242"></a> <span class='varid'>mkelem</span> <span class='varid'>n</span> <span class='varid'>afs</span> <span class='varid'>cfs</span> <span class='keyglyph'>=</span> <span class='varid'>mkElement</span> <span class='layout'>(</span><span class='varid'>mkName</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>catA</span> <span class='varid'>afs</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>catA</span> <span class='varid'>cfs</span><span class='layout'>)</span>-<a name="line-243"></a>-<a name="line-244"></a> <span class='comment'>-- | convenient arrow for element constrution with attributes but without content, simple variant of 'mkelem' and 'mkElement'</span>-<a name="line-245"></a> <span class='varid'>aelem</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span>-<a name="line-246"></a> <span class='varid'>aelem</span> <span class='varid'>n</span> <span class='varid'>afs</span> <span class='keyglyph'>=</span> <span class='varid'>catA</span> <span class='varid'>afs</span> <span class='varop'>>.</span> <span class='keyglyph'>\</span> <span class='varid'>al</span> <span class='keyglyph'>-></span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkElement</span> <span class='layout'>(</span><span class='varid'>mkName</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='varid'>al</span> <span class='conid'>[]</span>-<a name="line-247"></a>-<a name="line-248"></a> <span class='comment'>-- | convenient arrow for simple element constrution without attributes, simple variant of 'mkelem' and 'mkElement'</span>-<a name="line-249"></a> <span class='varid'>selem</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span>-<a name="line-250"></a> <span class='varid'>selem</span> <span class='varid'>n</span> <span class='varid'>cfs</span> <span class='keyglyph'>=</span> <span class='varid'>catA</span> <span class='varid'>cfs</span> <span class='varop'>>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkElement</span> <span class='layout'>(</span><span class='varid'>mkName</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='conid'>[]</span>-<a name="line-251"></a>-<a name="line-252"></a> <span class='comment'>-- | convenient arrow for constrution of empty elements without attributes, simple variant of 'mkelem' and 'mkElement'</span>-<a name="line-253"></a> <span class='varid'>eelem</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span>-<a name="line-254"></a> <span class='varid'>eelem</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='varid'>constA</span> <span class='layout'>(</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkElement</span> <span class='layout'>(</span><span class='varid'>mkName</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='conid'>[]</span> <span class='conid'>[]</span><span class='layout'>)</span>-<a name="line-255"></a>-<a name="line-256"></a> <span class='comment'>-- | construction of an element node with name \"\/\" for document roots</span>-<a name="line-257"></a> <span class='varid'>root</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span>-<a name="line-258"></a> <span class='varid'>root</span> <span class='keyglyph'>=</span> <span class='varid'>mkelem</span> <span class='varid'>t_root</span>-<a name="line-259"></a>-<a name="line-260"></a> <span class='comment'>-- | alias for 'mkAttr'</span>-<a name="line-261"></a> <span class='varid'>qattr</span> <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span>-<a name="line-262"></a> <span class='varid'>qattr</span> <span class='keyglyph'>=</span> <span class='varid'>mkAttr</span>-<a name="line-263"></a>-<a name="line-264"></a> <span class='comment'>-- | convenient arrow for attribute constrution, simple variant of 'mkAttr'</span>-<a name="line-265"></a> <span class='varid'>attr</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span>-<a name="line-266"></a> <span class='varid'>attr</span> <span class='keyglyph'>=</span> <span class='varid'>mkAttr</span> <span class='varop'>.</span> <span class='varid'>mkName</span>-<a name="line-267"></a>-<a name="line-268"></a> <span class='comment'>-- constant arrows (ignoring the input) for tree construction ------------------------------</span>-<a name="line-269"></a>-<a name="line-270"></a> <span class='comment'>-- | constant arrow for text nodes</span>-<a name="line-271"></a> <span class='varid'>txt</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span>-<a name="line-272"></a> <span class='varid'>txt</span> <span class='keyglyph'>=</span> <span class='varid'>constA</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkText</span>-<a name="line-273"></a>-<a name="line-274"></a> <span class='comment'>-- | constant arrow for char reference nodes</span>-<a name="line-275"></a> <span class='varid'>charRef</span> <span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span>-<a name="line-276"></a> <span class='varid'>charRef</span> <span class='keyglyph'>=</span> <span class='varid'>constA</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkCharRef</span>-<a name="line-277"></a>-<a name="line-278"></a> <span class='comment'>-- | constant arrow for entity reference nodes</span>-<a name="line-279"></a> <span class='varid'>entityRef</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span>-<a name="line-280"></a> <span class='varid'>entityRef</span> <span class='keyglyph'>=</span> <span class='varid'>constA</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkEntityRef</span>-<a name="line-281"></a>-<a name="line-282"></a> <span class='comment'>-- | constant arrow for comment</span>-<a name="line-283"></a> <span class='varid'>cmt</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span>-<a name="line-284"></a> <span class='varid'>cmt</span> <span class='keyglyph'>=</span> <span class='varid'>constA</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkCmt</span>-<a name="line-285"></a>-<a name="line-286"></a> <span class='comment'>-- | constant arrow for warning</span>-<a name="line-287"></a> <span class='varid'>warn</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span>-<a name="line-288"></a> <span class='varid'>warn</span> <span class='keyglyph'>=</span> <span class='varid'>constA</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkError</span> <span class='varid'>c_warn</span><span class='layout'>)</span>-<a name="line-289"></a>-<a name="line-290"></a> <span class='comment'>-- | constant arrow for errors</span>-<a name="line-291"></a> <span class='varid'>err</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span>-<a name="line-292"></a> <span class='varid'>err</span> <span class='keyglyph'>=</span> <span class='varid'>constA</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkError</span> <span class='varid'>c_err</span><span class='layout'>)</span>-<a name="line-293"></a>-<a name="line-294"></a> <span class='comment'>-- | constant arrow for fatal errors</span>-<a name="line-295"></a> <span class='varid'>fatal</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span>-<a name="line-296"></a> <span class='varid'>fatal</span> <span class='keyglyph'>=</span> <span class='varid'>constA</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkError</span> <span class='varid'>c_fatal</span><span class='layout'>)</span>-<a name="line-297"></a>-<a name="line-298"></a> <span class='comment'>-- | constant arrow for simple processing instructions, see 'mkPi'</span>-<a name="line-299"></a> <span class='varid'>spi</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span>-<a name="line-300"></a> <span class='varid'>spi</span> <span class='varid'>piName</span> <span class='varid'>piCont</span> <span class='keyglyph'>=</span> <span class='varid'>constA</span> <span class='layout'>(</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkPi</span> <span class='layout'>(</span><span class='varid'>mkName</span> <span class='varid'>piName</span><span class='layout'>)</span> <span class='keyglyph'>[</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkText</span> <span class='varid'>piCont</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-301"></a>-<a name="line-302"></a> <span class='comment'>-- | constant arrow for attribute nodes, attribute name is a qualified name and value is a text,</span>-<a name="line-303"></a> <span class='comment'>-- | see also 'mkAttr', 'qattr', 'attr'</span>-<a name="line-304"></a> <span class='varid'>sqattr</span> <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span>-<a name="line-305"></a> <span class='varid'>sqattr</span> <span class='varid'>an</span> <span class='varid'>av</span> <span class='keyglyph'>=</span> <span class='varid'>constA</span> <span class='layout'>(</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkAttr</span> <span class='varid'>an</span> <span class='keyglyph'>[</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkText</span> <span class='varid'>av</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-306"></a>-<a name="line-307"></a> <span class='comment'>-- | constant arrow for attribute nodes, attribute name and value are</span>-<a name="line-308"></a> <span class='comment'>-- | given by parameters, see 'mkAttr'</span>-<a name="line-309"></a> <span class='varid'>sattr</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span>-<a name="line-310"></a> <span class='varid'>sattr</span> <span class='varid'>an</span> <span class='varid'>av</span> <span class='keyglyph'>=</span> <span class='varid'>constA</span> <span class='layout'>(</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkAttr</span> <span class='layout'>(</span><span class='varid'>mkName</span> <span class='varid'>an</span><span class='layout'>)</span> <span class='keyglyph'>[</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkText</span> <span class='varid'>av</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-311"></a>-<a name="line-312"></a> <span class='comment'>-- selector arrows --------------------------------------------------</span>-<a name="line-313"></a>-<a name="line-314"></a> <span class='comment'>-- | select the text of a text node</span>-<a name="line-315"></a> <span class='varid'>getText</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>-<a name="line-316"></a> <span class='varid'>getText</span> <span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>maybeToList</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getText</span><span class='layout'>)</span>-<a name="line-317"></a>-<a name="line-318"></a> <span class='comment'>-- | select the value of a char reference</span>-<a name="line-319"></a> <span class='varid'>getCharRef</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>Int</span>-<a name="line-320"></a> <span class='varid'>getCharRef</span> <span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>maybeToList</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getCharRef</span><span class='layout'>)</span>-<a name="line-321"></a>-<a name="line-322"></a> <span class='comment'>-- | select the name of a entity reference node</span>-<a name="line-323"></a> <span class='varid'>getEntityRef</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>-<a name="line-324"></a> <span class='varid'>getEntityRef</span> <span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>maybeToList</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getEntityRef</span><span class='layout'>)</span>-<a name="line-325"></a>-<a name="line-326"></a> <span class='comment'>-- | select the comment of a comment node</span>-<a name="line-327"></a> <span class='varid'>getCmt</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>-<a name="line-328"></a> <span class='varid'>getCmt</span> <span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>maybeToList</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getCmt</span><span class='layout'>)</span>-<a name="line-329"></a>-<a name="line-330"></a> <span class='comment'>-- | select the content of a CDATA node</span>-<a name="line-331"></a> <span class='varid'>getCdata</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>-<a name="line-332"></a> <span class='varid'>getCdata</span> <span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>maybeToList</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getCdata</span><span class='layout'>)</span>-<a name="line-333"></a>-<a name="line-334"></a> <span class='comment'>-- | select the name of a processing instruction</span>-<a name="line-335"></a> <span class='varid'>getPiName</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>QName</span>-<a name="line-336"></a> <span class='varid'>getPiName</span> <span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>maybeToList</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getPiName</span><span class='layout'>)</span>-<a name="line-337"></a>-<a name="line-338"></a> <span class='comment'>-- | select the content of a processing instruction</span>-<a name="line-339"></a> <span class='varid'>getPiContent</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-340"></a> <span class='varid'>getPiContent</span> <span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>fromMaybe</span> <span class='conid'>[]</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getPiContent</span><span class='layout'>)</span>-<a name="line-341"></a>-<a name="line-342"></a> <span class='comment'>-- | select the name of an element node</span>-<a name="line-343"></a> <span class='varid'>getElemName</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>QName</span>-<a name="line-344"></a> <span class='varid'>getElemName</span> <span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>maybeToList</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getElemName</span><span class='layout'>)</span>-<a name="line-345"></a>-<a name="line-346"></a> <span class='comment'>-- | select the attribute list of an element node</span>-<a name="line-347"></a> <span class='varid'>getAttrl</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-348"></a> <span class='varid'>getAttrl</span> <span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>fromMaybe</span> <span class='conid'>[]</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getAttrl</span><span class='layout'>)</span>-<a name="line-349"></a>-<a name="line-350"></a> <span class='comment'>-- | select the DTD type of a DTD node</span>-<a name="line-351"></a> <span class='varid'>getDTDPart</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>DTDElem</span>-<a name="line-352"></a> <span class='varid'>getDTDPart</span> <span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>maybeToList</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getDTDPart</span><span class='layout'>)</span>-<a name="line-353"></a>-<a name="line-354"></a> <span class='comment'>-- | select the DTD attributes of a DTD node</span>-<a name="line-355"></a> <span class='varid'>getDTDAttrl</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>Attributes</span>-<a name="line-356"></a> <span class='varid'>getDTDAttrl</span> <span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>maybeToList</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getDTDAttrl</span><span class='layout'>)</span>-<a name="line-357"></a>-<a name="line-358"></a> <span class='comment'>-- | select the name of an attribute</span>-<a name="line-359"></a> <span class='varid'>getAttrName</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>QName</span>-<a name="line-360"></a> <span class='varid'>getAttrName</span> <span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>maybeToList</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getAttrName</span><span class='layout'>)</span>-<a name="line-361"></a>-<a name="line-362"></a> <span class='comment'>-- | select the error level (c_warn, c_err, c_fatal) from an error node</span>-<a name="line-363"></a> <span class='varid'>getErrorLevel</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>Int</span>-<a name="line-364"></a> <span class='varid'>getErrorLevel</span> <span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>maybeToList</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getErrorLevel</span><span class='layout'>)</span>-<a name="line-365"></a>-<a name="line-366"></a> <span class='comment'>-- | select the error message from an error node</span>-<a name="line-367"></a> <span class='varid'>getErrorMsg</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>-<a name="line-368"></a> <span class='varid'>getErrorMsg</span> <span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>maybeToList</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getErrorMsg</span><span class='layout'>)</span>-<a name="line-369"></a>-<a name="line-370"></a> <span class='comment'>-- | select the qualified name from an element, attribute or pi</span>-<a name="line-371"></a> <span class='varid'>getQName</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>QName</span>-<a name="line-372"></a> <span class='varid'>getQName</span> <span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>maybeToList</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getName</span><span class='layout'>)</span>-<a name="line-373"></a>-<a name="line-374"></a> <span class='comment'>-- | select the prefix:localPart or localPart from an element, attribute or pi</span>-<a name="line-375"></a> <span class='varid'>getName</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>-<a name="line-376"></a> <span class='varid'>getName</span> <span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>maybeToList</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getQualifiedName</span><span class='layout'>)</span>-<a name="line-377"></a>-<a name="line-378"></a> <span class='comment'>-- | select the univeral name ({namespace URI} ++ localPart)</span>-<a name="line-379"></a> <span class='varid'>getUniversalName</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>-<a name="line-380"></a> <span class='varid'>getUniversalName</span> <span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>maybeToList</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getUniversalName</span><span class='layout'>)</span>-<a name="line-381"></a>-<a name="line-382"></a> <span class='comment'>-- | select the univeral name (namespace URI ++ localPart)</span>-<a name="line-383"></a> <span class='varid'>getUniversalUri</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>-<a name="line-384"></a> <span class='varid'>getUniversalUri</span> <span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>maybeToList</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getUniversalUri</span><span class='layout'>)</span>-<a name="line-385"></a>-<a name="line-386"></a> <span class='comment'>-- | select the local part</span>-<a name="line-387"></a> <span class='varid'>getLocalPart</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>-<a name="line-388"></a> <span class='varid'>getLocalPart</span> <span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>maybeToList</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getLocalPart</span><span class='layout'>)</span>-<a name="line-389"></a>-<a name="line-390"></a> <span class='comment'>-- | select the name prefix</span>-<a name="line-391"></a> <span class='varid'>getNamePrefix</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>-<a name="line-392"></a> <span class='varid'>getNamePrefix</span> <span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>maybeToList</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getNamePrefix</span><span class='layout'>)</span>-<a name="line-393"></a>-<a name="line-394"></a> <span class='comment'>-- | select the namespace URI</span>-<a name="line-395"></a> <span class='varid'>getNamespaceUri</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>-<a name="line-396"></a> <span class='varid'>getNamespaceUri</span> <span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>maybeToList</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getNamespaceUri</span><span class='layout'>)</span>-<a name="line-397"></a>-<a name="line-398"></a> <span class='comment'>-- | select the value of an attribute of an element node,</span>-<a name="line-399"></a> <span class='comment'>-- always succeeds with empty string as default value \"\"</span>-<a name="line-400"></a> <span class='varid'>getAttrValue</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>-<a name="line-401"></a> <span class='varid'>getAttrValue</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='varid'>xshow</span> <span class='layout'>(</span><span class='varid'>getAttrl</span> <span class='varop'>>>></span> <span class='varid'>hasName</span> <span class='varid'>n</span> <span class='varop'>>>></span> <span class='varid'>getChildren</span><span class='layout'>)</span>-<a name="line-402"></a>-<a name="line-403"></a> <span class='comment'>-- | like 'getAttrValue', but fails if the attribute does not exist</span>-<a name="line-404"></a> <span class='varid'>getAttrValue0</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>-<a name="line-405"></a> <span class='varid'>getAttrValue0</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='varid'>getAttrl</span> <span class='varop'>>>></span> <span class='varid'>hasName</span> <span class='varid'>n</span> <span class='varop'>>>></span> <span class='varid'>xshow</span> <span class='varid'>getChildren</span>-<a name="line-406"></a>-<a name="line-407"></a> <span class='comment'>-- | like 'getAttrValue', but select the value of an attribute given by a qualified name,</span>-<a name="line-408"></a> <span class='comment'>-- always succeeds with empty string as default value \"\"</span>-<a name="line-409"></a> <span class='varid'>getQAttrValue</span> <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>-<a name="line-410"></a> <span class='varid'>getQAttrValue</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='varid'>xshow</span> <span class='layout'>(</span><span class='varid'>getAttrl</span> <span class='varop'>>>></span> <span class='varid'>hasQName</span> <span class='varid'>n</span> <span class='varop'>>>></span> <span class='varid'>getChildren</span><span class='layout'>)</span>-<a name="line-411"></a>-<a name="line-412"></a> <span class='comment'>-- | like 'getQAttrValue', but fails if attribute does not exist</span>-<a name="line-413"></a> <span class='varid'>getQAttrValue0</span> <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>-<a name="line-414"></a> <span class='varid'>getQAttrValue0</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='varid'>getAttrl</span> <span class='varop'>>>></span> <span class='varid'>hasQName</span> <span class='varid'>n</span> <span class='varop'>>>></span> <span class='varid'>xshow</span> <span class='varid'>getChildren</span>-<a name="line-415"></a>-<a name="line-416"></a> <span class='comment'>-- edit arrows --------------------------------------------------</span>-<a name="line-417"></a>-<a name="line-418"></a> <span class='comment'>-- | edit the string of a text node</span>-<a name="line-419"></a> <span class='varid'>changeText</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-420"></a> <span class='varid'>changeText</span> <span class='varid'>cf</span> <span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>changeText</span> <span class='varid'>cf</span><span class='layout'>)</span> <span class='varop'>`when`</span> <span class='varid'>isText</span>-<a name="line-421"></a>-<a name="line-422"></a> <span class='comment'>-- | edit the comment string of a comment node</span>-<a name="line-423"></a> <span class='varid'>changeCmt</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-424"></a> <span class='varid'>changeCmt</span> <span class='varid'>cf</span> <span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>changeCmt</span> <span class='varid'>cf</span><span class='layout'>)</span> <span class='varop'>`when`</span> <span class='varid'>isCmt</span>-<a name="line-425"></a>-<a name="line-426"></a> <span class='comment'>-- | edit an element-, attribute- or pi- name</span>-<a name="line-427"></a> <span class='varid'>changeQName</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='conid'>QName</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-428"></a> <span class='varid'>changeQName</span> <span class='varid'>cf</span> <span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>changeName</span> <span class='varid'>cf</span><span class='layout'>)</span> <span class='varop'>`when`</span> <span class='varid'>getQName</span>-<a name="line-429"></a>-<a name="line-430"></a> <span class='comment'>-- | edit an element name</span>-<a name="line-431"></a> <span class='varid'>changeElemName</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='conid'>QName</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-432"></a> <span class='varid'>changeElemName</span> <span class='varid'>cf</span> <span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>changeElemName</span> <span class='varid'>cf</span><span class='layout'>)</span> <span class='varop'>`when`</span> <span class='varid'>isElem</span>-<a name="line-433"></a>-<a name="line-434"></a> <span class='comment'>-- | edit an attribute name</span>-<a name="line-435"></a> <span class='varid'>changeAttrName</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='conid'>QName</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-436"></a> <span class='varid'>changeAttrName</span> <span class='varid'>cf</span> <span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>changeAttrName</span> <span class='varid'>cf</span><span class='layout'>)</span> <span class='varop'>`when`</span> <span class='varid'>isAttr</span>-<a name="line-437"></a>-<a name="line-438"></a> <span class='comment'>-- | edit a pi name</span>-<a name="line-439"></a> <span class='varid'>changePiName</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='conid'>QName</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-440"></a> <span class='varid'>changePiName</span> <span class='varid'>cf</span> <span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>changePiName</span> <span class='varid'>cf</span><span class='layout'>)</span> <span class='varop'>`when`</span> <span class='varid'>isPi</span>-<a name="line-441"></a>-<a name="line-442"></a> <span class='comment'>-- | edit an attribute value</span>-<a name="line-443"></a> <span class='varid'>changeAttrValue</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-444"></a> <span class='varid'>changeAttrValue</span> <span class='varid'>cf</span> <span class='keyglyph'>=</span> <span class='varid'>replaceChildren</span> <span class='layout'>(</span> <span class='varid'>xshow</span> <span class='varid'>getChildren</span>-<a name="line-445"></a> <span class='varop'>>>></span> <span class='varid'>arr</span> <span class='varid'>cf</span>-<a name="line-446"></a> <span class='varop'>>>></span> <span class='varid'>mkText</span>-<a name="line-447"></a> <span class='layout'>)</span>-<a name="line-448"></a> <span class='varop'>`when`</span> <span class='varid'>isAttr</span>-<a name="line-449"></a>-<a name="line-450"></a>-<a name="line-451"></a> <span class='comment'>-- | edit an attribute list of an element node</span>-<a name="line-452"></a> <span class='varid'>changeAttrl</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-453"></a> <span class='varid'>changeAttrl</span> <span class='varid'>cf</span> <span class='varid'>f</span> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>listA</span> <span class='varid'>f</span> <span class='varop'>&&&</span> <span class='varid'>this</span> <span class='layout'>)</span>-<a name="line-454"></a> <span class='varop'>>>></span>-<a name="line-455"></a> <span class='varid'>arr2</span> <span class='varid'>changeAL</span>-<a name="line-456"></a> <span class='layout'>)</span>-<a name="line-457"></a> <span class='varop'>`when`</span>-<a name="line-458"></a> <span class='layout'>(</span> <span class='varid'>isElem</span> <span class='varop'><+></span> <span class='varid'>isPi</span> <span class='layout'>)</span>-<a name="line-459"></a> <span class='keyword'>where</span>-<a name="line-460"></a> <span class='varid'>changeAL</span> <span class='keyword'>as</span> <span class='varid'>x</span> <span class='keyglyph'>=</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>changeAttrl</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>xs</span> <span class='keyglyph'>-></span> <span class='varid'>cf</span> <span class='varid'>xs</span> <span class='keyword'>as</span><span class='layout'>)</span> <span class='varid'>x</span>-<a name="line-461"></a>-<a name="line-462"></a> <span class='comment'>-- | replace an element, attribute or pi name</span>-<a name="line-463"></a> <span class='varid'>setQName</span> <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-464"></a> <span class='varid'>setQName</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='varid'>changeQName</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varid'>n</span><span class='layout'>)</span>-<a name="line-465"></a>-<a name="line-466"></a> <span class='comment'>-- | replace an element name</span>-<a name="line-467"></a> <span class='varid'>setElemName</span> <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-468"></a> <span class='varid'>setElemName</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='varid'>changeElemName</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varid'>n</span><span class='layout'>)</span>-<a name="line-469"></a>-<a name="line-470"></a> <span class='comment'>-- | replace an attribute name</span>-<a name="line-471"></a> <span class='varid'>setAttrName</span> <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-472"></a> <span class='varid'>setAttrName</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='varid'>changeAttrName</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varid'>n</span><span class='layout'>)</span>-<a name="line-473"></a>-<a name="line-474"></a> <span class='comment'>-- | replace an element name</span>-<a name="line-475"></a> <span class='varid'>setPiName</span> <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-476"></a> <span class='varid'>setPiName</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='varid'>changePiName</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varid'>n</span><span class='layout'>)</span>-<a name="line-477"></a>-<a name="line-478"></a> <span class='comment'>-- | replace an atribute list of an element node</span>-<a name="line-479"></a> <span class='varid'>setAttrl</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-480"></a> <span class='varid'>setAttrl</span> <span class='keyglyph'>=</span> <span class='varid'>changeAttrl</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varid'>id</span><span class='layout'>)</span> <span class='comment'>-- (\ x y -> y)</span>-<a name="line-481"></a>-<a name="line-482"></a> <span class='comment'>-- | add a list of attributes list to an element</span>-<a name="line-483"></a> <span class='varid'>addAttrl</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-484"></a> <span class='varid'>addAttrl</span> <span class='keyglyph'>=</span> <span class='varid'>changeAttrl</span> <span class='layout'>(</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mergeAttrl</span><span class='layout'>)</span>-<a name="line-485"></a>-<a name="line-486"></a> <span class='comment'>-- | add (or replace) an attribute</span>-<a name="line-487"></a> <span class='varid'>addAttr</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-488"></a> <span class='varid'>addAttr</span> <span class='varid'>an</span> <span class='varid'>av</span> <span class='keyglyph'>=</span> <span class='varid'>addAttrl</span> <span class='layout'>(</span><span class='varid'>sattr</span> <span class='varid'>an</span> <span class='varid'>av</span><span class='layout'>)</span>-<a name="line-489"></a>-<a name="line-490"></a> <span class='comment'>-- | remove an attribute</span>-<a name="line-491"></a> <span class='varid'>removeAttr</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-492"></a> <span class='varid'>removeAttr</span> <span class='varid'>an</span> <span class='keyglyph'>=</span> <span class='varid'>processAttrl</span> <span class='layout'>(</span><span class='varid'>none</span> <span class='varop'>`when`</span> <span class='varid'>hasName</span> <span class='varid'>an</span><span class='layout'>)</span>-<a name="line-493"></a>-<a name="line-494"></a> <span class='comment'>-- | remove an attribute with a qualified name</span>-<a name="line-495"></a> <span class='varid'>removeQAttr</span> <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-496"></a> <span class='varid'>removeQAttr</span> <span class='varid'>an</span> <span class='keyglyph'>=</span> <span class='varid'>processAttrl</span> <span class='layout'>(</span><span class='varid'>none</span> <span class='varop'>`when`</span> <span class='varid'>hasQName</span> <span class='varid'>an</span><span class='layout'>)</span>-<a name="line-497"></a>-<a name="line-498"></a> <span class='comment'>-- | process the attributes of an element node with an arrow</span>-<a name="line-499"></a> <span class='varid'>processAttrl</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-500"></a> <span class='varid'>processAttrl</span> <span class='varid'>f</span> <span class='keyglyph'>=</span> <span class='varid'>setAttrl</span> <span class='layout'>(</span><span class='varid'>getAttrl</span> <span class='varop'>>>></span> <span class='varid'>f</span><span class='layout'>)</span>-<a name="line-501"></a>-<a name="line-502"></a> <span class='comment'>-- | process a whole tree inclusive attribute list of element nodes</span>-<a name="line-503"></a> <span class='comment'>-- see also: 'Control.Arrow.ArrowTree.processTopDown'</span>-<a name="line-504"></a>-<a name="line-505"></a> <span class='varid'>processTopDownWithAttrl</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-506"></a> <span class='varid'>processTopDownWithAttrl</span> <span class='varid'>f</span> <span class='keyglyph'>=</span> <span class='varid'>processTopDown</span> <span class='layout'>(</span> <span class='varid'>f</span> <span class='varop'>>>></span> <span class='layout'>(</span> <span class='varid'>processAttrl</span> <span class='layout'>(</span><span class='varid'>processTopDown</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='varop'>`when`</span> <span class='varid'>isElem</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-507"></a>-<a name="line-508"></a> <span class='comment'>-- | convenient op for adding attributes or children to a node</span>-<a name="line-509"></a> <span class='comment'>--</span>-<a name="line-510"></a> <span class='comment'>-- usage: @ tf += cf @</span>-<a name="line-511"></a> <span class='comment'>--</span>-<a name="line-512"></a> <span class='comment'>-- the @tf@ arrow computes an element node, and all trees computed by @cf@ are</span>-<a name="line-513"></a> <span class='comment'>-- added to this node, if a tree is an attribute, it is inserted in the attribute list</span>-<a name="line-514"></a> <span class='comment'>-- else it is appended to the content list.</span>-<a name="line-515"></a> <span class='comment'>--</span>-<a name="line-516"></a> <span class='comment'>-- attention: do not build long content list this way because '+=' is implemented by ++</span>-<a name="line-517"></a> <span class='comment'>--</span>-<a name="line-518"></a> <span class='comment'>-- examples:</span>-<a name="line-519"></a> <span class='comment'>--</span>-<a name="line-520"></a> <span class='comment'>-- > eelem "a"</span>-<a name="line-521"></a> <span class='comment'>-- > += sattr "href" "page.html"</span>-<a name="line-522"></a> <span class='comment'>-- > += sattr "name" "here"</span>-<a name="line-523"></a> <span class='comment'>-- > += txt "look here"</span>-<a name="line-524"></a> <span class='comment'>--</span>-<a name="line-525"></a> <span class='comment'>-- is the same as</span>-<a name="line-526"></a> <span class='comment'>--</span>-<a name="line-527"></a> <span class='comment'>-- > mkelem [ sattr "href" "page.html"</span>-<a name="line-528"></a> <span class='comment'>-- > , sattr "name" "here"</span>-<a name="line-529"></a> <span class='comment'>-- > ]</span>-<a name="line-530"></a> <span class='comment'>-- > [ txt "look here" ]</span>-<a name="line-531"></a> <span class='comment'>--</span>-<a name="line-532"></a> <span class='comment'>-- and results in the XML fragment: \<a href=\"page.html\" name=\"here\"\>look here\<\/a\></span>-<a name="line-533"></a> <span class='comment'>--</span>-<a name="line-534"></a> <span class='comment'>-- advantage of the '+=' operator is, that attributes and content can be added</span>-<a name="line-535"></a> <span class='comment'>-- any time step by step.</span>-<a name="line-536"></a> <span class='comment'>-- if @tf@ computes a whole list of trees, e.g. a list of \"td\" or \"tr\" elements,</span>-<a name="line-537"></a> <span class='comment'>-- the attributes or content is added to all trees. useful for adding \"class\" or \"style\" attributes</span>-<a name="line-538"></a> <span class='comment'>-- to table elements.</span>-<a name="line-539"></a>-<a name="line-540"></a> <span class='layout'>(</span><span class='varop'>+=</span><span class='layout'>)</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='conid'>XmlTree</span>-<a name="line-541"></a> <span class='varid'>tf</span> <span class='varop'>+=</span> <span class='varid'>cf</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>tf</span> <span class='varop'>&&&</span> <span class='varid'>listA</span> <span class='varid'>cf</span><span class='layout'>)</span> <span class='varop'>>>></span> <span class='varid'>arr2</span> <span class='varid'>addChildren</span>-<a name="line-542"></a> <span class='keyword'>where</span>-<a name="line-543"></a> <span class='varid'>addChildren</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span>-<a name="line-544"></a> <span class='varid'>addChildren</span> <span class='varid'>t</span> <span class='varid'>cs</span>-<a name="line-545"></a> <span class='keyglyph'>=</span> <span class='varid'>foldl</span> <span class='varid'>addChild</span> <span class='varid'>t</span> <span class='varid'>cs</span>-<a name="line-546"></a> <span class='varid'>addChild</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span>-<a name="line-547"></a> <span class='varid'>addChild</span> <span class='varid'>t</span> <span class='varid'>c</span>-<a name="line-548"></a> <span class='keyglyph'>|</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isElem</span> <span class='varid'>t</span><span class='layout'>)</span>-<a name="line-549"></a> <span class='keyglyph'>=</span> <span class='varid'>t</span>-<a name="line-550"></a> <span class='keyglyph'>|</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isAttr</span> <span class='varid'>c</span>-<a name="line-551"></a> <span class='keyglyph'>=</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>changeAttrl</span> <span class='layout'>(</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>addAttr</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='varid'>t</span>-<a name="line-552"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-553"></a> <span class='keyglyph'>=</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>changeChildren</span> <span class='layout'>(</span><span class='varop'>++</span> <span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='varid'>t</span>-<a name="line-554"></a>-<a name="line-555"></a> <span class='comment'>-- | apply an arrow to the input and convert the resulting XML trees into a string representation</span>-<a name="line-556"></a> <span class='varid'>xshow</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>String</span>-<a name="line-557"></a> <span class='varid'>xshow</span> <span class='varid'>f</span> <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varop'>>.</span> <span class='conid'>XS</span><span class='varop'>.</span><span class='varid'>xshow</span>-<a name="line-558"></a>-<a name="line-559"></a><span class='comment'>{- | Document Type Definition arrows-<a name="line-560"></a>-<a name="line-561"></a>These are separated, because they are not needed for document processing,-<a name="line-562"></a>only when processing the DTD, e.g. for generating access funtions for the toolbox-<a name="line-563"></a>from a DTD (se example DTDtoHaskell in the examples directory)-<a name="line-564"></a>-}</span>-<a name="line-565"></a>-<a name="line-566"></a>-<a name="line-567"></a><a name="ArrowDTD"></a><span class='keyword'>class</span> <span class='layout'>(</span><span class='conid'>ArrowXml</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>=></span> <span class='conid'>ArrowDTD</span> <span class='varid'>a</span> <span class='keyword'>where</span>-<a name="line-568"></a> <span class='varid'>isDTDDoctype</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-569"></a> <span class='varid'>isDTDDoctype</span> <span class='keyglyph'>=</span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>maybe</span> <span class='conid'>False</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='conid'>DOCTYPE</span> <span class='layout'>)</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getDTDPart</span><span class='layout'>)</span>-<a name="line-570"></a>-<a name="line-571"></a> <span class='varid'>isDTDElement</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-572"></a> <span class='varid'>isDTDElement</span> <span class='keyglyph'>=</span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>maybe</span> <span class='conid'>False</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='conid'>ELEMENT</span> <span class='layout'>)</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getDTDPart</span><span class='layout'>)</span>-<a name="line-573"></a>-<a name="line-574"></a> <span class='varid'>isDTDContent</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-575"></a> <span class='varid'>isDTDContent</span> <span class='keyglyph'>=</span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>maybe</span> <span class='conid'>False</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='conid'>CONTENT</span> <span class='layout'>)</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getDTDPart</span><span class='layout'>)</span>-<a name="line-576"></a>-<a name="line-577"></a> <span class='varid'>isDTDAttlist</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-578"></a> <span class='varid'>isDTDAttlist</span> <span class='keyglyph'>=</span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>maybe</span> <span class='conid'>False</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='conid'>ATTLIST</span> <span class='layout'>)</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getDTDPart</span><span class='layout'>)</span>-<a name="line-579"></a>-<a name="line-580"></a> <span class='varid'>isDTDEntity</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-581"></a> <span class='varid'>isDTDEntity</span> <span class='keyglyph'>=</span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>maybe</span> <span class='conid'>False</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='conid'>ENTITY</span> <span class='layout'>)</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getDTDPart</span><span class='layout'>)</span>-<a name="line-582"></a>-<a name="line-583"></a> <span class='varid'>isDTDPEntity</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-584"></a> <span class='varid'>isDTDPEntity</span> <span class='keyglyph'>=</span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>maybe</span> <span class='conid'>False</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='conid'>PENTITY</span> <span class='layout'>)</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getDTDPart</span><span class='layout'>)</span>-<a name="line-585"></a>-<a name="line-586"></a> <span class='varid'>isDTDNotation</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-587"></a> <span class='varid'>isDTDNotation</span> <span class='keyglyph'>=</span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>maybe</span> <span class='conid'>False</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='conid'>NOTATION</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getDTDPart</span><span class='layout'>)</span>-<a name="line-588"></a>-<a name="line-589"></a> <span class='varid'>isDTDCondSect</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-590"></a> <span class='varid'>isDTDCondSect</span> <span class='keyglyph'>=</span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>maybe</span> <span class='conid'>False</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='conid'>CONDSECT</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getDTDPart</span><span class='layout'>)</span>-<a name="line-591"></a>-<a name="line-592"></a> <span class='varid'>isDTDName</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-593"></a> <span class='varid'>isDTDName</span> <span class='keyglyph'>=</span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>maybe</span> <span class='conid'>False</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='conid'>NAME</span> <span class='layout'>)</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getDTDPart</span><span class='layout'>)</span>-<a name="line-594"></a>-<a name="line-595"></a> <span class='varid'>isDTDPERef</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-596"></a> <span class='varid'>isDTDPERef</span> <span class='keyglyph'>=</span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>maybe</span> <span class='conid'>False</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='conid'>PEREF</span> <span class='layout'>)</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getDTDPart</span><span class='layout'>)</span>-<a name="line-597"></a>-<a name="line-598"></a> <span class='varid'>hasDTDAttr</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-599"></a> <span class='varid'>hasDTDAttr</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>isJust</span> <span class='varop'>.</span> <span class='varid'>lookup</span> <span class='varid'>n</span> <span class='varop'>.</span> <span class='varid'>fromMaybe</span> <span class='conid'>[]</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getDTDAttrl</span><span class='layout'>)</span>-<a name="line-600"></a>-<a name="line-601"></a> <span class='varid'>getDTDAttrValue</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>-<a name="line-602"></a> <span class='varid'>getDTDAttrValue</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>maybeToList</span> <span class='varop'>.</span> <span class='varid'>lookup</span> <span class='varid'>n</span> <span class='varop'>.</span> <span class='varid'>fromMaybe</span> <span class='conid'>[]</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getDTDAttrl</span><span class='layout'>)</span>-<a name="line-603"></a>-<a name="line-604"></a> <span class='varid'>setDTDAttrValue</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-605"></a> <span class='varid'>setDTDAttrValue</span> <span class='varid'>n</span> <span class='varid'>v</span> <span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>changeDTDAttrl</span> <span class='layout'>(</span><span class='varid'>addEntry</span> <span class='varid'>n</span> <span class='varid'>v</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varop'>`when`</span> <span class='varid'>isDTD</span>-<a name="line-606"></a>-<a name="line-607"></a> <span class='varid'>mkDTDElem</span> <span class='keyglyph'>::</span> <span class='conid'>DTDElem</span> <span class='keyglyph'>-></span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span>-<a name="line-608"></a> <span class='varid'>mkDTDElem</span> <span class='varid'>e</span> <span class='varid'>al</span> <span class='varid'>cf</span> <span class='keyglyph'>=</span> <span class='varid'>listA</span> <span class='varid'>cf</span> <span class='varop'>>>></span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkDTDElem</span> <span class='varid'>e</span> <span class='varid'>al</span><span class='layout'>)</span>-<a name="line-609"></a>-<a name="line-610"></a> <span class='varid'>mkDTDDoctype</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span>-<a name="line-611"></a> <span class='varid'>mkDTDDoctype</span> <span class='keyglyph'>=</span> <span class='varid'>mkDTDElem</span> <span class='conid'>DOCTYPE</span>-<a name="line-612"></a>-<a name="line-613"></a> <span class='varid'>mkDTDElement</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span>-<a name="line-614"></a> <span class='varid'>mkDTDElement</span> <span class='varid'>al</span> <span class='keyglyph'>=</span> <span class='varid'>mkDTDElem</span> <span class='conid'>ELEMENT</span> <span class='varid'>al</span> <span class='varid'>none</span>-<a name="line-615"></a>-<a name="line-616"></a> <span class='varid'>mkDTDEntity</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span>-<a name="line-617"></a> <span class='varid'>mkDTDEntity</span> <span class='varid'>al</span> <span class='keyglyph'>=</span> <span class='varid'>mkDTDElem</span> <span class='conid'>ENTITY</span> <span class='varid'>al</span> <span class='varid'>none</span>-<a name="line-618"></a>-<a name="line-619"></a> <span class='varid'>mkDTDPEntity</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span>-<a name="line-620"></a> <span class='varid'>mkDTDPEntity</span> <span class='varid'>al</span> <span class='keyglyph'>=</span> <span class='varid'>mkDTDElem</span> <span class='conid'>PENTITY</span> <span class='varid'>al</span> <span class='varid'>none</span>-<a name="line-621"></a>-<a name="line-622"></a><span class='keyword'>instance</span> <span class='conid'>ArrowXml</span> <span class='conid'>LA</span>-<a name="line-623"></a><span class='keyword'>instance</span> <span class='conid'>ArrowXml</span> <span class='layout'>(</span><span class='conid'>SLA</span> <span class='varid'>s</span><span class='layout'>)</span>-<a name="line-624"></a><span class='keyword'>instance</span> <span class='conid'>ArrowXml</span> <span class='conid'>IOLA</span>-<a name="line-625"></a><span class='keyword'>instance</span> <span class='conid'>ArrowXml</span> <span class='layout'>(</span><span class='conid'>IOSLA</span> <span class='varid'>s</span><span class='layout'>)</span>-<a name="line-626"></a>-<a name="line-627"></a><span class='keyword'>instance</span> <span class='conid'>ArrowDTD</span> <span class='conid'>LA</span>-<a name="line-628"></a><span class='keyword'>instance</span> <span class='conid'>ArrowDTD</span> <span class='layout'>(</span><span class='conid'>SLA</span> <span class='varid'>s</span><span class='layout'>)</span>-<a name="line-629"></a><span class='keyword'>instance</span> <span class='conid'>ArrowDTD</span> <span class='conid'>IOLA</span>-<a name="line-630"></a><span class='keyword'>instance</span> <span class='conid'>ArrowDTD</span> <span class='layout'>(</span><span class='conid'>IOSLA</span> <span class='varid'>s</span><span class='layout'>)</span>-<a name="line-631"></a>-<a name="line-632"></a><span class='comment'>-- ------------------------------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-Arrow-XmlIOStateArrow.html
@@ -1,963 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Text.XML.HXT.Arrow.XmlIOStateArrow-<a name="line-5"></a> Copyright : Copyright (C) 2005 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe@fh-wedel.de)-<a name="line-9"></a> Stability : experimental-<a name="line-10"></a> Portability: portable-<a name="line-11"></a> Version : $Id: XmlIOStateArrow.hs,v 1.39 2006/11/09 20:27:42 hxml Exp $-<a name="line-12"></a>-<a name="line-13"></a> the basic state arrows for XML processing-<a name="line-14"></a>-<a name="line-15"></a> A state is needed for global processing options,-<a name="line-16"></a> like encoding options, document base URI, trace levels-<a name="line-17"></a> and error message handling-<a name="line-18"></a>-<a name="line-19"></a> The state is separated into a user defined state-<a name="line-20"></a> and a system state. The system state contains variables-<a name="line-21"></a> for error message handling, for tracing, for the document base-<a name="line-22"></a> for accessing XML documents with relative references, e.g. DTDs,-<a name="line-23"></a> and a global key value store. This assoc list has strings as keys-<a name="line-24"></a> and lists of XmlTrees as values. It is used to store arbitrary-<a name="line-25"></a> XML and text values, e.g. user defined global options.-<a name="line-26"></a>-<a name="line-27"></a> The user defined part of the store is in the default case empty, defined as ().-<a name="line-28"></a> It can be extended with an arbitray data type-<a name="line-29"></a>-<a name="line-30"></a>-}</span>-<a name="line-31"></a>-<a name="line-32"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-33"></a>-<a name="line-34"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlIOStateArrow</span>-<a name="line-35"></a> <span class='layout'>(</span> <span class='comment'>-- * Data Types</span>-<a name="line-36"></a> <span class='conid'>XIOState</span><span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span><span class='layout'>,</span>-<a name="line-37"></a> <span class='conid'>XIOSysState</span><span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span><span class='layout'>,</span>-<a name="line-38"></a> <span class='conid'>IOStateArrow</span><span class='layout'>,</span>-<a name="line-39"></a> <span class='conid'>IOSArrow</span><span class='layout'>,</span>-<a name="line-40"></a>-<a name="line-41"></a> <span class='comment'>-- * Running Arrows</span>-<a name="line-42"></a> <span class='varid'>initialState</span><span class='layout'>,</span>-<a name="line-43"></a> <span class='varid'>initialSysState</span><span class='layout'>,</span>-<a name="line-44"></a> <span class='varid'>runX</span><span class='layout'>,</span>-<a name="line-45"></a>-<a name="line-46"></a> <span class='comment'>-- * User State Manipulation</span>-<a name="line-47"></a> <span class='varid'>getUserState</span><span class='layout'>,</span>-<a name="line-48"></a> <span class='varid'>setUserState</span><span class='layout'>,</span>-<a name="line-49"></a> <span class='varid'>changeUserState</span><span class='layout'>,</span>-<a name="line-50"></a> <span class='varid'>withExtendedUserState</span><span class='layout'>,</span>-<a name="line-51"></a> <span class='varid'>withOtherUserState</span><span class='layout'>,</span>-<a name="line-52"></a>-<a name="line-53"></a> <span class='comment'>-- * Global System State Access</span>-<a name="line-54"></a> <span class='varid'>getSysParam</span><span class='layout'>,</span>-<a name="line-55"></a> <span class='varid'>changeSysParam</span><span class='layout'>,</span>-<a name="line-56"></a>-<a name="line-57"></a> <span class='varid'>setParamList</span><span class='layout'>,</span>-<a name="line-58"></a> <span class='varid'>setParam</span><span class='layout'>,</span>-<a name="line-59"></a> <span class='varid'>unsetParam</span><span class='layout'>,</span>-<a name="line-60"></a> <span class='varid'>getParam</span><span class='layout'>,</span>-<a name="line-61"></a> <span class='varid'>getAllParams</span><span class='layout'>,</span>-<a name="line-62"></a> <span class='varid'>getAllParamsString</span><span class='layout'>,</span>-<a name="line-63"></a> <span class='varid'>setParamString</span><span class='layout'>,</span>-<a name="line-64"></a> <span class='varid'>getParamString</span><span class='layout'>,</span>-<a name="line-65"></a> <span class='varid'>setParamInt</span><span class='layout'>,</span>-<a name="line-66"></a> <span class='varid'>getParamInt</span><span class='layout'>,</span>-<a name="line-67"></a> -<a name="line-68"></a> <span class='comment'>-- * Error Message Handling</span>-<a name="line-69"></a> <span class='varid'>clearErrStatus</span><span class='layout'>,</span>-<a name="line-70"></a> <span class='varid'>setErrStatus</span><span class='layout'>,</span>-<a name="line-71"></a> <span class='varid'>getErrStatus</span><span class='layout'>,</span>-<a name="line-72"></a> <span class='varid'>setErrMsgStatus</span><span class='layout'>,</span>-<a name="line-73"></a> <span class='varid'>setErrorMsgHandler</span><span class='layout'>,</span>-<a name="line-74"></a>-<a name="line-75"></a> <span class='varid'>errorMsgStderr</span><span class='layout'>,</span>-<a name="line-76"></a> <span class='varid'>errorMsgCollect</span><span class='layout'>,</span>-<a name="line-77"></a> <span class='varid'>errorMsgStderrAndCollect</span><span class='layout'>,</span>-<a name="line-78"></a> <span class='varid'>errorMsgIgnore</span><span class='layout'>,</span>-<a name="line-79"></a>-<a name="line-80"></a> <span class='varid'>getErrorMessages</span><span class='layout'>,</span>-<a name="line-81"></a>-<a name="line-82"></a> <span class='varid'>filterErrorMsg</span><span class='layout'>,</span>-<a name="line-83"></a> <span class='varid'>issueWarn</span><span class='layout'>,</span>-<a name="line-84"></a> <span class='varid'>issueErr</span><span class='layout'>,</span>-<a name="line-85"></a> <span class='varid'>issueFatal</span><span class='layout'>,</span>-<a name="line-86"></a> <span class='varid'>setDocumentStatus</span><span class='layout'>,</span>-<a name="line-87"></a> <span class='varid'>setDocumentStatusFromSystemState</span><span class='layout'>,</span>-<a name="line-88"></a> <span class='varid'>documentStatusOk</span><span class='layout'>,</span>-<a name="line-89"></a>-<a name="line-90"></a> <span class='comment'>-- * Document Base</span>-<a name="line-91"></a> <span class='varid'>setBaseURI</span><span class='layout'>,</span>-<a name="line-92"></a> <span class='varid'>getBaseURI</span><span class='layout'>,</span>-<a name="line-93"></a> <span class='varid'>changeBaseURI</span><span class='layout'>,</span>-<a name="line-94"></a> <span class='varid'>setDefaultBaseURI</span><span class='layout'>,</span>-<a name="line-95"></a> <span class='varid'>getDefaultBaseURI</span><span class='layout'>,</span>-<a name="line-96"></a> <span class='varid'>runInLocalURIContext</span><span class='layout'>,</span>-<a name="line-97"></a>-<a name="line-98"></a> <span class='comment'>-- * Tracing</span>-<a name="line-99"></a> <span class='varid'>setTraceLevel</span><span class='layout'>,</span>-<a name="line-100"></a> <span class='varid'>getTraceLevel</span><span class='layout'>,</span>-<a name="line-101"></a> <span class='varid'>withTraceLevel</span><span class='layout'>,</span>-<a name="line-102"></a> <span class='varid'>trace</span><span class='layout'>,</span>-<a name="line-103"></a> <span class='varid'>traceMsg</span><span class='layout'>,</span>-<a name="line-104"></a> <span class='varid'>traceValue</span><span class='layout'>,</span>-<a name="line-105"></a> <span class='varid'>traceString</span><span class='layout'>,</span>-<a name="line-106"></a> <span class='varid'>traceSource</span><span class='layout'>,</span>-<a name="line-107"></a> <span class='varid'>traceTree</span><span class='layout'>,</span>-<a name="line-108"></a> <span class='varid'>traceDoc</span><span class='layout'>,</span>-<a name="line-109"></a> <span class='varid'>traceState</span><span class='layout'>,</span>-<a name="line-110"></a>-<a name="line-111"></a> <span class='comment'>-- * URI Manipulation</span>-<a name="line-112"></a> <span class='varid'>expandURIString</span><span class='layout'>,</span>-<a name="line-113"></a> <span class='varid'>expandURI</span><span class='layout'>,</span>-<a name="line-114"></a> <span class='varid'>mkAbsURI</span><span class='layout'>,</span>-<a name="line-115"></a>-<a name="line-116"></a> <span class='varid'>getFragmentFromURI</span><span class='layout'>,</span>-<a name="line-117"></a> <span class='varid'>getPathFromURI</span><span class='layout'>,</span>-<a name="line-118"></a> <span class='varid'>getPortFromURI</span><span class='layout'>,</span>-<a name="line-119"></a> <span class='varid'>getQueryFromURI</span><span class='layout'>,</span>-<a name="line-120"></a> <span class='varid'>getRegNameFromURI</span><span class='layout'>,</span>-<a name="line-121"></a> <span class='varid'>getSchemeFromURI</span><span class='layout'>,</span>-<a name="line-122"></a> <span class='varid'>getUserInfoFromURI</span><span class='layout'>,</span>-<a name="line-123"></a>-<a name="line-124"></a> <span class='comment'>-- * Mime Type Handling</span>-<a name="line-125"></a> <span class='varid'>setMimeTypeTable</span><span class='layout'>,</span>-<a name="line-126"></a> <span class='varid'>setMimeTypeTableFromFile</span>-<a name="line-127"></a> <span class='layout'>)</span>-<a name="line-128"></a><span class='keyword'>where</span>-<a name="line-129"></a>-<a name="line-130"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span> <span class='comment'>-- arrow classes</span>-<a name="line-131"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowList</span>-<a name="line-132"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowIf</span>-<a name="line-133"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowTree</span>-<a name="line-134"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowIO</span>-<a name="line-135"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>IOStateListArrow</span>-<a name="line-136"></a>-<a name="line-137"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Parallel</span><span class='varop'>.</span><span class='conid'>Strategies</span>-<a name="line-138"></a>-<a name="line-139"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>-<a name="line-140"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlArrow</span>-<a name="line-141"></a>-<a name="line-142"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>Edit</span>-<a name="line-143"></a> <span class='layout'>(</span> <span class='varid'>addHeadlineToXmlDoc</span>-<a name="line-144"></a> <span class='layout'>,</span> <span class='varid'>treeRepOfXmlDoc</span>-<a name="line-145"></a> <span class='layout'>,</span> <span class='varid'>indentDoc</span>-<a name="line-146"></a> <span class='layout'>)</span>-<a name="line-147"></a>-<a name="line-148"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>-<a name="line-149"></a>-<a name="line-150"></a><span class='keyword'>import</span> <span class='conid'>Network</span><span class='varop'>.</span><span class='conid'>URI</span>-<a name="line-151"></a> <span class='layout'>(</span> <span class='conid'>URI</span>-<a name="line-152"></a> <span class='layout'>,</span> <span class='varid'>escapeURIChar</span>-<a name="line-153"></a> <span class='layout'>,</span> <span class='varid'>isUnescapedInURI</span>-<a name="line-154"></a> <span class='layout'>,</span> <span class='varid'>nonStrictRelativeTo</span>-<a name="line-155"></a> <span class='layout'>,</span> <span class='varid'>parseURIReference</span>-<a name="line-156"></a> <span class='layout'>,</span> <span class='varid'>uriAuthority</span>-<a name="line-157"></a> <span class='layout'>,</span> <span class='varid'>uriFragment</span>-<a name="line-158"></a> <span class='layout'>,</span> <span class='varid'>uriPath</span>-<a name="line-159"></a> <span class='layout'>,</span> <span class='varid'>uriPort</span>-<a name="line-160"></a> <span class='layout'>,</span> <span class='varid'>uriQuery</span>-<a name="line-161"></a> <span class='layout'>,</span> <span class='varid'>uriRegName</span>-<a name="line-162"></a> <span class='layout'>,</span> <span class='varid'>uriScheme</span>-<a name="line-163"></a> <span class='layout'>,</span> <span class='varid'>uriUserInfo</span>-<a name="line-164"></a> <span class='layout'>)</span>-<a name="line-165"></a>-<a name="line-166"></a><span class='keyword'>import</span> <span class='conid'>System</span><span class='varop'>.</span><span class='conid'>IO</span>-<a name="line-167"></a> <span class='layout'>(</span> <span class='varid'>hPutStrLn</span>-<a name="line-168"></a> <span class='layout'>,</span> <span class='varid'>hFlush</span>-<a name="line-169"></a> <span class='layout'>,</span> <span class='varid'>stderr</span>-<a name="line-170"></a> <span class='layout'>)</span>-<a name="line-171"></a>-<a name="line-172"></a><span class='keyword'>import</span> <span class='conid'>System</span><span class='varop'>.</span><span class='conid'>Directory</span>-<a name="line-173"></a> <span class='layout'>(</span> <span class='varid'>getCurrentDirectory</span>-<a name="line-174"></a> <span class='layout'>)</span>-<a name="line-175"></a>-<a name="line-176"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-177"></a><span class='comment'>{- $datatypes -}</span>-<a name="line-178"></a>-<a name="line-179"></a>-<a name="line-180"></a><span class='comment'>-- |</span>-<a name="line-181"></a><span class='comment'>-- predefined system state data type with all components for the</span>-<a name="line-182"></a><span class='comment'>-- system functions, like trace, error handling, ...</span>-<a name="line-183"></a>-<a name="line-184"></a><a name="XIOSysState"></a><span class='keyword'>data</span> <span class='conid'>XIOSysState</span> <span class='keyglyph'>=</span> <span class='conid'>XIOSys</span> <span class='layout'>{</span> <span class='varid'>xio_trace</span> <span class='keyglyph'>::</span> <span class='varop'>!</span> <span class='conid'>Int</span>-<a name="line-185"></a> <span class='layout'>,</span> <span class='varid'>xio_errorStatus</span> <span class='keyglyph'>::</span> <span class='varop'>!</span> <span class='conid'>Int</span>-<a name="line-186"></a> <span class='layout'>,</span> <span class='varid'>xio_errorModule</span> <span class='keyglyph'>::</span> <span class='varop'>!</span> <span class='conid'>String</span>-<a name="line-187"></a> <span class='layout'>,</span> <span class='varid'>xio_errorMsgHandler</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>IO</span> <span class='conid'>()</span>-<a name="line-188"></a> <span class='layout'>,</span> <span class='varid'>xio_errorMsgCollect</span> <span class='keyglyph'>::</span> <span class='varop'>!</span> <span class='conid'>Bool</span>-<a name="line-189"></a> <span class='layout'>,</span> <span class='varid'>xio_errorMsgList</span> <span class='keyglyph'>::</span> <span class='varop'>!</span> <span class='conid'>XmlTrees</span>-<a name="line-190"></a> <span class='layout'>,</span> <span class='varid'>xio_baseURI</span> <span class='keyglyph'>::</span> <span class='varop'>!</span> <span class='conid'>String</span>-<a name="line-191"></a> <span class='layout'>,</span> <span class='varid'>xio_defaultBaseURI</span> <span class='keyglyph'>::</span> <span class='varop'>!</span> <span class='conid'>String</span>-<a name="line-192"></a> <span class='layout'>,</span> <span class='varid'>xio_attrList</span> <span class='keyglyph'>::</span> <span class='varop'>!</span> <span class='layout'>(</span><span class='conid'>AssocList</span> <span class='conid'>String</span> <span class='conid'>XmlTrees</span><span class='layout'>)</span>-<a name="line-193"></a> <span class='layout'>,</span> <span class='varid'>xio_mimeTypes</span> <span class='keyglyph'>::</span> <span class='conid'>MimeTypeTable</span>-<a name="line-194"></a> <span class='layout'>}</span>-<a name="line-195"></a>-<a name="line-196"></a><span class='keyword'>instance</span> <span class='conid'>NFData</span> <span class='conid'>XIOSysState</span> <span class='keyword'>where</span>-<a name="line-197"></a> <span class='varid'>rnf</span> <span class='layout'>(</span><span class='conid'>XIOSys</span> <span class='varid'>tr</span> <span class='varid'>es</span> <span class='varid'>em</span> <span class='sel'>_emh</span> <span class='varid'>emc</span> <span class='varid'>eml</span> <span class='varid'>bu</span> <span class='varid'>du</span> <span class='varid'>al</span> <span class='sel'>_mt</span><span class='layout'>)</span>-<a name="line-198"></a> <span class='keyglyph'>=</span> <span class='varid'>rnf</span> <span class='varid'>tr</span> <span class='varop'>`seq`</span> <span class='varid'>rnf</span> <span class='varid'>es</span> <span class='varop'>`seq`</span> <span class='varid'>rnf</span> <span class='varid'>em</span> <span class='varop'>`seq`</span> <span class='varid'>rnf</span> <span class='varid'>emc</span> <span class='varop'>`seq`</span> <span class='varid'>rnf</span> <span class='varid'>eml</span> <span class='varop'>`seq`</span> <span class='varid'>rnf</span> <span class='varid'>bu</span> <span class='varop'>`seq`</span> <span class='varid'>rnf</span> <span class='varid'>du</span> <span class='varop'>`seq`</span> <span class='varid'>rnf</span> <span class='varid'>al</span>-<a name="line-199"></a>-<a name="line-200"></a><span class='comment'>-- |</span>-<a name="line-201"></a><span class='comment'>-- state datatype consists of a system state and a user state</span>-<a name="line-202"></a><span class='comment'>-- the user state is not fixed</span>-<a name="line-203"></a>-<a name="line-204"></a><a name="XIOState"></a><span class='keyword'>data</span> <span class='conid'>XIOState</span> <span class='varid'>us</span> <span class='keyglyph'>=</span> <span class='conid'>XIOState</span> <span class='layout'>{</span> <span class='varid'>xio_sysState</span> <span class='keyglyph'>::</span> <span class='varop'>!</span> <span class='conid'>XIOSysState</span>-<a name="line-205"></a> <span class='layout'>,</span> <span class='varid'>xio_userState</span> <span class='keyglyph'>::</span> <span class='varop'>!</span> <span class='varid'>us</span>-<a name="line-206"></a> <span class='layout'>}</span>-<a name="line-207"></a>-<a name="line-208"></a><span class='keyword'>instance</span> <span class='layout'>(</span><span class='conid'>NFData</span> <span class='varid'>us</span><span class='layout'>)</span> <span class='keyglyph'>=></span> <span class='conid'>NFData</span> <span class='layout'>(</span><span class='conid'>XIOState</span> <span class='varid'>us</span><span class='layout'>)</span> <span class='keyword'>where</span>-<a name="line-209"></a> <span class='varid'>rnf</span> <span class='layout'>(</span><span class='conid'>XIOState</span> <span class='varid'>sys</span> <span class='varid'>usr</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>rnf</span> <span class='varid'>sys</span> <span class='varop'>`seq`</span> <span class='varid'>rnf</span> <span class='varid'>usr</span>-<a name="line-210"></a>-<a name="line-211"></a><span class='comment'>-- |</span>-<a name="line-212"></a><span class='comment'>-- The arrow type for stateful arrows</span>-<a name="line-213"></a>-<a name="line-214"></a><a name="IOStateArrow"></a><span class='keyword'>type</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>c</span> <span class='keyglyph'>=</span> <span class='conid'>IOSLA</span> <span class='layout'>(</span><span class='conid'>XIOState</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='varid'>b</span> <span class='varid'>c</span>-<a name="line-215"></a>-<a name="line-216"></a><span class='comment'>-- |</span>-<a name="line-217"></a><span class='comment'>-- The arrow for stateful arrows with no user defined state</span>-<a name="line-218"></a>-<a name="line-219"></a><a name="IOSArrow"></a><span class='keyword'>type</span> <span class='conid'>IOSArrow</span> <span class='varid'>b</span> <span class='varid'>c</span> <span class='keyglyph'>=</span> <span class='conid'>IOStateArrow</span> <span class='conid'>()</span> <span class='varid'>b</span> <span class='varid'>c</span>-<a name="line-220"></a>-<a name="line-221"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-222"></a>-<a name="line-223"></a>-<a name="line-224"></a><span class='comment'>-- | the default global state, used as initial state when running an 'IOSArrow' with 'runIOSLA' or</span>-<a name="line-225"></a><span class='comment'>-- 'runX'</span>-<a name="line-226"></a>-<a name="line-227"></a><a name="initialState"></a><span class='definition'>initialState</span> <span class='keyglyph'>::</span> <span class='varid'>us</span> <span class='keyglyph'>-></span> <span class='conid'>XIOState</span> <span class='varid'>us</span>-<a name="line-228"></a><span class='definition'>initialState</span> <span class='varid'>s</span> <span class='keyglyph'>=</span> <span class='conid'>XIOState</span> <span class='layout'>{</span> <span class='varid'>xio_sysState</span> <span class='keyglyph'>=</span> <span class='varid'>initialSysState</span>-<a name="line-229"></a> <span class='layout'>,</span> <span class='varid'>xio_userState</span> <span class='keyglyph'>=</span> <span class='varid'>s</span>-<a name="line-230"></a> <span class='layout'>}</span>-<a name="line-231"></a>-<a name="line-232"></a><a name="initialSysState"></a><span class='definition'>initialSysState</span> <span class='keyglyph'>::</span> <span class='conid'>XIOSysState</span>-<a name="line-233"></a><span class='definition'>initialSysState</span> <span class='keyglyph'>=</span> <span class='conid'>XIOSys</span> <span class='layout'>{</span> <span class='varid'>xio_trace</span> <span class='keyglyph'>=</span> <span class='num'>0</span>-<a name="line-234"></a> <span class='layout'>,</span> <span class='varid'>xio_errorStatus</span> <span class='keyglyph'>=</span> <span class='varid'>c_ok</span>-<a name="line-235"></a> <span class='layout'>,</span> <span class='varid'>xio_errorModule</span> <span class='keyglyph'>=</span> <span class='str'>""</span>-<a name="line-236"></a> <span class='layout'>,</span> <span class='varid'>xio_errorMsgHandler</span> <span class='keyglyph'>=</span> <span class='varid'>hPutStrLn</span> <span class='varid'>stderr</span>-<a name="line-237"></a> <span class='layout'>,</span> <span class='varid'>xio_errorMsgCollect</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-238"></a> <span class='layout'>,</span> <span class='varid'>xio_errorMsgList</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-239"></a> <span class='layout'>,</span> <span class='varid'>xio_baseURI</span> <span class='keyglyph'>=</span> <span class='str'>""</span>-<a name="line-240"></a> <span class='layout'>,</span> <span class='varid'>xio_defaultBaseURI</span> <span class='keyglyph'>=</span> <span class='str'>""</span>-<a name="line-241"></a> <span class='layout'>,</span> <span class='varid'>xio_attrList</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-242"></a> <span class='layout'>,</span> <span class='varid'>xio_mimeTypes</span> <span class='keyglyph'>=</span> <span class='varid'>defaultMimeTypeTable</span>-<a name="line-243"></a> <span class='layout'>}</span>-<a name="line-244"></a>-<a name="line-245"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-246"></a>-<a name="line-247"></a><span class='comment'>-- |</span>-<a name="line-248"></a><span class='comment'>-- apply an 'IOSArrow' to an empty root node with 'initialState' () as initial state</span>-<a name="line-249"></a><span class='comment'>--</span>-<a name="line-250"></a><span class='comment'>-- the main entry point for running a state arrow with IO</span>-<a name="line-251"></a><span class='comment'>--</span>-<a name="line-252"></a><span class='comment'>-- when running @ runX f@ an empty XML root node is applied to @f@.</span>-<a name="line-253"></a><span class='comment'>-- usually @f@ will start with a constant arrow (ignoring the input), e.g. a 'Text.XML.HXT.Arrow.ReadDocument.readDocument' arrow.</span>-<a name="line-254"></a><span class='comment'>--</span>-<a name="line-255"></a><span class='comment'>-- for usage see examples with 'Text.XML.HXT.Arrow.WriteDocument.writeDocument'</span>-<a name="line-256"></a><span class='comment'>--</span>-<a name="line-257"></a><span class='comment'>-- if input has to be feed into the arrow use 'Control.Arrow.IOStateListArrow.runIOSLA' like in @ runIOSLA f emptyX inputDoc @</span>-<a name="line-258"></a>-<a name="line-259"></a><a name="runX"></a><span class='definition'>runX</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='varid'>c</span> <span class='keyglyph'>-></span> <span class='conid'>IO</span> <span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span>-<a name="line-260"></a><span class='definition'>runX</span> <span class='keyglyph'>=</span> <span class='varid'>runXIOState</span> <span class='layout'>(</span><span class='varid'>initialState</span> <span class='conid'>()</span><span class='layout'>)</span>-<a name="line-261"></a>-<a name="line-262"></a><a name="runXIOState"></a><span class='definition'>runXIOState</span> <span class='keyglyph'>::</span> <span class='conid'>XIOState</span> <span class='varid'>s</span> <span class='keyglyph'>-></span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='varid'>c</span> <span class='keyglyph'>-></span> <span class='conid'>IO</span> <span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span>-<a name="line-263"></a><span class='definition'>runXIOState</span> <span class='varid'>s0</span> <span class='varid'>f</span>-<a name="line-264"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-265"></a> <span class='layout'>(</span><span class='sel'>_finalState</span><span class='layout'>,</span> <span class='varid'>res</span><span class='layout'>)</span> <span class='keyglyph'><-</span> <span class='varid'>runIOSLA</span> <span class='layout'>(</span><span class='varid'>emptyRoot</span> <span class='varop'>>>></span> <span class='varid'>f</span><span class='layout'>)</span> <span class='varid'>s0</span> <span class='varid'>undefined</span>-<a name="line-266"></a> <span class='varid'>return</span> <span class='varid'>res</span>-<a name="line-267"></a> <span class='keyword'>where</span>-<a name="line-268"></a> <span class='varid'>emptyRoot</span> <span class='keyglyph'>=</span> <span class='varid'>root</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-269"></a>-<a name="line-270"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-271"></a>-<a name="line-272"></a><span class='comment'>{- user state -}</span>-<a name="line-273"></a>-<a name="line-274"></a><span class='comment'>-- | read the user defined part of the state</span>-<a name="line-275"></a>-<a name="line-276"></a><a name="getUserState"></a><span class='definition'>getUserState</span> <span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>s</span>-<a name="line-277"></a><span class='definition'>getUserState</span>-<a name="line-278"></a> <span class='keyglyph'>=</span> <span class='conid'>IOSLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='keyword'>_</span> <span class='keyglyph'>-></span>-<a name="line-279"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>s</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='varid'>xio_userState</span> <span class='varid'>s</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-280"></a>-<a name="line-281"></a><span class='comment'>-- | change the user defined part of the state</span>-<a name="line-282"></a>-<a name="line-283"></a><a name="changeUserState"></a><span class='definition'>changeUserState</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>b</span> <span class='keyglyph'>-></span> <span class='varid'>s</span> <span class='keyglyph'>-></span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>-<a name="line-284"></a><span class='definition'>changeUserState</span> <span class='varid'>cf</span>-<a name="line-285"></a> <span class='keyglyph'>=</span> <span class='conid'>IOSLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='varid'>v</span> <span class='keyglyph'>-></span>-<a name="line-286"></a> <span class='keyword'>let</span> <span class='varid'>s'</span> <span class='keyglyph'>=</span> <span class='varid'>s</span> <span class='layout'>{</span> <span class='varid'>xio_userState</span> <span class='keyglyph'>=</span> <span class='varid'>cf</span> <span class='varid'>v</span> <span class='layout'>(</span><span class='varid'>xio_userState</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='layout'>}</span>-<a name="line-287"></a> <span class='keyword'>in</span> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>s'</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='varid'>v</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-288"></a>-<a name="line-289"></a><span class='comment'>-- | set the user defined part of the state</span>-<a name="line-290"></a>-<a name="line-291"></a><a name="setUserState"></a><span class='definition'>setUserState</span> <span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>s</span> <span class='varid'>s</span>-<a name="line-292"></a><span class='definition'>setUserState</span>-<a name="line-293"></a> <span class='keyglyph'>=</span> <span class='varid'>changeUserState</span> <span class='varid'>const</span>-<a name="line-294"></a>-<a name="line-295"></a><span class='comment'>-- | extend user state</span>-<a name="line-296"></a><span class='comment'>--</span>-<a name="line-297"></a><span class='comment'>-- Run an arrow with an extended user state component, The old component</span>-<a name="line-298"></a><span class='comment'>-- is stored together with a new one in a pair, the arrow is executed with this</span>-<a name="line-299"></a><span class='comment'>-- extended state, and the augmented state component is removed form the state</span>-<a name="line-300"></a><span class='comment'>-- when the arrow has finished its execution</span>-<a name="line-301"></a>-<a name="line-302"></a><a name="withExtendedUserState"></a><span class='definition'>withExtendedUserState</span> <span class='keyglyph'>::</span> <span class='varid'>s1</span> <span class='keyglyph'>-></span> <span class='conid'>IOStateArrow</span> <span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>s0</span><span class='layout'>)</span> <span class='varid'>b</span> <span class='varid'>c</span> <span class='keyglyph'>-></span> <span class='conid'>IOStateArrow</span> <span class='varid'>s0</span> <span class='varid'>b</span> <span class='varid'>c</span>-<a name="line-303"></a><span class='definition'>withExtendedUserState</span> <span class='varid'>initS1</span> <span class='varid'>f</span>-<a name="line-304"></a> <span class='keyglyph'>=</span> <span class='conid'>IOSLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s0</span> <span class='varid'>x</span> <span class='keyglyph'>-></span>-<a name="line-305"></a> <span class='keyword'>do</span>-<a name="line-306"></a> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>finalS</span><span class='layout'>,</span> <span class='varid'>res</span><span class='layout'>)</span> <span class='keyglyph'><-</span> <span class='varid'>runIOSLA</span> <span class='varid'>f</span> <span class='layout'>(</span> <span class='conid'>XIOState</span> <span class='layout'>{</span> <span class='varid'>xio_sysState</span> <span class='keyglyph'>=</span> <span class='varid'>xio_sysState</span> <span class='varid'>s0</span>-<a name="line-307"></a> <span class='layout'>,</span> <span class='varid'>xio_userState</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>initS1</span><span class='layout'>,</span> <span class='varid'>xio_userState</span> <span class='varid'>s0</span><span class='layout'>)</span>-<a name="line-308"></a> <span class='layout'>}</span>-<a name="line-309"></a> <span class='layout'>)</span> <span class='varid'>x</span>-<a name="line-310"></a> <span class='varid'>return</span> <span class='layout'>(</span> <span class='conid'>XIOState</span> <span class='layout'>{</span> <span class='varid'>xio_sysState</span> <span class='keyglyph'>=</span> <span class='varid'>xio_sysState</span> <span class='varid'>finalS</span>-<a name="line-311"></a> <span class='layout'>,</span> <span class='varid'>xio_userState</span> <span class='keyglyph'>=</span> <span class='varid'>snd</span> <span class='layout'>(</span><span class='varid'>xio_userState</span> <span class='varid'>finalS</span><span class='layout'>)</span>-<a name="line-312"></a> <span class='layout'>}</span>-<a name="line-313"></a> <span class='layout'>,</span> <span class='varid'>res</span>-<a name="line-314"></a> <span class='layout'>)</span>-<a name="line-315"></a>-<a name="line-316"></a><span class='comment'>-- | change the type of user state</span>-<a name="line-317"></a><span class='comment'>--</span>-<a name="line-318"></a><span class='comment'>-- This conversion is useful, when running a state arrow with another</span>-<a name="line-319"></a><span class='comment'>-- structure of the user state, e.g. with () when executing some IO arrows</span>-<a name="line-320"></a>-<a name="line-321"></a><a name="withOtherUserState"></a><span class='definition'>withOtherUserState</span> <span class='keyglyph'>::</span> <span class='varid'>s1</span> <span class='keyglyph'>-></span> <span class='conid'>IOStateArrow</span> <span class='varid'>s1</span> <span class='varid'>b</span> <span class='varid'>c</span> <span class='keyglyph'>-></span> <span class='conid'>IOStateArrow</span> <span class='varid'>s0</span> <span class='varid'>b</span> <span class='varid'>c</span>-<a name="line-322"></a><span class='definition'>withOtherUserState</span> <span class='varid'>s1</span> <span class='varid'>f</span>-<a name="line-323"></a> <span class='keyglyph'>=</span> <span class='conid'>IOSLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='varid'>x</span> <span class='keyglyph'>-></span>-<a name="line-324"></a> <span class='keyword'>do</span>-<a name="line-325"></a> <span class='layout'>(</span><span class='varid'>s'</span><span class='layout'>,</span> <span class='varid'>res</span><span class='layout'>)</span> <span class='keyglyph'><-</span> <span class='varid'>runIOSLA</span> <span class='varid'>f</span> <span class='layout'>(</span> <span class='conid'>XIOState</span> <span class='layout'>{</span> <span class='varid'>xio_sysState</span> <span class='keyglyph'>=</span> <span class='varid'>xio_sysState</span> <span class='varid'>s</span>-<a name="line-326"></a> <span class='layout'>,</span> <span class='varid'>xio_userState</span> <span class='keyglyph'>=</span> <span class='varid'>s1</span>-<a name="line-327"></a> <span class='layout'>}</span>-<a name="line-328"></a> <span class='layout'>)</span> <span class='varid'>x</span>-<a name="line-329"></a> <span class='varid'>return</span> <span class='layout'>(</span> <span class='conid'>XIOState</span> <span class='layout'>{</span> <span class='varid'>xio_sysState</span> <span class='keyglyph'>=</span> <span class='varid'>xio_sysState</span> <span class='varid'>s'</span>-<a name="line-330"></a> <span class='layout'>,</span> <span class='varid'>xio_userState</span> <span class='keyglyph'>=</span> <span class='varid'>xio_userState</span> <span class='varid'>s</span>-<a name="line-331"></a> <span class='layout'>}</span>-<a name="line-332"></a> <span class='layout'>,</span> <span class='varid'>res</span>-<a name="line-333"></a> <span class='layout'>)</span>-<a name="line-334"></a>-<a name="line-335"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-336"></a>-<a name="line-337"></a><span class='comment'>{- $system state params -}</span>-<a name="line-338"></a>-<a name="line-339"></a><a name="getSysParam"></a><span class='definition'>getSysParam</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>XIOSysState</span> <span class='keyglyph'>-></span> <span class='varid'>c</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>c</span>-<a name="line-340"></a><span class='definition'>getSysParam</span> <span class='varid'>f</span>-<a name="line-341"></a> <span class='keyglyph'>=</span> <span class='conid'>IOSLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='sel'>_x</span> <span class='keyglyph'>-></span>-<a name="line-342"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>s</span><span class='layout'>,</span> <span class='layout'>(</span><span class='conop'>:</span><span class='conid'>[]</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>f</span> <span class='varop'>.</span> <span class='varid'>xio_sysState</span> <span class='varop'>$</span> <span class='varid'>s</span><span class='layout'>)</span>-<a name="line-343"></a>-<a name="line-344"></a><a name="changeSysParam"></a><span class='definition'>changeSysParam</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>b</span> <span class='keyglyph'>-></span> <span class='conid'>XIOSysState</span> <span class='keyglyph'>-></span> <span class='conid'>XIOSysState</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>-<a name="line-345"></a><span class='definition'>changeSysParam</span> <span class='varid'>cf</span>-<a name="line-346"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='conid'>IOSLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='varid'>v</span> <span class='keyglyph'>-></span>-<a name="line-347"></a> <span class='keyword'>let</span> <span class='varid'>s'</span> <span class='keyglyph'>=</span> <span class='varid'>changeSysState</span> <span class='layout'>(</span><span class='varid'>cf</span> <span class='varid'>v</span><span class='layout'>)</span> <span class='varid'>s</span>-<a name="line-348"></a> <span class='keyword'>in</span> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>s'</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='varid'>v</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-349"></a> <span class='layout'>)</span>-<a name="line-350"></a> <span class='keyword'>where</span>-<a name="line-351"></a> <span class='varid'>changeSysState</span> <span class='varid'>css</span> <span class='varid'>s</span> <span class='keyglyph'>=</span> <span class='varid'>s</span> <span class='layout'>{</span> <span class='varid'>xio_sysState</span> <span class='keyglyph'>=</span> <span class='varid'>css</span> <span class='layout'>(</span><span class='varid'>xio_sysState</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='layout'>}</span>-<a name="line-352"></a>-<a name="line-353"></a><span class='comment'>-- | store a single XML tree in global state under a given attribute name</span>-<a name="line-354"></a>-<a name="line-355"></a><a name="setParam"></a><span class='definition'>setParam</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-356"></a><span class='definition'>setParam</span> <span class='varid'>n</span>-<a name="line-357"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conop'>:</span><span class='conid'>[]</span><span class='layout'>)</span> <span class='varop'>^>></span> <span class='varid'>setParamList</span> <span class='varid'>n</span>-<a name="line-358"></a>-<a name="line-359"></a><span class='comment'>-- | store a list of XML trees in global system state under a given attribute name</span>-<a name="line-360"></a>-<a name="line-361"></a><a name="setParamList"></a><span class='definition'>setParamList</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTrees</span> <span class='conid'>XmlTree</span>-<a name="line-362"></a><span class='definition'>setParamList</span> <span class='varid'>n</span>-<a name="line-363"></a> <span class='keyglyph'>=</span> <span class='varid'>changeSysParam</span> <span class='varid'>addE</span>-<a name="line-364"></a> <span class='varop'>>>></span>-<a name="line-365"></a> <span class='varid'>arrL</span> <span class='varid'>id</span>-<a name="line-366"></a> <span class='keyword'>where</span>-<a name="line-367"></a> <span class='varid'>addE</span> <span class='varid'>x</span> <span class='varid'>s</span> <span class='keyglyph'>=</span> <span class='varid'>s</span> <span class='layout'>{</span> <span class='varid'>xio_attrList</span> <span class='keyglyph'>=</span> <span class='varid'>addEntry</span> <span class='varid'>n</span> <span class='varid'>x</span> <span class='layout'>(</span><span class='varid'>xio_attrList</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='layout'>}</span>-<a name="line-368"></a>-<a name="line-369"></a><span class='comment'>-- | remove an entry in global state, arrow input remains unchanged</span>-<a name="line-370"></a>-<a name="line-371"></a><a name="unsetParam"></a><span class='definition'>unsetParam</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>-<a name="line-372"></a><span class='definition'>unsetParam</span> <span class='varid'>n</span>-<a name="line-373"></a> <span class='keyglyph'>=</span> <span class='varid'>changeSysParam</span> <span class='varid'>delE</span>-<a name="line-374"></a> <span class='keyword'>where</span>-<a name="line-375"></a> <span class='varid'>delE</span> <span class='keyword'>_</span> <span class='varid'>s</span> <span class='keyglyph'>=</span> <span class='varid'>s</span> <span class='layout'>{</span> <span class='varid'>xio_attrList</span> <span class='keyglyph'>=</span> <span class='varid'>delEntry</span> <span class='varid'>n</span> <span class='layout'>(</span><span class='varid'>xio_attrList</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='layout'>}</span>-<a name="line-376"></a>-<a name="line-377"></a><span class='comment'>-- | read an attribute value from global state</span>-<a name="line-378"></a>-<a name="line-379"></a><a name="getParam"></a><span class='definition'>getParam</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='conid'>XmlTree</span>-<a name="line-380"></a><span class='definition'>getParam</span> <span class='varid'>n</span>-<a name="line-381"></a> <span class='keyglyph'>=</span> <span class='varid'>getAllParams</span>-<a name="line-382"></a> <span class='varop'>>>></span>-<a name="line-383"></a> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>lookup1</span> <span class='varid'>n</span><span class='layout'>)</span>-<a name="line-384"></a>-<a name="line-385"></a><span class='comment'>-- | read all attributes from global state</span>-<a name="line-386"></a>-<a name="line-387"></a><a name="getAllParams"></a><span class='definition'>getAllParams</span> <span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='layout'>(</span><span class='conid'>AssocList</span> <span class='conid'>String</span> <span class='conid'>XmlTrees</span><span class='layout'>)</span>-<a name="line-388"></a><span class='definition'>getAllParams</span>-<a name="line-389"></a> <span class='keyglyph'>=</span> <span class='varid'>getSysParam</span> <span class='varid'>xio_attrList</span>-<a name="line-390"></a>-<a name="line-391"></a><span class='comment'>-- | read all attributes from global state</span>-<a name="line-392"></a><span class='comment'>-- and convert the values to strings</span>-<a name="line-393"></a>-<a name="line-394"></a><a name="getAllParamsString"></a><span class='definition'>getAllParamsString</span> <span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='layout'>(</span><span class='conid'>AssocList</span> <span class='conid'>String</span> <span class='conid'>String</span><span class='layout'>)</span>-<a name="line-395"></a><span class='definition'>getAllParamsString</span>-<a name="line-396"></a> <span class='keyglyph'>=</span> <span class='varid'>getAllParams</span>-<a name="line-397"></a> <span class='varop'>>>></span>-<a name="line-398"></a> <span class='varid'>listA</span> <span class='layout'>(</span> <span class='varid'>unlistA</span>-<a name="line-399"></a> <span class='varop'>>>></span>-<a name="line-400"></a> <span class='varid'>second</span> <span class='layout'>(</span><span class='varid'>xshow</span> <span class='varid'>unlistA</span><span class='layout'>)</span>-<a name="line-401"></a> <span class='layout'>)</span>-<a name="line-402"></a>-<a name="line-403"></a><a name="setParamString"></a><span class='definition'>setParamString</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>-<a name="line-404"></a><span class='definition'>setParamString</span> <span class='varid'>n</span> <span class='varid'>v</span>-<a name="line-405"></a> <span class='keyglyph'>=</span> <span class='varid'>perform</span> <span class='layout'>(</span> <span class='varid'>txt</span> <span class='varid'>v</span>-<a name="line-406"></a> <span class='varop'>>>></span>-<a name="line-407"></a> <span class='varid'>setParam</span> <span class='varid'>n</span>-<a name="line-408"></a> <span class='layout'>)</span>-<a name="line-409"></a>-<a name="line-410"></a><span class='comment'>-- | read a string value from global state,</span>-<a name="line-411"></a><span class='comment'>-- if parameter not set \"\" is returned</span>-<a name="line-412"></a>-<a name="line-413"></a><a name="getParamString"></a><span class='definition'>getParamString</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='conid'>String</span>-<a name="line-414"></a><span class='definition'>getParamString</span> <span class='varid'>n</span>-<a name="line-415"></a> <span class='keyglyph'>=</span> <span class='varid'>xshow</span> <span class='layout'>(</span><span class='varid'>getParam</span> <span class='varid'>n</span><span class='layout'>)</span>-<a name="line-416"></a>-<a name="line-417"></a><span class='comment'>-- | store an int value in global state</span>-<a name="line-418"></a>-<a name="line-419"></a><a name="setParamInt"></a><span class='definition'>setParamInt</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Int</span> <span class='keyglyph'>-></span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>-<a name="line-420"></a><span class='definition'>setParamInt</span> <span class='varid'>n</span> <span class='varid'>v</span>-<a name="line-421"></a> <span class='keyglyph'>=</span> <span class='varid'>setParamString</span> <span class='varid'>n</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>v</span><span class='layout'>)</span>-<a name="line-422"></a>-<a name="line-423"></a><span class='comment'>-- | read an int value from global state</span>-<a name="line-424"></a><span class='comment'>-- </span>-<a name="line-425"></a><span class='comment'>-- > getParamInt 0 myIntAttr</span>-<a name="line-426"></a>-<a name="line-427"></a><a name="getParamInt"></a><span class='definition'>getParamInt</span> <span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='conid'>Int</span>-<a name="line-428"></a><span class='definition'>getParamInt</span> <span class='varid'>def</span> <span class='varid'>n</span>-<a name="line-429"></a> <span class='keyglyph'>=</span> <span class='varid'>getParamString</span> <span class='varid'>n</span>-<a name="line-430"></a> <span class='varop'>>>^</span>-<a name="line-431"></a> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>x</span> <span class='keyword'>then</span> <span class='varid'>def</span> <span class='keyword'>else</span> <span class='varid'>read</span> <span class='varid'>x</span><span class='layout'>)</span>-<a name="line-432"></a>-<a name="line-433"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-434"></a>-<a name="line-435"></a><span class='comment'>-- | reset global error variable</span>-<a name="line-436"></a>-<a name="line-437"></a><a name="changeErrorStatus"></a><span class='definition'>changeErrorStatus</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Int</span> <span class='keyglyph'>-></span> <span class='conid'>Int</span> <span class='keyglyph'>-></span> <span class='conid'>Int</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>Int</span> <span class='conid'>Int</span>-<a name="line-438"></a><span class='definition'>changeErrorStatus</span> <span class='varid'>f</span>-<a name="line-439"></a> <span class='keyglyph'>=</span> <span class='varid'>changeSysParam</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>l</span> <span class='varid'>s</span> <span class='keyglyph'>-></span> <span class='varid'>s</span> <span class='layout'>{</span> <span class='varid'>xio_errorStatus</span> <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varid'>l</span> <span class='layout'>(</span><span class='varid'>xio_errorStatus</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='layout'>}</span><span class='layout'>)</span>-<a name="line-440"></a>-<a name="line-441"></a><a name="clearErrStatus"></a><span class='definition'>clearErrStatus</span> <span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>-<a name="line-442"></a><span class='definition'>clearErrStatus</span>-<a name="line-443"></a> <span class='keyglyph'>=</span> <span class='varid'>perform</span> <span class='layout'>(</span><span class='varid'>constA</span> <span class='num'>0</span> <span class='varop'>>>></span> <span class='varid'>changeErrorStatus</span> <span class='varid'>min</span><span class='layout'>)</span>-<a name="line-444"></a>-<a name="line-445"></a><span class='comment'>-- | set global error variable</span>-<a name="line-446"></a>-<a name="line-447"></a><a name="setErrStatus"></a><span class='definition'>setErrStatus</span> <span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>Int</span> <span class='conid'>Int</span>-<a name="line-448"></a><span class='definition'>setErrStatus</span>-<a name="line-449"></a> <span class='keyglyph'>=</span> <span class='varid'>changeErrorStatus</span> <span class='varid'>max</span>-<a name="line-450"></a>-<a name="line-451"></a><span class='comment'>-- | read current global error status</span>-<a name="line-452"></a>-<a name="line-453"></a><a name="getErrStatus"></a><span class='definition'>getErrStatus</span> <span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>Int</span>-<a name="line-454"></a><span class='definition'>getErrStatus</span>-<a name="line-455"></a> <span class='keyglyph'>=</span> <span class='varid'>getSysParam</span> <span class='varid'>xio_errorStatus</span>-<a name="line-456"></a>-<a name="line-457"></a><span class='comment'>-- | raise the global error status level to that of the input tree</span>-<a name="line-458"></a>-<a name="line-459"></a><a name="setErrMsgStatus"></a><span class='definition'>setErrMsgStatus</span> <span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-460"></a><span class='definition'>setErrMsgStatus</span>-<a name="line-461"></a> <span class='keyglyph'>=</span> <span class='varid'>perform</span> <span class='layout'>(</span> <span class='varid'>getErrorLevel</span>-<a name="line-462"></a> <span class='varop'>>>></span>-<a name="line-463"></a> <span class='varid'>setErrStatus</span>-<a name="line-464"></a> <span class='layout'>)</span>-<a name="line-465"></a>-<a name="line-466"></a><span class='comment'>-- | set the error message handler and the flag for collecting the errors</span>-<a name="line-467"></a>-<a name="line-468"></a><a name="setErrorMsgHandler"></a><span class='definition'>setErrorMsgHandler</span> <span class='keyglyph'>::</span> <span class='conid'>Bool</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>IO</span> <span class='conid'>()</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>-<a name="line-469"></a><span class='definition'>setErrorMsgHandler</span> <span class='varid'>c</span> <span class='varid'>f</span>-<a name="line-470"></a> <span class='keyglyph'>=</span> <span class='varid'>changeSysParam</span> <span class='varid'>cf</span>-<a name="line-471"></a> <span class='keyword'>where</span>-<a name="line-472"></a> <span class='varid'>cf</span> <span class='keyword'>_</span> <span class='varid'>s</span> <span class='keyglyph'>=</span> <span class='varid'>s</span> <span class='layout'>{</span> <span class='varid'>xio_errorMsgHandler</span> <span class='keyglyph'>=</span> <span class='varid'>f</span>-<a name="line-473"></a> <span class='layout'>,</span> <span class='varid'>xio_errorMsgCollect</span> <span class='keyglyph'>=</span> <span class='varid'>c</span> <span class='layout'>}</span>-<a name="line-474"></a>-<a name="line-475"></a><span class='comment'>-- | error message handler for output to stderr</span>-<a name="line-476"></a> -<a name="line-477"></a><a name="sysErrorMsg"></a><span class='definition'>sysErrorMsg</span> <span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-478"></a><span class='definition'>sysErrorMsg</span>-<a name="line-479"></a> <span class='keyglyph'>=</span> <span class='varid'>perform</span> <span class='layout'>(</span> <span class='varid'>getErrorLevel</span> <span class='varop'>&&&</span> <span class='varid'>getErrorMsg</span>-<a name="line-480"></a> <span class='varop'>>>></span>-<a name="line-481"></a> <span class='varid'>arr</span> <span class='varid'>formatErrorMsg</span>-<a name="line-482"></a> <span class='varop'>>>></span>-<a name="line-483"></a> <span class='layout'>(</span> <span class='conid'>IOSLA</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='varid'>e</span> <span class='keyglyph'>-></span>-<a name="line-484"></a> <span class='keyword'>do</span>-<a name="line-485"></a> <span class='layout'>(</span><span class='varid'>xio_errorMsgHandler</span> <span class='varop'>.</span> <span class='varid'>xio_sysState</span> <span class='varop'>$</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='varid'>e</span>-<a name="line-486"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>s</span><span class='layout'>,</span> <span class='varid'>undefined</span><span class='layout'>)</span>-<a name="line-487"></a> <span class='layout'>)</span>-<a name="line-488"></a> <span class='layout'>)</span>-<a name="line-489"></a> <span class='keyword'>where</span>-<a name="line-490"></a> <span class='varid'>formatErrorMsg</span> <span class='layout'>(</span><span class='varid'>level</span><span class='layout'>,</span> <span class='varid'>msg</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>"\n"</span> <span class='varop'>++</span> <span class='varid'>errClass</span> <span class='varid'>level</span> <span class='varop'>++</span> <span class='str'>": "</span> <span class='varop'>++</span> <span class='varid'>msg</span>-<a name="line-491"></a> <span class='varid'>errClass</span> <span class='varid'>l</span>-<a name="line-492"></a> <span class='keyglyph'>=</span> <span class='varid'>fromMaybe</span> <span class='str'>"fatal error"</span> <span class='varop'>.</span> <span class='varid'>lookup</span> <span class='varid'>l</span> <span class='varop'>$</span> <span class='varid'>msgList</span>-<a name="line-493"></a> <span class='keyword'>where</span>-<a name="line-494"></a> <span class='varid'>msgList</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>c_ok</span><span class='layout'>,</span> <span class='str'>"no error"</span><span class='layout'>)</span>-<a name="line-495"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>c_warn</span><span class='layout'>,</span> <span class='str'>"warning"</span><span class='layout'>)</span>-<a name="line-496"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>c_err</span><span class='layout'>,</span> <span class='str'>"error"</span><span class='layout'>)</span>-<a name="line-497"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>c_fatal</span><span class='layout'>,</span> <span class='str'>"fatal error"</span><span class='layout'>)</span>-<a name="line-498"></a> <span class='keyglyph'>]</span>-<a name="line-499"></a>-<a name="line-500"></a>-<a name="line-501"></a><span class='comment'>-- | the default error message handler: error output to stderr</span>-<a name="line-502"></a>-<a name="line-503"></a><a name="errorMsgStderr"></a><span class='definition'>errorMsgStderr</span> <span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>-<a name="line-504"></a><span class='definition'>errorMsgStderr</span> <span class='keyglyph'>=</span> <span class='varid'>setErrorMsgHandler</span> <span class='conid'>False</span> <span class='layout'>(</span><span class='varid'>hPutStrLn</span> <span class='varid'>stderr</span><span class='layout'>)</span>-<a name="line-505"></a>-<a name="line-506"></a><span class='comment'>-- | error message handler for collecting errors</span>-<a name="line-507"></a>-<a name="line-508"></a><a name="errorMsgCollect"></a><span class='definition'>errorMsgCollect</span> <span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>-<a name="line-509"></a><span class='definition'>errorMsgCollect</span> <span class='keyglyph'>=</span> <span class='varid'>setErrorMsgHandler</span> <span class='conid'>True</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varop'>$</span> <span class='varid'>return</span> <span class='conid'>()</span><span class='layout'>)</span>-<a name="line-510"></a>-<a name="line-511"></a><span class='comment'>-- | error message handler for output to stderr and collecting</span>-<a name="line-512"></a>-<a name="line-513"></a><a name="errorMsgStderrAndCollect"></a><span class='definition'>errorMsgStderrAndCollect</span> <span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>-<a name="line-514"></a><span class='definition'>errorMsgStderrAndCollect</span> <span class='keyglyph'>=</span> <span class='varid'>setErrorMsgHandler</span> <span class='conid'>True</span> <span class='layout'>(</span><span class='varid'>hPutStrLn</span> <span class='varid'>stderr</span><span class='layout'>)</span>-<a name="line-515"></a>-<a name="line-516"></a><span class='comment'>-- | error message handler for ignoring errors</span>-<a name="line-517"></a>-<a name="line-518"></a><a name="errorMsgIgnore"></a><span class='definition'>errorMsgIgnore</span> <span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>-<a name="line-519"></a><span class='definition'>errorMsgIgnore</span> <span class='keyglyph'>=</span> <span class='varid'>setErrorMsgHandler</span> <span class='conid'>False</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varop'>$</span> <span class='varid'>return</span> <span class='conid'>()</span><span class='layout'>)</span>-<a name="line-520"></a>-<a name="line-521"></a><span class='comment'>-- |</span>-<a name="line-522"></a><span class='comment'>-- if error messages are collected by the error handler for</span>-<a name="line-523"></a><span class='comment'>-- processing these messages by the calling application,</span>-<a name="line-524"></a><span class='comment'>-- this arrow reads the stored messages and clears the error message store</span>-<a name="line-525"></a>-<a name="line-526"></a><a name="getErrorMessages"></a><span class='definition'>getErrorMessages</span> <span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='conid'>XmlTree</span>-<a name="line-527"></a><span class='definition'>getErrorMessages</span>-<a name="line-528"></a> <span class='keyglyph'>=</span> <span class='varid'>getSysParam</span> <span class='layout'>(</span><span class='varid'>reverse</span> <span class='varop'>.</span> <span class='varid'>xio_errorMsgList</span><span class='layout'>)</span> <span class='comment'>-- reverse the list of errors</span>-<a name="line-529"></a> <span class='varop'>>>></span>-<a name="line-530"></a> <span class='varid'>clearErrorMsgList</span> <span class='comment'>-- clear the error list in the system state</span>-<a name="line-531"></a> <span class='varop'>>>></span>-<a name="line-532"></a> <span class='varid'>arrL</span> <span class='varid'>id</span>-<a name="line-533"></a>-<a name="line-534"></a><a name="clearErrorMsgList"></a><span class='definition'>clearErrorMsgList</span> <span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>-<a name="line-535"></a><span class='definition'>clearErrorMsgList</span>-<a name="line-536"></a> <span class='keyglyph'>=</span> <span class='varid'>changeSysParam</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='keyword'>_</span> <span class='varid'>s</span> <span class='keyglyph'>-></span> <span class='varid'>s</span> <span class='layout'>{</span> <span class='varid'>xio_errorMsgList</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span> <span class='layout'>}</span> <span class='layout'>)</span>-<a name="line-537"></a>-<a name="line-538"></a><a name="addToErrorMsgList"></a><span class='definition'>addToErrorMsgList</span> <span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-539"></a><span class='definition'>addToErrorMsgList</span>-<a name="line-540"></a> <span class='keyglyph'>=</span> <span class='varid'>changeSysParam</span> <span class='varid'>cf</span>-<a name="line-541"></a> <span class='keyword'>where</span>-<a name="line-542"></a> <span class='varid'>cf</span> <span class='varid'>t</span> <span class='varid'>s</span> <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>xio_errorMsgCollect</span> <span class='varid'>s</span>-<a name="line-543"></a> <span class='keyword'>then</span> <span class='varid'>s</span> <span class='layout'>{</span> <span class='varid'>xio_errorMsgList</span> <span class='keyglyph'>=</span> <span class='varid'>t</span> <span class='conop'>:</span> <span class='varid'>xio_errorMsgList</span> <span class='varid'>s</span> <span class='layout'>}</span>-<a name="line-544"></a> <span class='keyword'>else</span> <span class='varid'>s</span>-<a name="line-545"></a>-<a name="line-546"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-547"></a>-<a name="line-548"></a><span class='comment'>-- |</span>-<a name="line-549"></a><span class='comment'>-- filter error messages from input trees and issue errors</span>-<a name="line-550"></a>-<a name="line-551"></a><a name="filterErrorMsg"></a><span class='definition'>filterErrorMsg</span> <span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-552"></a><span class='definition'>filterErrorMsg</span>-<a name="line-553"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>setErrMsgStatus</span>-<a name="line-554"></a> <span class='varop'>>>></span>-<a name="line-555"></a> <span class='varid'>sysErrorMsg</span>-<a name="line-556"></a> <span class='varop'>>>></span>-<a name="line-557"></a> <span class='varid'>addToErrorMsgList</span>-<a name="line-558"></a> <span class='varop'>>>></span>-<a name="line-559"></a> <span class='varid'>none</span>-<a name="line-560"></a> <span class='layout'>)</span>-<a name="line-561"></a> <span class='varop'>`when`</span>-<a name="line-562"></a> <span class='varid'>isError</span>-<a name="line-563"></a>-<a name="line-564"></a><span class='comment'>-- | generate a warnig message</span>-<a name="line-565"></a>-<a name="line-566"></a><a name="issueWarn"></a><span class='definition'>issueWarn</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>-<a name="line-567"></a><span class='definition'>issueWarn</span> <span class='varid'>msg</span> <span class='keyglyph'>=</span> <span class='varid'>perform</span> <span class='layout'>(</span><span class='varid'>warn</span> <span class='varid'>msg</span> <span class='varop'>>>></span> <span class='varid'>filterErrorMsg</span><span class='layout'>)</span>-<a name="line-568"></a>-<a name="line-569"></a><a name="issueErr"></a><span class='comment'>-- | generate an error message</span>-<a name="line-570"></a><span class='definition'>issueErr</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>-<a name="line-571"></a><span class='definition'>issueErr</span> <span class='varid'>msg</span> <span class='keyglyph'>=</span> <span class='varid'>perform</span> <span class='layout'>(</span><span class='varid'>err</span> <span class='varid'>msg</span> <span class='varop'>>>></span> <span class='varid'>filterErrorMsg</span><span class='layout'>)</span>-<a name="line-572"></a>-<a name="line-573"></a><span class='comment'>-- | generate a fatal error message, e.g. document not found</span>-<a name="line-574"></a>-<a name="line-575"></a><a name="issueFatal"></a><span class='definition'>issueFatal</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>-<a name="line-576"></a><span class='definition'>issueFatal</span> <span class='varid'>msg</span> <span class='keyglyph'>=</span> <span class='varid'>perform</span> <span class='layout'>(</span><span class='varid'>fatal</span> <span class='varid'>msg</span> <span class='varop'>>>></span> <span class='varid'>filterErrorMsg</span><span class='layout'>)</span>-<a name="line-577"></a>-<a name="line-578"></a><span class='comment'>-- |</span>-<a name="line-579"></a><span class='comment'>-- add the error level and the module where the error occured</span>-<a name="line-580"></a><span class='comment'>-- to the attributes of a document root node and remove the children when level is greater or equal to 'c_err'.</span>-<a name="line-581"></a><span class='comment'>-- called by 'setDocumentStatusFromSystemState' when the system state indicates an error</span>-<a name="line-582"></a>-<a name="line-583"></a><a name="setDocumentStatus"></a><span class='definition'>setDocumentStatus</span> <span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-584"></a><span class='definition'>setDocumentStatus</span> <span class='varid'>level</span> <span class='varid'>msg</span>-<a name="line-585"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>addAttrl</span> <span class='layout'>(</span> <span class='varid'>sattr</span> <span class='varid'>a_status</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>level</span><span class='layout'>)</span>-<a name="line-586"></a> <span class='varop'><+></span>-<a name="line-587"></a> <span class='varid'>sattr</span> <span class='varid'>a_module</span> <span class='varid'>msg</span>-<a name="line-588"></a> <span class='layout'>)</span>-<a name="line-589"></a> <span class='varop'>>>></span>-<a name="line-590"></a> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>level</span> <span class='varop'>>=</span> <span class='varid'>c_err</span>-<a name="line-591"></a> <span class='keyword'>then</span> <span class='varid'>setChildren</span> <span class='conid'>[]</span>-<a name="line-592"></a> <span class='keyword'>else</span> <span class='varid'>this</span>-<a name="line-593"></a> <span class='layout'>)</span>-<a name="line-594"></a> <span class='layout'>)</span>-<a name="line-595"></a> <span class='varop'>`when`</span>-<a name="line-596"></a> <span class='varid'>isRoot</span>-<a name="line-597"></a>-<a name="line-598"></a><span class='comment'>-- |</span>-<a name="line-599"></a><span class='comment'>-- check whether the error level attribute in the system state</span>-<a name="line-600"></a><span class='comment'>-- is set to error, in this case the children of the document root are</span>-<a name="line-601"></a><span class='comment'>-- removed and the module name where the error occured and the error level are added as attributes with 'setDocumentStatus'</span>-<a name="line-602"></a><span class='comment'>-- else nothing is changed</span>-<a name="line-603"></a>-<a name="line-604"></a><a name="setDocumentStatusFromSystemState"></a><span class='definition'>setDocumentStatusFromSystemState</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-605"></a><span class='definition'>setDocumentStatusFromSystemState</span> <span class='varid'>msg</span>-<a name="line-606"></a> <span class='keyglyph'>=</span> <span class='varid'>setStatus</span> <span class='varop'>$<</span> <span class='varid'>getErrStatus</span>-<a name="line-607"></a> <span class='keyword'>where</span>-<a name="line-608"></a> <span class='varid'>setStatus</span> <span class='varid'>level</span>-<a name="line-609"></a> <span class='keyglyph'>|</span> <span class='varid'>level</span> <span class='varop'><=</span> <span class='varid'>c_warn</span> <span class='keyglyph'>=</span> <span class='varid'>this</span>-<a name="line-610"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>setDocumentStatus</span> <span class='varid'>level</span> <span class='varid'>msg</span>-<a name="line-611"></a>-<a name="line-612"></a>-<a name="line-613"></a><span class='comment'>-- |</span>-<a name="line-614"></a><span class='comment'>-- check whether tree is a document root and the status attribute has a value less than 'c_err'</span>-<a name="line-615"></a>-<a name="line-616"></a><a name="documentStatusOk"></a><span class='definition'>documentStatusOk</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-617"></a><span class='definition'>documentStatusOk</span>-<a name="line-618"></a> <span class='keyglyph'>=</span> <span class='varid'>isRoot</span>-<a name="line-619"></a> <span class='varop'>>>></span>-<a name="line-620"></a> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>getAttrValue</span> <span class='varid'>a_status</span>-<a name="line-621"></a> <span class='varop'>>>></span>-<a name="line-622"></a> <span class='varid'>isA</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>v</span> <span class='keyglyph'>-></span> <span class='varid'>null</span> <span class='varid'>v</span> <span class='varop'>||</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>read</span> <span class='varid'>v</span><span class='layout'>)</span><span class='keyglyph'>::</span><span class='conid'>Int</span><span class='layout'>)</span> <span class='varop'><=</span> <span class='varid'>c_warn</span><span class='layout'>)</span>-<a name="line-623"></a> <span class='layout'>)</span>-<a name="line-624"></a> <span class='varop'>`guards`</span>-<a name="line-625"></a> <span class='varid'>this</span>-<a name="line-626"></a> <span class='layout'>)</span>-<a name="line-627"></a>-<a name="line-628"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-629"></a>-<a name="line-630"></a><span class='comment'>-- | set the base URI of a document, used e.g. for reading includes, e.g. external entities,</span>-<a name="line-631"></a><span class='comment'>-- the input must be an absolute URI</span>-<a name="line-632"></a>-<a name="line-633"></a><a name="setBaseURI"></a><span class='definition'>setBaseURI</span> <span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>String</span> <span class='conid'>String</span>-<a name="line-634"></a><span class='definition'>setBaseURI</span>-<a name="line-635"></a> <span class='keyglyph'>=</span> <span class='varid'>changeSysParam</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>b</span> <span class='varid'>s</span> <span class='keyglyph'>-></span> <span class='varid'>s</span> <span class='layout'>{</span> <span class='varid'>xio_baseURI</span> <span class='keyglyph'>=</span> <span class='varid'>b</span> <span class='layout'>}</span> <span class='layout'>)</span>-<a name="line-636"></a> <span class='varop'>>>></span>-<a name="line-637"></a> <span class='varid'>traceValue</span> <span class='num'>2</span> <span class='layout'>(</span><span class='layout'>(</span><span class='str'>"setBaseURI: new base URI is "</span> <span class='varop'>++</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>show</span><span class='layout'>)</span>-<a name="line-638"></a>-<a name="line-639"></a><span class='comment'>-- | read the base URI from the globale state</span>-<a name="line-640"></a>-<a name="line-641"></a><a name="getBaseURI"></a><span class='definition'>getBaseURI</span> <span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='conid'>String</span>-<a name="line-642"></a><span class='definition'>getBaseURI</span>-<a name="line-643"></a> <span class='keyglyph'>=</span> <span class='varid'>getSysParam</span> <span class='varid'>xio_baseURI</span>-<a name="line-644"></a> <span class='varop'>>>></span>-<a name="line-645"></a> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>getDefaultBaseURI</span>-<a name="line-646"></a> <span class='varop'>>>></span>-<a name="line-647"></a> <span class='varid'>setBaseURI</span> -<a name="line-648"></a> <span class='varop'>>>></span>-<a name="line-649"></a> <span class='varid'>getBaseURI</span>-<a name="line-650"></a> <span class='layout'>)</span>-<a name="line-651"></a> <span class='varop'>`when`</span>-<a name="line-652"></a> <span class='varid'>isA</span> <span class='varid'>null</span> <span class='comment'>-- set and get it, if not yet done</span>-<a name="line-653"></a> <span class='layout'>)</span>-<a name="line-654"></a>-<a name="line-655"></a><span class='comment'>-- | change the base URI with a possibly relative URI, can be used for</span>-<a name="line-656"></a><span class='comment'>-- evaluating the xml:base attribute. Returns the new absolute base URI.</span>-<a name="line-657"></a><span class='comment'>-- Fails, if input is not parsable with parseURIReference</span>-<a name="line-658"></a><span class='comment'>--</span>-<a name="line-659"></a><span class='comment'>-- see also: 'setBaseURI', 'mkAbsURI'</span>-<a name="line-660"></a>-<a name="line-661"></a><a name="changeBaseURI"></a><span class='definition'>changeBaseURI</span> <span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>String</span> <span class='conid'>String</span>-<a name="line-662"></a><span class='definition'>changeBaseURI</span>-<a name="line-663"></a> <span class='keyglyph'>=</span> <span class='varid'>mkAbsURI</span>-<a name="line-664"></a> <span class='varop'>>>></span>-<a name="line-665"></a> <span class='varid'>setBaseURI</span>-<a name="line-666"></a>-<a name="line-667"></a><span class='comment'>-- | set the default base URI, if parameter is null, the system base (@ file:\/\/\/\<cwd\>\/ @) is used,</span>-<a name="line-668"></a><span class='comment'>-- else the parameter, must be called before any document is read</span>-<a name="line-669"></a>-<a name="line-670"></a><a name="setDefaultBaseURI"></a><span class='definition'>setDefaultBaseURI</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='conid'>String</span>-<a name="line-671"></a><span class='definition'>setDefaultBaseURI</span> <span class='varid'>base</span>-<a name="line-672"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>base</span>-<a name="line-673"></a> <span class='keyword'>then</span> <span class='varid'>arrIO</span> <span class='varid'>getDir</span>-<a name="line-674"></a> <span class='keyword'>else</span> <span class='varid'>constA</span> <span class='varid'>base</span>-<a name="line-675"></a> <span class='layout'>)</span>-<a name="line-676"></a> <span class='varop'>>>></span>-<a name="line-677"></a> <span class='varid'>changeSysParam</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>b</span> <span class='varid'>s</span> <span class='keyglyph'>-></span> <span class='varid'>s</span> <span class='layout'>{</span> <span class='varid'>xio_defaultBaseURI</span> <span class='keyglyph'>=</span> <span class='varid'>b</span> <span class='layout'>}</span> <span class='layout'>)</span>-<a name="line-678"></a> <span class='varop'>>>></span>-<a name="line-679"></a> <span class='varid'>traceValue</span> <span class='num'>2</span> <span class='layout'>(</span><span class='layout'>(</span><span class='str'>"setDefaultBaseURI: new default base URI is "</span> <span class='varop'>++</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>show</span><span class='layout'>)</span>-<a name="line-680"></a> <span class='keyword'>where</span>-<a name="line-681"></a> <span class='varid'>getDir</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-682"></a> <span class='varid'>cwd</span> <span class='keyglyph'><-</span> <span class='varid'>getCurrentDirectory</span>-<a name="line-683"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='str'>"file://"</span> <span class='varop'>++</span> <span class='varid'>normalize</span> <span class='varid'>cwd</span> <span class='varop'>++</span> <span class='str'>"/"</span><span class='layout'>)</span>-<a name="line-684"></a>-<a name="line-685"></a> <span class='comment'>-- under Windows getCurrentDirectory returns something like: "c:\path\to\file"</span>-<a name="line-686"></a> <span class='comment'>-- backslaches are not allowed in URIs and paths must start with a /</span>-<a name="line-687"></a> <span class='comment'>-- so this is transformed into "/c:/path/to/file"</span>-<a name="line-688"></a>-<a name="line-689"></a> <span class='varid'>normalize</span> <span class='varid'>wd'</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='varid'>d</span> <span class='conop'>:</span> <span class='chr'>':'</span> <span class='conop'>:</span> <span class='keyword'>_</span><span class='layout'>)</span>-<a name="line-690"></a> <span class='keyglyph'>|</span> <span class='varid'>d</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='chr'>'A'</span><span class='keyglyph'>..</span><span class='chr'>'Z'</span><span class='keyglyph'>]</span> <span class='varop'>||</span> <span class='varid'>d</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='chr'>'a'</span><span class='keyglyph'>..</span><span class='chr'>'z'</span><span class='keyglyph'>]</span>-<a name="line-691"></a> <span class='keyglyph'>=</span> <span class='chr'>'/'</span> <span class='conop'>:</span> <span class='varid'>concatMap</span> <span class='varid'>win32ToUriChar</span> <span class='varid'>wd'</span>-<a name="line-692"></a> <span class='varid'>normalize</span> <span class='varid'>wd'</span>-<a name="line-693"></a> <span class='keyglyph'>=</span> <span class='varid'>concatMap</span> <span class='varid'>escapeNonUriChar</span> <span class='varid'>wd'</span>-<a name="line-694"></a> -<a name="line-695"></a> <span class='varid'>win32ToUriChar</span> <span class='chr'>'\\'</span> <span class='keyglyph'>=</span> <span class='str'>"/"</span>-<a name="line-696"></a> <span class='varid'>win32ToUriChar</span> <span class='varid'>c</span> <span class='keyglyph'>=</span> <span class='varid'>escapeNonUriChar</span> <span class='varid'>c</span>-<a name="line-697"></a>-<a name="line-698"></a> <span class='varid'>escapeNonUriChar</span> <span class='varid'>c</span> <span class='keyglyph'>=</span> <span class='varid'>escapeURIChar</span> <span class='varid'>isUnescapedInURI</span> <span class='varid'>c</span> <span class='comment'>-- from Network.URI</span>-<a name="line-699"></a>-<a name="line-700"></a>-<a name="line-701"></a><span class='comment'>-- | get the default base URI</span>-<a name="line-702"></a>-<a name="line-703"></a><a name="getDefaultBaseURI"></a><span class='definition'>getDefaultBaseURI</span> <span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='conid'>String</span>-<a name="line-704"></a><span class='definition'>getDefaultBaseURI</span>-<a name="line-705"></a> <span class='keyglyph'>=</span> <span class='varid'>getSysParam</span> <span class='varid'>xio_defaultBaseURI</span> <span class='comment'>-- read default uri in system state</span>-<a name="line-706"></a> <span class='varop'>>>></span>-<a name="line-707"></a> <span class='layout'>(</span> <span class='varid'>setDefaultBaseURI</span> <span class='str'>""</span> <span class='comment'>-- set the default uri in system state</span>-<a name="line-708"></a> <span class='varop'>>>></span>-<a name="line-709"></a> <span class='varid'>getDefaultBaseURI</span> <span class='layout'>)</span> <span class='varop'>`when`</span> <span class='varid'>isA</span> <span class='varid'>null</span> <span class='comment'>-- when uri not yet set</span>-<a name="line-710"></a>-<a name="line-711"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-712"></a>-<a name="line-713"></a><span class='comment'>-- | remember base uri, run an arrow and restore the base URI, used with external entity substitution</span>-<a name="line-714"></a>-<a name="line-715"></a><a name="runInLocalURIContext"></a><span class='definition'>runInLocalURIContext</span> <span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>c</span> <span class='keyglyph'>-></span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>c</span>-<a name="line-716"></a><span class='definition'>runInLocalURIContext</span> <span class='varid'>f</span>-<a name="line-717"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>getBaseURI</span> <span class='varop'>&&&</span> <span class='varid'>this</span> <span class='layout'>)</span>-<a name="line-718"></a> <span class='varop'>>>></span>-<a name="line-719"></a> <span class='layout'>(</span> <span class='varid'>this</span> <span class='varop'>***</span> <span class='varid'>listA</span> <span class='varid'>f</span> <span class='layout'>)</span>-<a name="line-720"></a> <span class='varop'>>>></span>-<a name="line-721"></a> <span class='layout'>(</span> <span class='varid'>setBaseURI</span> <span class='varop'>***</span> <span class='varid'>this</span> <span class='layout'>)</span>-<a name="line-722"></a> <span class='varop'>>>></span>-<a name="line-723"></a> <span class='varid'>arrL</span> <span class='varid'>snd</span>-<a name="line-724"></a>-<a name="line-725"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-726"></a>-<a name="line-727"></a><span class='comment'>-- | set the global trace level</span>-<a name="line-728"></a>-<a name="line-729"></a><a name="setTraceLevel"></a><span class='definition'>setTraceLevel</span> <span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-></span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>-<a name="line-730"></a><span class='definition'>setTraceLevel</span> <span class='varid'>l</span>-<a name="line-731"></a> <span class='keyglyph'>=</span> <span class='varid'>changeSysParam</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='keyword'>_</span> <span class='varid'>s</span> <span class='keyglyph'>-></span> <span class='varid'>s</span> <span class='layout'>{</span> <span class='varid'>xio_trace</span> <span class='keyglyph'>=</span> <span class='varid'>l</span> <span class='layout'>}</span> <span class='layout'>)</span>-<a name="line-732"></a>-<a name="line-733"></a><span class='comment'>-- | read the global trace level</span>-<a name="line-734"></a>-<a name="line-735"></a><a name="getTraceLevel"></a><span class='definition'>getTraceLevel</span> <span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='conid'>Int</span>-<a name="line-736"></a><span class='definition'>getTraceLevel</span>-<a name="line-737"></a> <span class='keyglyph'>=</span> <span class='varid'>getSysParam</span> <span class='varid'>xio_trace</span>-<a name="line-738"></a>-<a name="line-739"></a><span class='comment'>-- | run an arrow with a given trace level, the old trace level is restored after the arrow execution</span>-<a name="line-740"></a>-<a name="line-741"></a><a name="withTraceLevel"></a><span class='definition'>withTraceLevel</span> <span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-></span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>c</span> <span class='keyglyph'>-></span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>c</span>-<a name="line-742"></a><span class='definition'>withTraceLevel</span> <span class='varid'>level</span> <span class='varid'>f</span>-<a name="line-743"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>getTraceLevel</span> <span class='varop'>&&&</span> <span class='varid'>this</span> <span class='layout'>)</span>-<a name="line-744"></a> <span class='varop'>>>></span>-<a name="line-745"></a> <span class='layout'>(</span> <span class='varid'>setTraceLevel</span> <span class='varid'>level</span> <span class='varop'>***</span> <span class='varid'>listA</span> <span class='varid'>f</span> <span class='layout'>)</span>-<a name="line-746"></a> <span class='varop'>>>></span>-<a name="line-747"></a> <span class='layout'>(</span> <span class='varid'>restoreTraceLevel</span> <span class='varop'>***</span> <span class='varid'>this</span> <span class='layout'>)</span>-<a name="line-748"></a> <span class='varop'>>>></span>-<a name="line-749"></a> <span class='varid'>arrL</span> <span class='varid'>snd</span>-<a name="line-750"></a> <span class='keyword'>where</span>-<a name="line-751"></a> <span class='varid'>restoreTraceLevel</span> <span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>Int</span> <span class='conid'>Int</span>-<a name="line-752"></a> <span class='varid'>restoreTraceLevel</span>-<a name="line-753"></a> <span class='keyglyph'>=</span> <span class='varid'>setTraceLevel</span> <span class='varop'>$<</span> <span class='varid'>this</span>-<a name="line-754"></a>-<a name="line-755"></a><span class='comment'>-- | apply a trace arrow and issue message to stderr</span>-<a name="line-756"></a>-<a name="line-757"></a><a name="trace"></a><span class='definition'>trace</span> <span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-></span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>-<a name="line-758"></a><span class='definition'>trace</span> <span class='varid'>level</span> <span class='varid'>trc</span>-<a name="line-759"></a> <span class='keyglyph'>=</span> <span class='varid'>perform</span> <span class='layout'>(</span> <span class='varid'>trc</span>-<a name="line-760"></a> <span class='varop'>>>></span>-<a name="line-761"></a> <span class='varid'>arrIO</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='keyglyph'>-></span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-762"></a> <span class='varid'>hPutStrLn</span> <span class='varid'>stderr</span> <span class='varid'>s</span>-<a name="line-763"></a> <span class='varid'>hFlush</span> <span class='varid'>stderr</span>-<a name="line-764"></a> <span class='layout'>)</span>-<a name="line-765"></a> <span class='layout'>)</span>-<a name="line-766"></a> <span class='layout'>)</span>-<a name="line-767"></a> <span class='varop'>`when`</span> <span class='layout'>(</span> <span class='varid'>getTraceLevel</span>-<a name="line-768"></a> <span class='varop'>>>></span>-<a name="line-769"></a> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varop'>>=</span> <span class='varid'>level</span><span class='layout'>)</span>-<a name="line-770"></a> <span class='layout'>)</span>-<a name="line-771"></a>-<a name="line-772"></a><span class='comment'>-- | trace the current value transfered in a sequence of arrows.</span>-<a name="line-773"></a><span class='comment'>--</span>-<a name="line-774"></a><span class='comment'>-- The value is formated by a string conversion function. This is a substitute for</span>-<a name="line-775"></a><span class='comment'>-- the old and less general traceString function</span>-<a name="line-776"></a>-<a name="line-777"></a><a name="traceValue"></a><span class='definition'>traceValue</span> <span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='varid'>b</span> <span class='keyglyph'>-></span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>-<a name="line-778"></a><span class='definition'>traceValue</span> <span class='varid'>level</span> <span class='varid'>trc</span>-<a name="line-779"></a> <span class='keyglyph'>=</span> <span class='varid'>trace</span> <span class='varid'>level</span> <span class='layout'>(</span><span class='varid'>arr</span> <span class='varop'>$</span> <span class='layout'>(</span><span class='layout'>(</span><span class='chr'>'-'</span> <span class='conop'>:</span> <span class='str'>"- ("</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>level</span> <span class='varop'>++</span> <span class='str'>") "</span><span class='layout'>)</span> <span class='varop'>++</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>trc</span><span class='layout'>)</span>-<a name="line-780"></a>-<a name="line-781"></a><span class='comment'>-- | an old alias for 'traceValue'</span>-<a name="line-782"></a>-<a name="line-783"></a><a name="traceString"></a><span class='definition'>traceString</span> <span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='varid'>b</span> <span class='keyglyph'>-></span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>-<a name="line-784"></a><span class='definition'>traceString</span> <span class='keyglyph'>=</span> <span class='varid'>traceValue</span>-<a name="line-785"></a>-<a name="line-786"></a><span class='comment'>-- | issue a string message as trace</span>-<a name="line-787"></a>-<a name="line-788"></a><a name="traceMsg"></a><span class='definition'>traceMsg</span> <span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>-<a name="line-789"></a><span class='definition'>traceMsg</span> <span class='varid'>level</span> <span class='varid'>msg</span>-<a name="line-790"></a> <span class='keyglyph'>=</span> <span class='varid'>traceValue</span> <span class='varid'>level</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varid'>msg</span><span class='layout'>)</span>-<a name="line-791"></a>-<a name="line-792"></a><span class='comment'>-- | issue the source representation of a document if trace level >= 3</span>-<a name="line-793"></a><span class='comment'>--</span>-<a name="line-794"></a><span class='comment'>-- for better readability the source is formated with indentDoc</span>-<a name="line-795"></a>-<a name="line-796"></a><a name="traceSource"></a><span class='definition'>traceSource</span> <span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-797"></a><span class='definition'>traceSource</span> -<a name="line-798"></a> <span class='keyglyph'>=</span> <span class='varid'>trace</span> <span class='num'>3</span> <span class='varop'>$</span>-<a name="line-799"></a> <span class='varid'>xshow</span>-<a name="line-800"></a> <span class='layout'>(</span> <span class='varid'>choiceA</span> <span class='keyglyph'>[</span> <span class='varid'>isRoot</span> <span class='conop'>:-></span> <span class='layout'>(</span> <span class='varid'>indentDoc</span>-<a name="line-801"></a> <span class='varop'>>>></span>-<a name="line-802"></a> <span class='varid'>getChildren</span>-<a name="line-803"></a> <span class='layout'>)</span>-<a name="line-804"></a> <span class='layout'>,</span> <span class='varid'>isElem</span> <span class='conop'>:-></span> <span class='layout'>(</span> <span class='varid'>root</span> <span class='conid'>[]</span> <span class='keyglyph'>[</span><span class='varid'>this</span><span class='keyglyph'>]</span>-<a name="line-805"></a> <span class='varop'>>>></span> <span class='varid'>indentDoc</span>-<a name="line-806"></a> <span class='varop'>>>></span> <span class='varid'>getChildren</span>-<a name="line-807"></a> <span class='varop'>>>></span> <span class='varid'>isElem</span>-<a name="line-808"></a> <span class='layout'>)</span>-<a name="line-809"></a> <span class='layout'>,</span> <span class='varid'>this</span> <span class='conop'>:-></span> <span class='varid'>this</span>-<a name="line-810"></a> <span class='keyglyph'>]</span>-<a name="line-811"></a> <span class='layout'>)</span>-<a name="line-812"></a>-<a name="line-813"></a><a name="traceTree"></a><span class='comment'>-- | issue the tree representation of a document if trace level >= 4</span>-<a name="line-814"></a><span class='definition'>traceTree</span> <span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-815"></a><span class='definition'>traceTree</span>-<a name="line-816"></a> <span class='keyglyph'>=</span> <span class='varid'>trace</span> <span class='num'>4</span> <span class='varop'>$</span>-<a name="line-817"></a> <span class='varid'>xshow</span> <span class='layout'>(</span> <span class='varid'>treeRepOfXmlDoc</span>-<a name="line-818"></a> <span class='varop'>>>></span>-<a name="line-819"></a> <span class='varid'>addHeadlineToXmlDoc</span>-<a name="line-820"></a> <span class='varop'>>>></span>-<a name="line-821"></a> <span class='varid'>getChildren</span>-<a name="line-822"></a> <span class='layout'>)</span>-<a name="line-823"></a>-<a name="line-824"></a><span class='comment'>-- | trace a main computation step</span>-<a name="line-825"></a><span class='comment'>-- issue a message when trace level >= 1, issue document source if level >= 3, issue tree when level is >= 4</span>-<a name="line-826"></a>-<a name="line-827"></a><a name="traceDoc"></a><span class='definition'>traceDoc</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-828"></a><span class='definition'>traceDoc</span> <span class='varid'>msg</span>-<a name="line-829"></a> <span class='keyglyph'>=</span> <span class='varid'>traceMsg</span> <span class='num'>1</span> <span class='varid'>msg</span>-<a name="line-830"></a> <span class='varop'>>>></span>-<a name="line-831"></a> <span class='varid'>traceSource</span>-<a name="line-832"></a> <span class='varop'>>>></span>-<a name="line-833"></a> <span class='varid'>traceTree</span>-<a name="line-834"></a>-<a name="line-835"></a><span class='comment'>-- | trace the global state</span>-<a name="line-836"></a>-<a name="line-837"></a><a name="traceState"></a><span class='definition'>traceState</span> <span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>-<a name="line-838"></a><span class='definition'>traceState</span>-<a name="line-839"></a> <span class='keyglyph'>=</span> <span class='varid'>perform</span> <span class='layout'>(</span> <span class='varid'>xshow</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>getAllParams</span> <span class='varop'>>>.</span> <span class='varid'>concat</span><span class='layout'>)</span>-<a name="line-840"></a> <span class='varop'>>>></span>-<a name="line-841"></a> <span class='varid'>applyA</span> <span class='layout'>(</span><span class='varid'>arr</span> <span class='varid'>formatParam</span><span class='layout'>)</span>-<a name="line-842"></a> <span class='layout'>)</span>-<a name="line-843"></a> <span class='varop'>>>></span>-<a name="line-844"></a> <span class='varid'>traceValue</span> <span class='num'>2</span> <span class='layout'>(</span><span class='str'>"global state:\n"</span> <span class='varop'>++</span><span class='layout'>)</span>-<a name="line-845"></a> <span class='layout'>)</span>-<a name="line-846"></a> <span class='keyword'>where</span>-<a name="line-847"></a> <span class='comment'>-- formatParam :: (String, XmlTrees) -> IOStateArrow s b1 XmlTree</span>-<a name="line-848"></a> <span class='varid'>formatParam</span> <span class='layout'>(</span><span class='varid'>n</span><span class='layout'>,</span> <span class='varid'>v</span><span class='layout'>)</span>-<a name="line-849"></a> <span class='keyglyph'>=</span> <span class='varid'>mkelem</span> <span class='str'>"param"</span> <span class='keyglyph'>[</span><span class='varid'>sattr</span> <span class='str'>"name"</span> <span class='varid'>n</span><span class='keyglyph'>]</span> <span class='keyglyph'>[</span><span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varid'>v</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='varop'><+></span> <span class='varid'>txt</span> <span class='str'>"\n"</span>-<a name="line-850"></a>-<a name="line-851"></a><span class='comment'>-- ----------------------------------------------------------</span>-<a name="line-852"></a>-<a name="line-853"></a><span class='comment'>-- | compute the absolut URI for a given URI and a base URI</span>-<a name="line-854"></a>-<a name="line-855"></a><a name="expandURIString"></a><span class='definition'>expandURIString</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Maybe</span> <span class='conid'>String</span>-<a name="line-856"></a><span class='definition'>expandURIString</span> <span class='varid'>uri</span> <span class='varid'>base</span>-<a name="line-857"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-858"></a> <span class='varid'>base'</span> <span class='keyglyph'><-</span> <span class='varid'>parseURIReference</span> <span class='varid'>base</span>-<a name="line-859"></a> <span class='varid'>uri'</span> <span class='keyglyph'><-</span> <span class='varid'>parseURIReference</span> <span class='varid'>uri</span>-<a name="line-860"></a> <span class='varid'>abs'</span> <span class='keyglyph'><-</span> <span class='varid'>nonStrictRelativeTo</span> <span class='varid'>uri'</span> <span class='varid'>base'</span>-<a name="line-861"></a> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>show</span> <span class='varid'>abs'</span>-<a name="line-862"></a>-<a name="line-863"></a><span class='comment'>-- | arrow variant of 'expandURIString', fails if 'expandURIString' returns Nothing</span>-<a name="line-864"></a>-<a name="line-865"></a><a name="expandURI"></a><span class='definition'>expandURI</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span> <span class='conid'>String</span>-<a name="line-866"></a><span class='definition'>expandURI</span>-<a name="line-867"></a> <span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>maybeToList</span> <span class='varop'>.</span> <span class='varid'>uncurry</span> <span class='varid'>expandURIString</span><span class='layout'>)</span>-<a name="line-868"></a>-<a name="line-869"></a><span class='comment'>-- | arrow for expanding an input URI into an absolute URI using global base URI, fails if input is not a legal URI</span>-<a name="line-870"></a>-<a name="line-871"></a><a name="mkAbsURI"></a><span class='definition'>mkAbsURI</span> <span class='keyglyph'>::</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>String</span> <span class='conid'>String</span>-<a name="line-872"></a><span class='definition'>mkAbsURI</span>-<a name="line-873"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>this</span> <span class='varop'>&&&</span> <span class='varid'>getBaseURI</span> <span class='layout'>)</span> <span class='varop'>>>></span> <span class='varid'>expandURI</span>-<a name="line-874"></a>-<a name="line-875"></a><span class='comment'>-- | arrow for selecting the scheme (protocol) of the URI, fails if input is not a legal URI.</span>-<a name="line-876"></a><span class='comment'>--</span>-<a name="line-877"></a><span class='comment'>-- See Network.URI for URI components</span>-<a name="line-878"></a>-<a name="line-879"></a><a name="getSchemeFromURI"></a><span class='definition'>getSchemeFromURI</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>String</span> <span class='conid'>String</span>-<a name="line-880"></a><span class='definition'>getSchemeFromURI</span> <span class='keyglyph'>=</span> <span class='varid'>getPartFromURI</span> <span class='varid'>scheme</span>-<a name="line-881"></a> <span class='keyword'>where</span>-<a name="line-882"></a> <span class='varid'>scheme</span> <span class='keyglyph'>=</span> <span class='varid'>init</span> <span class='varop'>.</span> <span class='varid'>uriScheme</span>-<a name="line-883"></a>-<a name="line-884"></a><span class='comment'>-- | arrow for selecting the registered name (host) of the URI, fails if input is not a legal URI</span>-<a name="line-885"></a>-<a name="line-886"></a><a name="getRegNameFromURI"></a><span class='definition'>getRegNameFromURI</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>String</span> <span class='conid'>String</span>-<a name="line-887"></a><span class='definition'>getRegNameFromURI</span> <span class='keyglyph'>=</span> <span class='varid'>getPartFromURI</span> <span class='varid'>host</span>-<a name="line-888"></a> <span class='keyword'>where</span>-<a name="line-889"></a> <span class='varid'>host</span> <span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='str'>""</span> <span class='varid'>uriRegName</span> <span class='varop'>.</span> <span class='varid'>uriAuthority</span>-<a name="line-890"></a>-<a name="line-891"></a><span class='comment'>-- | arrow for selecting the port number of the URI without leading \':\', fails if input is not a legal URI</span>-<a name="line-892"></a>-<a name="line-893"></a><a name="getPortFromURI"></a><span class='definition'>getPortFromURI</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>String</span> <span class='conid'>String</span>-<a name="line-894"></a><span class='definition'>getPortFromURI</span> <span class='keyglyph'>=</span> <span class='varid'>getPartFromURI</span> <span class='varid'>port</span>-<a name="line-895"></a> <span class='keyword'>where</span>-<a name="line-896"></a> <span class='varid'>port</span> <span class='keyglyph'>=</span> <span class='varid'>dropWhile</span> <span class='layout'>(</span><span class='varop'>==</span><span class='chr'>':'</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>maybe</span> <span class='str'>""</span> <span class='varid'>uriPort</span> <span class='varop'>.</span> <span class='varid'>uriAuthority</span>-<a name="line-897"></a>-<a name="line-898"></a><span class='comment'>-- | arrow for selecting the user info of the URI without trailing \'\@\', fails if input is not a legal URI</span>-<a name="line-899"></a>-<a name="line-900"></a><a name="getUserInfoFromURI"></a><span class='definition'>getUserInfoFromURI</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>String</span> <span class='conid'>String</span>-<a name="line-901"></a><span class='definition'>getUserInfoFromURI</span> <span class='keyglyph'>=</span> <span class='varid'>getPartFromURI</span> <span class='varid'>ui</span>-<a name="line-902"></a> <span class='keyword'>where</span>-<a name="line-903"></a> <span class='varid'>ui</span> <span class='keyglyph'>=</span> <span class='varid'>reverse</span> <span class='varop'>.</span> <span class='varid'>dropWhile</span> <span class='layout'>(</span><span class='varop'>==</span><span class='chr'>'@'</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>reverse</span> <span class='varop'>.</span> <span class='varid'>maybe</span> <span class='str'>""</span> <span class='varid'>uriUserInfo</span> <span class='varop'>.</span> <span class='varid'>uriAuthority</span>-<a name="line-904"></a>-<a name="line-905"></a><span class='comment'>-- | arrow for computing the path component of an URI, fails if input is not a legal URI</span>-<a name="line-906"></a>-<a name="line-907"></a><a name="getPathFromURI"></a><span class='definition'>getPathFromURI</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>String</span> <span class='conid'>String</span>-<a name="line-908"></a><span class='definition'>getPathFromURI</span> <span class='keyglyph'>=</span> <span class='varid'>getPartFromURI</span> <span class='varid'>uriPath</span>-<a name="line-909"></a>-<a name="line-910"></a><span class='comment'>-- | arrow for computing the query component of an URI, fails if input is not a legal URI</span>-<a name="line-911"></a>-<a name="line-912"></a><a name="getQueryFromURI"></a><span class='definition'>getQueryFromURI</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>String</span> <span class='conid'>String</span>-<a name="line-913"></a><span class='definition'>getQueryFromURI</span> <span class='keyglyph'>=</span> <span class='varid'>getPartFromURI</span> <span class='varid'>uriQuery</span>-<a name="line-914"></a>-<a name="line-915"></a><span class='comment'>-- | arrow for computing the fragment component of an URI, fails if input is not a legal URI</span>-<a name="line-916"></a>-<a name="line-917"></a><a name="getFragmentFromURI"></a><span class='definition'>getFragmentFromURI</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>String</span> <span class='conid'>String</span>-<a name="line-918"></a><span class='definition'>getFragmentFromURI</span> <span class='keyglyph'>=</span> <span class='varid'>getPartFromURI</span> <span class='varid'>uriFragment</span>-<a name="line-919"></a>-<a name="line-920"></a><span class='comment'>-- | arrow for computing the path component of an URI, fails if input is not a legal URI</span>-<a name="line-921"></a>-<a name="line-922"></a><a name="getPartFromURI"></a><span class='definition'>getPartFromURI</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='layout'>(</span><span class='conid'>URI</span> <span class='keyglyph'>-></span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>String</span> <span class='conid'>String</span>-<a name="line-923"></a><span class='definition'>getPartFromURI</span> <span class='varid'>sel</span>-<a name="line-924"></a> <span class='keyglyph'>=</span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>maybeToList</span> <span class='varop'>.</span> <span class='varid'>getPart</span><span class='layout'>)</span>-<a name="line-925"></a> <span class='keyword'>where</span>-<a name="line-926"></a> <span class='varid'>getPart</span> <span class='varid'>s</span> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-927"></a> <span class='varid'>uri</span> <span class='keyglyph'><-</span> <span class='varid'>parseURIReference</span> <span class='varid'>s</span>-<a name="line-928"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>sel</span> <span class='varid'>uri</span><span class='layout'>)</span>-<a name="line-929"></a>-<a name="line-930"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-931"></a>-<a name="line-932"></a><span class='comment'>-- | set the table mapping of file extensions to mime types in the system state</span>-<a name="line-933"></a><span class='comment'>--</span>-<a name="line-934"></a><span class='comment'>-- Default table is defined in 'Text.XML.HXT.DOM.MimeTypeDefaults'.</span>-<a name="line-935"></a><span class='comment'>-- This table is used when reading loacl files, (file: protocol) to determine the mime type</span>-<a name="line-936"></a>-<a name="line-937"></a><a name="setMimeTypeTable"></a><span class='definition'>setMimeTypeTable</span> <span class='keyglyph'>::</span> <span class='conid'>MimeTypeTable</span> <span class='keyglyph'>-></span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>-<a name="line-938"></a><span class='definition'>setMimeTypeTable</span> <span class='varid'>mtt</span>-<a name="line-939"></a> <span class='keyglyph'>=</span> <span class='varid'>changeSysParam</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='keyword'>_</span> <span class='varid'>s</span> <span class='keyglyph'>-></span> <span class='varid'>s</span> <span class='layout'>{</span><span class='varid'>xio_mimeTypes</span> <span class='keyglyph'>=</span> <span class='varid'>mtt</span><span class='layout'>}</span><span class='layout'>)</span>-<a name="line-940"></a>-<a name="line-941"></a><span class='comment'>-- | set the table mapping of file extensions to mime types by an external config file</span>-<a name="line-942"></a><span class='comment'>--</span>-<a name="line-943"></a><span class='comment'>-- The config file must follow the conventions of /etc/mime.types on a debian linux system,</span>-<a name="line-944"></a><span class='comment'>-- that means all empty lines and all lines starting with a # are ignored. The other lines</span>-<a name="line-945"></a><span class='comment'>-- must consist of a mime type followed by a possible empty list of extensions.</span>-<a name="line-946"></a><span class='comment'>-- The list of extenstions and mime types overwrites the default list in the system state</span>-<a name="line-947"></a><span class='comment'>-- of the IOStateArrow</span>-<a name="line-948"></a>-<a name="line-949"></a><a name="setMimeTypeTableFromFile"></a><span class='definition'>setMimeTypeTableFromFile</span> <span class='keyglyph'>::</span> <span class='conid'>FilePath</span> <span class='keyglyph'>-></span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>-<a name="line-950"></a><span class='definition'>setMimeTypeTableFromFile</span> <span class='varid'>file</span>-<a name="line-951"></a> <span class='keyglyph'>=</span> <span class='varid'>setMimeTypeTable</span> <span class='varop'>$<</span> <span class='varid'>arrIO0</span> <span class='layout'>(</span> <span class='varid'>readMimeTypeTable</span> <span class='varid'>file</span><span class='layout'>)</span>-<a name="line-952"></a>-<a name="line-953"></a><span class='comment'>-- ------------------------------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-Arrow-XmlRegex.html
@@ -1,314 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Text.XML.HXT.Arrow.XmlRegex-<a name="line-5"></a> Copyright : Copyright (C) 2008 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe@fh-wedel.de)-<a name="line-9"></a> Stability : experimental-<a name="line-10"></a> Portability: portable-<a name="line-11"></a>-<a name="line-12"></a> Regular Expression Matcher working on lists of XmlTrees-<a name="line-13"></a>-<a name="line-14"></a> It's intendet to import this module with an explicit-<a name="line-15"></a> import declaration for not spoiling the namespace-<a name="line-16"></a> with these somewhat special arrows-<a name="line-17"></a>-<a name="line-18"></a>-}</span>-<a name="line-19"></a>-<a name="line-20"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-21"></a>-<a name="line-22"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlRegex</span>-<a name="line-23"></a> <span class='layout'>(</span> <span class='conid'>XmlRegex</span>-<a name="line-24"></a> <span class='layout'>,</span> <span class='varid'>mkZero</span>-<a name="line-25"></a> <span class='layout'>,</span> <span class='varid'>mkUnit</span>-<a name="line-26"></a> <span class='layout'>,</span> <span class='varid'>mkPrim</span>-<a name="line-27"></a> <span class='layout'>,</span> <span class='varid'>mkPrimA</span>-<a name="line-28"></a> <span class='layout'>,</span> <span class='varid'>mkDot</span>-<a name="line-29"></a> <span class='layout'>,</span> <span class='varid'>mkStar</span>-<a name="line-30"></a> <span class='layout'>,</span> <span class='varid'>mkAlt</span>-<a name="line-31"></a> <span class='layout'>,</span> <span class='varid'>mkSeq</span>-<a name="line-32"></a> <span class='layout'>,</span> <span class='varid'>mkRep</span>-<a name="line-33"></a> <span class='layout'>,</span> <span class='varid'>mkRng</span>-<a name="line-34"></a> <span class='layout'>,</span> <span class='varid'>mkOpt</span>-<a name="line-35"></a> <span class='layout'>,</span> <span class='varid'>nullable</span>-<a name="line-36"></a> <span class='layout'>,</span> <span class='varid'>delta</span>-<a name="line-37"></a> <span class='layout'>,</span> <span class='varid'>matchXmlRegex</span>-<a name="line-38"></a> <span class='layout'>,</span> <span class='varid'>splitXmlRegex</span>-<a name="line-39"></a> <span class='layout'>,</span> <span class='varid'>scanXmlRegex</span>-<a name="line-40"></a> <span class='layout'>,</span> <span class='varid'>matchRegexA</span>-<a name="line-41"></a> <span class='layout'>,</span> <span class='varid'>splitRegexA</span>-<a name="line-42"></a> <span class='layout'>,</span> <span class='varid'>scanRegexA</span>-<a name="line-43"></a> <span class='layout'>)</span>-<a name="line-44"></a><span class='keyword'>where</span>-<a name="line-45"></a>-<a name="line-46"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ListArrows</span>-<a name="line-47"></a>-<a name="line-48"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>-<a name="line-49"></a>-<a name="line-50"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>-<a name="line-51"></a>-<a name="line-52"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-53"></a><span class='comment'>-- the exported regex arrows</span>-<a name="line-54"></a>-<a name="line-55"></a><span class='comment'>-- | check whether a sequence of XmlTrees match an Xml regular expression</span>-<a name="line-56"></a><span class='comment'>--</span>-<a name="line-57"></a><span class='comment'>-- The arrow for 'matchXmlRegex'.</span>-<a name="line-58"></a><span class='comment'>--</span>-<a name="line-59"></a><span class='comment'>-- The expession is build up from simple arrows acting as predicate ('mkPrimA') for</span>-<a name="line-60"></a><span class='comment'>-- an XmlTree and of the usual cobinators for sequence ('mkSeq'), repetition</span>-<a name="line-61"></a><span class='comment'>-- ('mkStar', mkRep', 'mkRng') and choice ('mkAlt', 'mkOpt')</span>-<a name="line-62"></a>-<a name="line-63"></a><a name="matchRegexA"></a><span class='definition'>matchRegexA</span> <span class='keyglyph'>::</span> <span class='conid'>XmlRegex</span> <span class='keyglyph'>-></span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTrees</span>-<a name="line-64"></a><span class='definition'>matchRegexA</span> <span class='varid'>re</span> <span class='varid'>ts</span> <span class='keyglyph'>=</span> <span class='varid'>ts</span> <span class='varop'>>>.</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='keyglyph'>-></span> <span class='varid'>maybe</span> <span class='conid'>[]</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='keyglyph'>[</span><span class='varid'>s</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>matchXmlRegex</span> <span class='varid'>re</span> <span class='varop'>$</span> <span class='varid'>s</span><span class='layout'>)</span>-<a name="line-65"></a>-<a name="line-66"></a><span class='comment'>-- | split the sequence of trees computed by the filter a into</span>-<a name="line-67"></a><span class='comment'>--</span>-<a name="line-68"></a><span class='comment'>-- The arrow for 'splitXmlRegex'.</span>-<a name="line-69"></a><span class='comment'>--</span>-<a name="line-70"></a><span class='comment'>-- a first part matching the regex and a rest,</span>-<a name="line-71"></a><span class='comment'>-- if a prefix of the input sequence does not match the regex, the arrow fails</span>-<a name="line-72"></a><span class='comment'>-- else the pair containing the result lists is returned</span>-<a name="line-73"></a>-<a name="line-74"></a><a name="splitRegexA"></a><span class='definition'>splitRegexA</span> <span class='keyglyph'>::</span> <span class='conid'>XmlRegex</span> <span class='keyglyph'>-></span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='layout'>(</span><span class='conid'>XmlTrees</span><span class='layout'>,</span> <span class='conid'>XmlTrees</span><span class='layout'>)</span>-<a name="line-75"></a><span class='definition'>splitRegexA</span> <span class='varid'>re</span> <span class='varid'>ts</span> <span class='keyglyph'>=</span> <span class='varid'>ts</span> <span class='varop'>>>.</span> <span class='layout'>(</span><span class='varid'>maybeToList</span> <span class='varop'>.</span> <span class='varid'>splitXmlRegex</span> <span class='varid'>re</span><span class='layout'>)</span>-<a name="line-76"></a>-<a name="line-77"></a><span class='comment'>-- | scan the input sequence with a regex and give the result as a list of lists of trees back</span>-<a name="line-78"></a><span class='comment'>-- the regex must at least match one input tree, so the empty sequence should not match the regex</span>-<a name="line-79"></a><span class='comment'>--</span>-<a name="line-80"></a><span class='comment'>-- The arrow for 'scanXmlRegex'.</span>-<a name="line-81"></a>-<a name="line-82"></a><a name="scanRegexA"></a><span class='definition'>scanRegexA</span> <span class='keyglyph'>::</span> <span class='conid'>XmlRegex</span> <span class='keyglyph'>-></span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTrees</span>-<a name="line-83"></a><span class='definition'>scanRegexA</span> <span class='varid'>re</span> <span class='varid'>ts</span> <span class='keyglyph'>=</span> <span class='varid'>ts</span> <span class='varop'>>>.</span> <span class='layout'>(</span><span class='varid'>fromMaybe</span> <span class='conid'>[]</span> <span class='varop'>.</span> <span class='varid'>scanXmlRegex</span> <span class='varid'>re</span><span class='layout'>)</span>-<a name="line-84"></a>-<a name="line-85"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-86"></a>-<a name="line-87"></a><a name="XmlRegex"></a><span class='keyword'>data</span> <span class='conid'>XmlRegex</span> <span class='keyglyph'>=</span> <span class='conid'>Zero</span> <span class='conid'>String</span>-<a name="line-88"></a> <span class='keyglyph'>|</span> <span class='conid'>Unit</span>-<a name="line-89"></a> <span class='keyglyph'>|</span> <span class='conid'>Sym</span> <span class='layout'>(</span><span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span><span class='layout'>)</span>-<a name="line-90"></a> <span class='keyglyph'>|</span> <span class='conid'>Dot</span>-<a name="line-91"></a> <span class='keyglyph'>|</span> <span class='conid'>Star</span> <span class='conid'>XmlRegex</span>-<a name="line-92"></a> <span class='keyglyph'>|</span> <span class='conid'>Alt</span> <span class='conid'>XmlRegex</span> <span class='conid'>XmlRegex</span>-<a name="line-93"></a> <span class='keyglyph'>|</span> <span class='conid'>Seq</span> <span class='conid'>XmlRegex</span> <span class='conid'>XmlRegex</span>-<a name="line-94"></a> <span class='keyglyph'>|</span> <span class='conid'>Rep</span> <span class='conid'>Int</span> <span class='conid'>XmlRegex</span> <span class='comment'>-- 1 or more repetitions</span>-<a name="line-95"></a> <span class='keyglyph'>|</span> <span class='conid'>Rng</span> <span class='conid'>Int</span> <span class='conid'>Int</span> <span class='conid'>XmlRegex</span> <span class='comment'>-- n..m repetitions</span>-<a name="line-96"></a>-<a name="line-97"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-98"></a>-<a name="line-99"></a><span class='comment'>{- just for documentation-<a name="line-100"></a>-<a name="line-101"></a>class Inv a where-<a name="line-102"></a> inv :: a -> Bool-<a name="line-103"></a>-<a name="line-104"></a>instance Inv XmlRegex where-<a name="line-105"></a> inv (Zero _) = True-<a name="line-106"></a> inv Unit = True-<a name="line-107"></a> inv (Sym p) = p holds for some XmlTrees-<a name="line-108"></a> inv Dot = True-<a name="line-109"></a> inv (Star e) = inv e-<a name="line-110"></a> inv (Alt e1 e2) = inv e1 &&-<a name="line-111"></a> inv e2-<a name="line-112"></a> inv (Seq e1 e2) = inv e1 &&-<a name="line-113"></a> inv e2-<a name="line-114"></a> inv (Rep i e) = i > 0 && inv e-<a name="line-115"></a> inv (Rng i j e) = (i < j || (i == j && i > 1)) &&-<a name="line-116"></a> inv e-<a name="line-117"></a>-}</span>-<a name="line-118"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-119"></a><span class='comment'>--</span>-<a name="line-120"></a><span class='comment'>-- smart constructors</span>-<a name="line-121"></a>-<a name="line-122"></a><a name="mkZero"></a><span class='definition'>mkZero</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>XmlRegex</span>-<a name="line-123"></a><span class='definition'>mkZero</span> <span class='keyglyph'>=</span> <span class='conid'>Zero</span>-<a name="line-124"></a>-<a name="line-125"></a><a name="mkUnit"></a><span class='definition'>mkUnit</span> <span class='keyglyph'>::</span> <span class='conid'>XmlRegex</span>-<a name="line-126"></a><span class='definition'>mkUnit</span> <span class='keyglyph'>=</span> <span class='conid'>Unit</span>-<a name="line-127"></a>-<a name="line-128"></a><a name="mkPrim"></a><span class='definition'>mkPrim</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>XmlRegex</span>-<a name="line-129"></a><span class='definition'>mkPrim</span> <span class='keyglyph'>=</span> <span class='conid'>Sym</span>-<a name="line-130"></a>-<a name="line-131"></a><a name="mkPrimA"></a><span class='definition'>mkPrimA</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XmlRegex</span>-<a name="line-132"></a><span class='definition'>mkPrimA</span> <span class='varid'>a</span> <span class='keyglyph'>=</span> <span class='varid'>mkPrim</span> <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>null</span> <span class='varop'>.</span> <span class='varid'>runLA</span> <span class='varid'>a</span><span class='layout'>)</span>-<a name="line-133"></a>-<a name="line-134"></a><a name="mkDot"></a><span class='definition'>mkDot</span> <span class='keyglyph'>::</span> <span class='conid'>XmlRegex</span>-<a name="line-135"></a><span class='definition'>mkDot</span> <span class='keyglyph'>=</span> <span class='conid'>Dot</span>-<a name="line-136"></a>-<a name="line-137"></a><a name="mkStar"></a><span class='definition'>mkStar</span> <span class='keyglyph'>::</span> <span class='conid'>XmlRegex</span> <span class='keyglyph'>-></span> <span class='conid'>XmlRegex</span>-<a name="line-138"></a><span class='definition'>mkStar</span> <span class='layout'>(</span><span class='conid'>Zero</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>mkUnit</span> <span class='comment'>-- {}* == ()</span>-<a name="line-139"></a><span class='definition'>mkStar</span> <span class='varid'>e</span><span class='keyglyph'>@</span><span class='conid'>Unit</span> <span class='keyglyph'>=</span> <span class='varid'>e</span> <span class='comment'>-- ()* == ()</span>-<a name="line-140"></a><span class='definition'>mkStar</span> <span class='varid'>e</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Star</span> <span class='sel'>_e1</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>e</span> <span class='comment'>-- (r*)* == r*</span>-<a name="line-141"></a><span class='definition'>mkStar</span> <span class='layout'>(</span><span class='conid'>Rep</span> <span class='num'>1</span> <span class='varid'>e1</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>mkStar</span> <span class='varid'>e1</span> <span class='comment'>-- (r+)* == r*</span>-<a name="line-142"></a><span class='definition'>mkStar</span> <span class='varid'>e</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Alt</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>Star</span> <span class='layout'>(</span><span class='varid'>rmStar</span> <span class='varid'>e</span><span class='layout'>)</span> <span class='comment'>-- (a*|b)* == (a|b)*</span>-<a name="line-143"></a><span class='definition'>mkStar</span> <span class='varid'>e</span> <span class='keyglyph'>=</span> <span class='conid'>Star</span> <span class='varid'>e</span>-<a name="line-144"></a>-<a name="line-145"></a><a name="rmStar"></a><span class='definition'>rmStar</span> <span class='keyglyph'>::</span> <span class='conid'>XmlRegex</span> <span class='keyglyph'>-></span> <span class='conid'>XmlRegex</span>-<a name="line-146"></a><span class='definition'>rmStar</span> <span class='layout'>(</span><span class='conid'>Alt</span> <span class='varid'>e1</span> <span class='varid'>e2</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>mkAlt</span> <span class='layout'>(</span><span class='varid'>rmStar</span> <span class='varid'>e1</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>rmStar</span> <span class='varid'>e2</span><span class='layout'>)</span>-<a name="line-147"></a><span class='definition'>rmStar</span> <span class='layout'>(</span><span class='conid'>Star</span> <span class='varid'>e1</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>rmStar</span> <span class='varid'>e1</span>-<a name="line-148"></a><span class='definition'>rmStar</span> <span class='layout'>(</span><span class='conid'>Rep</span> <span class='num'>1</span> <span class='varid'>e1</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>rmStar</span> <span class='varid'>e1</span>-<a name="line-149"></a><span class='definition'>rmStar</span> <span class='varid'>e1</span> <span class='keyglyph'>=</span> <span class='varid'>e1</span>-<a name="line-150"></a>-<a name="line-151"></a><a name="mkAlt"></a><span class='definition'>mkAlt</span> <span class='keyglyph'>::</span> <span class='conid'>XmlRegex</span> <span class='keyglyph'>-></span> <span class='conid'>XmlRegex</span> <span class='keyglyph'>-></span> <span class='conid'>XmlRegex</span>-<a name="line-152"></a><span class='definition'>mkAlt</span> <span class='varid'>e1</span> <span class='layout'>(</span><span class='conid'>Zero</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>e1</span> <span class='comment'>-- e1 u {} = e1</span>-<a name="line-153"></a><span class='definition'>mkAlt</span> <span class='layout'>(</span><span class='conid'>Zero</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='varid'>e2</span> <span class='keyglyph'>=</span> <span class='varid'>e2</span> <span class='comment'>-- {} u e2 = e2</span>-<a name="line-154"></a><span class='definition'>mkAlt</span> <span class='varid'>e1</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Star</span> <span class='conid'>Dot</span><span class='layout'>)</span> <span class='sel'>_e2</span> <span class='keyglyph'>=</span> <span class='varid'>e1</span> <span class='comment'>-- A* u e1 = A*</span>-<a name="line-155"></a><span class='definition'>mkAlt</span> <span class='sel'>_e1</span> <span class='varid'>e2</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Star</span> <span class='conid'>Dot</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>e2</span> <span class='comment'>-- e1 u A* = A*</span>-<a name="line-156"></a><span class='definition'>mkAlt</span> <span class='layout'>(</span><span class='conid'>Sym</span> <span class='varid'>p1</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>Sym</span> <span class='varid'>p2</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>mkPrim</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='varid'>p1</span> <span class='varid'>x</span> <span class='varop'>||</span> <span class='varid'>p2</span> <span class='varid'>x</span> <span class='comment'>-- melting of predicates</span>-<a name="line-157"></a><span class='definition'>mkAlt</span> <span class='varid'>e1</span> <span class='varid'>e2</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Sym</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>mkAlt</span> <span class='varid'>e2</span> <span class='varid'>e1</span> <span class='comment'>-- symmetry: predicates always first</span>-<a name="line-158"></a><span class='definition'>mkAlt</span> <span class='varid'>e1</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Sym</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>Alt</span> <span class='varid'>e2</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Sym</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='varid'>e3</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>mkAlt</span> <span class='layout'>(</span><span class='varid'>mkAlt</span> <span class='varid'>e1</span> <span class='varid'>e2</span><span class='layout'>)</span> <span class='varid'>e3</span> <span class='comment'>-- prepare melting of predicates</span>-<a name="line-159"></a><span class='definition'>mkAlt</span> <span class='layout'>(</span><span class='conid'>Alt</span> <span class='varid'>e1</span> <span class='varid'>e2</span><span class='layout'>)</span> <span class='varid'>e3</span> <span class='keyglyph'>=</span> <span class='varid'>mkAlt</span> <span class='varid'>e1</span> <span class='layout'>(</span><span class='varid'>mkAlt</span> <span class='varid'>e2</span> <span class='varid'>e3</span><span class='layout'>)</span> <span class='comment'>-- associativity</span>-<a name="line-160"></a><span class='definition'>mkAlt</span> <span class='varid'>e1</span> <span class='varid'>e2</span> <span class='keyglyph'>=</span> <span class='conid'>Alt</span> <span class='varid'>e1</span> <span class='varid'>e2</span>-<a name="line-161"></a>-<a name="line-162"></a><a name="mkSeq"></a><span class='definition'>mkSeq</span> <span class='keyglyph'>::</span> <span class='conid'>XmlRegex</span> <span class='keyglyph'>-></span> <span class='conid'>XmlRegex</span> <span class='keyglyph'>-></span> <span class='conid'>XmlRegex</span>-<a name="line-163"></a><span class='definition'>mkSeq</span> <span class='varid'>e1</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Zero</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='sel'>_e2</span> <span class='keyglyph'>=</span> <span class='varid'>e1</span>-<a name="line-164"></a><span class='definition'>mkSeq</span> <span class='sel'>_e1</span> <span class='varid'>e2</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Zero</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>e2</span>-<a name="line-165"></a><span class='definition'>mkSeq</span> <span class='conid'>Unit</span> <span class='varid'>e2</span> <span class='keyglyph'>=</span> <span class='varid'>e2</span>-<a name="line-166"></a><span class='definition'>mkSeq</span> <span class='varid'>e1</span> <span class='conid'>Unit</span> <span class='keyglyph'>=</span> <span class='varid'>e1</span>-<a name="line-167"></a><span class='definition'>mkSeq</span> <span class='layout'>(</span><span class='conid'>Seq</span> <span class='varid'>e1</span> <span class='varid'>e2</span><span class='layout'>)</span> <span class='varid'>e3</span> <span class='keyglyph'>=</span> <span class='varid'>mkSeq</span> <span class='varid'>e1</span> <span class='layout'>(</span><span class='varid'>mkSeq</span> <span class='varid'>e2</span> <span class='varid'>e3</span><span class='layout'>)</span>-<a name="line-168"></a><span class='definition'>mkSeq</span> <span class='varid'>e1</span> <span class='varid'>e2</span> <span class='keyglyph'>=</span> <span class='conid'>Seq</span> <span class='varid'>e1</span> <span class='varid'>e2</span>-<a name="line-169"></a>-<a name="line-170"></a><a name="mkRep"></a><span class='definition'>mkRep</span> <span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-></span> <span class='conid'>XmlRegex</span> <span class='keyglyph'>-></span> <span class='conid'>XmlRegex</span>-<a name="line-171"></a><span class='definition'>mkRep</span> <span class='num'>0</span> <span class='varid'>e</span> <span class='keyglyph'>=</span> <span class='varid'>mkStar</span> <span class='varid'>e</span>-<a name="line-172"></a><span class='definition'>mkRep</span> <span class='keyword'>_</span> <span class='varid'>e</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Zero</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>e</span>-<a name="line-173"></a><span class='definition'>mkRep</span> <span class='keyword'>_</span> <span class='varid'>e</span><span class='keyglyph'>@</span><span class='conid'>Unit</span> <span class='keyglyph'>=</span> <span class='varid'>e</span>-<a name="line-174"></a><span class='definition'>mkRep</span> <span class='varid'>i</span> <span class='varid'>e</span> <span class='keyglyph'>=</span> <span class='conid'>Rep</span> <span class='varid'>i</span> <span class='varid'>e</span>-<a name="line-175"></a>-<a name="line-176"></a><a name="mkRng"></a><span class='definition'>mkRng</span> <span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-></span> <span class='conid'>Int</span> <span class='keyglyph'>-></span> <span class='conid'>XmlRegex</span> <span class='keyglyph'>-></span> <span class='conid'>XmlRegex</span>-<a name="line-177"></a><span class='definition'>mkRng</span> <span class='num'>0</span> <span class='num'>0</span> <span class='sel'>_e</span> <span class='keyglyph'>=</span> <span class='varid'>mkUnit</span>-<a name="line-178"></a><span class='definition'>mkRng</span> <span class='num'>1</span> <span class='num'>1</span> <span class='varid'>e</span> <span class='keyglyph'>=</span> <span class='varid'>e</span>-<a name="line-179"></a><span class='definition'>mkRng</span> <span class='varid'>lb</span> <span class='varid'>ub</span> <span class='sel'>_e</span>-<a name="line-180"></a> <span class='keyglyph'>|</span> <span class='varid'>lb</span> <span class='varop'>></span> <span class='varid'>ub</span> <span class='keyglyph'>=</span> <span class='conid'>Zero</span> <span class='varop'>$</span>-<a name="line-181"></a> <span class='str'>"illegal range "</span> <span class='varop'>++</span>-<a name="line-182"></a> <span class='varid'>show</span> <span class='varid'>lb</span> <span class='varop'>++</span> <span class='str'>".."</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>ub</span>-<a name="line-183"></a><span class='definition'>mkRng</span> <span class='sel'>_l</span> <span class='sel'>_u</span> <span class='varid'>e</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Zero</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>e</span>-<a name="line-184"></a><span class='definition'>mkRng</span> <span class='sel'>_l</span> <span class='sel'>_u</span> <span class='varid'>e</span><span class='keyglyph'>@</span><span class='conid'>Unit</span> <span class='keyglyph'>=</span> <span class='varid'>e</span>-<a name="line-185"></a><span class='definition'>mkRng</span> <span class='varid'>lb</span> <span class='varid'>ub</span> <span class='varid'>e</span> <span class='keyglyph'>=</span> <span class='conid'>Rng</span> <span class='varid'>lb</span> <span class='varid'>ub</span> <span class='varid'>e</span>-<a name="line-186"></a>-<a name="line-187"></a><a name="mkOpt"></a><span class='definition'>mkOpt</span> <span class='keyglyph'>::</span> <span class='conid'>XmlRegex</span> <span class='keyglyph'>-></span> <span class='conid'>XmlRegex</span>-<a name="line-188"></a><span class='definition'>mkOpt</span> <span class='keyglyph'>=</span> <span class='varid'>mkRng</span> <span class='num'>0</span> <span class='num'>1</span>-<a name="line-189"></a>-<a name="line-190"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-191"></a>-<a name="line-192"></a><span class='keyword'>instance</span> <span class='conid'>Show</span> <span class='conid'>XmlRegex</span> <span class='keyword'>where</span>-<a name="line-193"></a> <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>Zero</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>"{err:"</span> <span class='varop'>++</span> <span class='varid'>s</span> <span class='varop'>++</span> <span class='str'>"}"</span>-<a name="line-194"></a> <span class='varid'>show</span> <span class='conid'>Unit</span> <span class='keyglyph'>=</span> <span class='str'>"()"</span>-<a name="line-195"></a> <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>Sym</span> <span class='sel'>_p</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>"{single tree pred}"</span>-<a name="line-196"></a> <span class='varid'>show</span> <span class='conid'>Dot</span> <span class='keyglyph'>=</span> <span class='str'>"."</span>-<a name="line-197"></a> <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>Star</span> <span class='varid'>e</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>"("</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>")*"</span>-<a name="line-198"></a> <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>Alt</span> <span class='varid'>e1</span> <span class='varid'>e2</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>"("</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>e1</span> <span class='varop'>++</span> <span class='str'>"|"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>e2</span> <span class='varop'>++</span> <span class='str'>")"</span>-<a name="line-199"></a> <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>Seq</span> <span class='varid'>e1</span> <span class='varid'>e2</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>show</span> <span class='varid'>e1</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>e2</span>-<a name="line-200"></a> <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>Rep</span> <span class='num'>1</span> <span class='varid'>e</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>"("</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>")+"</span>-<a name="line-201"></a> <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>Rep</span> <span class='varid'>i</span> <span class='varid'>e</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>"("</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>"){"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>i</span> <span class='varop'>++</span> <span class='str'>",}"</span>-<a name="line-202"></a> <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>Rng</span> <span class='num'>0</span> <span class='num'>1</span> <span class='varid'>e</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>"("</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>")?"</span>-<a name="line-203"></a> <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>Rng</span> <span class='varid'>i</span> <span class='varid'>j</span> <span class='varid'>e</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>"("</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>"){"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>i</span> <span class='varop'>++</span> <span class='str'>","</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>j</span> <span class='varop'>++</span> <span class='str'>"}"</span>-<a name="line-204"></a>-<a name="line-205"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-206"></a>-<a name="line-207"></a><a name="nullable"></a><span class='definition'>nullable</span> <span class='keyglyph'>::</span> <span class='conid'>XmlRegex</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-208"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>Zero</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-209"></a><span class='definition'>nullable</span> <span class='conid'>Unit</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-210"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>Sym</span> <span class='sel'>_p</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>False</span> <span class='comment'>-- assumption: p holds for at least one tree</span>-<a name="line-211"></a><span class='definition'>nullable</span> <span class='conid'>Dot</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-212"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>Star</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-213"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>Alt</span> <span class='varid'>e1</span> <span class='varid'>e2</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>nullable</span> <span class='varid'>e1</span> <span class='varop'>||</span>-<a name="line-214"></a> <span class='varid'>nullable</span> <span class='varid'>e2</span>-<a name="line-215"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>Seq</span> <span class='varid'>e1</span> <span class='varid'>e2</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>nullable</span> <span class='varid'>e1</span> <span class='varop'>&&</span>-<a name="line-216"></a> <span class='varid'>nullable</span> <span class='varid'>e2</span>-<a name="line-217"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>Rep</span> <span class='sel'>_i</span> <span class='varid'>e</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>nullable</span> <span class='varid'>e</span>-<a name="line-218"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>Rng</span> <span class='varid'>i</span> <span class='keyword'>_</span> <span class='varid'>e</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>i</span> <span class='varop'>==</span> <span class='num'>0</span> <span class='varop'>||</span>-<a name="line-219"></a> <span class='varid'>nullable</span> <span class='varid'>e</span>-<a name="line-220"></a>-<a name="line-221"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-222"></a>-<a name="line-223"></a><a name="delta"></a><span class='definition'>delta</span> <span class='keyglyph'>::</span> <span class='conid'>XmlRegex</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XmlRegex</span>-<a name="line-224"></a><span class='definition'>delta</span> <span class='varid'>e</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Zero</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='varid'>e</span>-<a name="line-225"></a><span class='definition'>delta</span> <span class='conid'>Unit</span> <span class='varid'>c</span> <span class='keyglyph'>=</span> <span class='varid'>mkZero</span> <span class='varop'>$</span>-<a name="line-226"></a> <span class='str'>"unexpected char "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>c</span>-<a name="line-227"></a><span class='definition'>delta</span> <span class='layout'>(</span><span class='conid'>Sym</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='varid'>c</span>-<a name="line-228"></a> <span class='keyglyph'>|</span> <span class='varid'>p</span> <span class='varid'>c</span> <span class='keyglyph'>=</span> <span class='varid'>mkUnit</span>-<a name="line-229"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>mkZero</span> <span class='varop'>$</span>-<a name="line-230"></a> <span class='str'>"unexpected tree "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>c</span>-<a name="line-231"></a><span class='definition'>delta</span> <span class='conid'>Dot</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='varid'>mkUnit</span>-<a name="line-232"></a><span class='definition'>delta</span> <span class='varid'>e</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Star</span> <span class='varid'>e1</span><span class='layout'>)</span> <span class='varid'>c</span> <span class='keyglyph'>=</span> <span class='varid'>mkSeq</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>e1</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='varid'>e</span>-<a name="line-233"></a><span class='definition'>delta</span> <span class='layout'>(</span><span class='conid'>Alt</span> <span class='varid'>e1</span> <span class='varid'>e2</span><span class='layout'>)</span> <span class='varid'>c</span> <span class='keyglyph'>=</span> <span class='varid'>mkAlt</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>e1</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>e2</span> <span class='varid'>c</span><span class='layout'>)</span>-<a name="line-234"></a><span class='definition'>delta</span> <span class='layout'>(</span><span class='conid'>Seq</span> <span class='varid'>e1</span> <span class='varid'>e2</span><span class='layout'>)</span> <span class='varid'>c</span>-<a name="line-235"></a> <span class='keyglyph'>|</span> <span class='varid'>nullable</span> <span class='varid'>e1</span> <span class='keyglyph'>=</span> <span class='varid'>mkAlt</span> <span class='layout'>(</span><span class='varid'>mkSeq</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>e1</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='varid'>e2</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>e2</span> <span class='varid'>c</span><span class='layout'>)</span>-<a name="line-236"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>mkSeq</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>e1</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='varid'>e2</span>-<a name="line-237"></a><span class='definition'>delta</span> <span class='layout'>(</span><span class='conid'>Rep</span> <span class='varid'>i</span> <span class='varid'>e</span><span class='layout'>)</span> <span class='varid'>c</span> <span class='keyglyph'>=</span> <span class='varid'>mkSeq</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>e</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>mkRep</span> <span class='layout'>(</span><span class='varid'>i</span><span class='comment'>-</span><span class='num'>1</span><span class='layout'>)</span> <span class='varid'>e</span><span class='layout'>)</span>-<a name="line-238"></a><span class='definition'>delta</span> <span class='layout'>(</span><span class='conid'>Rng</span> <span class='varid'>i</span> <span class='varid'>j</span> <span class='varid'>e</span><span class='layout'>)</span> <span class='varid'>c</span> <span class='keyglyph'>=</span> <span class='varid'>mkSeq</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>e</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>mkRng</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>i</span><span class='comment'>-</span><span class='num'>1</span><span class='layout'>)</span> <span class='varop'>`max`</span> <span class='num'>0</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>j</span><span class='comment'>-</span><span class='num'>1</span><span class='layout'>)</span> <span class='varid'>e</span><span class='layout'>)</span>-<a name="line-239"></a>-<a name="line-240"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-241"></a>-<a name="line-242"></a><a name="delta'"></a><span class='definition'>delta'</span> <span class='keyglyph'>::</span> <span class='conid'>XmlRegex</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>XmlRegex</span>-<a name="line-243"></a><span class='definition'>delta'</span> <span class='keyglyph'>=</span> <span class='varid'>foldl</span> <span class='varid'>delta</span>-<a name="line-244"></a>-<a name="line-245"></a><span class='comment'>-- | match a sequence of XML trees with a regular expression over trees</span>-<a name="line-246"></a><span class='comment'>--</span>-<a name="line-247"></a><span class='comment'>-- If the input matches, the result is Nothing, else Just an error message is returned</span>-<a name="line-248"></a>-<a name="line-249"></a><a name="matchXmlRegex"></a><span class='definition'>matchXmlRegex</span> <span class='keyglyph'>::</span> <span class='conid'>XmlRegex</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>Maybe</span> <span class='conid'>String</span>-<a name="line-250"></a><span class='definition'>matchXmlRegex</span> <span class='varid'>e</span>-<a name="line-251"></a> <span class='keyglyph'>=</span> <span class='varid'>res</span> <span class='varop'>.</span> <span class='varid'>delta'</span> <span class='varid'>e</span>-<a name="line-252"></a> <span class='keyword'>where</span>-<a name="line-253"></a> <span class='varid'>res</span> <span class='layout'>(</span><span class='conid'>Zero</span> <span class='varid'>er</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='varid'>er</span>-<a name="line-254"></a> <span class='varid'>res</span> <span class='varid'>re</span>-<a name="line-255"></a> <span class='keyglyph'>|</span> <span class='varid'>nullable</span> <span class='varid'>re</span> <span class='keyglyph'>=</span> <span class='conid'>Nothing</span> <span class='comment'>-- o.k.</span>-<a name="line-256"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='varop'>$</span> <span class='str'>"input does not match "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>e</span>-<a name="line-257"></a>-<a name="line-258"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-259"></a>-<a name="line-260"></a><span class='comment'>-- | split a sequence of XML trees into a pair of a a matching prefix and a rest</span>-<a name="line-261"></a><span class='comment'>--</span>-<a name="line-262"></a><span class='comment'>-- If there is no matching prefix, Nothing is returned</span>-<a name="line-263"></a>-<a name="line-264"></a><a name="splitXmlRegex"></a><span class='definition'>splitXmlRegex</span> <span class='keyglyph'>::</span> <span class='conid'>XmlRegex</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>Maybe</span> <span class='layout'>(</span><span class='conid'>XmlTrees</span><span class='layout'>,</span> <span class='conid'>XmlTrees</span><span class='layout'>)</span>-<a name="line-265"></a><span class='definition'>splitXmlRegex</span> <span class='varid'>re</span> <span class='keyglyph'>=</span> <span class='varid'>splitXmlRegex'</span> <span class='varid'>re</span> <span class='conid'>[]</span>-<a name="line-266"></a>-<a name="line-267"></a><a name="splitXmlRegex'"></a><span class='definition'>splitXmlRegex'</span> <span class='keyglyph'>::</span> <span class='conid'>XmlRegex</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>Maybe</span> <span class='layout'>(</span><span class='conid'>XmlTrees</span><span class='layout'>,</span> <span class='conid'>XmlTrees</span><span class='layout'>)</span>-<a name="line-268"></a><span class='definition'>splitXmlRegex'</span> <span class='varid'>re</span> <span class='varid'>res</span> <span class='conid'>[]</span>-<a name="line-269"></a> <span class='keyglyph'>|</span> <span class='varid'>nullable</span> <span class='varid'>re</span> <span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='layout'>(</span><span class='varid'>reverse</span> <span class='varid'>res</span><span class='layout'>,</span> <span class='conid'>[]</span><span class='layout'>)</span>-<a name="line-270"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='conid'>Nothing</span>-<a name="line-271"></a>-<a name="line-272"></a><span class='definition'>splitXmlRegex'</span> <span class='layout'>(</span><span class='conid'>Zero</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyword'>_</span> <span class='keyword'>_</span>-<a name="line-273"></a> <span class='keyglyph'>=</span> <span class='conid'>Nothing</span>-<a name="line-274"></a>-<a name="line-275"></a><span class='definition'>splitXmlRegex'</span> <span class='varid'>re</span> <span class='varid'>res</span> <span class='varid'>xs</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='varid'>x</span><span class='conop'>:</span><span class='varid'>xs'</span><span class='layout'>)</span>-<a name="line-276"></a> <span class='keyglyph'>|</span> <span class='varid'>isJust</span> <span class='varid'>res'</span> <span class='keyglyph'>=</span> <span class='varid'>res'</span>-<a name="line-277"></a> <span class='keyglyph'>|</span> <span class='varid'>nullable</span> <span class='varid'>re</span> <span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='layout'>(</span><span class='varid'>reverse</span> <span class='varid'>res</span><span class='layout'>,</span> <span class='varid'>xs</span><span class='layout'>)</span>-<a name="line-278"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='conid'>Nothing</span>-<a name="line-279"></a> <span class='keyword'>where</span>-<a name="line-280"></a> <span class='varid'>re'</span> <span class='keyglyph'>=</span> <span class='varid'>delta</span> <span class='varid'>re</span> <span class='varid'>x</span>-<a name="line-281"></a> <span class='varid'>res'</span> <span class='keyglyph'>=</span> <span class='varid'>splitXmlRegex'</span> <span class='varid'>re'</span> <span class='layout'>(</span><span class='varid'>x</span><span class='conop'>:</span><span class='varid'>res</span><span class='layout'>)</span> <span class='varid'>xs'</span>-<a name="line-282"></a>-<a name="line-283"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-284"></a>-<a name="line-285"></a><span class='comment'>-- | scan a sequence of XML trees and split it into parts matching the given regex</span>-<a name="line-286"></a><span class='comment'>--</span>-<a name="line-287"></a><span class='comment'>-- If the parts cannot be split because of a missing match, or because of the</span>-<a name="line-288"></a><span class='comment'>-- empty sequence as match, Nothing is returned</span>-<a name="line-289"></a>-<a name="line-290"></a><a name="scanXmlRegex"></a><span class='definition'>scanXmlRegex</span> <span class='keyglyph'>::</span> <span class='conid'>XmlRegex</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>Maybe</span> <span class='keyglyph'>[</span><span class='conid'>XmlTrees</span><span class='keyglyph'>]</span>-<a name="line-291"></a><span class='definition'>scanXmlRegex</span> <span class='varid'>re</span> <span class='varid'>ts</span> <span class='keyglyph'>=</span> <span class='varid'>scanXmlRegex'</span> <span class='varid'>re</span> <span class='layout'>(</span><span class='varid'>splitXmlRegex</span> <span class='varid'>re</span> <span class='varid'>ts</span><span class='layout'>)</span>-<a name="line-292"></a>-<a name="line-293"></a><a name="scanXmlRegex'"></a><span class='definition'>scanXmlRegex'</span> <span class='keyglyph'>::</span> <span class='conid'>XmlRegex</span> <span class='keyglyph'>-></span> <span class='conid'>Maybe</span> <span class='layout'>(</span><span class='conid'>XmlTrees</span><span class='layout'>,</span> <span class='conid'>XmlTrees</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>Maybe</span> <span class='keyglyph'>[</span><span class='conid'>XmlTrees</span><span class='keyglyph'>]</span>-<a name="line-294"></a><span class='definition'>scanXmlRegex'</span> <span class='keyword'>_</span> <span class='conid'>Nothing</span> <span class='keyglyph'>=</span> <span class='conid'>Nothing</span>-<a name="line-295"></a><span class='definition'>scanXmlRegex'</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='layout'>(</span><span class='varid'>rs</span><span class='layout'>,</span> <span class='conid'>[]</span><span class='layout'>)</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='keyglyph'>[</span><span class='varid'>rs</span><span class='keyglyph'>]</span>-<a name="line-296"></a><span class='definition'>scanXmlRegex'</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='layout'>(</span><span class='conid'>[]</span><span class='layout'>,</span> <span class='keyword'>_</span><span class='layout'>)</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>Nothing</span> <span class='comment'>-- re is nullable (the empty word matches), nothing split off</span>-<a name="line-297"></a> <span class='comment'>-- would give infinite list of empty lists</span>-<a name="line-298"></a><span class='definition'>scanXmlRegex'</span> <span class='varid'>re</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='layout'>(</span><span class='varid'>rs</span><span class='layout'>,</span> <span class='varid'>rest</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-299"></a> <span class='keyglyph'>|</span> <span class='varid'>isNothing</span> <span class='varid'>res</span> <span class='keyglyph'>=</span> <span class='conid'>Nothing</span>-<a name="line-300"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='layout'>(</span><span class='varid'>rs</span> <span class='conop'>:</span> <span class='varid'>fromJust</span> <span class='varid'>res</span><span class='layout'>)</span>-<a name="line-301"></a> <span class='keyword'>where</span>-<a name="line-302"></a> <span class='varid'>res</span> <span class='keyglyph'>=</span> <span class='varid'>scanXmlRegex'</span> <span class='varid'>re</span> <span class='layout'>(</span><span class='varid'>splitXmlRegex</span> <span class='varid'>re</span> <span class='varid'>rest</span><span class='layout'>)</span>-<a name="line-303"></a>-<a name="line-304"></a><span class='comment'>-- ------------------------------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-Arrow.html
@@ -1,84 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Text.XML.HXT.Arrow-<a name="line-5"></a> Copyright : Copyright (C) 2006 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe@fh-wedel.de)-<a name="line-9"></a> Stability : experimental-<a name="line-10"></a> Portability: portable-<a name="line-11"></a> Version : $Id: Arrow.hs,v 1.12 2006/11/11 15:36:04 hxml Exp $-<a name="line-12"></a>-<a name="line-13"></a> The HXT arrow interface-<a name="line-14"></a>-<a name="line-15"></a> The application programming interface to the arrow modules of the Haskell XML Toolbox.-<a name="line-16"></a> This module exports all important arrows for input, output, parsing, validating and transforming XML.-<a name="line-17"></a> It also exports all basic datatypes and functions of the toolbox.-<a name="line-18"></a>-<a name="line-19"></a>-}</span>-<a name="line-20"></a>-<a name="line-21"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-22"></a>-<a name="line-23"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span>-<a name="line-24"></a> <span class='layout'>(</span> <span class='keyword'>module</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ListArrows</span>-<a name="line-25"></a>-<a name="line-26"></a> <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>-<a name="line-27"></a>-<a name="line-28"></a> <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlArrow</span>-<a name="line-29"></a> <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlIOStateArrow</span>-<a name="line-30"></a> <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XPath</span>-<a name="line-31"></a>-<a name="line-32"></a> <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>DocumentInput</span>-<a name="line-33"></a> <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>DocumentOutput</span>-<a name="line-34"></a> <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>Edit</span>-<a name="line-35"></a> <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>GeneralEntitySubstitution</span>-<a name="line-36"></a> <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>Namespace</span>-<a name="line-37"></a> <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ProcessDocument</span>-<a name="line-38"></a> <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ReadDocument</span>-<a name="line-39"></a> <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>WriteDocument</span>-<a name="line-40"></a> <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>Pickle</span>-<a name="line-41"></a>-<a name="line-42"></a> <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XSLT</span><span class='varop'>.</span><span class='conid'>XsltArrows</span>-<a name="line-43"></a>-<a name="line-44"></a> <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Version</span>-<a name="line-45"></a> <span class='layout'>)</span>-<a name="line-46"></a><span class='keyword'>where</span>-<a name="line-47"></a>-<a name="line-48"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ListArrows</span> <span class='comment'>-- arrow classes</span>-<a name="line-49"></a>-<a name="line-50"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Atom</span> <span class='conid'>()</span> <span class='comment'>-- import this explicitly</span>-<a name="line-51"></a>-<a name="line-52"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>-<a name="line-53"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>DocumentInput</span>-<a name="line-54"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>DocumentOutput</span>-<a name="line-55"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>Edit</span>-<a name="line-56"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>GeneralEntitySubstitution</span>-<a name="line-57"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>Namespace</span>-<a name="line-58"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>Pickle</span>-<a name="line-59"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ProcessDocument</span>-<a name="line-60"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ReadDocument</span>-<a name="line-61"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>WriteDocument</span>-<a name="line-62"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlArrow</span>-<a name="line-63"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlIOStateArrow</span>-<a name="line-64"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlRegex</span> <span class='conid'>()</span> <span class='comment'>-- import this explicitly</span>-<a name="line-65"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XPath</span>-<a name="line-66"></a>-<a name="line-67"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XPathSimple</span> <span class='conid'>()</span> <span class='comment'>-- import this explicitly</span>-<a name="line-68"></a>-<a name="line-69"></a>-<a name="line-70"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XSLT</span><span class='varop'>.</span><span class='conid'>XsltArrows</span>-<a name="line-71"></a>-<a name="line-72"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Version</span>-<a name="line-73"></a>-<a name="line-74"></a><span class='comment'>-- ------------------------------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-DOM-FormatXmlTree.html
@@ -1,84 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Text.XML.HXT.DOM.FormatXmlTree-<a name="line-5"></a> Copyright : Copyright (C) 2008 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe@fh-wedel.de)-<a name="line-9"></a> Stability : stable-<a name="line-10"></a> Portability: portable-<a name="line-11"></a>-<a name="line-12"></a> Format a xml tree in tree representation-<a name="line-13"></a>-<a name="line-14"></a>-}</span>-<a name="line-15"></a>-<a name="line-16"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-17"></a>-<a name="line-18"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>FormatXmlTree</span>-<a name="line-19"></a> <span class='layout'>(</span> <span class='varid'>formatXmlTree</span>-<a name="line-20"></a> <span class='layout'>,</span> <span class='varid'>formatXmlContents</span>-<a name="line-21"></a> <span class='layout'>)</span>-<a name="line-22"></a><span class='keyword'>where</span>-<a name="line-23"></a>-<a name="line-24"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>-<a name="line-25"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>ShowXml</span>-<a name="line-26"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlNode</span>-<a name="line-27"></a>-<a name="line-28"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>-<a name="line-29"></a>-<a name="line-30"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-31"></a>-<a name="line-32"></a>-<a name="line-33"></a><a name="formatXmlContents"></a><span class='definition'>formatXmlContents</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span>-<a name="line-34"></a><span class='definition'>formatXmlContents</span> <span class='varid'>t</span>-<a name="line-35"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>mkText</span> <span class='layout'>(</span><span class='varid'>formatXmlTree</span> <span class='varid'>t</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-36"></a>-<a name="line-37"></a><a name="formatXmlTree"></a><span class='definition'>formatXmlTree</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-38"></a><span class='definition'>formatXmlTree</span>-<a name="line-39"></a> <span class='keyglyph'>=</span> <span class='varid'>formatTree</span> <span class='varid'>xnode2String</span>-<a name="line-40"></a>-<a name="line-41"></a><a name="xnode2String"></a><span class='definition'>xnode2String</span> <span class='keyglyph'>::</span> <span class='conid'>XNode</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-42"></a><span class='definition'>xnode2String</span> <span class='varid'>n</span>-<a name="line-43"></a> <span class='keyglyph'>|</span> <span class='varid'>isElem</span> <span class='varid'>n</span>-<a name="line-44"></a> <span class='keyglyph'>=</span> <span class='str'>"XTag "</span> <span class='varop'>++</span> <span class='varid'>showName</span> <span class='varid'>n</span> <span class='varop'>++</span> <span class='varid'>showAtts</span> <span class='varid'>n</span>-<a name="line-45"></a> <span class='keyglyph'>|</span> <span class='varid'>isPi</span> <span class='varid'>n</span>-<a name="line-46"></a> <span class='keyglyph'>=</span> <span class='str'>"XPi "</span> <span class='varop'>++</span> <span class='varid'>showName</span> <span class='varid'>n</span> <span class='varop'>++</span> <span class='varid'>showAtts</span> <span class='varid'>n</span>-<a name="line-47"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-48"></a> <span class='keyglyph'>=</span> <span class='varid'>show</span> <span class='varid'>n</span>-<a name="line-49"></a> <span class='keyword'>where</span>-<a name="line-50"></a>-<a name="line-51"></a><a name="showName"></a><span class='definition'>showName</span> <span class='keyglyph'>::</span> <span class='conid'>XNode</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-52"></a><span class='definition'>showName</span> <span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='str'>""</span> <span class='varid'>showQn</span> <span class='varop'>.</span> <span class='varid'>getName</span>-<a name="line-53"></a>-<a name="line-54"></a><a name="showAtts"></a><span class='definition'>showAtts</span> <span class='keyglyph'>::</span> <span class='conid'>XNode</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-55"></a><span class='definition'>showAtts</span> <span class='keyglyph'>=</span> <span class='varid'>concatMap</span> <span class='varid'>showAl</span> <span class='varop'>.</span> <span class='varid'>fromMaybe</span> <span class='conid'>[]</span> <span class='varop'>.</span> <span class='varid'>getAttrl</span>-<a name="line-56"></a>-<a name="line-57"></a><a name="showAl"></a><span class='definition'>showAl</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-58"></a><span class='definition'>showAl</span> <span class='varid'>t</span> <span class='comment'>-- (NTree (XAttr an) av)</span>-<a name="line-59"></a> <span class='keyglyph'>|</span> <span class='varid'>isAttr</span> <span class='varid'>t</span>-<a name="line-60"></a> <span class='keyglyph'>=</span> <span class='str'>"\n| "</span> <span class='varop'>++</span> <span class='layout'>(</span><span class='varid'>maybe</span> <span class='str'>""</span> <span class='varid'>showQn</span> <span class='varop'>.</span> <span class='varid'>getName</span> <span class='varop'>$</span> <span class='varid'>t</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='str'>"="</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>xshow</span> <span class='varop'>.</span> <span class='varid'>getChildren</span> <span class='varop'>$</span> <span class='varid'>t</span><span class='layout'>)</span>-<a name="line-61"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-62"></a> <span class='keyglyph'>=</span> <span class='varid'>show</span> <span class='varid'>t</span>-<a name="line-63"></a>-<a name="line-64"></a><a name="showQn"></a><span class='definition'>showQn</span> <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-65"></a><span class='definition'>showQn</span> <span class='varid'>n</span>-<a name="line-66"></a> <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>ns</span>-<a name="line-67"></a> <span class='keyglyph'>=</span> <span class='varid'>show</span> <span class='varop'>$</span> <span class='varid'>qualifiedName</span> <span class='varid'>n</span>-<a name="line-68"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-69"></a> <span class='keyglyph'>=</span> <span class='varid'>show</span> <span class='varop'>$</span> <span class='str'>"{"</span> <span class='varop'>++</span> <span class='varid'>ns</span> <span class='varop'>++</span> <span class='str'>"}"</span> <span class='varop'>++</span> <span class='varid'>qualifiedName</span> <span class='varid'>n</span>-<a name="line-70"></a> <span class='keyword'>where</span>-<a name="line-71"></a> <span class='varid'>ns</span> <span class='keyglyph'>=</span> <span class='varid'>namespaceUri</span> <span class='varid'>n</span>-<a name="line-72"></a>-<a name="line-73"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-74"></a>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-DOM-Interface.html
@@ -1,46 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Text.XML.HXT.DOM.Interface-<a name="line-5"></a> Copyright : Copyright (C) 2008 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a>-<a name="line-9"></a> Maintainer : Uwe Schmidt (uwe@fh-wedel.de)-<a name="line-10"></a> Stability : stable-<a name="line-11"></a> Portability: portable-<a name="line-12"></a>-<a name="line-13"></a> The interface to the primitive DOM data types and constants-<a name="line-14"></a> and utility functions-<a name="line-15"></a>-<a name="line-16"></a>-}</span>-<a name="line-17"></a>-<a name="line-18"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-19"></a>-<a name="line-20"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>-<a name="line-21"></a> <span class='layout'>(</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlKeywords</span>-<a name="line-22"></a> <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>TypeDefs</span>-<a name="line-23"></a> <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Util</span>-<a name="line-24"></a> <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlOptions</span>-<a name="line-25"></a> <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>MimeTypes</span>-<a name="line-26"></a> <span class='layout'>)</span>-<a name="line-27"></a><span class='keyword'>where</span>-<a name="line-28"></a>-<a name="line-29"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlKeywords</span> <span class='comment'>-- constants</span>-<a name="line-30"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>TypeDefs</span> <span class='comment'>-- XML Tree types</span>-<a name="line-31"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Util</span>-<a name="line-32"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlOptions</span> <span class='comment'>-- predefined options</span>-<a name="line-33"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>MimeTypes</span> <span class='comment'>-- mime types related stuff</span>-<a name="line-34"></a>-<a name="line-35"></a>-<a name="line-36"></a><span class='comment'>-- ------------------------------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-DOM-IsoLatinTables.html
@@ -1,729 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>IsoLatinTables</span>-<a name="line-2"></a><span class='keyword'>where</span>-<a name="line-3"></a>-<a name="line-4"></a><a name="iso_8859_2"></a><span class='definition'>iso_8859_2</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>Char</span><span class='layout'>,</span> <span class='conid'>Char</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-5"></a><span class='definition'>iso_8859_2</span>-<a name="line-6"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\161'</span><span class='layout'>,</span> <span class='chr'>'\260'</span> <span class='layout'>)</span>-<a name="line-7"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\162'</span><span class='layout'>,</span> <span class='chr'>'\728'</span> <span class='layout'>)</span>-<a name="line-8"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\163'</span><span class='layout'>,</span> <span class='chr'>'\321'</span> <span class='layout'>)</span>-<a name="line-9"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\165'</span><span class='layout'>,</span> <span class='chr'>'\317'</span> <span class='layout'>)</span>-<a name="line-10"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\166'</span><span class='layout'>,</span> <span class='chr'>'\346'</span> <span class='layout'>)</span>-<a name="line-11"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\169'</span><span class='layout'>,</span> <span class='chr'>'\352'</span> <span class='layout'>)</span>-<a name="line-12"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\170'</span><span class='layout'>,</span> <span class='chr'>'\350'</span> <span class='layout'>)</span>-<a name="line-13"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\171'</span><span class='layout'>,</span> <span class='chr'>'\356'</span> <span class='layout'>)</span>-<a name="line-14"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\172'</span><span class='layout'>,</span> <span class='chr'>'\377'</span> <span class='layout'>)</span>-<a name="line-15"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\174'</span><span class='layout'>,</span> <span class='chr'>'\381'</span> <span class='layout'>)</span>-<a name="line-16"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\175'</span><span class='layout'>,</span> <span class='chr'>'\379'</span> <span class='layout'>)</span>-<a name="line-17"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\177'</span><span class='layout'>,</span> <span class='chr'>'\261'</span> <span class='layout'>)</span>-<a name="line-18"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\178'</span><span class='layout'>,</span> <span class='chr'>'\731'</span> <span class='layout'>)</span>-<a name="line-19"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\179'</span><span class='layout'>,</span> <span class='chr'>'\322'</span> <span class='layout'>)</span>-<a name="line-20"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\181'</span><span class='layout'>,</span> <span class='chr'>'\318'</span> <span class='layout'>)</span>-<a name="line-21"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\182'</span><span class='layout'>,</span> <span class='chr'>'\347'</span> <span class='layout'>)</span>-<a name="line-22"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\183'</span><span class='layout'>,</span> <span class='chr'>'\711'</span> <span class='layout'>)</span>-<a name="line-23"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\185'</span><span class='layout'>,</span> <span class='chr'>'\353'</span> <span class='layout'>)</span>-<a name="line-24"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\186'</span><span class='layout'>,</span> <span class='chr'>'\351'</span> <span class='layout'>)</span>-<a name="line-25"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\187'</span><span class='layout'>,</span> <span class='chr'>'\357'</span> <span class='layout'>)</span>-<a name="line-26"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\188'</span><span class='layout'>,</span> <span class='chr'>'\378'</span> <span class='layout'>)</span>-<a name="line-27"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\189'</span><span class='layout'>,</span> <span class='chr'>'\733'</span> <span class='layout'>)</span>-<a name="line-28"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\190'</span><span class='layout'>,</span> <span class='chr'>'\382'</span> <span class='layout'>)</span>-<a name="line-29"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\191'</span><span class='layout'>,</span> <span class='chr'>'\380'</span> <span class='layout'>)</span>-<a name="line-30"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\192'</span><span class='layout'>,</span> <span class='chr'>'\340'</span> <span class='layout'>)</span>-<a name="line-31"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\195'</span><span class='layout'>,</span> <span class='chr'>'\258'</span> <span class='layout'>)</span>-<a name="line-32"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\197'</span><span class='layout'>,</span> <span class='chr'>'\313'</span> <span class='layout'>)</span>-<a name="line-33"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\198'</span><span class='layout'>,</span> <span class='chr'>'\262'</span> <span class='layout'>)</span>-<a name="line-34"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\200'</span><span class='layout'>,</span> <span class='chr'>'\268'</span> <span class='layout'>)</span>-<a name="line-35"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\202'</span><span class='layout'>,</span> <span class='chr'>'\280'</span> <span class='layout'>)</span>-<a name="line-36"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\204'</span><span class='layout'>,</span> <span class='chr'>'\282'</span> <span class='layout'>)</span>-<a name="line-37"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\207'</span><span class='layout'>,</span> <span class='chr'>'\270'</span> <span class='layout'>)</span>-<a name="line-38"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\208'</span><span class='layout'>,</span> <span class='chr'>'\272'</span> <span class='layout'>)</span>-<a name="line-39"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\209'</span><span class='layout'>,</span> <span class='chr'>'\323'</span> <span class='layout'>)</span>-<a name="line-40"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\210'</span><span class='layout'>,</span> <span class='chr'>'\327'</span> <span class='layout'>)</span>-<a name="line-41"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\213'</span><span class='layout'>,</span> <span class='chr'>'\336'</span> <span class='layout'>)</span>-<a name="line-42"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\216'</span><span class='layout'>,</span> <span class='chr'>'\344'</span> <span class='layout'>)</span>-<a name="line-43"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\217'</span><span class='layout'>,</span> <span class='chr'>'\366'</span> <span class='layout'>)</span>-<a name="line-44"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\219'</span><span class='layout'>,</span> <span class='chr'>'\368'</span> <span class='layout'>)</span>-<a name="line-45"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\222'</span><span class='layout'>,</span> <span class='chr'>'\354'</span> <span class='layout'>)</span>-<a name="line-46"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\224'</span><span class='layout'>,</span> <span class='chr'>'\341'</span> <span class='layout'>)</span>-<a name="line-47"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\227'</span><span class='layout'>,</span> <span class='chr'>'\259'</span> <span class='layout'>)</span>-<a name="line-48"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\229'</span><span class='layout'>,</span> <span class='chr'>'\314'</span> <span class='layout'>)</span>-<a name="line-49"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\230'</span><span class='layout'>,</span> <span class='chr'>'\263'</span> <span class='layout'>)</span>-<a name="line-50"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\232'</span><span class='layout'>,</span> <span class='chr'>'\269'</span> <span class='layout'>)</span>-<a name="line-51"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\234'</span><span class='layout'>,</span> <span class='chr'>'\281'</span> <span class='layout'>)</span>-<a name="line-52"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\236'</span><span class='layout'>,</span> <span class='chr'>'\283'</span> <span class='layout'>)</span>-<a name="line-53"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\239'</span><span class='layout'>,</span> <span class='chr'>'\271'</span> <span class='layout'>)</span>-<a name="line-54"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\240'</span><span class='layout'>,</span> <span class='chr'>'\273'</span> <span class='layout'>)</span>-<a name="line-55"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\241'</span><span class='layout'>,</span> <span class='chr'>'\324'</span> <span class='layout'>)</span>-<a name="line-56"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\242'</span><span class='layout'>,</span> <span class='chr'>'\328'</span> <span class='layout'>)</span>-<a name="line-57"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\245'</span><span class='layout'>,</span> <span class='chr'>'\337'</span> <span class='layout'>)</span>-<a name="line-58"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\248'</span><span class='layout'>,</span> <span class='chr'>'\345'</span> <span class='layout'>)</span>-<a name="line-59"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\249'</span><span class='layout'>,</span> <span class='chr'>'\367'</span> <span class='layout'>)</span>-<a name="line-60"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\251'</span><span class='layout'>,</span> <span class='chr'>'\369'</span> <span class='layout'>)</span>-<a name="line-61"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\254'</span><span class='layout'>,</span> <span class='chr'>'\355'</span> <span class='layout'>)</span>-<a name="line-62"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\255'</span><span class='layout'>,</span> <span class='chr'>'\729'</span> <span class='layout'>)</span>-<a name="line-63"></a> <span class='keyglyph'>]</span>-<a name="line-64"></a>-<a name="line-65"></a><a name="iso_8859_3"></a><span class='definition'>iso_8859_3</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>Char</span><span class='layout'>,</span> <span class='conid'>Char</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-66"></a><span class='definition'>iso_8859_3</span>-<a name="line-67"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\161'</span><span class='layout'>,</span> <span class='chr'>'\294'</span> <span class='layout'>)</span>-<a name="line-68"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\162'</span><span class='layout'>,</span> <span class='chr'>'\728'</span> <span class='layout'>)</span>-<a name="line-69"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\166'</span><span class='layout'>,</span> <span class='chr'>'\292'</span> <span class='layout'>)</span>-<a name="line-70"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\169'</span><span class='layout'>,</span> <span class='chr'>'\304'</span> <span class='layout'>)</span>-<a name="line-71"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\170'</span><span class='layout'>,</span> <span class='chr'>'\350'</span> <span class='layout'>)</span>-<a name="line-72"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\171'</span><span class='layout'>,</span> <span class='chr'>'\286'</span> <span class='layout'>)</span>-<a name="line-73"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\172'</span><span class='layout'>,</span> <span class='chr'>'\308'</span> <span class='layout'>)</span>-<a name="line-74"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\175'</span><span class='layout'>,</span> <span class='chr'>'\379'</span> <span class='layout'>)</span>-<a name="line-75"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\177'</span><span class='layout'>,</span> <span class='chr'>'\295'</span> <span class='layout'>)</span>-<a name="line-76"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\182'</span><span class='layout'>,</span> <span class='chr'>'\293'</span> <span class='layout'>)</span>-<a name="line-77"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\185'</span><span class='layout'>,</span> <span class='chr'>'\305'</span> <span class='layout'>)</span>-<a name="line-78"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\186'</span><span class='layout'>,</span> <span class='chr'>'\351'</span> <span class='layout'>)</span>-<a name="line-79"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\187'</span><span class='layout'>,</span> <span class='chr'>'\287'</span> <span class='layout'>)</span>-<a name="line-80"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\188'</span><span class='layout'>,</span> <span class='chr'>'\309'</span> <span class='layout'>)</span>-<a name="line-81"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\191'</span><span class='layout'>,</span> <span class='chr'>'\380'</span> <span class='layout'>)</span>-<a name="line-82"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\197'</span><span class='layout'>,</span> <span class='chr'>'\266'</span> <span class='layout'>)</span>-<a name="line-83"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\198'</span><span class='layout'>,</span> <span class='chr'>'\264'</span> <span class='layout'>)</span>-<a name="line-84"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\213'</span><span class='layout'>,</span> <span class='chr'>'\288'</span> <span class='layout'>)</span>-<a name="line-85"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\216'</span><span class='layout'>,</span> <span class='chr'>'\284'</span> <span class='layout'>)</span>-<a name="line-86"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\221'</span><span class='layout'>,</span> <span class='chr'>'\364'</span> <span class='layout'>)</span>-<a name="line-87"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\222'</span><span class='layout'>,</span> <span class='chr'>'\348'</span> <span class='layout'>)</span>-<a name="line-88"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\229'</span><span class='layout'>,</span> <span class='chr'>'\267'</span> <span class='layout'>)</span>-<a name="line-89"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\230'</span><span class='layout'>,</span> <span class='chr'>'\265'</span> <span class='layout'>)</span>-<a name="line-90"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\245'</span><span class='layout'>,</span> <span class='chr'>'\289'</span> <span class='layout'>)</span>-<a name="line-91"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\248'</span><span class='layout'>,</span> <span class='chr'>'\285'</span> <span class='layout'>)</span>-<a name="line-92"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\253'</span><span class='layout'>,</span> <span class='chr'>'\365'</span> <span class='layout'>)</span>-<a name="line-93"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\254'</span><span class='layout'>,</span> <span class='chr'>'\349'</span> <span class='layout'>)</span>-<a name="line-94"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\255'</span><span class='layout'>,</span> <span class='chr'>'\729'</span> <span class='layout'>)</span>-<a name="line-95"></a> <span class='keyglyph'>]</span>-<a name="line-96"></a>-<a name="line-97"></a><a name="iso_8859_4"></a><span class='definition'>iso_8859_4</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>Char</span><span class='layout'>,</span> <span class='conid'>Char</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-98"></a><span class='definition'>iso_8859_4</span>-<a name="line-99"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\161'</span><span class='layout'>,</span> <span class='chr'>'\260'</span> <span class='layout'>)</span>-<a name="line-100"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\162'</span><span class='layout'>,</span> <span class='chr'>'\312'</span> <span class='layout'>)</span>-<a name="line-101"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\163'</span><span class='layout'>,</span> <span class='chr'>'\342'</span> <span class='layout'>)</span>-<a name="line-102"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\165'</span><span class='layout'>,</span> <span class='chr'>'\296'</span> <span class='layout'>)</span>-<a name="line-103"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\166'</span><span class='layout'>,</span> <span class='chr'>'\315'</span> <span class='layout'>)</span>-<a name="line-104"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\169'</span><span class='layout'>,</span> <span class='chr'>'\352'</span> <span class='layout'>)</span>-<a name="line-105"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\170'</span><span class='layout'>,</span> <span class='chr'>'\274'</span> <span class='layout'>)</span>-<a name="line-106"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\171'</span><span class='layout'>,</span> <span class='chr'>'\290'</span> <span class='layout'>)</span>-<a name="line-107"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\172'</span><span class='layout'>,</span> <span class='chr'>'\358'</span> <span class='layout'>)</span>-<a name="line-108"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\174'</span><span class='layout'>,</span> <span class='chr'>'\381'</span> <span class='layout'>)</span>-<a name="line-109"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\177'</span><span class='layout'>,</span> <span class='chr'>'\261'</span> <span class='layout'>)</span>-<a name="line-110"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\178'</span><span class='layout'>,</span> <span class='chr'>'\731'</span> <span class='layout'>)</span>-<a name="line-111"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\179'</span><span class='layout'>,</span> <span class='chr'>'\343'</span> <span class='layout'>)</span>-<a name="line-112"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\181'</span><span class='layout'>,</span> <span class='chr'>'\297'</span> <span class='layout'>)</span>-<a name="line-113"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\182'</span><span class='layout'>,</span> <span class='chr'>'\316'</span> <span class='layout'>)</span>-<a name="line-114"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\183'</span><span class='layout'>,</span> <span class='chr'>'\711'</span> <span class='layout'>)</span>-<a name="line-115"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\185'</span><span class='layout'>,</span> <span class='chr'>'\353'</span> <span class='layout'>)</span>-<a name="line-116"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\186'</span><span class='layout'>,</span> <span class='chr'>'\275'</span> <span class='layout'>)</span>-<a name="line-117"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\187'</span><span class='layout'>,</span> <span class='chr'>'\291'</span> <span class='layout'>)</span>-<a name="line-118"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\188'</span><span class='layout'>,</span> <span class='chr'>'\359'</span> <span class='layout'>)</span>-<a name="line-119"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\189'</span><span class='layout'>,</span> <span class='chr'>'\330'</span> <span class='layout'>)</span>-<a name="line-120"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\190'</span><span class='layout'>,</span> <span class='chr'>'\382'</span> <span class='layout'>)</span>-<a name="line-121"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\191'</span><span class='layout'>,</span> <span class='chr'>'\331'</span> <span class='layout'>)</span>-<a name="line-122"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\192'</span><span class='layout'>,</span> <span class='chr'>'\256'</span> <span class='layout'>)</span>-<a name="line-123"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\199'</span><span class='layout'>,</span> <span class='chr'>'\302'</span> <span class='layout'>)</span>-<a name="line-124"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\200'</span><span class='layout'>,</span> <span class='chr'>'\268'</span> <span class='layout'>)</span>-<a name="line-125"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\202'</span><span class='layout'>,</span> <span class='chr'>'\280'</span> <span class='layout'>)</span>-<a name="line-126"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\204'</span><span class='layout'>,</span> <span class='chr'>'\278'</span> <span class='layout'>)</span>-<a name="line-127"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\207'</span><span class='layout'>,</span> <span class='chr'>'\298'</span> <span class='layout'>)</span>-<a name="line-128"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\208'</span><span class='layout'>,</span> <span class='chr'>'\272'</span> <span class='layout'>)</span>-<a name="line-129"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\209'</span><span class='layout'>,</span> <span class='chr'>'\325'</span> <span class='layout'>)</span>-<a name="line-130"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\210'</span><span class='layout'>,</span> <span class='chr'>'\332'</span> <span class='layout'>)</span>-<a name="line-131"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\211'</span><span class='layout'>,</span> <span class='chr'>'\310'</span> <span class='layout'>)</span>-<a name="line-132"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\217'</span><span class='layout'>,</span> <span class='chr'>'\370'</span> <span class='layout'>)</span>-<a name="line-133"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\221'</span><span class='layout'>,</span> <span class='chr'>'\360'</span> <span class='layout'>)</span>-<a name="line-134"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\222'</span><span class='layout'>,</span> <span class='chr'>'\362'</span> <span class='layout'>)</span>-<a name="line-135"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\224'</span><span class='layout'>,</span> <span class='chr'>'\257'</span> <span class='layout'>)</span>-<a name="line-136"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\231'</span><span class='layout'>,</span> <span class='chr'>'\303'</span> <span class='layout'>)</span>-<a name="line-137"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\232'</span><span class='layout'>,</span> <span class='chr'>'\269'</span> <span class='layout'>)</span>-<a name="line-138"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\234'</span><span class='layout'>,</span> <span class='chr'>'\281'</span> <span class='layout'>)</span>-<a name="line-139"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\236'</span><span class='layout'>,</span> <span class='chr'>'\279'</span> <span class='layout'>)</span>-<a name="line-140"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\239'</span><span class='layout'>,</span> <span class='chr'>'\299'</span> <span class='layout'>)</span>-<a name="line-141"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\240'</span><span class='layout'>,</span> <span class='chr'>'\273'</span> <span class='layout'>)</span>-<a name="line-142"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\241'</span><span class='layout'>,</span> <span class='chr'>'\326'</span> <span class='layout'>)</span>-<a name="line-143"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\242'</span><span class='layout'>,</span> <span class='chr'>'\333'</span> <span class='layout'>)</span>-<a name="line-144"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\243'</span><span class='layout'>,</span> <span class='chr'>'\311'</span> <span class='layout'>)</span>-<a name="line-145"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\249'</span><span class='layout'>,</span> <span class='chr'>'\371'</span> <span class='layout'>)</span>-<a name="line-146"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\253'</span><span class='layout'>,</span> <span class='chr'>'\361'</span> <span class='layout'>)</span>-<a name="line-147"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\254'</span><span class='layout'>,</span> <span class='chr'>'\363'</span> <span class='layout'>)</span>-<a name="line-148"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\255'</span><span class='layout'>,</span> <span class='chr'>'\729'</span> <span class='layout'>)</span>-<a name="line-149"></a> <span class='keyglyph'>]</span>-<a name="line-150"></a>-<a name="line-151"></a><a name="iso_8859_5"></a><span class='definition'>iso_8859_5</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>Char</span><span class='layout'>,</span> <span class='conid'>Char</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-152"></a><span class='definition'>iso_8859_5</span>-<a name="line-153"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\161'</span><span class='layout'>,</span> <span class='chr'>'\1025'</span> <span class='layout'>)</span>-<a name="line-154"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\162'</span><span class='layout'>,</span> <span class='chr'>'\1026'</span> <span class='layout'>)</span>-<a name="line-155"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\163'</span><span class='layout'>,</span> <span class='chr'>'\1027'</span> <span class='layout'>)</span>-<a name="line-156"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\164'</span><span class='layout'>,</span> <span class='chr'>'\1028'</span> <span class='layout'>)</span>-<a name="line-157"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\165'</span><span class='layout'>,</span> <span class='chr'>'\1029'</span> <span class='layout'>)</span>-<a name="line-158"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\166'</span><span class='layout'>,</span> <span class='chr'>'\1030'</span> <span class='layout'>)</span>-<a name="line-159"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\167'</span><span class='layout'>,</span> <span class='chr'>'\1031'</span> <span class='layout'>)</span>-<a name="line-160"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\168'</span><span class='layout'>,</span> <span class='chr'>'\1032'</span> <span class='layout'>)</span>-<a name="line-161"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\169'</span><span class='layout'>,</span> <span class='chr'>'\1033'</span> <span class='layout'>)</span>-<a name="line-162"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\170'</span><span class='layout'>,</span> <span class='chr'>'\1034'</span> <span class='layout'>)</span>-<a name="line-163"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\171'</span><span class='layout'>,</span> <span class='chr'>'\1035'</span> <span class='layout'>)</span>-<a name="line-164"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\172'</span><span class='layout'>,</span> <span class='chr'>'\1036'</span> <span class='layout'>)</span>-<a name="line-165"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\174'</span><span class='layout'>,</span> <span class='chr'>'\1038'</span> <span class='layout'>)</span>-<a name="line-166"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\175'</span><span class='layout'>,</span> <span class='chr'>'\1039'</span> <span class='layout'>)</span>-<a name="line-167"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\176'</span><span class='layout'>,</span> <span class='chr'>'\1040'</span> <span class='layout'>)</span>-<a name="line-168"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\177'</span><span class='layout'>,</span> <span class='chr'>'\1041'</span> <span class='layout'>)</span>-<a name="line-169"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\178'</span><span class='layout'>,</span> <span class='chr'>'\1042'</span> <span class='layout'>)</span>-<a name="line-170"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\179'</span><span class='layout'>,</span> <span class='chr'>'\1043'</span> <span class='layout'>)</span>-<a name="line-171"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\180'</span><span class='layout'>,</span> <span class='chr'>'\1044'</span> <span class='layout'>)</span>-<a name="line-172"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\181'</span><span class='layout'>,</span> <span class='chr'>'\1045'</span> <span class='layout'>)</span>-<a name="line-173"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\182'</span><span class='layout'>,</span> <span class='chr'>'\1046'</span> <span class='layout'>)</span>-<a name="line-174"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\183'</span><span class='layout'>,</span> <span class='chr'>'\1047'</span> <span class='layout'>)</span>-<a name="line-175"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\184'</span><span class='layout'>,</span> <span class='chr'>'\1048'</span> <span class='layout'>)</span>-<a name="line-176"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\185'</span><span class='layout'>,</span> <span class='chr'>'\1049'</span> <span class='layout'>)</span>-<a name="line-177"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\186'</span><span class='layout'>,</span> <span class='chr'>'\1050'</span> <span class='layout'>)</span>-<a name="line-178"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\187'</span><span class='layout'>,</span> <span class='chr'>'\1051'</span> <span class='layout'>)</span>-<a name="line-179"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\188'</span><span class='layout'>,</span> <span class='chr'>'\1052'</span> <span class='layout'>)</span>-<a name="line-180"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\189'</span><span class='layout'>,</span> <span class='chr'>'\1053'</span> <span class='layout'>)</span>-<a name="line-181"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\190'</span><span class='layout'>,</span> <span class='chr'>'\1054'</span> <span class='layout'>)</span>-<a name="line-182"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\191'</span><span class='layout'>,</span> <span class='chr'>'\1055'</span> <span class='layout'>)</span>-<a name="line-183"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\192'</span><span class='layout'>,</span> <span class='chr'>'\1056'</span> <span class='layout'>)</span>-<a name="line-184"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\193'</span><span class='layout'>,</span> <span class='chr'>'\1057'</span> <span class='layout'>)</span>-<a name="line-185"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\194'</span><span class='layout'>,</span> <span class='chr'>'\1058'</span> <span class='layout'>)</span>-<a name="line-186"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\195'</span><span class='layout'>,</span> <span class='chr'>'\1059'</span> <span class='layout'>)</span>-<a name="line-187"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\196'</span><span class='layout'>,</span> <span class='chr'>'\1060'</span> <span class='layout'>)</span>-<a name="line-188"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\197'</span><span class='layout'>,</span> <span class='chr'>'\1061'</span> <span class='layout'>)</span>-<a name="line-189"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\198'</span><span class='layout'>,</span> <span class='chr'>'\1062'</span> <span class='layout'>)</span>-<a name="line-190"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\199'</span><span class='layout'>,</span> <span class='chr'>'\1063'</span> <span class='layout'>)</span>-<a name="line-191"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\200'</span><span class='layout'>,</span> <span class='chr'>'\1064'</span> <span class='layout'>)</span>-<a name="line-192"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\201'</span><span class='layout'>,</span> <span class='chr'>'\1065'</span> <span class='layout'>)</span>-<a name="line-193"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\202'</span><span class='layout'>,</span> <span class='chr'>'\1066'</span> <span class='layout'>)</span>-<a name="line-194"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\203'</span><span class='layout'>,</span> <span class='chr'>'\1067'</span> <span class='layout'>)</span>-<a name="line-195"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\204'</span><span class='layout'>,</span> <span class='chr'>'\1068'</span> <span class='layout'>)</span>-<a name="line-196"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\205'</span><span class='layout'>,</span> <span class='chr'>'\1069'</span> <span class='layout'>)</span>-<a name="line-197"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\206'</span><span class='layout'>,</span> <span class='chr'>'\1070'</span> <span class='layout'>)</span>-<a name="line-198"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\207'</span><span class='layout'>,</span> <span class='chr'>'\1071'</span> <span class='layout'>)</span>-<a name="line-199"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\208'</span><span class='layout'>,</span> <span class='chr'>'\1072'</span> <span class='layout'>)</span>-<a name="line-200"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\209'</span><span class='layout'>,</span> <span class='chr'>'\1073'</span> <span class='layout'>)</span>-<a name="line-201"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\210'</span><span class='layout'>,</span> <span class='chr'>'\1074'</span> <span class='layout'>)</span>-<a name="line-202"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\211'</span><span class='layout'>,</span> <span class='chr'>'\1075'</span> <span class='layout'>)</span>-<a name="line-203"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\212'</span><span class='layout'>,</span> <span class='chr'>'\1076'</span> <span class='layout'>)</span>-<a name="line-204"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\213'</span><span class='layout'>,</span> <span class='chr'>'\1077'</span> <span class='layout'>)</span>-<a name="line-205"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\214'</span><span class='layout'>,</span> <span class='chr'>'\1078'</span> <span class='layout'>)</span>-<a name="line-206"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\215'</span><span class='layout'>,</span> <span class='chr'>'\1079'</span> <span class='layout'>)</span>-<a name="line-207"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\216'</span><span class='layout'>,</span> <span class='chr'>'\1080'</span> <span class='layout'>)</span>-<a name="line-208"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\217'</span><span class='layout'>,</span> <span class='chr'>'\1081'</span> <span class='layout'>)</span>-<a name="line-209"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\218'</span><span class='layout'>,</span> <span class='chr'>'\1082'</span> <span class='layout'>)</span>-<a name="line-210"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\219'</span><span class='layout'>,</span> <span class='chr'>'\1083'</span> <span class='layout'>)</span>-<a name="line-211"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\220'</span><span class='layout'>,</span> <span class='chr'>'\1084'</span> <span class='layout'>)</span>-<a name="line-212"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\221'</span><span class='layout'>,</span> <span class='chr'>'\1085'</span> <span class='layout'>)</span>-<a name="line-213"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\222'</span><span class='layout'>,</span> <span class='chr'>'\1086'</span> <span class='layout'>)</span>-<a name="line-214"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\223'</span><span class='layout'>,</span> <span class='chr'>'\1087'</span> <span class='layout'>)</span>-<a name="line-215"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\224'</span><span class='layout'>,</span> <span class='chr'>'\1088'</span> <span class='layout'>)</span>-<a name="line-216"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\225'</span><span class='layout'>,</span> <span class='chr'>'\1089'</span> <span class='layout'>)</span>-<a name="line-217"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\226'</span><span class='layout'>,</span> <span class='chr'>'\1090'</span> <span class='layout'>)</span>-<a name="line-218"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\227'</span><span class='layout'>,</span> <span class='chr'>'\1091'</span> <span class='layout'>)</span>-<a name="line-219"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\228'</span><span class='layout'>,</span> <span class='chr'>'\1092'</span> <span class='layout'>)</span>-<a name="line-220"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\229'</span><span class='layout'>,</span> <span class='chr'>'\1093'</span> <span class='layout'>)</span>-<a name="line-221"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\230'</span><span class='layout'>,</span> <span class='chr'>'\1094'</span> <span class='layout'>)</span>-<a name="line-222"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\231'</span><span class='layout'>,</span> <span class='chr'>'\1095'</span> <span class='layout'>)</span>-<a name="line-223"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\232'</span><span class='layout'>,</span> <span class='chr'>'\1096'</span> <span class='layout'>)</span>-<a name="line-224"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\233'</span><span class='layout'>,</span> <span class='chr'>'\1097'</span> <span class='layout'>)</span>-<a name="line-225"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\234'</span><span class='layout'>,</span> <span class='chr'>'\1098'</span> <span class='layout'>)</span>-<a name="line-226"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\235'</span><span class='layout'>,</span> <span class='chr'>'\1099'</span> <span class='layout'>)</span>-<a name="line-227"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\236'</span><span class='layout'>,</span> <span class='chr'>'\1100'</span> <span class='layout'>)</span>-<a name="line-228"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\237'</span><span class='layout'>,</span> <span class='chr'>'\1101'</span> <span class='layout'>)</span>-<a name="line-229"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\238'</span><span class='layout'>,</span> <span class='chr'>'\1102'</span> <span class='layout'>)</span>-<a name="line-230"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\239'</span><span class='layout'>,</span> <span class='chr'>'\1103'</span> <span class='layout'>)</span>-<a name="line-231"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\240'</span><span class='layout'>,</span> <span class='chr'>'\8470'</span> <span class='layout'>)</span>-<a name="line-232"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\241'</span><span class='layout'>,</span> <span class='chr'>'\1105'</span> <span class='layout'>)</span>-<a name="line-233"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\242'</span><span class='layout'>,</span> <span class='chr'>'\1106'</span> <span class='layout'>)</span>-<a name="line-234"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\243'</span><span class='layout'>,</span> <span class='chr'>'\1107'</span> <span class='layout'>)</span>-<a name="line-235"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\244'</span><span class='layout'>,</span> <span class='chr'>'\1108'</span> <span class='layout'>)</span>-<a name="line-236"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\245'</span><span class='layout'>,</span> <span class='chr'>'\1109'</span> <span class='layout'>)</span>-<a name="line-237"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\246'</span><span class='layout'>,</span> <span class='chr'>'\1110'</span> <span class='layout'>)</span>-<a name="line-238"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\247'</span><span class='layout'>,</span> <span class='chr'>'\1111'</span> <span class='layout'>)</span>-<a name="line-239"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\248'</span><span class='layout'>,</span> <span class='chr'>'\1112'</span> <span class='layout'>)</span>-<a name="line-240"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\249'</span><span class='layout'>,</span> <span class='chr'>'\1113'</span> <span class='layout'>)</span>-<a name="line-241"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\250'</span><span class='layout'>,</span> <span class='chr'>'\1114'</span> <span class='layout'>)</span>-<a name="line-242"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\251'</span><span class='layout'>,</span> <span class='chr'>'\1115'</span> <span class='layout'>)</span>-<a name="line-243"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\252'</span><span class='layout'>,</span> <span class='chr'>'\1116'</span> <span class='layout'>)</span>-<a name="line-244"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\253'</span><span class='layout'>,</span> <span class='chr'>'\167'</span> <span class='layout'>)</span>-<a name="line-245"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\254'</span><span class='layout'>,</span> <span class='chr'>'\1118'</span> <span class='layout'>)</span>-<a name="line-246"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\255'</span><span class='layout'>,</span> <span class='chr'>'\1119'</span> <span class='layout'>)</span>-<a name="line-247"></a> <span class='keyglyph'>]</span>-<a name="line-248"></a>-<a name="line-249"></a><a name="iso_8859_6"></a><span class='definition'>iso_8859_6</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>Char</span><span class='layout'>,</span> <span class='conid'>Char</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-250"></a><span class='definition'>iso_8859_6</span>-<a name="line-251"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\172'</span><span class='layout'>,</span> <span class='chr'>'\1548'</span> <span class='layout'>)</span>-<a name="line-252"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\187'</span><span class='layout'>,</span> <span class='chr'>'\1563'</span> <span class='layout'>)</span>-<a name="line-253"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\191'</span><span class='layout'>,</span> <span class='chr'>'\1567'</span> <span class='layout'>)</span>-<a name="line-254"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\193'</span><span class='layout'>,</span> <span class='chr'>'\1569'</span> <span class='layout'>)</span>-<a name="line-255"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\194'</span><span class='layout'>,</span> <span class='chr'>'\1570'</span> <span class='layout'>)</span>-<a name="line-256"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\195'</span><span class='layout'>,</span> <span class='chr'>'\1571'</span> <span class='layout'>)</span>-<a name="line-257"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\196'</span><span class='layout'>,</span> <span class='chr'>'\1572'</span> <span class='layout'>)</span>-<a name="line-258"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\197'</span><span class='layout'>,</span> <span class='chr'>'\1573'</span> <span class='layout'>)</span>-<a name="line-259"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\198'</span><span class='layout'>,</span> <span class='chr'>'\1574'</span> <span class='layout'>)</span>-<a name="line-260"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\199'</span><span class='layout'>,</span> <span class='chr'>'\1575'</span> <span class='layout'>)</span>-<a name="line-261"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\200'</span><span class='layout'>,</span> <span class='chr'>'\1576'</span> <span class='layout'>)</span>-<a name="line-262"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\201'</span><span class='layout'>,</span> <span class='chr'>'\1577'</span> <span class='layout'>)</span>-<a name="line-263"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\202'</span><span class='layout'>,</span> <span class='chr'>'\1578'</span> <span class='layout'>)</span>-<a name="line-264"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\203'</span><span class='layout'>,</span> <span class='chr'>'\1579'</span> <span class='layout'>)</span>-<a name="line-265"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\204'</span><span class='layout'>,</span> <span class='chr'>'\1580'</span> <span class='layout'>)</span>-<a name="line-266"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\205'</span><span class='layout'>,</span> <span class='chr'>'\1581'</span> <span class='layout'>)</span>-<a name="line-267"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\206'</span><span class='layout'>,</span> <span class='chr'>'\1582'</span> <span class='layout'>)</span>-<a name="line-268"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\207'</span><span class='layout'>,</span> <span class='chr'>'\1583'</span> <span class='layout'>)</span>-<a name="line-269"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\208'</span><span class='layout'>,</span> <span class='chr'>'\1584'</span> <span class='layout'>)</span>-<a name="line-270"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\209'</span><span class='layout'>,</span> <span class='chr'>'\1585'</span> <span class='layout'>)</span>-<a name="line-271"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\210'</span><span class='layout'>,</span> <span class='chr'>'\1586'</span> <span class='layout'>)</span>-<a name="line-272"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\211'</span><span class='layout'>,</span> <span class='chr'>'\1587'</span> <span class='layout'>)</span>-<a name="line-273"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\212'</span><span class='layout'>,</span> <span class='chr'>'\1588'</span> <span class='layout'>)</span>-<a name="line-274"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\213'</span><span class='layout'>,</span> <span class='chr'>'\1589'</span> <span class='layout'>)</span>-<a name="line-275"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\214'</span><span class='layout'>,</span> <span class='chr'>'\1590'</span> <span class='layout'>)</span>-<a name="line-276"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\215'</span><span class='layout'>,</span> <span class='chr'>'\1591'</span> <span class='layout'>)</span>-<a name="line-277"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\216'</span><span class='layout'>,</span> <span class='chr'>'\1592'</span> <span class='layout'>)</span>-<a name="line-278"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\217'</span><span class='layout'>,</span> <span class='chr'>'\1593'</span> <span class='layout'>)</span>-<a name="line-279"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\218'</span><span class='layout'>,</span> <span class='chr'>'\1594'</span> <span class='layout'>)</span>-<a name="line-280"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\224'</span><span class='layout'>,</span> <span class='chr'>'\1600'</span> <span class='layout'>)</span>-<a name="line-281"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\225'</span><span class='layout'>,</span> <span class='chr'>'\1601'</span> <span class='layout'>)</span>-<a name="line-282"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\226'</span><span class='layout'>,</span> <span class='chr'>'\1602'</span> <span class='layout'>)</span>-<a name="line-283"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\227'</span><span class='layout'>,</span> <span class='chr'>'\1603'</span> <span class='layout'>)</span>-<a name="line-284"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\228'</span><span class='layout'>,</span> <span class='chr'>'\1604'</span> <span class='layout'>)</span>-<a name="line-285"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\229'</span><span class='layout'>,</span> <span class='chr'>'\1605'</span> <span class='layout'>)</span>-<a name="line-286"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\230'</span><span class='layout'>,</span> <span class='chr'>'\1606'</span> <span class='layout'>)</span>-<a name="line-287"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\231'</span><span class='layout'>,</span> <span class='chr'>'\1607'</span> <span class='layout'>)</span>-<a name="line-288"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\232'</span><span class='layout'>,</span> <span class='chr'>'\1608'</span> <span class='layout'>)</span>-<a name="line-289"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\233'</span><span class='layout'>,</span> <span class='chr'>'\1609'</span> <span class='layout'>)</span>-<a name="line-290"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\234'</span><span class='layout'>,</span> <span class='chr'>'\1610'</span> <span class='layout'>)</span>-<a name="line-291"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\235'</span><span class='layout'>,</span> <span class='chr'>'\1611'</span> <span class='layout'>)</span>-<a name="line-292"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\236'</span><span class='layout'>,</span> <span class='chr'>'\1612'</span> <span class='layout'>)</span>-<a name="line-293"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\237'</span><span class='layout'>,</span> <span class='chr'>'\1613'</span> <span class='layout'>)</span>-<a name="line-294"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\238'</span><span class='layout'>,</span> <span class='chr'>'\1614'</span> <span class='layout'>)</span>-<a name="line-295"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\239'</span><span class='layout'>,</span> <span class='chr'>'\1615'</span> <span class='layout'>)</span>-<a name="line-296"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\240'</span><span class='layout'>,</span> <span class='chr'>'\1616'</span> <span class='layout'>)</span>-<a name="line-297"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\241'</span><span class='layout'>,</span> <span class='chr'>'\1617'</span> <span class='layout'>)</span>-<a name="line-298"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\242'</span><span class='layout'>,</span> <span class='chr'>'\1618'</span> <span class='layout'>)</span>-<a name="line-299"></a> <span class='keyglyph'>]</span>-<a name="line-300"></a>-<a name="line-301"></a><a name="iso_8859_7"></a><span class='definition'>iso_8859_7</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>Char</span><span class='layout'>,</span> <span class='conid'>Char</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-302"></a><span class='definition'>iso_8859_7</span>-<a name="line-303"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\161'</span><span class='layout'>,</span> <span class='chr'>'\8216'</span> <span class='layout'>)</span>-<a name="line-304"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\162'</span><span class='layout'>,</span> <span class='chr'>'\8217'</span> <span class='layout'>)</span>-<a name="line-305"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\164'</span><span class='layout'>,</span> <span class='chr'>'\8364'</span> <span class='layout'>)</span>-<a name="line-306"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\165'</span><span class='layout'>,</span> <span class='chr'>'\8367'</span> <span class='layout'>)</span>-<a name="line-307"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\170'</span><span class='layout'>,</span> <span class='chr'>'\890'</span> <span class='layout'>)</span>-<a name="line-308"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\175'</span><span class='layout'>,</span> <span class='chr'>'\8213'</span> <span class='layout'>)</span>-<a name="line-309"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\180'</span><span class='layout'>,</span> <span class='chr'>'\900'</span> <span class='layout'>)</span>-<a name="line-310"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\181'</span><span class='layout'>,</span> <span class='chr'>'\901'</span> <span class='layout'>)</span>-<a name="line-311"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\182'</span><span class='layout'>,</span> <span class='chr'>'\902'</span> <span class='layout'>)</span>-<a name="line-312"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\184'</span><span class='layout'>,</span> <span class='chr'>'\904'</span> <span class='layout'>)</span>-<a name="line-313"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\185'</span><span class='layout'>,</span> <span class='chr'>'\905'</span> <span class='layout'>)</span>-<a name="line-314"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\186'</span><span class='layout'>,</span> <span class='chr'>'\906'</span> <span class='layout'>)</span>-<a name="line-315"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\188'</span><span class='layout'>,</span> <span class='chr'>'\908'</span> <span class='layout'>)</span>-<a name="line-316"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\190'</span><span class='layout'>,</span> <span class='chr'>'\910'</span> <span class='layout'>)</span>-<a name="line-317"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\191'</span><span class='layout'>,</span> <span class='chr'>'\911'</span> <span class='layout'>)</span>-<a name="line-318"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\192'</span><span class='layout'>,</span> <span class='chr'>'\912'</span> <span class='layout'>)</span>-<a name="line-319"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\193'</span><span class='layout'>,</span> <span class='chr'>'\913'</span> <span class='layout'>)</span>-<a name="line-320"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\194'</span><span class='layout'>,</span> <span class='chr'>'\914'</span> <span class='layout'>)</span>-<a name="line-321"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\195'</span><span class='layout'>,</span> <span class='chr'>'\915'</span> <span class='layout'>)</span>-<a name="line-322"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\196'</span><span class='layout'>,</span> <span class='chr'>'\916'</span> <span class='layout'>)</span>-<a name="line-323"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\197'</span><span class='layout'>,</span> <span class='chr'>'\917'</span> <span class='layout'>)</span>-<a name="line-324"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\198'</span><span class='layout'>,</span> <span class='chr'>'\918'</span> <span class='layout'>)</span>-<a name="line-325"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\199'</span><span class='layout'>,</span> <span class='chr'>'\919'</span> <span class='layout'>)</span>-<a name="line-326"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\200'</span><span class='layout'>,</span> <span class='chr'>'\920'</span> <span class='layout'>)</span>-<a name="line-327"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\201'</span><span class='layout'>,</span> <span class='chr'>'\921'</span> <span class='layout'>)</span>-<a name="line-328"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\202'</span><span class='layout'>,</span> <span class='chr'>'\922'</span> <span class='layout'>)</span>-<a name="line-329"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\203'</span><span class='layout'>,</span> <span class='chr'>'\923'</span> <span class='layout'>)</span>-<a name="line-330"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\204'</span><span class='layout'>,</span> <span class='chr'>'\924'</span> <span class='layout'>)</span>-<a name="line-331"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\205'</span><span class='layout'>,</span> <span class='chr'>'\925'</span> <span class='layout'>)</span>-<a name="line-332"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\206'</span><span class='layout'>,</span> <span class='chr'>'\926'</span> <span class='layout'>)</span>-<a name="line-333"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\207'</span><span class='layout'>,</span> <span class='chr'>'\927'</span> <span class='layout'>)</span>-<a name="line-334"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\208'</span><span class='layout'>,</span> <span class='chr'>'\928'</span> <span class='layout'>)</span>-<a name="line-335"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\209'</span><span class='layout'>,</span> <span class='chr'>'\929'</span> <span class='layout'>)</span>-<a name="line-336"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\211'</span><span class='layout'>,</span> <span class='chr'>'\931'</span> <span class='layout'>)</span>-<a name="line-337"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\212'</span><span class='layout'>,</span> <span class='chr'>'\932'</span> <span class='layout'>)</span>-<a name="line-338"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\213'</span><span class='layout'>,</span> <span class='chr'>'\933'</span> <span class='layout'>)</span>-<a name="line-339"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\214'</span><span class='layout'>,</span> <span class='chr'>'\934'</span> <span class='layout'>)</span>-<a name="line-340"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\215'</span><span class='layout'>,</span> <span class='chr'>'\935'</span> <span class='layout'>)</span>-<a name="line-341"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\216'</span><span class='layout'>,</span> <span class='chr'>'\936'</span> <span class='layout'>)</span>-<a name="line-342"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\217'</span><span class='layout'>,</span> <span class='chr'>'\937'</span> <span class='layout'>)</span>-<a name="line-343"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\218'</span><span class='layout'>,</span> <span class='chr'>'\938'</span> <span class='layout'>)</span>-<a name="line-344"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\219'</span><span class='layout'>,</span> <span class='chr'>'\939'</span> <span class='layout'>)</span>-<a name="line-345"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\220'</span><span class='layout'>,</span> <span class='chr'>'\940'</span> <span class='layout'>)</span>-<a name="line-346"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\221'</span><span class='layout'>,</span> <span class='chr'>'\941'</span> <span class='layout'>)</span>-<a name="line-347"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\222'</span><span class='layout'>,</span> <span class='chr'>'\942'</span> <span class='layout'>)</span>-<a name="line-348"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\223'</span><span class='layout'>,</span> <span class='chr'>'\943'</span> <span class='layout'>)</span>-<a name="line-349"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\224'</span><span class='layout'>,</span> <span class='chr'>'\944'</span> <span class='layout'>)</span>-<a name="line-350"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\225'</span><span class='layout'>,</span> <span class='chr'>'\945'</span> <span class='layout'>)</span>-<a name="line-351"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\226'</span><span class='layout'>,</span> <span class='chr'>'\946'</span> <span class='layout'>)</span>-<a name="line-352"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\227'</span><span class='layout'>,</span> <span class='chr'>'\947'</span> <span class='layout'>)</span>-<a name="line-353"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\228'</span><span class='layout'>,</span> <span class='chr'>'\948'</span> <span class='layout'>)</span>-<a name="line-354"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\229'</span><span class='layout'>,</span> <span class='chr'>'\949'</span> <span class='layout'>)</span>-<a name="line-355"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\230'</span><span class='layout'>,</span> <span class='chr'>'\950'</span> <span class='layout'>)</span>-<a name="line-356"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\231'</span><span class='layout'>,</span> <span class='chr'>'\951'</span> <span class='layout'>)</span>-<a name="line-357"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\232'</span><span class='layout'>,</span> <span class='chr'>'\952'</span> <span class='layout'>)</span>-<a name="line-358"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\233'</span><span class='layout'>,</span> <span class='chr'>'\953'</span> <span class='layout'>)</span>-<a name="line-359"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\234'</span><span class='layout'>,</span> <span class='chr'>'\954'</span> <span class='layout'>)</span>-<a name="line-360"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\235'</span><span class='layout'>,</span> <span class='chr'>'\955'</span> <span class='layout'>)</span>-<a name="line-361"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\236'</span><span class='layout'>,</span> <span class='chr'>'\956'</span> <span class='layout'>)</span>-<a name="line-362"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\237'</span><span class='layout'>,</span> <span class='chr'>'\957'</span> <span class='layout'>)</span>-<a name="line-363"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\238'</span><span class='layout'>,</span> <span class='chr'>'\958'</span> <span class='layout'>)</span>-<a name="line-364"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\239'</span><span class='layout'>,</span> <span class='chr'>'\959'</span> <span class='layout'>)</span>-<a name="line-365"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\240'</span><span class='layout'>,</span> <span class='chr'>'\960'</span> <span class='layout'>)</span>-<a name="line-366"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\241'</span><span class='layout'>,</span> <span class='chr'>'\961'</span> <span class='layout'>)</span>-<a name="line-367"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\242'</span><span class='layout'>,</span> <span class='chr'>'\962'</span> <span class='layout'>)</span>-<a name="line-368"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\243'</span><span class='layout'>,</span> <span class='chr'>'\963'</span> <span class='layout'>)</span>-<a name="line-369"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\244'</span><span class='layout'>,</span> <span class='chr'>'\964'</span> <span class='layout'>)</span>-<a name="line-370"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\245'</span><span class='layout'>,</span> <span class='chr'>'\965'</span> <span class='layout'>)</span>-<a name="line-371"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\246'</span><span class='layout'>,</span> <span class='chr'>'\966'</span> <span class='layout'>)</span>-<a name="line-372"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\247'</span><span class='layout'>,</span> <span class='chr'>'\967'</span> <span class='layout'>)</span>-<a name="line-373"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\248'</span><span class='layout'>,</span> <span class='chr'>'\968'</span> <span class='layout'>)</span>-<a name="line-374"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\249'</span><span class='layout'>,</span> <span class='chr'>'\969'</span> <span class='layout'>)</span>-<a name="line-375"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\250'</span><span class='layout'>,</span> <span class='chr'>'\970'</span> <span class='layout'>)</span>-<a name="line-376"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\251'</span><span class='layout'>,</span> <span class='chr'>'\971'</span> <span class='layout'>)</span>-<a name="line-377"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\252'</span><span class='layout'>,</span> <span class='chr'>'\972'</span> <span class='layout'>)</span>-<a name="line-378"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\253'</span><span class='layout'>,</span> <span class='chr'>'\973'</span> <span class='layout'>)</span>-<a name="line-379"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\254'</span><span class='layout'>,</span> <span class='chr'>'\974'</span> <span class='layout'>)</span>-<a name="line-380"></a> <span class='keyglyph'>]</span>-<a name="line-381"></a>-<a name="line-382"></a><a name="iso_8859_8"></a><span class='definition'>iso_8859_8</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>Char</span><span class='layout'>,</span> <span class='conid'>Char</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-383"></a><span class='definition'>iso_8859_8</span>-<a name="line-384"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\170'</span><span class='layout'>,</span> <span class='chr'>'\215'</span> <span class='layout'>)</span>-<a name="line-385"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\186'</span><span class='layout'>,</span> <span class='chr'>'\247'</span> <span class='layout'>)</span>-<a name="line-386"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\223'</span><span class='layout'>,</span> <span class='chr'>'\8215'</span> <span class='layout'>)</span>-<a name="line-387"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\224'</span><span class='layout'>,</span> <span class='chr'>'\1488'</span> <span class='layout'>)</span>-<a name="line-388"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\225'</span><span class='layout'>,</span> <span class='chr'>'\1489'</span> <span class='layout'>)</span>-<a name="line-389"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\226'</span><span class='layout'>,</span> <span class='chr'>'\1490'</span> <span class='layout'>)</span>-<a name="line-390"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\227'</span><span class='layout'>,</span> <span class='chr'>'\1491'</span> <span class='layout'>)</span>-<a name="line-391"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\228'</span><span class='layout'>,</span> <span class='chr'>'\1492'</span> <span class='layout'>)</span>-<a name="line-392"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\229'</span><span class='layout'>,</span> <span class='chr'>'\1493'</span> <span class='layout'>)</span>-<a name="line-393"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\230'</span><span class='layout'>,</span> <span class='chr'>'\1494'</span> <span class='layout'>)</span>-<a name="line-394"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\231'</span><span class='layout'>,</span> <span class='chr'>'\1495'</span> <span class='layout'>)</span>-<a name="line-395"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\232'</span><span class='layout'>,</span> <span class='chr'>'\1496'</span> <span class='layout'>)</span>-<a name="line-396"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\233'</span><span class='layout'>,</span> <span class='chr'>'\1497'</span> <span class='layout'>)</span>-<a name="line-397"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\234'</span><span class='layout'>,</span> <span class='chr'>'\1498'</span> <span class='layout'>)</span>-<a name="line-398"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\235'</span><span class='layout'>,</span> <span class='chr'>'\1499'</span> <span class='layout'>)</span>-<a name="line-399"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\236'</span><span class='layout'>,</span> <span class='chr'>'\1500'</span> <span class='layout'>)</span>-<a name="line-400"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\237'</span><span class='layout'>,</span> <span class='chr'>'\1501'</span> <span class='layout'>)</span>-<a name="line-401"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\238'</span><span class='layout'>,</span> <span class='chr'>'\1502'</span> <span class='layout'>)</span>-<a name="line-402"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\239'</span><span class='layout'>,</span> <span class='chr'>'\1503'</span> <span class='layout'>)</span>-<a name="line-403"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\240'</span><span class='layout'>,</span> <span class='chr'>'\1504'</span> <span class='layout'>)</span>-<a name="line-404"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\241'</span><span class='layout'>,</span> <span class='chr'>'\1505'</span> <span class='layout'>)</span>-<a name="line-405"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\242'</span><span class='layout'>,</span> <span class='chr'>'\1506'</span> <span class='layout'>)</span>-<a name="line-406"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\243'</span><span class='layout'>,</span> <span class='chr'>'\1507'</span> <span class='layout'>)</span>-<a name="line-407"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\244'</span><span class='layout'>,</span> <span class='chr'>'\1508'</span> <span class='layout'>)</span>-<a name="line-408"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\245'</span><span class='layout'>,</span> <span class='chr'>'\1509'</span> <span class='layout'>)</span>-<a name="line-409"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\246'</span><span class='layout'>,</span> <span class='chr'>'\1510'</span> <span class='layout'>)</span>-<a name="line-410"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\247'</span><span class='layout'>,</span> <span class='chr'>'\1511'</span> <span class='layout'>)</span>-<a name="line-411"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\248'</span><span class='layout'>,</span> <span class='chr'>'\1512'</span> <span class='layout'>)</span>-<a name="line-412"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\249'</span><span class='layout'>,</span> <span class='chr'>'\1513'</span> <span class='layout'>)</span>-<a name="line-413"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\250'</span><span class='layout'>,</span> <span class='chr'>'\1514'</span> <span class='layout'>)</span>-<a name="line-414"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\253'</span><span class='layout'>,</span> <span class='chr'>'\8206'</span> <span class='layout'>)</span>-<a name="line-415"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\254'</span><span class='layout'>,</span> <span class='chr'>'\8207'</span> <span class='layout'>)</span>-<a name="line-416"></a> <span class='keyglyph'>]</span>-<a name="line-417"></a>-<a name="line-418"></a><a name="iso_8859_9"></a><span class='definition'>iso_8859_9</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>Char</span><span class='layout'>,</span> <span class='conid'>Char</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-419"></a><span class='definition'>iso_8859_9</span>-<a name="line-420"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\208'</span><span class='layout'>,</span> <span class='chr'>'\286'</span> <span class='layout'>)</span>-<a name="line-421"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\221'</span><span class='layout'>,</span> <span class='chr'>'\304'</span> <span class='layout'>)</span>-<a name="line-422"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\222'</span><span class='layout'>,</span> <span class='chr'>'\350'</span> <span class='layout'>)</span>-<a name="line-423"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\240'</span><span class='layout'>,</span> <span class='chr'>'\287'</span> <span class='layout'>)</span>-<a name="line-424"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\253'</span><span class='layout'>,</span> <span class='chr'>'\305'</span> <span class='layout'>)</span>-<a name="line-425"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\254'</span><span class='layout'>,</span> <span class='chr'>'\351'</span> <span class='layout'>)</span>-<a name="line-426"></a> <span class='keyglyph'>]</span>-<a name="line-427"></a>-<a name="line-428"></a><a name="iso_8859_10"></a><span class='definition'>iso_8859_10</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>Char</span><span class='layout'>,</span> <span class='conid'>Char</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-429"></a><span class='definition'>iso_8859_10</span>-<a name="line-430"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\161'</span><span class='layout'>,</span> <span class='chr'>'\260'</span> <span class='layout'>)</span>-<a name="line-431"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\162'</span><span class='layout'>,</span> <span class='chr'>'\274'</span> <span class='layout'>)</span>-<a name="line-432"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\163'</span><span class='layout'>,</span> <span class='chr'>'\290'</span> <span class='layout'>)</span>-<a name="line-433"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\164'</span><span class='layout'>,</span> <span class='chr'>'\298'</span> <span class='layout'>)</span>-<a name="line-434"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\165'</span><span class='layout'>,</span> <span class='chr'>'\296'</span> <span class='layout'>)</span>-<a name="line-435"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\166'</span><span class='layout'>,</span> <span class='chr'>'\310'</span> <span class='layout'>)</span>-<a name="line-436"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\168'</span><span class='layout'>,</span> <span class='chr'>'\315'</span> <span class='layout'>)</span>-<a name="line-437"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\169'</span><span class='layout'>,</span> <span class='chr'>'\272'</span> <span class='layout'>)</span>-<a name="line-438"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\170'</span><span class='layout'>,</span> <span class='chr'>'\352'</span> <span class='layout'>)</span>-<a name="line-439"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\171'</span><span class='layout'>,</span> <span class='chr'>'\358'</span> <span class='layout'>)</span>-<a name="line-440"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\172'</span><span class='layout'>,</span> <span class='chr'>'\381'</span> <span class='layout'>)</span>-<a name="line-441"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\174'</span><span class='layout'>,</span> <span class='chr'>'\362'</span> <span class='layout'>)</span>-<a name="line-442"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\175'</span><span class='layout'>,</span> <span class='chr'>'\330'</span> <span class='layout'>)</span>-<a name="line-443"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\177'</span><span class='layout'>,</span> <span class='chr'>'\261'</span> <span class='layout'>)</span>-<a name="line-444"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\178'</span><span class='layout'>,</span> <span class='chr'>'\275'</span> <span class='layout'>)</span>-<a name="line-445"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\179'</span><span class='layout'>,</span> <span class='chr'>'\291'</span> <span class='layout'>)</span>-<a name="line-446"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\180'</span><span class='layout'>,</span> <span class='chr'>'\299'</span> <span class='layout'>)</span>-<a name="line-447"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\181'</span><span class='layout'>,</span> <span class='chr'>'\297'</span> <span class='layout'>)</span>-<a name="line-448"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\182'</span><span class='layout'>,</span> <span class='chr'>'\311'</span> <span class='layout'>)</span>-<a name="line-449"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\184'</span><span class='layout'>,</span> <span class='chr'>'\316'</span> <span class='layout'>)</span>-<a name="line-450"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\185'</span><span class='layout'>,</span> <span class='chr'>'\273'</span> <span class='layout'>)</span>-<a name="line-451"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\186'</span><span class='layout'>,</span> <span class='chr'>'\353'</span> <span class='layout'>)</span>-<a name="line-452"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\187'</span><span class='layout'>,</span> <span class='chr'>'\359'</span> <span class='layout'>)</span>-<a name="line-453"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\188'</span><span class='layout'>,</span> <span class='chr'>'\382'</span> <span class='layout'>)</span>-<a name="line-454"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\189'</span><span class='layout'>,</span> <span class='chr'>'\8213'</span> <span class='layout'>)</span>-<a name="line-455"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\190'</span><span class='layout'>,</span> <span class='chr'>'\363'</span> <span class='layout'>)</span>-<a name="line-456"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\191'</span><span class='layout'>,</span> <span class='chr'>'\331'</span> <span class='layout'>)</span>-<a name="line-457"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\192'</span><span class='layout'>,</span> <span class='chr'>'\256'</span> <span class='layout'>)</span>-<a name="line-458"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\199'</span><span class='layout'>,</span> <span class='chr'>'\302'</span> <span class='layout'>)</span>-<a name="line-459"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\200'</span><span class='layout'>,</span> <span class='chr'>'\268'</span> <span class='layout'>)</span>-<a name="line-460"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\202'</span><span class='layout'>,</span> <span class='chr'>'\280'</span> <span class='layout'>)</span>-<a name="line-461"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\204'</span><span class='layout'>,</span> <span class='chr'>'\278'</span> <span class='layout'>)</span>-<a name="line-462"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\209'</span><span class='layout'>,</span> <span class='chr'>'\325'</span> <span class='layout'>)</span>-<a name="line-463"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\210'</span><span class='layout'>,</span> <span class='chr'>'\332'</span> <span class='layout'>)</span>-<a name="line-464"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\215'</span><span class='layout'>,</span> <span class='chr'>'\360'</span> <span class='layout'>)</span>-<a name="line-465"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\217'</span><span class='layout'>,</span> <span class='chr'>'\370'</span> <span class='layout'>)</span>-<a name="line-466"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\224'</span><span class='layout'>,</span> <span class='chr'>'\257'</span> <span class='layout'>)</span>-<a name="line-467"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\231'</span><span class='layout'>,</span> <span class='chr'>'\303'</span> <span class='layout'>)</span>-<a name="line-468"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\232'</span><span class='layout'>,</span> <span class='chr'>'\269'</span> <span class='layout'>)</span>-<a name="line-469"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\234'</span><span class='layout'>,</span> <span class='chr'>'\281'</span> <span class='layout'>)</span>-<a name="line-470"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\236'</span><span class='layout'>,</span> <span class='chr'>'\279'</span> <span class='layout'>)</span>-<a name="line-471"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\241'</span><span class='layout'>,</span> <span class='chr'>'\326'</span> <span class='layout'>)</span>-<a name="line-472"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\242'</span><span class='layout'>,</span> <span class='chr'>'\333'</span> <span class='layout'>)</span>-<a name="line-473"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\247'</span><span class='layout'>,</span> <span class='chr'>'\361'</span> <span class='layout'>)</span>-<a name="line-474"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\249'</span><span class='layout'>,</span> <span class='chr'>'\371'</span> <span class='layout'>)</span>-<a name="line-475"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\255'</span><span class='layout'>,</span> <span class='chr'>'\312'</span> <span class='layout'>)</span>-<a name="line-476"></a> <span class='keyglyph'>]</span>-<a name="line-477"></a>-<a name="line-478"></a><a name="iso_8859_11"></a><span class='definition'>iso_8859_11</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>Char</span><span class='layout'>,</span> <span class='conid'>Char</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-479"></a><span class='definition'>iso_8859_11</span>-<a name="line-480"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\161'</span><span class='layout'>,</span> <span class='chr'>'\3585'</span> <span class='layout'>)</span>-<a name="line-481"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\162'</span><span class='layout'>,</span> <span class='chr'>'\3586'</span> <span class='layout'>)</span>-<a name="line-482"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\163'</span><span class='layout'>,</span> <span class='chr'>'\3587'</span> <span class='layout'>)</span>-<a name="line-483"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\164'</span><span class='layout'>,</span> <span class='chr'>'\3588'</span> <span class='layout'>)</span>-<a name="line-484"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\165'</span><span class='layout'>,</span> <span class='chr'>'\3589'</span> <span class='layout'>)</span>-<a name="line-485"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\166'</span><span class='layout'>,</span> <span class='chr'>'\3590'</span> <span class='layout'>)</span>-<a name="line-486"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\167'</span><span class='layout'>,</span> <span class='chr'>'\3591'</span> <span class='layout'>)</span>-<a name="line-487"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\168'</span><span class='layout'>,</span> <span class='chr'>'\3592'</span> <span class='layout'>)</span>-<a name="line-488"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\169'</span><span class='layout'>,</span> <span class='chr'>'\3593'</span> <span class='layout'>)</span>-<a name="line-489"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\170'</span><span class='layout'>,</span> <span class='chr'>'\3594'</span> <span class='layout'>)</span>-<a name="line-490"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\171'</span><span class='layout'>,</span> <span class='chr'>'\3595'</span> <span class='layout'>)</span>-<a name="line-491"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\172'</span><span class='layout'>,</span> <span class='chr'>'\3596'</span> <span class='layout'>)</span>-<a name="line-492"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\173'</span><span class='layout'>,</span> <span class='chr'>'\3597'</span> <span class='layout'>)</span>-<a name="line-493"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\174'</span><span class='layout'>,</span> <span class='chr'>'\3598'</span> <span class='layout'>)</span>-<a name="line-494"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\175'</span><span class='layout'>,</span> <span class='chr'>'\3599'</span> <span class='layout'>)</span>-<a name="line-495"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\176'</span><span class='layout'>,</span> <span class='chr'>'\3600'</span> <span class='layout'>)</span>-<a name="line-496"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\177'</span><span class='layout'>,</span> <span class='chr'>'\3601'</span> <span class='layout'>)</span>-<a name="line-497"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\178'</span><span class='layout'>,</span> <span class='chr'>'\3602'</span> <span class='layout'>)</span>-<a name="line-498"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\179'</span><span class='layout'>,</span> <span class='chr'>'\3603'</span> <span class='layout'>)</span>-<a name="line-499"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\180'</span><span class='layout'>,</span> <span class='chr'>'\3604'</span> <span class='layout'>)</span>-<a name="line-500"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\181'</span><span class='layout'>,</span> <span class='chr'>'\3605'</span> <span class='layout'>)</span>-<a name="line-501"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\182'</span><span class='layout'>,</span> <span class='chr'>'\3606'</span> <span class='layout'>)</span>-<a name="line-502"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\183'</span><span class='layout'>,</span> <span class='chr'>'\3607'</span> <span class='layout'>)</span>-<a name="line-503"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\184'</span><span class='layout'>,</span> <span class='chr'>'\3608'</span> <span class='layout'>)</span>-<a name="line-504"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\185'</span><span class='layout'>,</span> <span class='chr'>'\3609'</span> <span class='layout'>)</span>-<a name="line-505"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\186'</span><span class='layout'>,</span> <span class='chr'>'\3610'</span> <span class='layout'>)</span>-<a name="line-506"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\187'</span><span class='layout'>,</span> <span class='chr'>'\3611'</span> <span class='layout'>)</span>-<a name="line-507"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\188'</span><span class='layout'>,</span> <span class='chr'>'\3612'</span> <span class='layout'>)</span>-<a name="line-508"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\189'</span><span class='layout'>,</span> <span class='chr'>'\3613'</span> <span class='layout'>)</span>-<a name="line-509"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\190'</span><span class='layout'>,</span> <span class='chr'>'\3614'</span> <span class='layout'>)</span>-<a name="line-510"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\191'</span><span class='layout'>,</span> <span class='chr'>'\3615'</span> <span class='layout'>)</span>-<a name="line-511"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\192'</span><span class='layout'>,</span> <span class='chr'>'\3616'</span> <span class='layout'>)</span>-<a name="line-512"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\193'</span><span class='layout'>,</span> <span class='chr'>'\3617'</span> <span class='layout'>)</span>-<a name="line-513"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\194'</span><span class='layout'>,</span> <span class='chr'>'\3618'</span> <span class='layout'>)</span>-<a name="line-514"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\195'</span><span class='layout'>,</span> <span class='chr'>'\3619'</span> <span class='layout'>)</span>-<a name="line-515"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\196'</span><span class='layout'>,</span> <span class='chr'>'\3620'</span> <span class='layout'>)</span>-<a name="line-516"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\197'</span><span class='layout'>,</span> <span class='chr'>'\3621'</span> <span class='layout'>)</span>-<a name="line-517"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\198'</span><span class='layout'>,</span> <span class='chr'>'\3622'</span> <span class='layout'>)</span>-<a name="line-518"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\199'</span><span class='layout'>,</span> <span class='chr'>'\3623'</span> <span class='layout'>)</span>-<a name="line-519"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\200'</span><span class='layout'>,</span> <span class='chr'>'\3624'</span> <span class='layout'>)</span>-<a name="line-520"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\201'</span><span class='layout'>,</span> <span class='chr'>'\3625'</span> <span class='layout'>)</span>-<a name="line-521"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\202'</span><span class='layout'>,</span> <span class='chr'>'\3626'</span> <span class='layout'>)</span>-<a name="line-522"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\203'</span><span class='layout'>,</span> <span class='chr'>'\3627'</span> <span class='layout'>)</span>-<a name="line-523"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\204'</span><span class='layout'>,</span> <span class='chr'>'\3628'</span> <span class='layout'>)</span>-<a name="line-524"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\205'</span><span class='layout'>,</span> <span class='chr'>'\3629'</span> <span class='layout'>)</span>-<a name="line-525"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\206'</span><span class='layout'>,</span> <span class='chr'>'\3630'</span> <span class='layout'>)</span>-<a name="line-526"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\207'</span><span class='layout'>,</span> <span class='chr'>'\3631'</span> <span class='layout'>)</span>-<a name="line-527"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\208'</span><span class='layout'>,</span> <span class='chr'>'\3632'</span> <span class='layout'>)</span>-<a name="line-528"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\209'</span><span class='layout'>,</span> <span class='chr'>'\3633'</span> <span class='layout'>)</span>-<a name="line-529"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\210'</span><span class='layout'>,</span> <span class='chr'>'\3634'</span> <span class='layout'>)</span>-<a name="line-530"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\211'</span><span class='layout'>,</span> <span class='chr'>'\3635'</span> <span class='layout'>)</span>-<a name="line-531"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\212'</span><span class='layout'>,</span> <span class='chr'>'\3636'</span> <span class='layout'>)</span>-<a name="line-532"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\213'</span><span class='layout'>,</span> <span class='chr'>'\3637'</span> <span class='layout'>)</span>-<a name="line-533"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\214'</span><span class='layout'>,</span> <span class='chr'>'\3638'</span> <span class='layout'>)</span>-<a name="line-534"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\215'</span><span class='layout'>,</span> <span class='chr'>'\3639'</span> <span class='layout'>)</span>-<a name="line-535"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\216'</span><span class='layout'>,</span> <span class='chr'>'\3640'</span> <span class='layout'>)</span>-<a name="line-536"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\217'</span><span class='layout'>,</span> <span class='chr'>'\3641'</span> <span class='layout'>)</span>-<a name="line-537"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\218'</span><span class='layout'>,</span> <span class='chr'>'\3642'</span> <span class='layout'>)</span>-<a name="line-538"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\223'</span><span class='layout'>,</span> <span class='chr'>'\3647'</span> <span class='layout'>)</span>-<a name="line-539"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\224'</span><span class='layout'>,</span> <span class='chr'>'\3648'</span> <span class='layout'>)</span>-<a name="line-540"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\225'</span><span class='layout'>,</span> <span class='chr'>'\3649'</span> <span class='layout'>)</span>-<a name="line-541"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\226'</span><span class='layout'>,</span> <span class='chr'>'\3650'</span> <span class='layout'>)</span>-<a name="line-542"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\227'</span><span class='layout'>,</span> <span class='chr'>'\3651'</span> <span class='layout'>)</span>-<a name="line-543"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\228'</span><span class='layout'>,</span> <span class='chr'>'\3652'</span> <span class='layout'>)</span>-<a name="line-544"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\229'</span><span class='layout'>,</span> <span class='chr'>'\3653'</span> <span class='layout'>)</span>-<a name="line-545"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\230'</span><span class='layout'>,</span> <span class='chr'>'\3654'</span> <span class='layout'>)</span>-<a name="line-546"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\231'</span><span class='layout'>,</span> <span class='chr'>'\3655'</span> <span class='layout'>)</span>-<a name="line-547"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\232'</span><span class='layout'>,</span> <span class='chr'>'\3656'</span> <span class='layout'>)</span>-<a name="line-548"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\233'</span><span class='layout'>,</span> <span class='chr'>'\3657'</span> <span class='layout'>)</span>-<a name="line-549"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\234'</span><span class='layout'>,</span> <span class='chr'>'\3658'</span> <span class='layout'>)</span>-<a name="line-550"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\235'</span><span class='layout'>,</span> <span class='chr'>'\3659'</span> <span class='layout'>)</span>-<a name="line-551"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\236'</span><span class='layout'>,</span> <span class='chr'>'\3660'</span> <span class='layout'>)</span>-<a name="line-552"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\237'</span><span class='layout'>,</span> <span class='chr'>'\3661'</span> <span class='layout'>)</span>-<a name="line-553"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\238'</span><span class='layout'>,</span> <span class='chr'>'\3662'</span> <span class='layout'>)</span>-<a name="line-554"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\239'</span><span class='layout'>,</span> <span class='chr'>'\3663'</span> <span class='layout'>)</span>-<a name="line-555"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\240'</span><span class='layout'>,</span> <span class='chr'>'\3664'</span> <span class='layout'>)</span>-<a name="line-556"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\241'</span><span class='layout'>,</span> <span class='chr'>'\3665'</span> <span class='layout'>)</span>-<a name="line-557"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\242'</span><span class='layout'>,</span> <span class='chr'>'\3666'</span> <span class='layout'>)</span>-<a name="line-558"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\243'</span><span class='layout'>,</span> <span class='chr'>'\3667'</span> <span class='layout'>)</span>-<a name="line-559"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\244'</span><span class='layout'>,</span> <span class='chr'>'\3668'</span> <span class='layout'>)</span>-<a name="line-560"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\245'</span><span class='layout'>,</span> <span class='chr'>'\3669'</span> <span class='layout'>)</span>-<a name="line-561"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\246'</span><span class='layout'>,</span> <span class='chr'>'\3670'</span> <span class='layout'>)</span>-<a name="line-562"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\247'</span><span class='layout'>,</span> <span class='chr'>'\3671'</span> <span class='layout'>)</span>-<a name="line-563"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\248'</span><span class='layout'>,</span> <span class='chr'>'\3672'</span> <span class='layout'>)</span>-<a name="line-564"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\249'</span><span class='layout'>,</span> <span class='chr'>'\3673'</span> <span class='layout'>)</span>-<a name="line-565"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\250'</span><span class='layout'>,</span> <span class='chr'>'\3674'</span> <span class='layout'>)</span>-<a name="line-566"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\251'</span><span class='layout'>,</span> <span class='chr'>'\3675'</span> <span class='layout'>)</span>-<a name="line-567"></a> <span class='keyglyph'>]</span>-<a name="line-568"></a>-<a name="line-569"></a><a name="iso_8859_13"></a><span class='definition'>iso_8859_13</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>Char</span><span class='layout'>,</span> <span class='conid'>Char</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-570"></a><span class='definition'>iso_8859_13</span>-<a name="line-571"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\161'</span><span class='layout'>,</span> <span class='chr'>'\8221'</span> <span class='layout'>)</span>-<a name="line-572"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\165'</span><span class='layout'>,</span> <span class='chr'>'\8222'</span> <span class='layout'>)</span>-<a name="line-573"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\168'</span><span class='layout'>,</span> <span class='chr'>'\216'</span> <span class='layout'>)</span>-<a name="line-574"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\170'</span><span class='layout'>,</span> <span class='chr'>'\342'</span> <span class='layout'>)</span>-<a name="line-575"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\175'</span><span class='layout'>,</span> <span class='chr'>'\198'</span> <span class='layout'>)</span>-<a name="line-576"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\180'</span><span class='layout'>,</span> <span class='chr'>'\8220'</span> <span class='layout'>)</span>-<a name="line-577"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\184'</span><span class='layout'>,</span> <span class='chr'>'\248'</span> <span class='layout'>)</span>-<a name="line-578"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\186'</span><span class='layout'>,</span> <span class='chr'>'\343'</span> <span class='layout'>)</span>-<a name="line-579"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\191'</span><span class='layout'>,</span> <span class='chr'>'\230'</span> <span class='layout'>)</span>-<a name="line-580"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\192'</span><span class='layout'>,</span> <span class='chr'>'\260'</span> <span class='layout'>)</span>-<a name="line-581"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\193'</span><span class='layout'>,</span> <span class='chr'>'\302'</span> <span class='layout'>)</span>-<a name="line-582"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\194'</span><span class='layout'>,</span> <span class='chr'>'\256'</span> <span class='layout'>)</span>-<a name="line-583"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\195'</span><span class='layout'>,</span> <span class='chr'>'\262'</span> <span class='layout'>)</span>-<a name="line-584"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\198'</span><span class='layout'>,</span> <span class='chr'>'\280'</span> <span class='layout'>)</span>-<a name="line-585"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\199'</span><span class='layout'>,</span> <span class='chr'>'\274'</span> <span class='layout'>)</span>-<a name="line-586"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\200'</span><span class='layout'>,</span> <span class='chr'>'\268'</span> <span class='layout'>)</span>-<a name="line-587"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\202'</span><span class='layout'>,</span> <span class='chr'>'\377'</span> <span class='layout'>)</span>-<a name="line-588"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\203'</span><span class='layout'>,</span> <span class='chr'>'\278'</span> <span class='layout'>)</span>-<a name="line-589"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\204'</span><span class='layout'>,</span> <span class='chr'>'\290'</span> <span class='layout'>)</span>-<a name="line-590"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\205'</span><span class='layout'>,</span> <span class='chr'>'\310'</span> <span class='layout'>)</span>-<a name="line-591"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\206'</span><span class='layout'>,</span> <span class='chr'>'\298'</span> <span class='layout'>)</span>-<a name="line-592"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\207'</span><span class='layout'>,</span> <span class='chr'>'\315'</span> <span class='layout'>)</span>-<a name="line-593"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\208'</span><span class='layout'>,</span> <span class='chr'>'\352'</span> <span class='layout'>)</span>-<a name="line-594"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\209'</span><span class='layout'>,</span> <span class='chr'>'\323'</span> <span class='layout'>)</span>-<a name="line-595"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\210'</span><span class='layout'>,</span> <span class='chr'>'\325'</span> <span class='layout'>)</span>-<a name="line-596"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\212'</span><span class='layout'>,</span> <span class='chr'>'\332'</span> <span class='layout'>)</span>-<a name="line-597"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\216'</span><span class='layout'>,</span> <span class='chr'>'\370'</span> <span class='layout'>)</span>-<a name="line-598"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\217'</span><span class='layout'>,</span> <span class='chr'>'\321'</span> <span class='layout'>)</span>-<a name="line-599"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\218'</span><span class='layout'>,</span> <span class='chr'>'\346'</span> <span class='layout'>)</span>-<a name="line-600"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\219'</span><span class='layout'>,</span> <span class='chr'>'\362'</span> <span class='layout'>)</span>-<a name="line-601"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\221'</span><span class='layout'>,</span> <span class='chr'>'\379'</span> <span class='layout'>)</span>-<a name="line-602"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\222'</span><span class='layout'>,</span> <span class='chr'>'\381'</span> <span class='layout'>)</span>-<a name="line-603"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\224'</span><span class='layout'>,</span> <span class='chr'>'\261'</span> <span class='layout'>)</span>-<a name="line-604"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\225'</span><span class='layout'>,</span> <span class='chr'>'\303'</span> <span class='layout'>)</span>-<a name="line-605"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\226'</span><span class='layout'>,</span> <span class='chr'>'\257'</span> <span class='layout'>)</span>-<a name="line-606"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\227'</span><span class='layout'>,</span> <span class='chr'>'\263'</span> <span class='layout'>)</span>-<a name="line-607"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\230'</span><span class='layout'>,</span> <span class='chr'>'\281'</span> <span class='layout'>)</span>-<a name="line-608"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\231'</span><span class='layout'>,</span> <span class='chr'>'\275'</span> <span class='layout'>)</span>-<a name="line-609"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\232'</span><span class='layout'>,</span> <span class='chr'>'\269'</span> <span class='layout'>)</span>-<a name="line-610"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\234'</span><span class='layout'>,</span> <span class='chr'>'\378'</span> <span class='layout'>)</span>-<a name="line-611"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\235'</span><span class='layout'>,</span> <span class='chr'>'\279'</span> <span class='layout'>)</span>-<a name="line-612"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\236'</span><span class='layout'>,</span> <span class='chr'>'\291'</span> <span class='layout'>)</span>-<a name="line-613"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\237'</span><span class='layout'>,</span> <span class='chr'>'\311'</span> <span class='layout'>)</span>-<a name="line-614"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\238'</span><span class='layout'>,</span> <span class='chr'>'\299'</span> <span class='layout'>)</span>-<a name="line-615"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\239'</span><span class='layout'>,</span> <span class='chr'>'\316'</span> <span class='layout'>)</span>-<a name="line-616"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\240'</span><span class='layout'>,</span> <span class='chr'>'\353'</span> <span class='layout'>)</span>-<a name="line-617"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\241'</span><span class='layout'>,</span> <span class='chr'>'\324'</span> <span class='layout'>)</span>-<a name="line-618"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\242'</span><span class='layout'>,</span> <span class='chr'>'\326'</span> <span class='layout'>)</span>-<a name="line-619"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\244'</span><span class='layout'>,</span> <span class='chr'>'\333'</span> <span class='layout'>)</span>-<a name="line-620"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\248'</span><span class='layout'>,</span> <span class='chr'>'\371'</span> <span class='layout'>)</span>-<a name="line-621"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\249'</span><span class='layout'>,</span> <span class='chr'>'\322'</span> <span class='layout'>)</span>-<a name="line-622"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\250'</span><span class='layout'>,</span> <span class='chr'>'\347'</span> <span class='layout'>)</span>-<a name="line-623"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\251'</span><span class='layout'>,</span> <span class='chr'>'\363'</span> <span class='layout'>)</span>-<a name="line-624"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\253'</span><span class='layout'>,</span> <span class='chr'>'\380'</span> <span class='layout'>)</span>-<a name="line-625"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\254'</span><span class='layout'>,</span> <span class='chr'>'\382'</span> <span class='layout'>)</span>-<a name="line-626"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\255'</span><span class='layout'>,</span> <span class='chr'>'\8217'</span> <span class='layout'>)</span>-<a name="line-627"></a> <span class='keyglyph'>]</span>-<a name="line-628"></a>-<a name="line-629"></a><a name="iso_8859_14"></a><span class='definition'>iso_8859_14</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>Char</span><span class='layout'>,</span> <span class='conid'>Char</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-630"></a><span class='definition'>iso_8859_14</span>-<a name="line-631"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\161'</span><span class='layout'>,</span> <span class='chr'>'\7682'</span> <span class='layout'>)</span>-<a name="line-632"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\162'</span><span class='layout'>,</span> <span class='chr'>'\7683'</span> <span class='layout'>)</span>-<a name="line-633"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\164'</span><span class='layout'>,</span> <span class='chr'>'\266'</span> <span class='layout'>)</span>-<a name="line-634"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\165'</span><span class='layout'>,</span> <span class='chr'>'\267'</span> <span class='layout'>)</span>-<a name="line-635"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\166'</span><span class='layout'>,</span> <span class='chr'>'\7690'</span> <span class='layout'>)</span>-<a name="line-636"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\168'</span><span class='layout'>,</span> <span class='chr'>'\7808'</span> <span class='layout'>)</span>-<a name="line-637"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\170'</span><span class='layout'>,</span> <span class='chr'>'\7810'</span> <span class='layout'>)</span>-<a name="line-638"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\171'</span><span class='layout'>,</span> <span class='chr'>'\7691'</span> <span class='layout'>)</span>-<a name="line-639"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\172'</span><span class='layout'>,</span> <span class='chr'>'\7922'</span> <span class='layout'>)</span>-<a name="line-640"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\175'</span><span class='layout'>,</span> <span class='chr'>'\376'</span> <span class='layout'>)</span>-<a name="line-641"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\176'</span><span class='layout'>,</span> <span class='chr'>'\7710'</span> <span class='layout'>)</span>-<a name="line-642"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\177'</span><span class='layout'>,</span> <span class='chr'>'\7711'</span> <span class='layout'>)</span>-<a name="line-643"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\178'</span><span class='layout'>,</span> <span class='chr'>'\288'</span> <span class='layout'>)</span>-<a name="line-644"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\179'</span><span class='layout'>,</span> <span class='chr'>'\289'</span> <span class='layout'>)</span>-<a name="line-645"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\180'</span><span class='layout'>,</span> <span class='chr'>'\7744'</span> <span class='layout'>)</span>-<a name="line-646"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\181'</span><span class='layout'>,</span> <span class='chr'>'\7745'</span> <span class='layout'>)</span>-<a name="line-647"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\183'</span><span class='layout'>,</span> <span class='chr'>'\7766'</span> <span class='layout'>)</span>-<a name="line-648"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\184'</span><span class='layout'>,</span> <span class='chr'>'\7809'</span> <span class='layout'>)</span>-<a name="line-649"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\185'</span><span class='layout'>,</span> <span class='chr'>'\7767'</span> <span class='layout'>)</span>-<a name="line-650"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\186'</span><span class='layout'>,</span> <span class='chr'>'\7811'</span> <span class='layout'>)</span>-<a name="line-651"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\187'</span><span class='layout'>,</span> <span class='chr'>'\7776'</span> <span class='layout'>)</span>-<a name="line-652"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\188'</span><span class='layout'>,</span> <span class='chr'>'\7923'</span> <span class='layout'>)</span>-<a name="line-653"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\189'</span><span class='layout'>,</span> <span class='chr'>'\7812'</span> <span class='layout'>)</span>-<a name="line-654"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\190'</span><span class='layout'>,</span> <span class='chr'>'\7813'</span> <span class='layout'>)</span>-<a name="line-655"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\191'</span><span class='layout'>,</span> <span class='chr'>'\7777'</span> <span class='layout'>)</span>-<a name="line-656"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\208'</span><span class='layout'>,</span> <span class='chr'>'\372'</span> <span class='layout'>)</span>-<a name="line-657"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\215'</span><span class='layout'>,</span> <span class='chr'>'\7786'</span> <span class='layout'>)</span>-<a name="line-658"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\222'</span><span class='layout'>,</span> <span class='chr'>'\374'</span> <span class='layout'>)</span>-<a name="line-659"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\240'</span><span class='layout'>,</span> <span class='chr'>'\373'</span> <span class='layout'>)</span>-<a name="line-660"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\247'</span><span class='layout'>,</span> <span class='chr'>'\7787'</span> <span class='layout'>)</span>-<a name="line-661"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\254'</span><span class='layout'>,</span> <span class='chr'>'\375'</span> <span class='layout'>)</span>-<a name="line-662"></a> <span class='keyglyph'>]</span>-<a name="line-663"></a>-<a name="line-664"></a><a name="iso_8859_15"></a><span class='definition'>iso_8859_15</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>Char</span><span class='layout'>,</span> <span class='conid'>Char</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-665"></a><span class='definition'>iso_8859_15</span>-<a name="line-666"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\164'</span><span class='layout'>,</span> <span class='chr'>'\8364'</span> <span class='layout'>)</span>-<a name="line-667"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\166'</span><span class='layout'>,</span> <span class='chr'>'\352'</span> <span class='layout'>)</span>-<a name="line-668"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\168'</span><span class='layout'>,</span> <span class='chr'>'\353'</span> <span class='layout'>)</span>-<a name="line-669"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\180'</span><span class='layout'>,</span> <span class='chr'>'\381'</span> <span class='layout'>)</span>-<a name="line-670"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\184'</span><span class='layout'>,</span> <span class='chr'>'\382'</span> <span class='layout'>)</span>-<a name="line-671"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\188'</span><span class='layout'>,</span> <span class='chr'>'\338'</span> <span class='layout'>)</span>-<a name="line-672"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\189'</span><span class='layout'>,</span> <span class='chr'>'\339'</span> <span class='layout'>)</span>-<a name="line-673"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\190'</span><span class='layout'>,</span> <span class='chr'>'\376'</span> <span class='layout'>)</span>-<a name="line-674"></a> <span class='keyglyph'>]</span>-<a name="line-675"></a>-<a name="line-676"></a><a name="iso_8859_16"></a><span class='definition'>iso_8859_16</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>Char</span><span class='layout'>,</span> <span class='conid'>Char</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-677"></a><span class='definition'>iso_8859_16</span>-<a name="line-678"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\161'</span><span class='layout'>,</span> <span class='chr'>'\260'</span> <span class='layout'>)</span>-<a name="line-679"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\162'</span><span class='layout'>,</span> <span class='chr'>'\261'</span> <span class='layout'>)</span>-<a name="line-680"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\163'</span><span class='layout'>,</span> <span class='chr'>'\321'</span> <span class='layout'>)</span>-<a name="line-681"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\164'</span><span class='layout'>,</span> <span class='chr'>'\8364'</span> <span class='layout'>)</span>-<a name="line-682"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\165'</span><span class='layout'>,</span> <span class='chr'>'\8222'</span> <span class='layout'>)</span>-<a name="line-683"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\166'</span><span class='layout'>,</span> <span class='chr'>'\352'</span> <span class='layout'>)</span>-<a name="line-684"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\168'</span><span class='layout'>,</span> <span class='chr'>'\353'</span> <span class='layout'>)</span>-<a name="line-685"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\170'</span><span class='layout'>,</span> <span class='chr'>'\536'</span> <span class='layout'>)</span>-<a name="line-686"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\172'</span><span class='layout'>,</span> <span class='chr'>'\377'</span> <span class='layout'>)</span>-<a name="line-687"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\174'</span><span class='layout'>,</span> <span class='chr'>'\378'</span> <span class='layout'>)</span>-<a name="line-688"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\175'</span><span class='layout'>,</span> <span class='chr'>'\379'</span> <span class='layout'>)</span>-<a name="line-689"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\178'</span><span class='layout'>,</span> <span class='chr'>'\268'</span> <span class='layout'>)</span>-<a name="line-690"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\179'</span><span class='layout'>,</span> <span class='chr'>'\322'</span> <span class='layout'>)</span>-<a name="line-691"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\180'</span><span class='layout'>,</span> <span class='chr'>'\381'</span> <span class='layout'>)</span>-<a name="line-692"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\181'</span><span class='layout'>,</span> <span class='chr'>'\8221'</span> <span class='layout'>)</span>-<a name="line-693"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\184'</span><span class='layout'>,</span> <span class='chr'>'\382'</span> <span class='layout'>)</span>-<a name="line-694"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\185'</span><span class='layout'>,</span> <span class='chr'>'\269'</span> <span class='layout'>)</span>-<a name="line-695"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\186'</span><span class='layout'>,</span> <span class='chr'>'\537'</span> <span class='layout'>)</span>-<a name="line-696"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\188'</span><span class='layout'>,</span> <span class='chr'>'\338'</span> <span class='layout'>)</span>-<a name="line-697"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\189'</span><span class='layout'>,</span> <span class='chr'>'\339'</span> <span class='layout'>)</span>-<a name="line-698"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\190'</span><span class='layout'>,</span> <span class='chr'>'\376'</span> <span class='layout'>)</span>-<a name="line-699"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\191'</span><span class='layout'>,</span> <span class='chr'>'\380'</span> <span class='layout'>)</span>-<a name="line-700"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\195'</span><span class='layout'>,</span> <span class='chr'>'\258'</span> <span class='layout'>)</span>-<a name="line-701"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\197'</span><span class='layout'>,</span> <span class='chr'>'\262'</span> <span class='layout'>)</span>-<a name="line-702"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\208'</span><span class='layout'>,</span> <span class='chr'>'\272'</span> <span class='layout'>)</span>-<a name="line-703"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\209'</span><span class='layout'>,</span> <span class='chr'>'\323'</span> <span class='layout'>)</span>-<a name="line-704"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\213'</span><span class='layout'>,</span> <span class='chr'>'\336'</span> <span class='layout'>)</span>-<a name="line-705"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\215'</span><span class='layout'>,</span> <span class='chr'>'\346'</span> <span class='layout'>)</span>-<a name="line-706"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\216'</span><span class='layout'>,</span> <span class='chr'>'\368'</span> <span class='layout'>)</span>-<a name="line-707"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\221'</span><span class='layout'>,</span> <span class='chr'>'\280'</span> <span class='layout'>)</span>-<a name="line-708"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\222'</span><span class='layout'>,</span> <span class='chr'>'\538'</span> <span class='layout'>)</span>-<a name="line-709"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\227'</span><span class='layout'>,</span> <span class='chr'>'\259'</span> <span class='layout'>)</span>-<a name="line-710"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\229'</span><span class='layout'>,</span> <span class='chr'>'\263'</span> <span class='layout'>)</span>-<a name="line-711"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\240'</span><span class='layout'>,</span> <span class='chr'>'\273'</span> <span class='layout'>)</span>-<a name="line-712"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\241'</span><span class='layout'>,</span> <span class='chr'>'\324'</span> <span class='layout'>)</span>-<a name="line-713"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\245'</span><span class='layout'>,</span> <span class='chr'>'\337'</span> <span class='layout'>)</span>-<a name="line-714"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\247'</span><span class='layout'>,</span> <span class='chr'>'\347'</span> <span class='layout'>)</span>-<a name="line-715"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\248'</span><span class='layout'>,</span> <span class='chr'>'\369'</span> <span class='layout'>)</span>-<a name="line-716"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\253'</span><span class='layout'>,</span> <span class='chr'>'\281'</span> <span class='layout'>)</span>-<a name="line-717"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\254'</span><span class='layout'>,</span> <span class='chr'>'\539'</span> <span class='layout'>)</span>-<a name="line-718"></a> <span class='keyglyph'>]</span>-<a name="line-719"></a>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-DOM-MimeTypeDefaults.html
@@ -1,594 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- | default mime type table</span>-<a name="line-2"></a><span class='comment'>-- </span>-<a name="line-3"></a><span class='comment'>-- this file is generated from file /etc/mime.types</span>-<a name="line-4"></a>-<a name="line-5"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>MimeTypeDefaults</span>-<a name="line-6"></a><span class='keyword'>where</span>-<a name="line-7"></a>-<a name="line-8"></a><span class='comment'>-- | the table with the mapping from file name extensions to mime types</span>-<a name="line-9"></a>-<a name="line-10"></a><a name="mimeTypeDefaults"></a><span class='definition'>mimeTypeDefaults</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-11"></a><span class='definition'>mimeTypeDefaults</span>-<a name="line-12"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='str'>"123"</span><span class='layout'>,</span> <span class='str'>"application/vnd.lotus-1-2-3"</span><span class='layout'>)</span>-<a name="line-13"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"3ds"</span><span class='layout'>,</span> <span class='str'>"image/x-3ds"</span><span class='layout'>)</span>-<a name="line-14"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"3g2"</span><span class='layout'>,</span> <span class='str'>"video/x-3gpp2"</span><span class='layout'>)</span>-<a name="line-15"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"3gp"</span><span class='layout'>,</span> <span class='str'>"video/3gpp"</span><span class='layout'>)</span>-<a name="line-16"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"669"</span><span class='layout'>,</span> <span class='str'>"audio/x-mod"</span><span class='layout'>)</span>-<a name="line-17"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"BAY"</span><span class='layout'>,</span> <span class='str'>"image/x-dcraw"</span><span class='layout'>)</span>-<a name="line-18"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"BLEND"</span><span class='layout'>,</span> <span class='str'>"application/x-blender"</span><span class='layout'>)</span>-<a name="line-19"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"BMQ"</span><span class='layout'>,</span> <span class='str'>"image/x-dcraw"</span><span class='layout'>)</span>-<a name="line-20"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"C"</span><span class='layout'>,</span> <span class='str'>"text/x-c++src"</span><span class='layout'>)</span>-<a name="line-21"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"CR2"</span><span class='layout'>,</span> <span class='str'>"image/x-dcraw"</span><span class='layout'>)</span>-<a name="line-22"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"CRW"</span><span class='layout'>,</span> <span class='str'>"image/x-dcraw"</span><span class='layout'>)</span>-<a name="line-23"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"CS1"</span><span class='layout'>,</span> <span class='str'>"image/x-dcraw"</span><span class='layout'>)</span>-<a name="line-24"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"CSSL"</span><span class='layout'>,</span> <span class='str'>"text/css"</span><span class='layout'>)</span>-<a name="line-25"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"DC2"</span><span class='layout'>,</span> <span class='str'>"image/x-dcraw"</span><span class='layout'>)</span>-<a name="line-26"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"DCR"</span><span class='layout'>,</span> <span class='str'>"image/x-dcraw"</span><span class='layout'>)</span>-<a name="line-27"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"FFF"</span><span class='layout'>,</span> <span class='str'>"image/x-dcraw"</span><span class='layout'>)</span>-<a name="line-28"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"K25"</span><span class='layout'>,</span> <span class='str'>"image/x-dcraw"</span><span class='layout'>)</span>-<a name="line-29"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"KDC"</span><span class='layout'>,</span> <span class='str'>"image/x-dcraw"</span><span class='layout'>)</span>-<a name="line-30"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"MOS"</span><span class='layout'>,</span> <span class='str'>"image/x-dcraw"</span><span class='layout'>)</span>-<a name="line-31"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"MRW"</span><span class='layout'>,</span> <span class='str'>"image/x-dcraw"</span><span class='layout'>)</span>-<a name="line-32"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"NEF"</span><span class='layout'>,</span> <span class='str'>"image/x-dcraw"</span><span class='layout'>)</span>-<a name="line-33"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"NSV"</span><span class='layout'>,</span> <span class='str'>"video/x-nsv"</span><span class='layout'>)</span>-<a name="line-34"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ORF"</span><span class='layout'>,</span> <span class='str'>"image/x-dcraw"</span><span class='layout'>)</span>-<a name="line-35"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"PAR2"</span><span class='layout'>,</span> <span class='str'>"application/x-par2"</span><span class='layout'>)</span>-<a name="line-36"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"PEF"</span><span class='layout'>,</span> <span class='str'>"image/x-dcraw"</span><span class='layout'>)</span>-<a name="line-37"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"RAF"</span><span class='layout'>,</span> <span class='str'>"image/x-dcraw"</span><span class='layout'>)</span>-<a name="line-38"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"RDC"</span><span class='layout'>,</span> <span class='str'>"image/x-dcraw"</span><span class='layout'>)</span>-<a name="line-39"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"SRF"</span><span class='layout'>,</span> <span class='str'>"image/x-dcraw"</span><span class='layout'>)</span>-<a name="line-40"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"TTC"</span><span class='layout'>,</span> <span class='str'>"application/x-font-ttf"</span><span class='layout'>)</span>-<a name="line-41"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"X3F"</span><span class='layout'>,</span> <span class='str'>"image/x-dcraw"</span><span class='layout'>)</span>-<a name="line-42"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"XM"</span><span class='layout'>,</span> <span class='str'>"audio/x-mod"</span><span class='layout'>)</span>-<a name="line-43"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Z"</span><span class='layout'>,</span> <span class='str'>"application/x-compress"</span><span class='layout'>)</span>-<a name="line-44"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"a"</span><span class='layout'>,</span> <span class='str'>"application/x-archive"</span><span class='layout'>)</span>-<a name="line-45"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"aac"</span><span class='layout'>,</span> <span class='str'>"audio/x-aac"</span><span class='layout'>)</span>-<a name="line-46"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"abw"</span><span class='layout'>,</span> <span class='str'>"application/x-abiword"</span><span class='layout'>)</span>-<a name="line-47"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"abw.CRASHED"</span><span class='layout'>,</span> <span class='str'>"application/x-abiword"</span><span class='layout'>)</span>-<a name="line-48"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"abw.gz"</span><span class='layout'>,</span> <span class='str'>"application/x-abiword"</span><span class='layout'>)</span>-<a name="line-49"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ac3"</span><span class='layout'>,</span> <span class='str'>"audio/ac3"</span><span class='layout'>)</span>-<a name="line-50"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"adb"</span><span class='layout'>,</span> <span class='str'>"text/x-adasrc"</span><span class='layout'>)</span>-<a name="line-51"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ads"</span><span class='layout'>,</span> <span class='str'>"text/x-adasrc"</span><span class='layout'>)</span>-<a name="line-52"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"afm"</span><span class='layout'>,</span> <span class='str'>"application/x-font-afm"</span><span class='layout'>)</span>-<a name="line-53"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ag"</span><span class='layout'>,</span> <span class='str'>"image/x-applix-graphics"</span><span class='layout'>)</span>-<a name="line-54"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ai"</span><span class='layout'>,</span> <span class='str'>"application/illustrator"</span><span class='layout'>)</span>-<a name="line-55"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"aif"</span><span class='layout'>,</span> <span class='str'>"audio/x-aiff"</span><span class='layout'>)</span>-<a name="line-56"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"aif"</span><span class='layout'>,</span> <span class='str'>"audio/x-aiff"</span><span class='layout'>)</span>-<a name="line-57"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"aifc"</span><span class='layout'>,</span> <span class='str'>"audio/x-aiff"</span><span class='layout'>)</span>-<a name="line-58"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"aiff"</span><span class='layout'>,</span> <span class='str'>"audio/x-aiff"</span><span class='layout'>)</span>-<a name="line-59"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"aiff"</span><span class='layout'>,</span> <span class='str'>"audio/x-aiff"</span><span class='layout'>)</span>-<a name="line-60"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"al"</span><span class='layout'>,</span> <span class='str'>"application/x-perl"</span><span class='layout'>)</span>-<a name="line-61"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"anim[1-9j]"</span><span class='layout'>,</span> <span class='str'>"video/x-anim"</span><span class='layout'>)</span>-<a name="line-62"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"aop"</span><span class='layout'>,</span> <span class='str'>"application/x-frontline"</span><span class='layout'>)</span>-<a name="line-63"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"arj"</span><span class='layout'>,</span> <span class='str'>"application/x-arj"</span><span class='layout'>)</span>-<a name="line-64"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"as"</span><span class='layout'>,</span> <span class='str'>"application/x-applix-spreadsheet"</span><span class='layout'>)</span>-<a name="line-65"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"asax"</span><span class='layout'>,</span> <span class='str'>"application/x-asax"</span><span class='layout'>)</span>-<a name="line-66"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"asc"</span><span class='layout'>,</span> <span class='str'>"text/plain"</span><span class='layout'>)</span>-<a name="line-67"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ascx"</span><span class='layout'>,</span> <span class='str'>"application/x-ascx"</span><span class='layout'>)</span>-<a name="line-68"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"asf"</span><span class='layout'>,</span> <span class='str'>"video/x-ms-asf"</span><span class='layout'>)</span>-<a name="line-69"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ashx"</span><span class='layout'>,</span> <span class='str'>"application/x-ashx"</span><span class='layout'>)</span>-<a name="line-70"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"asix"</span><span class='layout'>,</span> <span class='str'>"application/x-asix"</span><span class='layout'>)</span>-<a name="line-71"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"asmx"</span><span class='layout'>,</span> <span class='str'>"application/x-asmx"</span><span class='layout'>)</span>-<a name="line-72"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"asp"</span><span class='layout'>,</span> <span class='str'>"application/x-asp"</span><span class='layout'>)</span>-<a name="line-73"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"aspx"</span><span class='layout'>,</span> <span class='str'>"application/x-aspx"</span><span class='layout'>)</span>-<a name="line-74"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"asx"</span><span class='layout'>,</span> <span class='str'>"video/x-ms-asf"</span><span class='layout'>)</span>-<a name="line-75"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"au"</span><span class='layout'>,</span> <span class='str'>"audio/basic"</span><span class='layout'>)</span>-<a name="line-76"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"avi"</span><span class='layout'>,</span> <span class='str'>"video/x-msvideo"</span><span class='layout'>)</span>-<a name="line-77"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"aw"</span><span class='layout'>,</span> <span class='str'>"application/x-applix-word"</span><span class='layout'>)</span>-<a name="line-78"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"axd"</span><span class='layout'>,</span> <span class='str'>"application/x-axd"</span><span class='layout'>)</span>-<a name="line-79"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"bak"</span><span class='layout'>,</span> <span class='str'>"application/x-trash"</span><span class='layout'>)</span>-<a name="line-80"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"bay"</span><span class='layout'>,</span> <span class='str'>"image/x-dcraw"</span><span class='layout'>)</span>-<a name="line-81"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"bcpio"</span><span class='layout'>,</span> <span class='str'>"application/x-bcpio"</span><span class='layout'>)</span>-<a name="line-82"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"bdf"</span><span class='layout'>,</span> <span class='str'>"application/x-font-bdf"</span><span class='layout'>)</span>-<a name="line-83"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"bib"</span><span class='layout'>,</span> <span class='str'>"text/x-bibtex"</span><span class='layout'>)</span>-<a name="line-84"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"bin"</span><span class='layout'>,</span> <span class='str'>"application/octet-stream"</span><span class='layout'>)</span>-<a name="line-85"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"bin"</span><span class='layout'>,</span> <span class='str'>"application/x-stuffit"</span><span class='layout'>)</span>-<a name="line-86"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"blend"</span><span class='layout'>,</span> <span class='str'>"application/x-blender"</span><span class='layout'>)</span>-<a name="line-87"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"blender"</span><span class='layout'>,</span> <span class='str'>"application/x-blender"</span><span class='layout'>)</span>-<a name="line-88"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"bmp"</span><span class='layout'>,</span> <span class='str'>"image/bmp"</span><span class='layout'>)</span>-<a name="line-89"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"bmq"</span><span class='layout'>,</span> <span class='str'>"image/x-dcraw"</span><span class='layout'>)</span>-<a name="line-90"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"boo"</span><span class='layout'>,</span> <span class='str'>"text/x-boo"</span><span class='layout'>)</span>-<a name="line-91"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"bz"</span><span class='layout'>,</span> <span class='str'>"application/x-bzip"</span><span class='layout'>)</span>-<a name="line-92"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"bz"</span><span class='layout'>,</span> <span class='str'>"application/x-bzip"</span><span class='layout'>)</span>-<a name="line-93"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"bz2"</span><span class='layout'>,</span> <span class='str'>"application/x-bzip"</span><span class='layout'>)</span>-<a name="line-94"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"bz2"</span><span class='layout'>,</span> <span class='str'>"application/x-bzip"</span><span class='layout'>)</span>-<a name="line-95"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"c"</span><span class='layout'>,</span> <span class='str'>"text/x-csrc"</span><span class='layout'>)</span>-<a name="line-96"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"c++"</span><span class='layout'>,</span> <span class='str'>"text/x-c++src"</span><span class='layout'>)</span>-<a name="line-97"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"caves"</span><span class='layout'>,</span> <span class='str'>"application/x-gnome-stones"</span><span class='layout'>)</span>-<a name="line-98"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"cc"</span><span class='layout'>,</span> <span class='str'>"text/x-c++src"</span><span class='layout'>)</span>-<a name="line-99"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"cdf"</span><span class='layout'>,</span> <span class='str'>"application/x-netcdf"</span><span class='layout'>)</span>-<a name="line-100"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"cdr"</span><span class='layout'>,</span> <span class='str'>"application/vnd.corel-draw"</span><span class='layout'>)</span>-<a name="line-101"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"cer"</span><span class='layout'>,</span> <span class='str'>"application/x-x509-ca-cert"</span><span class='layout'>)</span>-<a name="line-102"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"cert"</span><span class='layout'>,</span> <span class='str'>"application/x-x509-ca-cert"</span><span class='layout'>)</span>-<a name="line-103"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"cgi"</span><span class='layout'>,</span> <span class='str'>"application/x-cgi"</span><span class='layout'>)</span>-<a name="line-104"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"cgm"</span><span class='layout'>,</span> <span class='str'>"image/cgm"</span><span class='layout'>)</span>-<a name="line-105"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"chm"</span><span class='layout'>,</span> <span class='str'>"application/x-chm"</span><span class='layout'>)</span>-<a name="line-106"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"chrt"</span><span class='layout'>,</span> <span class='str'>"application/x-kchart"</span><span class='layout'>)</span>-<a name="line-107"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"cht"</span><span class='layout'>,</span> <span class='str'>"application/chemtool"</span><span class='layout'>)</span>-<a name="line-108"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"class"</span><span class='layout'>,</span> <span class='str'>"application/x-java"</span><span class='layout'>)</span>-<a name="line-109"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"cls"</span><span class='layout'>,</span> <span class='str'>"text/x-tex"</span><span class='layout'>)</span>-<a name="line-110"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"cmbx"</span><span class='layout'>,</span> <span class='str'>"application/x-cmbx"</span><span class='layout'>)</span>-<a name="line-111"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"config"</span><span class='layout'>,</span> <span class='str'>"application/x-config"</span><span class='layout'>)</span>-<a name="line-112"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"connection"</span><span class='layout'>,</span> <span class='str'>"application/x-gnome-db-connection"</span><span class='layout'>)</span>-<a name="line-113"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"cpio"</span><span class='layout'>,</span> <span class='str'>"application/x-cpio"</span><span class='layout'>)</span>-<a name="line-114"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"cpio.gz"</span><span class='layout'>,</span> <span class='str'>"application/x-cpio-compressed"</span><span class='layout'>)</span>-<a name="line-115"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"cpp"</span><span class='layout'>,</span> <span class='str'>"text/x-c++src"</span><span class='layout'>)</span>-<a name="line-116"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"cr2"</span><span class='layout'>,</span> <span class='str'>"image/x-dcraw"</span><span class='layout'>)</span>-<a name="line-117"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"crt"</span><span class='layout'>,</span> <span class='str'>"application/x-x509-ca-cert"</span><span class='layout'>)</span>-<a name="line-118"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"crw"</span><span class='layout'>,</span> <span class='str'>"image/x-dcraw"</span><span class='layout'>)</span>-<a name="line-119"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"cs"</span><span class='layout'>,</span> <span class='str'>"text/x-csharp"</span><span class='layout'>)</span>-<a name="line-120"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"cs1"</span><span class='layout'>,</span> <span class='str'>"image/x-dcraw"</span><span class='layout'>)</span>-<a name="line-121"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"csh"</span><span class='layout'>,</span> <span class='str'>"application/x-csh"</span><span class='layout'>)</span>-<a name="line-122"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"css"</span><span class='layout'>,</span> <span class='str'>"text/css"</span><span class='layout'>)</span>-<a name="line-123"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"csv"</span><span class='layout'>,</span> <span class='str'>"text/x-comma-separated-values"</span><span class='layout'>)</span>-<a name="line-124"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"cue"</span><span class='layout'>,</span> <span class='str'>"application/x-cue"</span><span class='layout'>)</span>-<a name="line-125"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"cur"</span><span class='layout'>,</span> <span class='str'>"image/x-win-bitmap"</span><span class='layout'>)</span>-<a name="line-126"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"cxx"</span><span class='layout'>,</span> <span class='str'>"text/x-c++src"</span><span class='layout'>)</span>-<a name="line-127"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"d"</span><span class='layout'>,</span> <span class='str'>"text/x-dsrc"</span><span class='layout'>)</span>-<a name="line-128"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"dat"</span><span class='layout'>,</span> <span class='str'>"video/mpeg"</span><span class='layout'>)</span>-<a name="line-129"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"database"</span><span class='layout'>,</span> <span class='str'>"application/x-gnome-db-database"</span><span class='layout'>)</span>-<a name="line-130"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"dbf"</span><span class='layout'>,</span> <span class='str'>"application/x-dbase"</span><span class='layout'>)</span>-<a name="line-131"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"dc"</span><span class='layout'>,</span> <span class='str'>"application/x-dc-rom"</span><span class='layout'>)</span>-<a name="line-132"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"dc2"</span><span class='layout'>,</span> <span class='str'>"image/x-dcraw"</span><span class='layout'>)</span>-<a name="line-133"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"dcl"</span><span class='layout'>,</span> <span class='str'>"text/x-dcl"</span><span class='layout'>)</span>-<a name="line-134"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"dcm"</span><span class='layout'>,</span> <span class='str'>"application/dicom"</span><span class='layout'>)</span>-<a name="line-135"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"dcr"</span><span class='layout'>,</span> <span class='str'>"image/x-dcraw"</span><span class='layout'>)</span>-<a name="line-136"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"deb"</span><span class='layout'>,</span> <span class='str'>"application/x-deb"</span><span class='layout'>)</span>-<a name="line-137"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"der"</span><span class='layout'>,</span> <span class='str'>"application/x-x509-ca-cert"</span><span class='layout'>)</span>-<a name="line-138"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"desktop"</span><span class='layout'>,</span> <span class='str'>"application/x-desktop"</span><span class='layout'>)</span>-<a name="line-139"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"devhelp"</span><span class='layout'>,</span> <span class='str'>"application/x-devhelp"</span><span class='layout'>)</span>-<a name="line-140"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"dia"</span><span class='layout'>,</span> <span class='str'>"application/x-dia-diagram"</span><span class='layout'>)</span>-<a name="line-141"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"dif"</span><span class='layout'>,</span> <span class='str'>"video/dv"</span><span class='layout'>)</span>-<a name="line-142"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"diff"</span><span class='layout'>,</span> <span class='str'>"text/x-patch"</span><span class='layout'>)</span>-<a name="line-143"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"disco"</span><span class='layout'>,</span> <span class='str'>"application/x-disco"</span><span class='layout'>)</span>-<a name="line-144"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"display"</span><span class='layout'>,</span> <span class='str'>"application/x-gdesklets-display"</span><span class='layout'>)</span>-<a name="line-145"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"djv"</span><span class='layout'>,</span> <span class='str'>"image/vnd.djvu"</span><span class='layout'>)</span>-<a name="line-146"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"djvu"</span><span class='layout'>,</span> <span class='str'>"image/vnd.djvu"</span><span class='layout'>)</span>-<a name="line-147"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"doc"</span><span class='layout'>,</span> <span class='str'>"application/msword"</span><span class='layout'>)</span>-<a name="line-148"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"docbook"</span><span class='layout'>,</span> <span class='str'>"application/docbook+xml"</span><span class='layout'>)</span>-<a name="line-149"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"dsl"</span><span class='layout'>,</span> <span class='str'>"text/x-dsl"</span><span class='layout'>)</span>-<a name="line-150"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"dtd"</span><span class='layout'>,</span> <span class='str'>"text/x-dtd"</span><span class='layout'>)</span>-<a name="line-151"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"dv"</span><span class='layout'>,</span> <span class='str'>"video/dv"</span><span class='layout'>)</span>-<a name="line-152"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"dvi"</span><span class='layout'>,</span> <span class='str'>"application/x-dvi"</span><span class='layout'>)</span>-<a name="line-153"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"dwg"</span><span class='layout'>,</span> <span class='str'>"image/vnd.dwg"</span><span class='layout'>)</span>-<a name="line-154"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"dxf"</span><span class='layout'>,</span> <span class='str'>"image/vnd.dxf"</span><span class='layout'>)</span>-<a name="line-155"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ear"</span><span class='layout'>,</span> <span class='str'>"application/x-java-archive"</span><span class='layout'>)</span>-<a name="line-156"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"egon"</span><span class='layout'>,</span> <span class='str'>"application/x-egon"</span><span class='layout'>)</span>-<a name="line-157"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"el"</span><span class='layout'>,</span> <span class='str'>"text/x-emacs-lisp"</span><span class='layout'>)</span>-<a name="line-158"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"eps"</span><span class='layout'>,</span> <span class='str'>"image/x-eps"</span><span class='layout'>)</span>-<a name="line-159"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"epsf"</span><span class='layout'>,</span> <span class='str'>"image/x-eps"</span><span class='layout'>)</span>-<a name="line-160"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"epsi"</span><span class='layout'>,</span> <span class='str'>"image/x-eps"</span><span class='layout'>)</span>-<a name="line-161"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"etheme"</span><span class='layout'>,</span> <span class='str'>"application/x-e-theme"</span><span class='layout'>)</span>-<a name="line-162"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"etx"</span><span class='layout'>,</span> <span class='str'>"text/x-setext"</span><span class='layout'>)</span>-<a name="line-163"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"exe"</span><span class='layout'>,</span> <span class='str'>"application/x-executable"</span><span class='layout'>)</span>-<a name="line-164"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"exe"</span><span class='layout'>,</span> <span class='str'>"application/x-ms-dos-executable"</span><span class='layout'>)</span>-<a name="line-165"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ez"</span><span class='layout'>,</span> <span class='str'>"application/andrew-inset"</span><span class='layout'>)</span>-<a name="line-166"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"f"</span><span class='layout'>,</span> <span class='str'>"text/x-fortran"</span><span class='layout'>)</span>-<a name="line-167"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"fff"</span><span class='layout'>,</span> <span class='str'>"image/x-dcraw"</span><span class='layout'>)</span>-<a name="line-168"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"fig"</span><span class='layout'>,</span> <span class='str'>"image/x-xfig"</span><span class='layout'>)</span>-<a name="line-169"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"fits"</span><span class='layout'>,</span> <span class='str'>"image/x-fits"</span><span class='layout'>)</span>-<a name="line-170"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"flac"</span><span class='layout'>,</span> <span class='str'>"audio/x-flac"</span><span class='layout'>)</span>-<a name="line-171"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"flc"</span><span class='layout'>,</span> <span class='str'>"video/x-flic"</span><span class='layout'>)</span>-<a name="line-172"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"fli"</span><span class='layout'>,</span> <span class='str'>"video/x-flic"</span><span class='layout'>)</span>-<a name="line-173"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"flw"</span><span class='layout'>,</span> <span class='str'>"application/x-kivio"</span><span class='layout'>)</span>-<a name="line-174"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"fo"</span><span class='layout'>,</span> <span class='str'>"text/x-xslfo"</span><span class='layout'>)</span>-<a name="line-175"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"g3"</span><span class='layout'>,</span> <span class='str'>"image/fax-g3"</span><span class='layout'>)</span>-<a name="line-176"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"gb"</span><span class='layout'>,</span> <span class='str'>"application/x-gameboy-rom"</span><span class='layout'>)</span>-<a name="line-177"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"gcrd"</span><span class='layout'>,</span> <span class='str'>"text/directory"</span><span class='layout'>)</span>-<a name="line-178"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"gen"</span><span class='layout'>,</span> <span class='str'>"application/x-genesis-rom"</span><span class='layout'>)</span>-<a name="line-179"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"gf"</span><span class='layout'>,</span> <span class='str'>"application/x-tex-gf"</span><span class='layout'>)</span>-<a name="line-180"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"gg"</span><span class='layout'>,</span> <span class='str'>"application/x-sms-rom"</span><span class='layout'>)</span>-<a name="line-181"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"gif"</span><span class='layout'>,</span> <span class='str'>"image/gif"</span><span class='layout'>)</span>-<a name="line-182"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"glabels"</span><span class='layout'>,</span> <span class='str'>"application/x-glabels"</span><span class='layout'>)</span>-<a name="line-183"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"glade"</span><span class='layout'>,</span> <span class='str'>"application/x-glade"</span><span class='layout'>)</span>-<a name="line-184"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"gmo"</span><span class='layout'>,</span> <span class='str'>"application/x-gettext-translation"</span><span class='layout'>)</span>-<a name="line-185"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"gnc"</span><span class='layout'>,</span> <span class='str'>"application/x-gnucash"</span><span class='layout'>)</span>-<a name="line-186"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"gnucash"</span><span class='layout'>,</span> <span class='str'>"application/x-gnucash"</span><span class='layout'>)</span>-<a name="line-187"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"gnumeric"</span><span class='layout'>,</span> <span class='str'>"application/x-gnumeric"</span><span class='layout'>)</span>-<a name="line-188"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"gpg"</span><span class='layout'>,</span> <span class='str'>"application/pgp-encrypted"</span><span class='layout'>)</span>-<a name="line-189"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"gra"</span><span class='layout'>,</span> <span class='str'>"application/x-graphite"</span><span class='layout'>)</span>-<a name="line-190"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"gsf"</span><span class='layout'>,</span> <span class='str'>"application/x-font-type1"</span><span class='layout'>)</span>-<a name="line-191"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"gtar"</span><span class='layout'>,</span> <span class='str'>"application/x-gtar"</span><span class='layout'>)</span>-<a name="line-192"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"gz"</span><span class='layout'>,</span> <span class='str'>"application/x-gzip"</span><span class='layout'>)</span>-<a name="line-193"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"h"</span><span class='layout'>,</span> <span class='str'>"text/x-chdr"</span><span class='layout'>)</span>-<a name="line-194"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"h++"</span><span class='layout'>,</span> <span class='str'>"text/x-chdr"</span><span class='layout'>)</span>-<a name="line-195"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"hdf"</span><span class='layout'>,</span> <span class='str'>"application/x-hdf"</span><span class='layout'>)</span>-<a name="line-196"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"hh"</span><span class='layout'>,</span> <span class='str'>"text/x-c++hdr"</span><span class='layout'>)</span>-<a name="line-197"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"hp"</span><span class='layout'>,</span> <span class='str'>"text/x-chdr"</span><span class='layout'>)</span>-<a name="line-198"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"hpgl"</span><span class='layout'>,</span> <span class='str'>"application/vnd.hp-hpgl"</span><span class='layout'>)</span>-<a name="line-199"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"hs"</span><span class='layout'>,</span> <span class='str'>"text/x-haskell"</span><span class='layout'>)</span>-<a name="line-200"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"htm"</span><span class='layout'>,</span> <span class='str'>"text/html"</span><span class='layout'>)</span>-<a name="line-201"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"html"</span><span class='layout'>,</span> <span class='str'>"text/html"</span><span class='layout'>)</span>-<a name="line-202"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ica"</span><span class='layout'>,</span> <span class='str'>"application/x-ica"</span><span class='layout'>)</span>-<a name="line-203"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"icb"</span><span class='layout'>,</span> <span class='str'>"image/x-icb"</span><span class='layout'>)</span>-<a name="line-204"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ico"</span><span class='layout'>,</span> <span class='str'>"image/x-ico"</span><span class='layout'>)</span>-<a name="line-205"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ics"</span><span class='layout'>,</span> <span class='str'>"text/calendar"</span><span class='layout'>)</span>-<a name="line-206"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"idl"</span><span class='layout'>,</span> <span class='str'>"text/x-idl"</span><span class='layout'>)</span>-<a name="line-207"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ief"</span><span class='layout'>,</span> <span class='str'>"image/ief"</span><span class='layout'>)</span>-<a name="line-208"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"iff"</span><span class='layout'>,</span> <span class='str'>"image/x-iff"</span><span class='layout'>)</span>-<a name="line-209"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"il"</span><span class='layout'>,</span> <span class='str'>"text/x-msil"</span><span class='layout'>)</span>-<a name="line-210"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ilbm"</span><span class='layout'>,</span> <span class='str'>"image/x-ilbm"</span><span class='layout'>)</span>-<a name="line-211"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"iso"</span><span class='layout'>,</span> <span class='str'>"application/x-cd-image"</span><span class='layout'>)</span>-<a name="line-212"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"it"</span><span class='layout'>,</span> <span class='str'>"audio/x-it"</span><span class='layout'>)</span>-<a name="line-213"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"jam"</span><span class='layout'>,</span> <span class='str'>"application/x-jamin"</span><span class='layout'>)</span>-<a name="line-214"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"jar"</span><span class='layout'>,</span> <span class='str'>"application/x-jar"</span><span class='layout'>)</span>-<a name="line-215"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"jar"</span><span class='layout'>,</span> <span class='str'>"application/x-java-archive"</span><span class='layout'>)</span>-<a name="line-216"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"java"</span><span class='layout'>,</span> <span class='str'>"text/x-java"</span><span class='layout'>)</span>-<a name="line-217"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"jng"</span><span class='layout'>,</span> <span class='str'>"image/x-jng"</span><span class='layout'>)</span>-<a name="line-218"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"jnlp"</span><span class='layout'>,</span> <span class='str'>"application/x-java-jnlp-file"</span><span class='layout'>)</span>-<a name="line-219"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"jp2"</span><span class='layout'>,</span> <span class='str'>"image/jpeg2000"</span><span class='layout'>)</span>-<a name="line-220"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"jpe"</span><span class='layout'>,</span> <span class='str'>"image/jpeg"</span><span class='layout'>)</span>-<a name="line-221"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"jpeg"</span><span class='layout'>,</span> <span class='str'>"image/jpeg"</span><span class='layout'>)</span>-<a name="line-222"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"jpg"</span><span class='layout'>,</span> <span class='str'>"image/jpeg"</span><span class='layout'>)</span>-<a name="line-223"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"jpr"</span><span class='layout'>,</span> <span class='str'>"application/x-jbuilder-project"</span><span class='layout'>)</span>-<a name="line-224"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"jpx"</span><span class='layout'>,</span> <span class='str'>"application/x-jbuilder-project"</span><span class='layout'>)</span>-<a name="line-225"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"js"</span><span class='layout'>,</span> <span class='str'>"application/x-javascript"</span><span class='layout'>)</span>-<a name="line-226"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"js"</span><span class='layout'>,</span> <span class='str'>"text/x-js"</span><span class='layout'>)</span>-<a name="line-227"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"k"</span><span class='layout'>,</span> <span class='str'>"application/x-tex-pk"</span><span class='layout'>)</span>-<a name="line-228"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"k25"</span><span class='layout'>,</span> <span class='str'>"image/x-dcraw"</span><span class='layout'>)</span>-<a name="line-229"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"karbon"</span><span class='layout'>,</span> <span class='str'>"application/x-karbon"</span><span class='layout'>)</span>-<a name="line-230"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"kdc"</span><span class='layout'>,</span> <span class='str'>"image/x-dcraw"</span><span class='layout'>)</span>-<a name="line-231"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"kdelnk"</span><span class='layout'>,</span> <span class='str'>"application/x-desktop"</span><span class='layout'>)</span>-<a name="line-232"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"kfo"</span><span class='layout'>,</span> <span class='str'>"application/x-kformula"</span><span class='layout'>)</span>-<a name="line-233"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"kil"</span><span class='layout'>,</span> <span class='str'>"application/x-killustrator"</span><span class='layout'>)</span>-<a name="line-234"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"kino"</span><span class='layout'>,</span> <span class='str'>"application/x-smil"</span><span class='layout'>)</span>-<a name="line-235"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"kon"</span><span class='layout'>,</span> <span class='str'>"application/x-kontour"</span><span class='layout'>)</span>-<a name="line-236"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"kpm"</span><span class='layout'>,</span> <span class='str'>"application/x-kpovmodeler"</span><span class='layout'>)</span>-<a name="line-237"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"kpr"</span><span class='layout'>,</span> <span class='str'>"application/x-kpresenter"</span><span class='layout'>)</span>-<a name="line-238"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"kpt"</span><span class='layout'>,</span> <span class='str'>"application/x-kpresenter"</span><span class='layout'>)</span>-<a name="line-239"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"kra"</span><span class='layout'>,</span> <span class='str'>"application/x-krita"</span><span class='layout'>)</span>-<a name="line-240"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ksp"</span><span class='layout'>,</span> <span class='str'>"application/x-kspread"</span><span class='layout'>)</span>-<a name="line-241"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"kud"</span><span class='layout'>,</span> <span class='str'>"application/x-kugar"</span><span class='layout'>)</span>-<a name="line-242"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"kwd"</span><span class='layout'>,</span> <span class='str'>"application/x-kword"</span><span class='layout'>)</span>-<a name="line-243"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"kwt"</span><span class='layout'>,</span> <span class='str'>"application/x-kword"</span><span class='layout'>)</span>-<a name="line-244"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"la"</span><span class='layout'>,</span> <span class='str'>"application/x-shared-library-la"</span><span class='layout'>)</span>-<a name="line-245"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"lha"</span><span class='layout'>,</span> <span class='str'>"application/x-lha"</span><span class='layout'>)</span>-<a name="line-246"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"lhs"</span><span class='layout'>,</span> <span class='str'>"text/x-literate-haskell"</span><span class='layout'>)</span>-<a name="line-247"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"lhz"</span><span class='layout'>,</span> <span class='str'>"application/x-lhz"</span><span class='layout'>)</span>-<a name="line-248"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"log"</span><span class='layout'>,</span> <span class='str'>"text/x-log"</span><span class='layout'>)</span>-<a name="line-249"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ltx"</span><span class='layout'>,</span> <span class='str'>"text/x-tex"</span><span class='layout'>)</span>-<a name="line-250"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"lwo"</span><span class='layout'>,</span> <span class='str'>"image/x-lwo"</span><span class='layout'>)</span>-<a name="line-251"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"lwob"</span><span class='layout'>,</span> <span class='str'>"image/x-lwo"</span><span class='layout'>)</span>-<a name="line-252"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"lws"</span><span class='layout'>,</span> <span class='str'>"image/x-lws"</span><span class='layout'>)</span>-<a name="line-253"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"lyx"</span><span class='layout'>,</span> <span class='str'>"application/x-lyx"</span><span class='layout'>)</span>-<a name="line-254"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"lzh"</span><span class='layout'>,</span> <span class='str'>"application/x-lha"</span><span class='layout'>)</span>-<a name="line-255"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"lzh"</span><span class='layout'>,</span> <span class='str'>"application/x-lha"</span><span class='layout'>)</span>-<a name="line-256"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"lzo"</span><span class='layout'>,</span> <span class='str'>"application/x-lzop"</span><span class='layout'>)</span>-<a name="line-257"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"m"</span><span class='layout'>,</span> <span class='str'>"text/x-objcsrc"</span><span class='layout'>)</span>-<a name="line-258"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"m15"</span><span class='layout'>,</span> <span class='str'>"audio/x-mod"</span><span class='layout'>)</span>-<a name="line-259"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"m3u"</span><span class='layout'>,</span> <span class='str'>"audio/x-mpegurl"</span><span class='layout'>)</span>-<a name="line-260"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"m4a"</span><span class='layout'>,</span> <span class='str'>"audio/x-m4a"</span><span class='layout'>)</span>-<a name="line-261"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"man"</span><span class='layout'>,</span> <span class='str'>"application/x-troff-man"</span><span class='layout'>)</span>-<a name="line-262"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"master"</span><span class='layout'>,</span> <span class='str'>"application/x-master-page"</span><span class='layout'>)</span>-<a name="line-263"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"md"</span><span class='layout'>,</span> <span class='str'>"application/x-genesis-rom"</span><span class='layout'>)</span>-<a name="line-264"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"mdp"</span><span class='layout'>,</span> <span class='str'>"application/x-mdp"</span><span class='layout'>)</span>-<a name="line-265"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"mds"</span><span class='layout'>,</span> <span class='str'>"application/x-mds"</span><span class='layout'>)</span>-<a name="line-266"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"mdsx"</span><span class='layout'>,</span> <span class='str'>"application/x-mdsx"</span><span class='layout'>)</span>-<a name="line-267"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"me"</span><span class='layout'>,</span> <span class='str'>"text/x-troff-me"</span><span class='layout'>)</span>-<a name="line-268"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"mergeant"</span><span class='layout'>,</span> <span class='str'>"application/x-mergeant"</span><span class='layout'>)</span>-<a name="line-269"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"mgp"</span><span class='layout'>,</span> <span class='str'>"application/x-magicpoint"</span><span class='layout'>)</span>-<a name="line-270"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"mid"</span><span class='layout'>,</span> <span class='str'>"audio/midi"</span><span class='layout'>)</span>-<a name="line-271"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"midi"</span><span class='layout'>,</span> <span class='str'>"audio/midi"</span><span class='layout'>)</span>-<a name="line-272"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"mif"</span><span class='layout'>,</span> <span class='str'>"application/x-mif"</span><span class='layout'>)</span>-<a name="line-273"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"mkv"</span><span class='layout'>,</span> <span class='str'>"application/x-matroska"</span><span class='layout'>)</span>-<a name="line-274"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"mm"</span><span class='layout'>,</span> <span class='str'>"text/x-troff-mm"</span><span class='layout'>)</span>-<a name="line-275"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"mml"</span><span class='layout'>,</span> <span class='str'>"text/mathml"</span><span class='layout'>)</span>-<a name="line-276"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"mng"</span><span class='layout'>,</span> <span class='str'>"video/x-mng"</span><span class='layout'>)</span>-<a name="line-277"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"moc"</span><span class='layout'>,</span> <span class='str'>"text/x-moc"</span><span class='layout'>)</span>-<a name="line-278"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"mod"</span><span class='layout'>,</span> <span class='str'>"audio/x-mod"</span><span class='layout'>)</span>-<a name="line-279"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"moov"</span><span class='layout'>,</span> <span class='str'>"video/quicktime"</span><span class='layout'>)</span>-<a name="line-280"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"mos"</span><span class='layout'>,</span> <span class='str'>"image/x-dcraw"</span><span class='layout'>)</span>-<a name="line-281"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"mov"</span><span class='layout'>,</span> <span class='str'>"video/quicktime"</span><span class='layout'>)</span>-<a name="line-282"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"movie"</span><span class='layout'>,</span> <span class='str'>"video/x-sgi-movie"</span><span class='layout'>)</span>-<a name="line-283"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"mp2"</span><span class='layout'>,</span> <span class='str'>"video/mpeg"</span><span class='layout'>)</span>-<a name="line-284"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"mp3"</span><span class='layout'>,</span> <span class='str'>"audio/mpeg"</span><span class='layout'>)</span>-<a name="line-285"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"mpe"</span><span class='layout'>,</span> <span class='str'>"video/mpeg"</span><span class='layout'>)</span>-<a name="line-286"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"mpeg"</span><span class='layout'>,</span> <span class='str'>"video/mpeg"</span><span class='layout'>)</span>-<a name="line-287"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"mpg"</span><span class='layout'>,</span> <span class='str'>"video/mpeg"</span><span class='layout'>)</span>-<a name="line-288"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"mps"</span><span class='layout'>,</span> <span class='str'>"application/x-mps"</span><span class='layout'>)</span>-<a name="line-289"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"mrproject"</span><span class='layout'>,</span> <span class='str'>"application/x-planner"</span><span class='layout'>)</span>-<a name="line-290"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"mrw"</span><span class='layout'>,</span> <span class='str'>"image/x-dcraw"</span><span class='layout'>)</span>-<a name="line-291"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ms"</span><span class='layout'>,</span> <span class='str'>"text/x-troff-ms"</span><span class='layout'>)</span>-<a name="line-292"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"msod"</span><span class='layout'>,</span> <span class='str'>"image/x-msod"</span><span class='layout'>)</span>-<a name="line-293"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"msx"</span><span class='layout'>,</span> <span class='str'>"application/x-msx-rom"</span><span class='layout'>)</span>-<a name="line-294"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"mtm"</span><span class='layout'>,</span> <span class='str'>"audio/x-mod"</span><span class='layout'>)</span>-<a name="line-295"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"n"</span><span class='layout'>,</span> <span class='str'>"text/x-nemerle"</span><span class='layout'>)</span>-<a name="line-296"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"n64"</span><span class='layout'>,</span> <span class='str'>"application/x-n64-rom"</span><span class='layout'>)</span>-<a name="line-297"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"nb"</span><span class='layout'>,</span> <span class='str'>"application/mathematica"</span><span class='layout'>)</span>-<a name="line-298"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"nc"</span><span class='layout'>,</span> <span class='str'>"application/x-netcdf"</span><span class='layout'>)</span>-<a name="line-299"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"nef"</span><span class='layout'>,</span> <span class='str'>"image/x-dcraw"</span><span class='layout'>)</span>-<a name="line-300"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"nes"</span><span class='layout'>,</span> <span class='str'>"application/x-nes-rom"</span><span class='layout'>)</span>-<a name="line-301"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"nsv"</span><span class='layout'>,</span> <span class='str'>"video/x-nsv"</span><span class='layout'>)</span>-<a name="line-302"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"o"</span><span class='layout'>,</span> <span class='str'>"application/x-object"</span><span class='layout'>)</span>-<a name="line-303"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"obj"</span><span class='layout'>,</span> <span class='str'>"application/x-tgif"</span><span class='layout'>)</span>-<a name="line-304"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"oda"</span><span class='layout'>,</span> <span class='str'>"application/oda"</span><span class='layout'>)</span>-<a name="line-305"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"odb"</span><span class='layout'>,</span> <span class='str'>"application/vnd.oasis.opendocument.database"</span><span class='layout'>)</span>-<a name="line-306"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"odc"</span><span class='layout'>,</span> <span class='str'>"application/vnd.oasis.opendocument.chart"</span><span class='layout'>)</span>-<a name="line-307"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"odf"</span><span class='layout'>,</span> <span class='str'>"application/vnd.oasis.opendocument.formula"</span><span class='layout'>)</span>-<a name="line-308"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"odg"</span><span class='layout'>,</span> <span class='str'>"application/vnd.oasis.opendocument.graphics"</span><span class='layout'>)</span>-<a name="line-309"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"odi"</span><span class='layout'>,</span> <span class='str'>"application/vnd.oasis.opendocument.image"</span><span class='layout'>)</span>-<a name="line-310"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"odm"</span><span class='layout'>,</span> <span class='str'>"application/vnd.oasis.opendocument.text-master"</span><span class='layout'>)</span>-<a name="line-311"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"odp"</span><span class='layout'>,</span> <span class='str'>"application/vnd.oasis.opendocument.presentation"</span><span class='layout'>)</span>-<a name="line-312"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ods"</span><span class='layout'>,</span> <span class='str'>"application/vnd.oasis.opendocument.spreadsheet"</span><span class='layout'>)</span>-<a name="line-313"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"odt"</span><span class='layout'>,</span> <span class='str'>"application/vnd.oasis.opendocument.text"</span><span class='layout'>)</span>-<a name="line-314"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ogg"</span><span class='layout'>,</span> <span class='str'>"application/ogg"</span><span class='layout'>)</span>-<a name="line-315"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"old"</span><span class='layout'>,</span> <span class='str'>"application/x-trash"</span><span class='layout'>)</span>-<a name="line-316"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"oleo"</span><span class='layout'>,</span> <span class='str'>"application/x-oleo"</span><span class='layout'>)</span>-<a name="line-317"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"orf"</span><span class='layout'>,</span> <span class='str'>"image/x-dcraw"</span><span class='layout'>)</span>-<a name="line-318"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"otg"</span><span class='layout'>,</span> <span class='str'>"application/vnd.oasis.opendocument.graphics-template"</span><span class='layout'>)</span>-<a name="line-319"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"oth"</span><span class='layout'>,</span> <span class='str'>"application/vnd.oasis.opendocument.text-web"</span><span class='layout'>)</span>-<a name="line-320"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"otp"</span><span class='layout'>,</span> <span class='str'>"application/vnd.oasis.opendocument.presentation-template"</span><span class='layout'>)</span>-<a name="line-321"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ots"</span><span class='layout'>,</span> <span class='str'>"application/vnd.oasis.opendocument.spreadsheet-template"</span><span class='layout'>)</span>-<a name="line-322"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ott"</span><span class='layout'>,</span> <span class='str'>"application/vnd.oasis.opendocument.text-template"</span><span class='layout'>)</span>-<a name="line-323"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"p"</span><span class='layout'>,</span> <span class='str'>"text/x-pascal"</span><span class='layout'>)</span>-<a name="line-324"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"p12"</span><span class='layout'>,</span> <span class='str'>"application/x-pkcs12"</span><span class='layout'>)</span>-<a name="line-325"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"p7s"</span><span class='layout'>,</span> <span class='str'>"application/pkcs7-signature"</span><span class='layout'>)</span>-<a name="line-326"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"par2"</span><span class='layout'>,</span> <span class='str'>"application/x-par2"</span><span class='layout'>)</span>-<a name="line-327"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"pas"</span><span class='layout'>,</span> <span class='str'>"text/x-pascal"</span><span class='layout'>)</span>-<a name="line-328"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"patch"</span><span class='layout'>,</span> <span class='str'>"text/x-patch"</span><span class='layout'>)</span>-<a name="line-329"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"pbm"</span><span class='layout'>,</span> <span class='str'>"image/x-portable-bitmap"</span><span class='layout'>)</span>-<a name="line-330"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"pcd"</span><span class='layout'>,</span> <span class='str'>"image/x-photo-cd"</span><span class='layout'>)</span>-<a name="line-331"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"pcf"</span><span class='layout'>,</span> <span class='str'>"application/x-font-pcf"</span><span class='layout'>)</span>-<a name="line-332"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"pcf.Z"</span><span class='layout'>,</span> <span class='str'>"application/x-font-type1"</span><span class='layout'>)</span>-<a name="line-333"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"pcf.gz"</span><span class='layout'>,</span> <span class='str'>"application/x-font-pcf"</span><span class='layout'>)</span>-<a name="line-334"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"pcl"</span><span class='layout'>,</span> <span class='str'>"application/vnd.hp-pcl"</span><span class='layout'>)</span>-<a name="line-335"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"pdb"</span><span class='layout'>,</span> <span class='str'>"application/vnd.palm"</span><span class='layout'>)</span>-<a name="line-336"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"pdb"</span><span class='layout'>,</span> <span class='str'>"application/x-palm-database"</span><span class='layout'>)</span>-<a name="line-337"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"pdf"</span><span class='layout'>,</span> <span class='str'>"application/pdf"</span><span class='layout'>)</span>-<a name="line-338"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"pef"</span><span class='layout'>,</span> <span class='str'>"image/x-dcraw"</span><span class='layout'>)</span>-<a name="line-339"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"pem"</span><span class='layout'>,</span> <span class='str'>"application/x-x509-ca-cert"</span><span class='layout'>)</span>-<a name="line-340"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"perl"</span><span class='layout'>,</span> <span class='str'>"application/x-perl"</span><span class='layout'>)</span>-<a name="line-341"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"pfa"</span><span class='layout'>,</span> <span class='str'>"application/x-font-type1"</span><span class='layout'>)</span>-<a name="line-342"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"pfb"</span><span class='layout'>,</span> <span class='str'>"application/x-font-type1"</span><span class='layout'>)</span>-<a name="line-343"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"pfx"</span><span class='layout'>,</span> <span class='str'>"application/x-pkcs12"</span><span class='layout'>)</span>-<a name="line-344"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"pgm"</span><span class='layout'>,</span> <span class='str'>"image/x-portable-graymap"</span><span class='layout'>)</span>-<a name="line-345"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"pgn"</span><span class='layout'>,</span> <span class='str'>"application/x-chess-pgn"</span><span class='layout'>)</span>-<a name="line-346"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"pgp"</span><span class='layout'>,</span> <span class='str'>"application/pgp"</span><span class='layout'>)</span>-<a name="line-347"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"pgp"</span><span class='layout'>,</span> <span class='str'>"application/pgp-encrypted"</span><span class='layout'>)</span>-<a name="line-348"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"php"</span><span class='layout'>,</span> <span class='str'>"application/x-php"</span><span class='layout'>)</span>-<a name="line-349"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"php3"</span><span class='layout'>,</span> <span class='str'>"application/x-php"</span><span class='layout'>)</span>-<a name="line-350"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"php4"</span><span class='layout'>,</span> <span class='str'>"application/x-php"</span><span class='layout'>)</span>-<a name="line-351"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"pict"</span><span class='layout'>,</span> <span class='str'>"image/x-pict"</span><span class='layout'>)</span>-<a name="line-352"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"pict1"</span><span class='layout'>,</span> <span class='str'>"image/x-pict"</span><span class='layout'>)</span>-<a name="line-353"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"pict2"</span><span class='layout'>,</span> <span class='str'>"image/x-pict"</span><span class='layout'>)</span>-<a name="line-354"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"pkr"</span><span class='layout'>,</span> <span class='str'>"application/pgp-keys"</span><span class='layout'>)</span>-<a name="line-355"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"pl"</span><span class='layout'>,</span> <span class='str'>"application/x-perl"</span><span class='layout'>)</span>-<a name="line-356"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"planner"</span><span class='layout'>,</span> <span class='str'>"application/x-planner"</span><span class='layout'>)</span>-<a name="line-357"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"pln"</span><span class='layout'>,</span> <span class='str'>"application/x-planperfect"</span><span class='layout'>)</span>-<a name="line-358"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"pls"</span><span class='layout'>,</span> <span class='str'>"audio/x-scpls"</span><span class='layout'>)</span>-<a name="line-359"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"pls"</span><span class='layout'>,</span> <span class='str'>"audio/x-scpls"</span><span class='layout'>)</span>-<a name="line-360"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"pm"</span><span class='layout'>,</span> <span class='str'>"application/x-perl"</span><span class='layout'>)</span>-<a name="line-361"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"png"</span><span class='layout'>,</span> <span class='str'>"image/png"</span><span class='layout'>)</span>-<a name="line-362"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"pnm"</span><span class='layout'>,</span> <span class='str'>"image/x-portable-anymap"</span><span class='layout'>)</span>-<a name="line-363"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"po"</span><span class='layout'>,</span> <span class='str'>"text/x-gettext-translation"</span><span class='layout'>)</span>-<a name="line-364"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"pot"</span><span class='layout'>,</span> <span class='str'>"application/vnd.ms-powerpoint"</span><span class='layout'>)</span>-<a name="line-365"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"pot"</span><span class='layout'>,</span> <span class='str'>"text/x-gettext-translation-template"</span><span class='layout'>)</span>-<a name="line-366"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ppm"</span><span class='layout'>,</span> <span class='str'>"image/x-portable-pixmap"</span><span class='layout'>)</span>-<a name="line-367"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"pps"</span><span class='layout'>,</span> <span class='str'>"application/vnd.ms-powerpoint"</span><span class='layout'>)</span>-<a name="line-368"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ppt"</span><span class='layout'>,</span> <span class='str'>"application/vnd.ms-powerpoint"</span><span class='layout'>)</span>-<a name="line-369"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ppz"</span><span class='layout'>,</span> <span class='str'>"application/vnd.ms-powerpoint"</span><span class='layout'>)</span>-<a name="line-370"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"prc"</span><span class='layout'>,</span> <span class='str'>"application/x-palm-database"</span><span class='layout'>)</span>-<a name="line-371"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"prj"</span><span class='layout'>,</span> <span class='str'>"application/x-anjuta-project"</span><span class='layout'>)</span>-<a name="line-372"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"prjx"</span><span class='layout'>,</span> <span class='str'>"application/x-prjx"</span><span class='layout'>)</span>-<a name="line-373"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ps"</span><span class='layout'>,</span> <span class='str'>"application/postscript"</span><span class='layout'>)</span>-<a name="line-374"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ps.gz"</span><span class='layout'>,</span> <span class='str'>"application/x-gzpostscript"</span><span class='layout'>)</span>-<a name="line-375"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"psd"</span><span class='layout'>,</span> <span class='str'>"image/x-psd"</span><span class='layout'>)</span>-<a name="line-376"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"psf"</span><span class='layout'>,</span> <span class='str'>"application/x-font-linux-psf"</span><span class='layout'>)</span>-<a name="line-377"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"psid"</span><span class='layout'>,</span> <span class='str'>"audio/prs.sid"</span><span class='layout'>)</span>-<a name="line-378"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"pto"</span><span class='layout'>,</span> <span class='str'>"application/x-ptoptimizer-script"</span><span class='layout'>)</span>-<a name="line-379"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"pw"</span><span class='layout'>,</span> <span class='str'>"application/x-pw"</span><span class='layout'>)</span>-<a name="line-380"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"py"</span><span class='layout'>,</span> <span class='str'>"text/x-python"</span><span class='layout'>)</span>-<a name="line-381"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"pyc"</span><span class='layout'>,</span> <span class='str'>"application/x-python-bytecode"</span><span class='layout'>)</span>-<a name="line-382"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"pyo"</span><span class='layout'>,</span> <span class='str'>"application/x-python-bytecode"</span><span class='layout'>)</span>-<a name="line-383"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"qif"</span><span class='layout'>,</span> <span class='str'>"application/x-qw"</span><span class='layout'>)</span>-<a name="line-384"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"qt"</span><span class='layout'>,</span> <span class='str'>"video/quicktime"</span><span class='layout'>)</span>-<a name="line-385"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"qtvr"</span><span class='layout'>,</span> <span class='str'>"video/quicktime"</span><span class='layout'>)</span>-<a name="line-386"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ra"</span><span class='layout'>,</span> <span class='str'>"audio/vnd.rn-realaudio"</span><span class='layout'>)</span>-<a name="line-387"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ra"</span><span class='layout'>,</span> <span class='str'>"audio/x-pn-realaudio"</span><span class='layout'>)</span>-<a name="line-388"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"raf"</span><span class='layout'>,</span> <span class='str'>"image/x-dcraw"</span><span class='layout'>)</span>-<a name="line-389"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ram"</span><span class='layout'>,</span> <span class='str'>"audio/x-pn-realaudio"</span><span class='layout'>)</span>-<a name="line-390"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ram"</span><span class='layout'>,</span> <span class='str'>"audio/x-pn-realaudio"</span><span class='layout'>)</span>-<a name="line-391"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"rar"</span><span class='layout'>,</span> <span class='str'>"application/x-rar"</span><span class='layout'>)</span>-<a name="line-392"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"rar"</span><span class='layout'>,</span> <span class='str'>"application/x-rar-compressed"</span><span class='layout'>)</span>-<a name="line-393"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ras"</span><span class='layout'>,</span> <span class='str'>"image/x-cmu-raster"</span><span class='layout'>)</span>-<a name="line-394"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"rdc"</span><span class='layout'>,</span> <span class='str'>"image/x-dcraw"</span><span class='layout'>)</span>-<a name="line-395"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"rdf"</span><span class='layout'>,</span> <span class='str'>"text/rdf"</span><span class='layout'>)</span>-<a name="line-396"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"rdp"</span><span class='layout'>,</span> <span class='str'>"application/x-rdp"</span><span class='layout'>)</span>-<a name="line-397"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"rej"</span><span class='layout'>,</span> <span class='str'>"application/x-reject"</span><span class='layout'>)</span>-<a name="line-398"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"rem"</span><span class='layout'>,</span> <span class='str'>"application/x-remoting"</span><span class='layout'>)</span>-<a name="line-399"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"resources"</span><span class='layout'>,</span> <span class='str'>"application/x-resources"</span><span class='layout'>)</span>-<a name="line-400"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"resx"</span><span class='layout'>,</span> <span class='str'>"application/x-resourcesx"</span><span class='layout'>)</span>-<a name="line-401"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"rgb"</span><span class='layout'>,</span> <span class='str'>"image/x-rgb"</span><span class='layout'>)</span>-<a name="line-402"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"rle"</span><span class='layout'>,</span> <span class='str'>"image/rle"</span><span class='layout'>)</span>-<a name="line-403"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"rm"</span><span class='layout'>,</span> <span class='str'>"application/vnd.rn-realmedia"</span><span class='layout'>)</span>-<a name="line-404"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"rm"</span><span class='layout'>,</span> <span class='str'>"audio/x-pn-realaudio"</span><span class='layout'>)</span>-<a name="line-405"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"rmm"</span><span class='layout'>,</span> <span class='str'>"audio/x-pn-realaudio"</span><span class='layout'>)</span>-<a name="line-406"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"rms"</span><span class='layout'>,</span> <span class='str'>"application/vnd.rn-realmedia-secure"</span><span class='layout'>)</span>-<a name="line-407"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"rmvb"</span><span class='layout'>,</span> <span class='str'>"application/vnd.rn-realmedia-vbr"</span><span class='layout'>)</span>-<a name="line-408"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"rng"</span><span class='layout'>,</span> <span class='str'>"text/x-rng"</span><span class='layout'>)</span>-<a name="line-409"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"roff"</span><span class='layout'>,</span> <span class='str'>"application/x-troff"</span><span class='layout'>)</span>-<a name="line-410"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"rpm"</span><span class='layout'>,</span> <span class='str'>"application/x-rpm"</span><span class='layout'>)</span>-<a name="line-411"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"rss"</span><span class='layout'>,</span> <span class='str'>"text/rss"</span><span class='layout'>)</span>-<a name="line-412"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"rt"</span><span class='layout'>,</span> <span class='str'>"text/vnd.rn-realtext"</span><span class='layout'>)</span>-<a name="line-413"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"rtf"</span><span class='layout'>,</span> <span class='str'>"application/rtf"</span><span class='layout'>)</span>-<a name="line-414"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"rtx"</span><span class='layout'>,</span> <span class='str'>"text/richtext"</span><span class='layout'>)</span>-<a name="line-415"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"rv"</span><span class='layout'>,</span> <span class='str'>"video/vnd.rn-realvideo"</span><span class='layout'>)</span>-<a name="line-416"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"s3m"</span><span class='layout'>,</span> <span class='str'>"audio/x-s3m"</span><span class='layout'>)</span>-<a name="line-417"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"sam"</span><span class='layout'>,</span> <span class='str'>"application/x-amipro"</span><span class='layout'>)</span>-<a name="line-418"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"sc"</span><span class='layout'>,</span> <span class='str'>"application/x-sc"</span><span class='layout'>)</span>-<a name="line-419"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"scd"</span><span class='layout'>,</span> <span class='str'>"application/x-scribus"</span><span class='layout'>)</span>-<a name="line-420"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"scd.gz"</span><span class='layout'>,</span> <span class='str'>"application/x-scribus"</span><span class='layout'>)</span>-<a name="line-421"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"scm"</span><span class='layout'>,</span> <span class='str'>"text/x-scheme"</span><span class='layout'>)</span>-<a name="line-422"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"sda"</span><span class='layout'>,</span> <span class='str'>"application/vnd.stardivision.draw"</span><span class='layout'>)</span>-<a name="line-423"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"sdc"</span><span class='layout'>,</span> <span class='str'>"application/vnd.stardivision.calc"</span><span class='layout'>)</span>-<a name="line-424"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"sdd"</span><span class='layout'>,</span> <span class='str'>"application/vnd.stardivision.impress"</span><span class='layout'>)</span>-<a name="line-425"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"sdp"</span><span class='layout'>,</span> <span class='str'>"application/sdp"</span><span class='layout'>)</span>-<a name="line-426"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"sdp"</span><span class='layout'>,</span> <span class='str'>"application/vnd.stardivision.impress"</span><span class='layout'>)</span>-<a name="line-427"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"sds"</span><span class='layout'>,</span> <span class='str'>"application/vnd.stardivision.chart"</span><span class='layout'>)</span>-<a name="line-428"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"sdw"</span><span class='layout'>,</span> <span class='str'>"application/vnd.stardivision.writer"</span><span class='layout'>)</span>-<a name="line-429"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"sgi"</span><span class='layout'>,</span> <span class='str'>"image/x-sgi"</span><span class='layout'>)</span>-<a name="line-430"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"sgl"</span><span class='layout'>,</span> <span class='str'>"application/vnd.stardivision.writer"</span><span class='layout'>)</span>-<a name="line-431"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"sgm"</span><span class='layout'>,</span> <span class='str'>"text/sgml"</span><span class='layout'>)</span>-<a name="line-432"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"sgml"</span><span class='layout'>,</span> <span class='str'>"text/sgml"</span><span class='layout'>)</span>-<a name="line-433"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"sh"</span><span class='layout'>,</span> <span class='str'>"application/x-shellscript"</span><span class='layout'>)</span>-<a name="line-434"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"shar"</span><span class='layout'>,</span> <span class='str'>"application/x-shar"</span><span class='layout'>)</span>-<a name="line-435"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"siag"</span><span class='layout'>,</span> <span class='str'>"application/x-siag"</span><span class='layout'>)</span>-<a name="line-436"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"sid"</span><span class='layout'>,</span> <span class='str'>"audio/prs.sid"</span><span class='layout'>)</span>-<a name="line-437"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"sig"</span><span class='layout'>,</span> <span class='str'>"application/pgp-signature"</span><span class='layout'>)</span>-<a name="line-438"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"sik"</span><span class='layout'>,</span> <span class='str'>"application/x-trash"</span><span class='layout'>)</span>-<a name="line-439"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"sit"</span><span class='layout'>,</span> <span class='str'>"application/stuffit"</span><span class='layout'>)</span>-<a name="line-440"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"sit"</span><span class='layout'>,</span> <span class='str'>"application/x-stuffit"</span><span class='layout'>)</span>-<a name="line-441"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"skr"</span><span class='layout'>,</span> <span class='str'>"application/pgp-keys"</span><span class='layout'>)</span>-<a name="line-442"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"sla"</span><span class='layout'>,</span> <span class='str'>"application/x-scribus"</span><span class='layout'>)</span>-<a name="line-443"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"sla.gz"</span><span class='layout'>,</span> <span class='str'>"application/x-scribus"</span><span class='layout'>)</span>-<a name="line-444"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"slk"</span><span class='layout'>,</span> <span class='str'>"text/spreadsheet"</span><span class='layout'>)</span>-<a name="line-445"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"smd"</span><span class='layout'>,</span> <span class='str'>"application/vnd.stardivision.mail"</span><span class='layout'>)</span>-<a name="line-446"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"smf"</span><span class='layout'>,</span> <span class='str'>"application/vnd.stardivision.math"</span><span class='layout'>)</span>-<a name="line-447"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"smi"</span><span class='layout'>,</span> <span class='str'>"application/smil"</span><span class='layout'>)</span>-<a name="line-448"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"smi"</span><span class='layout'>,</span> <span class='str'>"application/x-smil"</span><span class='layout'>)</span>-<a name="line-449"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"smil"</span><span class='layout'>,</span> <span class='str'>"application/smil"</span><span class='layout'>)</span>-<a name="line-450"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"smil"</span><span class='layout'>,</span> <span class='str'>"application/x-smil"</span><span class='layout'>)</span>-<a name="line-451"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"sml"</span><span class='layout'>,</span> <span class='str'>"application/smil"</span><span class='layout'>)</span>-<a name="line-452"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"sms"</span><span class='layout'>,</span> <span class='str'>"application/x-sms-rom"</span><span class='layout'>)</span>-<a name="line-453"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"snd"</span><span class='layout'>,</span> <span class='str'>"audio/basic"</span><span class='layout'>)</span>-<a name="line-454"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"so"</span><span class='layout'>,</span> <span class='str'>"application/x-sharedlib"</span><span class='layout'>)</span>-<a name="line-455"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"soap"</span><span class='layout'>,</span> <span class='str'>"application/x-soap-remoting"</span><span class='layout'>)</span>-<a name="line-456"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"spd"</span><span class='layout'>,</span> <span class='str'>"application/x-font-speedo"</span><span class='layout'>)</span>-<a name="line-457"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"sql"</span><span class='layout'>,</span> <span class='str'>"text/x-sql"</span><span class='layout'>)</span>-<a name="line-458"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"src"</span><span class='layout'>,</span> <span class='str'>"application/x-wais-source"</span><span class='layout'>)</span>-<a name="line-459"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"srf"</span><span class='layout'>,</span> <span class='str'>"image/x-dcraw"</span><span class='layout'>)</span>-<a name="line-460"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ssm"</span><span class='layout'>,</span> <span class='str'>"application/x-streamingmedia"</span><span class='layout'>)</span>-<a name="line-461"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"stc"</span><span class='layout'>,</span> <span class='str'>"application/vnd.sun.xml.calc.template"</span><span class='layout'>)</span>-<a name="line-462"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"std"</span><span class='layout'>,</span> <span class='str'>"application/vnd.sun.xml.draw.template"</span><span class='layout'>)</span>-<a name="line-463"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"sti"</span><span class='layout'>,</span> <span class='str'>"application/vnd.sun.xml.impress.template"</span><span class='layout'>)</span>-<a name="line-464"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"stm"</span><span class='layout'>,</span> <span class='str'>"audio/x-stm"</span><span class='layout'>)</span>-<a name="line-465"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"stw"</span><span class='layout'>,</span> <span class='str'>"application/vnd.sun.xml.writer.template"</span><span class='layout'>)</span>-<a name="line-466"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"sty"</span><span class='layout'>,</span> <span class='str'>"text/x-tex"</span><span class='layout'>)</span>-<a name="line-467"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"sun"</span><span class='layout'>,</span> <span class='str'>"image/x-sun-raster"</span><span class='layout'>)</span>-<a name="line-468"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"sv4cpio"</span><span class='layout'>,</span> <span class='str'>"application/x-sv4cpio"</span><span class='layout'>)</span>-<a name="line-469"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"sv4crc"</span><span class='layout'>,</span> <span class='str'>"application/x-sv4crc"</span><span class='layout'>)</span>-<a name="line-470"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"svg"</span><span class='layout'>,</span> <span class='str'>"image/svg+xml"</span><span class='layout'>)</span>-<a name="line-471"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"swf"</span><span class='layout'>,</span> <span class='str'>"application/x-shockwave-flash"</span><span class='layout'>)</span>-<a name="line-472"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"sxc"</span><span class='layout'>,</span> <span class='str'>"application/vnd.sun.xml.calc"</span><span class='layout'>)</span>-<a name="line-473"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"sxd"</span><span class='layout'>,</span> <span class='str'>"application/vnd.sun.xml.draw"</span><span class='layout'>)</span>-<a name="line-474"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"sxg"</span><span class='layout'>,</span> <span class='str'>"application/vnd.sun.xml.writer.global"</span><span class='layout'>)</span>-<a name="line-475"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"sxi"</span><span class='layout'>,</span> <span class='str'>"application/vnd.sun.xml.impress"</span><span class='layout'>)</span>-<a name="line-476"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"sxm"</span><span class='layout'>,</span> <span class='str'>"application/vnd.sun.xml.math"</span><span class='layout'>)</span>-<a name="line-477"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"sxw"</span><span class='layout'>,</span> <span class='str'>"application/vnd.sun.xml.writer"</span><span class='layout'>)</span>-<a name="line-478"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"sylk"</span><span class='layout'>,</span> <span class='str'>"text/spreadsheet"</span><span class='layout'>)</span>-<a name="line-479"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"t"</span><span class='layout'>,</span> <span class='str'>"application/x-troff"</span><span class='layout'>)</span>-<a name="line-480"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"tar"</span><span class='layout'>,</span> <span class='str'>"application/x-tar"</span><span class='layout'>)</span>-<a name="line-481"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"tar.Z"</span><span class='layout'>,</span> <span class='str'>"application/x-compressed-tar"</span><span class='layout'>)</span>-<a name="line-482"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"tar.Z"</span><span class='layout'>,</span> <span class='str'>"application/x-tarz"</span><span class='layout'>)</span>-<a name="line-483"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"tar.bz"</span><span class='layout'>,</span> <span class='str'>"application/x-bzip-compressed-tar"</span><span class='layout'>)</span>-<a name="line-484"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"tar.bz"</span><span class='layout'>,</span> <span class='str'>"application/x-bzip-compressed-tar"</span><span class='layout'>)</span>-<a name="line-485"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"tar.bz2"</span><span class='layout'>,</span> <span class='str'>"application/x-bzip-compressed-tar"</span><span class='layout'>)</span>-<a name="line-486"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"tar.bz2"</span><span class='layout'>,</span> <span class='str'>"application/x-bzip-compressed-tar"</span><span class='layout'>)</span>-<a name="line-487"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"tar.gz"</span><span class='layout'>,</span> <span class='str'>"application/x-compressed-tar"</span><span class='layout'>)</span>-<a name="line-488"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"tar.gz"</span><span class='layout'>,</span> <span class='str'>"application/x-compressed-tar"</span><span class='layout'>)</span>-<a name="line-489"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"tar.lzo"</span><span class='layout'>,</span> <span class='str'>"application/x-lzop-compressed-tar"</span><span class='layout'>)</span>-<a name="line-490"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"tar.lzo"</span><span class='layout'>,</span> <span class='str'>"application/x-tzo"</span><span class='layout'>)</span>-<a name="line-491"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"taz"</span><span class='layout'>,</span> <span class='str'>"application/x-compressed-tar"</span><span class='layout'>)</span>-<a name="line-492"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"tbz"</span><span class='layout'>,</span> <span class='str'>"application/x-bzip-compressed-tar"</span><span class='layout'>)</span>-<a name="line-493"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"tbz2"</span><span class='layout'>,</span> <span class='str'>"application/x-bzip-compressed-tar"</span><span class='layout'>)</span>-<a name="line-494"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"tcl"</span><span class='layout'>,</span> <span class='str'>"text/x-tcl"</span><span class='layout'>)</span>-<a name="line-495"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"tex"</span><span class='layout'>,</span> <span class='str'>"text/x-tex"</span><span class='layout'>)</span>-<a name="line-496"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"texi"</span><span class='layout'>,</span> <span class='str'>"text/x-texinfo"</span><span class='layout'>)</span>-<a name="line-497"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"texinfo"</span><span class='layout'>,</span> <span class='str'>"text/x-texinfo"</span><span class='layout'>)</span>-<a name="line-498"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"tga"</span><span class='layout'>,</span> <span class='str'>"image/x-tga"</span><span class='layout'>)</span>-<a name="line-499"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"tgz"</span><span class='layout'>,</span> <span class='str'>"application/x-compressed-tar"</span><span class='layout'>)</span>-<a name="line-500"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"tgz"</span><span class='layout'>,</span> <span class='str'>"application/x-compressed-tar"</span><span class='layout'>)</span>-<a name="line-501"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"theme"</span><span class='layout'>,</span> <span class='str'>"application/x-theme"</span><span class='layout'>)</span>-<a name="line-502"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"tif"</span><span class='layout'>,</span> <span class='str'>"image/tiff"</span><span class='layout'>)</span>-<a name="line-503"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"tiff"</span><span class='layout'>,</span> <span class='str'>"image/tiff"</span><span class='layout'>)</span>-<a name="line-504"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"tk"</span><span class='layout'>,</span> <span class='str'>"text/x-tcl"</span><span class='layout'>)</span>-<a name="line-505"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"tm"</span><span class='layout'>,</span> <span class='str'>"text/x-texmacs"</span><span class='layout'>)</span>-<a name="line-506"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"toc"</span><span class='layout'>,</span> <span class='str'>"application/x-toc"</span><span class='layout'>)</span>-<a name="line-507"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"torrent"</span><span class='layout'>,</span> <span class='str'>"application/x-bittorrent"</span><span class='layout'>)</span>-<a name="line-508"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"tr"</span><span class='layout'>,</span> <span class='str'>"application/x-troff"</span><span class='layout'>)</span>-<a name="line-509"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ts"</span><span class='layout'>,</span> <span class='str'>"application/x-linguist"</span><span class='layout'>)</span>-<a name="line-510"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ts"</span><span class='layout'>,</span> <span class='str'>"text/x-texmacs"</span><span class='layout'>)</span>-<a name="line-511"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"tsv"</span><span class='layout'>,</span> <span class='str'>"text/tab-separated-values"</span><span class='layout'>)</span>-<a name="line-512"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ttc"</span><span class='layout'>,</span> <span class='str'>"application/x-font-ttf"</span><span class='layout'>)</span>-<a name="line-513"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ttf"</span><span class='layout'>,</span> <span class='str'>"application/x-font-ttf"</span><span class='layout'>)</span>-<a name="line-514"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"txt"</span><span class='layout'>,</span> <span class='str'>"text/plain"</span><span class='layout'>)</span>-<a name="line-515"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"tzo"</span><span class='layout'>,</span> <span class='str'>"application/x-lzop-compressed-tar"</span><span class='layout'>)</span>-<a name="line-516"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"tzo"</span><span class='layout'>,</span> <span class='str'>"application/x-tzo"</span><span class='layout'>)</span>-<a name="line-517"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ui"</span><span class='layout'>,</span> <span class='str'>"application/x-designer"</span><span class='layout'>)</span>-<a name="line-518"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"uil"</span><span class='layout'>,</span> <span class='str'>"text/x-uil"</span><span class='layout'>)</span>-<a name="line-519"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ult"</span><span class='layout'>,</span> <span class='str'>"audio/x-mod"</span><span class='layout'>)</span>-<a name="line-520"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"uni"</span><span class='layout'>,</span> <span class='str'>"audio/x-mod"</span><span class='layout'>)</span>-<a name="line-521"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"uri"</span><span class='layout'>,</span> <span class='str'>"text/x-uri"</span><span class='layout'>)</span>-<a name="line-522"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"url"</span><span class='layout'>,</span> <span class='str'>"text/x-uri"</span><span class='layout'>)</span>-<a name="line-523"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ustar"</span><span class='layout'>,</span> <span class='str'>"application/x-ustar"</span><span class='layout'>)</span>-<a name="line-524"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"vb"</span><span class='layout'>,</span> <span class='str'>"text/x-vb"</span><span class='layout'>)</span>-<a name="line-525"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"vcf"</span><span class='layout'>,</span> <span class='str'>"text/directory"</span><span class='layout'>)</span>-<a name="line-526"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"vcs"</span><span class='layout'>,</span> <span class='str'>"text/calendar"</span><span class='layout'>)</span>-<a name="line-527"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"vct"</span><span class='layout'>,</span> <span class='str'>"text/directory"</span><span class='layout'>)</span>-<a name="line-528"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"vob"</span><span class='layout'>,</span> <span class='str'>"video/mpeg"</span><span class='layout'>)</span>-<a name="line-529"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"voc"</span><span class='layout'>,</span> <span class='str'>"audio/x-voc"</span><span class='layout'>)</span>-<a name="line-530"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"vor"</span><span class='layout'>,</span> <span class='str'>"application/vnd.stardivision.writer"</span><span class='layout'>)</span>-<a name="line-531"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"war"</span><span class='layout'>,</span> <span class='str'>"application/x-java-archive"</span><span class='layout'>)</span>-<a name="line-532"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"wav"</span><span class='layout'>,</span> <span class='str'>"audio/x-wav"</span><span class='layout'>)</span>-<a name="line-533"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"wb1"</span><span class='layout'>,</span> <span class='str'>"application/x-quattro-pro"</span><span class='layout'>)</span>-<a name="line-534"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"wb1"</span><span class='layout'>,</span> <span class='str'>"application/x-quattropro"</span><span class='layout'>)</span>-<a name="line-535"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"wb2"</span><span class='layout'>,</span> <span class='str'>"application/x-quattro-pro"</span><span class='layout'>)</span>-<a name="line-536"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"wb2"</span><span class='layout'>,</span> <span class='str'>"application/x-quattropro"</span><span class='layout'>)</span>-<a name="line-537"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"wb3"</span><span class='layout'>,</span> <span class='str'>"application/x-quattro-pro"</span><span class='layout'>)</span>-<a name="line-538"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"wb3"</span><span class='layout'>,</span> <span class='str'>"application/x-quattropro"</span><span class='layout'>)</span>-<a name="line-539"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"wk1"</span><span class='layout'>,</span> <span class='str'>"application/vnd.lotus-1-2-3"</span><span class='layout'>)</span>-<a name="line-540"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"wk3"</span><span class='layout'>,</span> <span class='str'>"application/vnd.lotus-1-2-3"</span><span class='layout'>)</span>-<a name="line-541"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"wk4"</span><span class='layout'>,</span> <span class='str'>"application/vnd.lotus-1-2-3"</span><span class='layout'>)</span>-<a name="line-542"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"wks"</span><span class='layout'>,</span> <span class='str'>"application/vnd.lotus-1-2-3"</span><span class='layout'>)</span>-<a name="line-543"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"wmf"</span><span class='layout'>,</span> <span class='str'>"image/x-wmf"</span><span class='layout'>)</span>-<a name="line-544"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"wml"</span><span class='layout'>,</span> <span class='str'>"text/vnd.wap.wml"</span><span class='layout'>)</span>-<a name="line-545"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"wmv"</span><span class='layout'>,</span> <span class='str'>"video/x-ms-wmv"</span><span class='layout'>)</span>-<a name="line-546"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"wpd"</span><span class='layout'>,</span> <span class='str'>"application/vnd.wordperfect"</span><span class='layout'>)</span>-<a name="line-547"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"wpg"</span><span class='layout'>,</span> <span class='str'>"application/x-wpg"</span><span class='layout'>)</span>-<a name="line-548"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"wri"</span><span class='layout'>,</span> <span class='str'>"application/x-mswrite"</span><span class='layout'>)</span>-<a name="line-549"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"wrl"</span><span class='layout'>,</span> <span class='str'>"model/vrml"</span><span class='layout'>)</span>-<a name="line-550"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"wsdl"</span><span class='layout'>,</span> <span class='str'>"application/x-wsdl"</span><span class='layout'>)</span>-<a name="line-551"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"x3f"</span><span class='layout'>,</span> <span class='str'>"image/x-dcraw"</span><span class='layout'>)</span>-<a name="line-552"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"xac"</span><span class='layout'>,</span> <span class='str'>"application/x-gnucash"</span><span class='layout'>)</span>-<a name="line-553"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"xbel"</span><span class='layout'>,</span> <span class='str'>"application/x-xbel"</span><span class='layout'>)</span>-<a name="line-554"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"xbm"</span><span class='layout'>,</span> <span class='str'>"image/x-xbitmap"</span><span class='layout'>)</span>-<a name="line-555"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"xcf"</span><span class='layout'>,</span> <span class='str'>"image/x-xcf"</span><span class='layout'>)</span>-<a name="line-556"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"xcf.bz2"</span><span class='layout'>,</span> <span class='str'>"image/x-compressed-xcf"</span><span class='layout'>)</span>-<a name="line-557"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"xcf.gz"</span><span class='layout'>,</span> <span class='str'>"image/x-compressed-xcf"</span><span class='layout'>)</span>-<a name="line-558"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"xds"</span><span class='layout'>,</span> <span class='str'>"text/x-xds"</span><span class='layout'>)</span>-<a name="line-559"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"xhtml"</span><span class='layout'>,</span> <span class='str'>"application/xhtml+xml"</span><span class='layout'>)</span>-<a name="line-560"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"xi"</span><span class='layout'>,</span> <span class='str'>"audio/x-xi"</span><span class='layout'>)</span>-<a name="line-561"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"xla"</span><span class='layout'>,</span> <span class='str'>"application/vnd.ms-excel"</span><span class='layout'>)</span>-<a name="line-562"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"xlc"</span><span class='layout'>,</span> <span class='str'>"application/vnd.ms-excel"</span><span class='layout'>)</span>-<a name="line-563"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"xld"</span><span class='layout'>,</span> <span class='str'>"application/vnd.ms-excel"</span><span class='layout'>)</span>-<a name="line-564"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"xll"</span><span class='layout'>,</span> <span class='str'>"application/vnd.ms-excel"</span><span class='layout'>)</span>-<a name="line-565"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"xlm"</span><span class='layout'>,</span> <span class='str'>"application/vnd.ms-excel"</span><span class='layout'>)</span>-<a name="line-566"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"xls"</span><span class='layout'>,</span> <span class='str'>"application/vnd.ms-excel"</span><span class='layout'>)</span>-<a name="line-567"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"xlt"</span><span class='layout'>,</span> <span class='str'>"application/vnd.ms-excel"</span><span class='layout'>)</span>-<a name="line-568"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"xlw"</span><span class='layout'>,</span> <span class='str'>"application/vnd.ms-excel"</span><span class='layout'>)</span>-<a name="line-569"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"xm"</span><span class='layout'>,</span> <span class='str'>"audio/x-xm"</span><span class='layout'>)</span>-<a name="line-570"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"xmi"</span><span class='layout'>,</span> <span class='str'>"text/x-xmi"</span><span class='layout'>)</span>-<a name="line-571"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"xml"</span><span class='layout'>,</span> <span class='str'>"text/xml"</span><span class='layout'>)</span>-<a name="line-572"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"xpl"</span><span class='layout'>,</span> <span class='str'>"audio/x-scpls"</span><span class='layout'>)</span>-<a name="line-573"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"xpm"</span><span class='layout'>,</span> <span class='str'>"image/x-xpixmap"</span><span class='layout'>)</span>-<a name="line-574"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"xsl"</span><span class='layout'>,</span> <span class='str'>"text/x-xsl"</span><span class='layout'>)</span>-<a name="line-575"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"xsl"</span><span class='layout'>,</span> <span class='str'>"text/x-xslt"</span><span class='layout'>)</span>-<a name="line-576"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"xslfo"</span><span class='layout'>,</span> <span class='str'>"text/x-xslfo"</span><span class='layout'>)</span>-<a name="line-577"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"xslt"</span><span class='layout'>,</span> <span class='str'>"text/x-xslt"</span><span class='layout'>)</span>-<a name="line-578"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"xul"</span><span class='layout'>,</span> <span class='str'>"application/vnd.mozilla.xul+xml"</span><span class='layout'>)</span>-<a name="line-579"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"xwd"</span><span class='layout'>,</span> <span class='str'>"image/x-xwindowdump"</span><span class='layout'>)</span>-<a name="line-580"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"zabw"</span><span class='layout'>,</span> <span class='str'>"application/x-abiword"</span><span class='layout'>)</span>-<a name="line-581"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"zip"</span><span class='layout'>,</span> <span class='str'>"application/zip"</span><span class='layout'>)</span>-<a name="line-582"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"zoo"</span><span class='layout'>,</span> <span class='str'>"application/x-zoo"</span><span class='layout'>)</span>-<a name="line-583"></a> <span class='keyglyph'>]</span>-<a name="line-584"></a>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-DOM-MimeTypes.html
@@ -1,125 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Text.XML.HXT.DOM.MimeTypes-<a name="line-5"></a> Copyright : Copyright (C) 2008 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe@fh-wedel.de)-<a name="line-9"></a> Stability : experimental-<a name="line-10"></a> Portability: portable-<a name="line-11"></a>-<a name="line-12"></a> mime type related data and functions-<a name="line-13"></a>-<a name="line-14"></a>-}</span>-<a name="line-15"></a>-<a name="line-16"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-17"></a>-<a name="line-18"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>MimeTypes</span>-<a name="line-19"></a><span class='keyword'>where</span>-<a name="line-20"></a>-<a name="line-21"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Monad</span> <span class='layout'>(</span> <span class='varid'>mplus</span> <span class='layout'>)</span>-<a name="line-22"></a>-<a name="line-23"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>ByteString</span> <span class='keyword'>as</span> <span class='conid'>B</span>-<a name="line-24"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>ByteString</span><span class='varop'>.</span><span class='conid'>Char8</span> <span class='keyword'>as</span> <span class='conid'>C</span>-<a name="line-25"></a>-<a name="line-26"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Char</span>-<a name="line-27"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>List</span>-<a name="line-28"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Map</span> <span class='keyword'>as</span> <span class='conid'>M</span>-<a name="line-29"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>-<a name="line-30"></a>-<a name="line-31"></a><span class='keyword'>import</span> <span class='conid'>System</span><span class='varop'>.</span><span class='conid'>IO</span>-<a name="line-32"></a>-<a name="line-33"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>MimeTypeDefaults</span>-<a name="line-34"></a>-<a name="line-35"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-36"></a>-<a name="line-37"></a><a name="MimeTypeTable"></a><span class='keyword'>type</span> <span class='conid'>MimeTypeTable</span> <span class='keyglyph'>=</span> <span class='conid'>M</span><span class='varop'>.</span><span class='conid'>Map</span> <span class='conid'>String</span> <span class='conid'>String</span>-<a name="line-38"></a>-<a name="line-39"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-40"></a>-<a name="line-41"></a><span class='comment'>-- mime types</span>-<a name="line-42"></a><span class='comment'>--</span>-<a name="line-43"></a><span class='comment'>-- see RFC \"http:\/\/www.rfc-editor.org\/rfc\/rfc3023.txt\"</span>-<a name="line-44"></a>-<a name="line-45"></a><a name="application_xhtml"></a><span class='definition'>application_xhtml</span><span class='layout'>,</span>-<a name="line-46"></a> <span class='varid'>application_xml</span><span class='layout'>,</span>-<a name="line-47"></a> <span class='varid'>application_xml_external_parsed_entity</span><span class='layout'>,</span>-<a name="line-48"></a> <span class='varid'>application_xml_dtd</span><span class='layout'>,</span>-<a name="line-49"></a> <span class='varid'>text_html</span><span class='layout'>,</span>-<a name="line-50"></a> <span class='varid'>text_xml</span><span class='layout'>,</span>-<a name="line-51"></a> <span class='varid'>text_xml_external_parsed_entity</span> <span class='keyglyph'>::</span> <span class='conid'>String</span>-<a name="line-52"></a>-<a name="line-53"></a><span class='definition'>application_xhtml</span> <span class='keyglyph'>=</span> <span class='str'>"application/xhtml+xml"</span>-<a name="line-54"></a><a name="application_xml"></a><span class='definition'>application_xml</span> <span class='keyglyph'>=</span> <span class='str'>"application/xml"</span>-<a name="line-55"></a><a name="application_xml_external_parsed_entity"></a><span class='definition'>application_xml_external_parsed_entity</span> <span class='keyglyph'>=</span> <span class='str'>"application/xml-external-parsed-entity"</span>-<a name="line-56"></a><a name="application_xml_dtd"></a><span class='definition'>application_xml_dtd</span> <span class='keyglyph'>=</span> <span class='str'>"application/xml-dtd"</span>-<a name="line-57"></a>-<a name="line-58"></a><a name="text_html"></a><span class='definition'>text_html</span> <span class='keyglyph'>=</span> <span class='str'>"text/html"</span>-<a name="line-59"></a><a name="text_xml"></a><span class='definition'>text_xml</span> <span class='keyglyph'>=</span> <span class='str'>"text/xml"</span>-<a name="line-60"></a><a name="text_xml_external_parsed_entity"></a><span class='definition'>text_xml_external_parsed_entity</span> <span class='keyglyph'>=</span> <span class='str'>"text/xml-external-parsed-entity"</span>-<a name="line-61"></a>-<a name="line-62"></a><a name="isHtmlMimeType"></a><span class='definition'>isHtmlMimeType</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-63"></a><span class='definition'>isHtmlMimeType</span> <span class='varid'>t</span>-<a name="line-64"></a> <span class='keyglyph'>=</span> <span class='varid'>t</span> <span class='varop'>==</span> <span class='varid'>text_html</span>-<a name="line-65"></a>-<a name="line-66"></a><a name="isXmlMimeType"></a><span class='definition'>isXmlMimeType</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-67"></a><span class='definition'>isXmlMimeType</span> <span class='varid'>t</span>-<a name="line-68"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>t</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span> <span class='varid'>application_xhtml</span>-<a name="line-69"></a> <span class='layout'>,</span> <span class='varid'>application_xml</span>-<a name="line-70"></a> <span class='layout'>,</span> <span class='varid'>application_xml_external_parsed_entity</span>-<a name="line-71"></a> <span class='layout'>,</span> <span class='varid'>application_xml_dtd</span>-<a name="line-72"></a> <span class='layout'>,</span> <span class='varid'>text_xml</span>-<a name="line-73"></a> <span class='layout'>,</span> <span class='varid'>text_xml_external_parsed_entity</span>-<a name="line-74"></a> <span class='keyglyph'>]</span>-<a name="line-75"></a> <span class='varop'>||</span>-<a name="line-76"></a> <span class='str'>"+xml"</span> <span class='varop'>`isSuffixOf`</span> <span class='varid'>t</span> <span class='comment'>-- application/mathml+xml</span>-<a name="line-77"></a> <span class='layout'>)</span> <span class='comment'>-- or image/svg+xml</span>-<a name="line-78"></a>-<a name="line-79"></a><a name="defaultMimeTypeTable"></a><span class='definition'>defaultMimeTypeTable</span> <span class='keyglyph'>::</span> <span class='conid'>MimeTypeTable</span>-<a name="line-80"></a><span class='definition'>defaultMimeTypeTable</span>-<a name="line-81"></a> <span class='keyglyph'>=</span> <span class='conid'>M</span><span class='varop'>.</span><span class='varid'>fromList</span> <span class='varid'>mimeTypeDefaults</span>-<a name="line-82"></a>-<a name="line-83"></a><a name="extensionToMimeType"></a><span class='definition'>extensionToMimeType</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>MimeTypeTable</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-84"></a><span class='definition'>extensionToMimeType</span> <span class='varid'>e</span>-<a name="line-85"></a> <span class='keyglyph'>=</span> <span class='varid'>fromMaybe</span> <span class='str'>""</span> <span class='varop'>.</span> <span class='varid'>lookupMime</span> -<a name="line-86"></a> <span class='keyword'>where</span>-<a name="line-87"></a> <span class='varid'>lookupMime</span> <span class='varid'>t</span>-<a name="line-88"></a> <span class='keyglyph'>=</span> <span class='conid'>M</span><span class='varop'>.</span><span class='varid'>lookup</span> <span class='varid'>e</span> <span class='varid'>t</span> <span class='comment'>-- try exact match</span>-<a name="line-89"></a> <span class='varop'>`mplus`</span>-<a name="line-90"></a> <span class='conid'>M</span><span class='varop'>.</span><span class='varid'>lookup</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>toLower</span> <span class='varid'>e</span><span class='layout'>)</span> <span class='varid'>t</span> <span class='comment'>-- else try lowercase match</span>-<a name="line-91"></a> <span class='varop'>`mplus`</span>-<a name="line-92"></a> <span class='conid'>M</span><span class='varop'>.</span><span class='varid'>lookup</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>toUpper</span> <span class='varid'>e</span><span class='layout'>)</span> <span class='varid'>t</span> <span class='comment'>-- else try uppercase match</span>-<a name="line-93"></a>-<a name="line-94"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-95"></a>-<a name="line-96"></a><a name="readMimeTypeTable"></a><span class='definition'>readMimeTypeTable</span> <span class='keyglyph'>::</span> <span class='conid'>FilePath</span> <span class='keyglyph'>-></span> <span class='conid'>IO</span> <span class='conid'>MimeTypeTable</span>-<a name="line-97"></a><span class='definition'>readMimeTypeTable</span> <span class='varid'>inp</span>-<a name="line-98"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-99"></a> <span class='varid'>cb</span> <span class='keyglyph'><-</span> <span class='conid'>B</span><span class='varop'>.</span><span class='varid'>readFile</span> <span class='varid'>inp</span>-<a name="line-100"></a> <span class='varid'>return</span> <span class='varop'>.</span> <span class='conid'>M</span><span class='varop'>.</span><span class='varid'>fromList</span> <span class='varop'>.</span> <span class='varid'>parseMimeTypeTable</span> <span class='varop'>.</span> <span class='conid'>C</span><span class='varop'>.</span><span class='varid'>unpack</span> <span class='varop'>$</span> <span class='varid'>cb</span>-<a name="line-101"></a>-<a name="line-102"></a><a name="parseMimeTypeTable"></a><span class='definition'>parseMimeTypeTable</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-103"></a><span class='definition'>parseMimeTypeTable</span>-<a name="line-104"></a> <span class='keyglyph'>=</span> <span class='varid'>concat</span>-<a name="line-105"></a> <span class='varop'>.</span> <span class='varid'>map</span> <span class='varid'>buildPairs</span>-<a name="line-106"></a> <span class='varop'>.</span> <span class='varid'>map</span> <span class='varid'>words</span>-<a name="line-107"></a> <span class='varop'>.</span> <span class='varid'>filter</span> <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='str'>"#"</span> <span class='varop'>`isPrefixOf`</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-108"></a> <span class='varop'>.</span> <span class='varid'>filter</span> <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>all</span> <span class='layout'>(</span><span class='varid'>isSpace</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-109"></a> <span class='varop'>.</span> <span class='varid'>lines</span>-<a name="line-110"></a> <span class='keyword'>where</span>-<a name="line-111"></a> <span class='varid'>buildPairs</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-112"></a> <span class='varid'>buildPairs</span> <span class='conid'>[]</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-113"></a> <span class='varid'>buildPairs</span> <span class='layout'>(</span><span class='varid'>mt</span><span class='conop'>:</span><span class='varid'>exts</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='varid'>x</span><span class='layout'>,</span> <span class='varid'>mt</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>exts</span>-<a name="line-114"></a>-<a name="line-115"></a><span class='comment'>-- ------------------------------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-DOM-QualifiedName.html
@@ -1,547 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Text.XML.HXT.DOM.QualifiedName-<a name="line-5"></a> Copyright : Copyright (C) 2008 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe@fh-wedel.de)-<a name="line-9"></a> Stability : stable-<a name="line-10"></a> Portability: portable-<a name="line-11"></a>-<a name="line-12"></a> The core data types of the HXT DOM.-<a name="line-13"></a>-<a name="line-14"></a>-}</span>-<a name="line-15"></a>-<a name="line-16"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-17"></a>-<a name="line-18"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>QualifiedName</span>-<a name="line-19"></a> <span class='layout'>(</span> <span class='conid'>QName</span>-<a name="line-20"></a> <span class='layout'>,</span> <span class='conid'>XName</span>-<a name="line-21"></a> <span class='layout'>,</span> <span class='conid'>NsEnv</span>-<a name="line-22"></a>-<a name="line-23"></a> <span class='layout'>,</span> <span class='varid'>mkQName</span>-<a name="line-24"></a> <span class='layout'>,</span> <span class='varid'>mkName</span>-<a name="line-25"></a> <span class='layout'>,</span> <span class='varid'>mkNsName</span>-<a name="line-26"></a> <span class='layout'>,</span> <span class='varid'>mkSNsName</span>-<a name="line-27"></a> <span class='layout'>,</span> <span class='varid'>mkPrefixLocalPart</span>-<a name="line-28"></a>-<a name="line-29"></a> <span class='layout'>,</span> <span class='varid'>equivQName</span>-<a name="line-30"></a> <span class='layout'>,</span> <span class='varid'>equivUri</span>-<a name="line-31"></a> <span class='layout'>,</span> <span class='varid'>equalQNameBy</span>-<a name="line-32"></a>-<a name="line-33"></a> <span class='layout'>,</span> <span class='varid'>namePrefix</span>-<a name="line-34"></a> <span class='layout'>,</span> <span class='varid'>localPart</span>-<a name="line-35"></a> <span class='layout'>,</span> <span class='varid'>namespaceUri</span>-<a name="line-36"></a>-<a name="line-37"></a> <span class='layout'>,</span> <span class='varid'>newXName</span>-<a name="line-38"></a> <span class='layout'>,</span> <span class='varid'>nullXName</span>-<a name="line-39"></a> <span class='layout'>,</span> <span class='varid'>isNullXName</span>-<a name="line-40"></a>-<a name="line-41"></a> <span class='layout'>,</span> <span class='varid'>mkQName'</span>-<a name="line-42"></a> <span class='layout'>,</span> <span class='varid'>namePrefix'</span>-<a name="line-43"></a> <span class='layout'>,</span> <span class='varid'>localPart'</span>-<a name="line-44"></a> <span class='layout'>,</span> <span class='varid'>namespaceUri'</span>-<a name="line-45"></a>-<a name="line-46"></a> <span class='layout'>,</span> <span class='varid'>setNamePrefix'</span>-<a name="line-47"></a> <span class='layout'>,</span> <span class='varid'>setLocalPart'</span>-<a name="line-48"></a> <span class='layout'>,</span> <span class='varid'>setNamespaceUri'</span>-<a name="line-49"></a>-<a name="line-50"></a> <span class='layout'>,</span> <span class='varid'>qualifiedName</span>-<a name="line-51"></a> <span class='layout'>,</span> <span class='varid'>universalName</span>-<a name="line-52"></a> <span class='layout'>,</span> <span class='varid'>universalUri</span>-<a name="line-53"></a> <span class='layout'>,</span> <span class='varid'>buildUniversalName</span>-<a name="line-54"></a>-<a name="line-55"></a> <span class='layout'>,</span> <span class='varid'>normalizeNsUri</span>-<a name="line-56"></a>-<a name="line-57"></a> <span class='layout'>,</span> <span class='varid'>setNamespace</span> <span class='comment'>-- namespace related functions</span>-<a name="line-58"></a> <span class='layout'>,</span> <span class='varid'>isNCName</span>-<a name="line-59"></a> <span class='layout'>,</span> <span class='varid'>isWellformedQualifiedName</span>-<a name="line-60"></a> <span class='layout'>,</span> <span class='varid'>isWellformedQName</span>-<a name="line-61"></a> <span class='layout'>,</span> <span class='varid'>isWellformedNSDecl</span>-<a name="line-62"></a> <span class='layout'>,</span> <span class='varid'>isWellformedNameSpaceName</span>-<a name="line-63"></a> <span class='layout'>,</span> <span class='varid'>isNameSpaceName</span>-<a name="line-64"></a> <span class='layout'>,</span> <span class='varid'>isDeclaredNamespace</span>-<a name="line-65"></a>-<a name="line-66"></a> <span class='layout'>,</span> <span class='varid'>xmlNamespaceXName</span>-<a name="line-67"></a> <span class='layout'>,</span> <span class='varid'>xmlXName</span>-<a name="line-68"></a> <span class='layout'>,</span> <span class='varid'>xmlnsNamespaceXName</span>-<a name="line-69"></a> <span class='layout'>,</span> <span class='varid'>xmlnsXName</span>-<a name="line-70"></a> <span class='layout'>,</span> <span class='varid'>xmlnsQN</span>-<a name="line-71"></a>-<a name="line-72"></a> <span class='layout'>,</span> <span class='varid'>toNsEnv</span>-<a name="line-73"></a> <span class='layout'>)</span>-<a name="line-74"></a>-<a name="line-75"></a><span class='keyword'>where</span>-<a name="line-76"></a>-<a name="line-77"></a><span class='comment'>{--<a name="line-78"></a>import Debug.Trace-<a name="line-79"></a> -}</span>-<a name="line-80"></a>-<a name="line-81"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='varop'>***</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-82"></a>-<a name="line-83"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Concurrent</span><span class='varop'>.</span><span class='conid'>MVar</span>-<a name="line-84"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Parallel</span><span class='varop'>.</span><span class='conid'>Strategies</span>-<a name="line-85"></a>-<a name="line-86"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>AssocList</span>-<a name="line-87"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Char</span> <span class='layout'>(</span> <span class='varid'>toLower</span> <span class='layout'>)</span>-<a name="line-88"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>List</span> <span class='layout'>(</span> <span class='varid'>isPrefixOf</span> <span class='layout'>)</span>-<a name="line-89"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Map</span> <span class='keyword'>as</span> <span class='conid'>M</span>-<a name="line-90"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>-<a name="line-91"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Typeable</span>-<a name="line-92"></a>-<a name="line-93"></a><span class='keyword'>import</span> <span class='conid'>System</span><span class='varop'>.</span><span class='conid'>IO</span><span class='varop'>.</span><span class='conid'>Unsafe</span> <span class='layout'>(</span> <span class='varid'>unsafePerformIO</span> <span class='layout'>)</span>-<a name="line-94"></a>-<a name="line-95"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlKeywords</span> <span class='layout'>(</span> <span class='varid'>a_xml</span>-<a name="line-96"></a> <span class='layout'>,</span> <span class='varid'>a_xmlns</span>-<a name="line-97"></a> <span class='layout'>,</span> <span class='varid'>xmlNamespace</span>-<a name="line-98"></a> <span class='layout'>,</span> <span class='varid'>xmlnsNamespace</span>-<a name="line-99"></a> <span class='layout'>)</span>-<a name="line-100"></a>-<a name="line-101"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Unicode</span> <span class='layout'>(</span> <span class='varid'>isXmlNCNameStartChar</span>-<a name="line-102"></a> <span class='layout'>,</span> <span class='varid'>isXmlNCNameChar</span>-<a name="line-103"></a> <span class='layout'>)</span>-<a name="line-104"></a>-<a name="line-105"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>-<a name="line-106"></a>-<a name="line-107"></a><span class='comment'>-- | XML names are represented by Strings, but these strings do not mix up with normal strings.</span>-<a name="line-108"></a><span class='comment'>-- Names are always reduced to normal form, and they are stored internally in a name cache</span>-<a name="line-109"></a><span class='comment'>-- for sharing equal names by the same data structure</span>-<a name="line-110"></a>-<a name="line-111"></a><a name="XName"></a><span class='keyword'>type</span> <span class='conid'>XName</span> <span class='keyglyph'>=</span> <span class='conid'>Atom</span>-<a name="line-112"></a>-<a name="line-113"></a><span class='comment'>-- |</span>-<a name="line-114"></a><span class='comment'>-- Namespace support for element and attribute names.</span>-<a name="line-115"></a><span class='comment'>--</span>-<a name="line-116"></a><span class='comment'>-- A qualified name consists of a name prefix, a local name</span>-<a name="line-117"></a><span class='comment'>-- and a namespace uri.</span>-<a name="line-118"></a><span class='comment'>-- All modules, which are not namespace aware, use only the 'localPart' component.</span>-<a name="line-119"></a><span class='comment'>-- When dealing with namespaces, the document tree must be processed by "propagateNamespaces"</span>-<a name="line-120"></a><span class='comment'>-- to split names of structure \"prefix:localPart\" and label the name with the apropriate namespace uri</span>-<a name="line-121"></a>-<a name="line-122"></a><a name="QName"></a><span class='keyword'>data</span> <span class='conid'>QName</span> <span class='keyglyph'>=</span> <span class='conid'>LP</span> <span class='varop'>!</span> <span class='conid'>XName</span>-<a name="line-123"></a> <span class='keyglyph'>|</span> <span class='conid'>PX</span> <span class='varop'>!</span> <span class='conid'>XName</span> <span class='varop'>!</span> <span class='conid'>QName</span>-<a name="line-124"></a> <span class='keyglyph'>|</span> <span class='conid'>NS</span> <span class='varop'>!</span> <span class='conid'>XName</span> <span class='varop'>!</span> <span class='conid'>QName</span>-<a name="line-125"></a> <span class='keyword'>deriving</span> <span class='layout'>(</span><span class='conid'>Ord</span><span class='layout'>,</span> <span class='conid'>Show</span><span class='layout'>,</span> <span class='conid'>Read</span><span class='layout'>,</span> <span class='conid'>Typeable</span><span class='layout'>)</span>-<a name="line-126"></a>-<a name="line-127"></a><span class='comment'>-- |</span>-<a name="line-128"></a><span class='comment'>-- Type for the namespace association list, used when propagating namespaces by</span>-<a name="line-129"></a><span class='comment'>-- modifying the 'QName' values in a tree</span>-<a name="line-130"></a>-<a name="line-131"></a><a name="NsEnv"></a><span class='keyword'>type</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>=</span> <span class='conid'>AssocList</span> <span class='conid'>XName</span> <span class='conid'>XName</span>-<a name="line-132"></a>-<a name="line-133"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>-<a name="line-134"></a>-<a name="line-135"></a><span class='comment'>-- | Two QNames are equal if (1. case) namespaces are both empty and the qualified names</span>-<a name="line-136"></a><span class='comment'>-- (prefix:localpart) are the same or (2. case) namespaces are set and namespaces and</span>-<a name="line-137"></a><span class='comment'>-- local parts both are equal</span>-<a name="line-138"></a> -<a name="line-139"></a><span class='keyword'>instance</span> <span class='conid'>Eq</span> <span class='conid'>QName</span> <span class='keyword'>where</span>-<a name="line-140"></a> <span class='layout'>(</span><span class='conid'>LP</span> <span class='varid'>lp1</span><span class='layout'>)</span> <span class='varop'>==</span> <span class='layout'>(</span><span class='conid'>LP</span> <span class='varid'>lp2</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>lp1</span> <span class='varop'>==</span> <span class='varid'>lp2</span>-<a name="line-141"></a> <span class='layout'>(</span><span class='conid'>PX</span> <span class='varid'>px1</span> <span class='varid'>qn1</span><span class='layout'>)</span> <span class='varop'>==</span> <span class='layout'>(</span><span class='conid'>PX</span> <span class='varid'>px2</span> <span class='varid'>qn2</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>px1</span> <span class='varop'>==</span> <span class='varid'>px2</span> <span class='varop'>&&</span> <span class='varid'>qn1</span><span class='varop'>==</span> <span class='varid'>qn2</span>-<a name="line-142"></a> <span class='layout'>(</span><span class='conid'>NS</span> <span class='varid'>ns1</span> <span class='varid'>qn1</span><span class='layout'>)</span> <span class='varop'>==</span> <span class='layout'>(</span><span class='conid'>NS</span> <span class='varid'>ns2</span> <span class='varid'>qn2</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>ns1</span> <span class='varop'>==</span> <span class='varid'>ns2</span> <span class='varop'>&&</span> <span class='varid'>localPart'</span> <span class='varid'>qn1</span> <span class='varop'>==</span> <span class='varid'>localPart'</span> <span class='varid'>qn2</span>-<a name="line-143"></a> <span class='varid'>n1</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>PX</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='varop'>==</span> <span class='varid'>n2</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>LP</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>qualifiedName</span> <span class='varid'>n1</span> <span class='varop'>==</span> <span class='varid'>qualifiedName</span> <span class='varid'>n2</span>-<a name="line-144"></a> <span class='varid'>n1</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>LP</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='varop'>==</span> <span class='varid'>n2</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>PX</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>qualifiedName</span> <span class='varid'>n1</span> <span class='varop'>==</span> <span class='varid'>qualifiedName</span> <span class='varid'>n2</span>-<a name="line-145"></a> <span class='keyword'>_</span> <span class='varop'>==</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-146"></a>-<a name="line-147"></a><span class='comment'>-- the 4. and 5. rule are only neccessary when someone</span>-<a name="line-148"></a><span class='comment'>-- uses XML names not in a systematical way</span>-<a name="line-149"></a><span class='comment'>-- and does things like "mkName("x:y") == mkPrefixLocalPart("x","y")</span>-<a name="line-150"></a>-<a name="line-151"></a><span class='keyword'>instance</span> <span class='conid'>NFData</span> <span class='conid'>QName</span> <span class='keyword'>where</span>-<a name="line-152"></a>-<a name="line-153"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>-<a name="line-154"></a>-<a name="line-155"></a><a name="newXName"></a><span class='definition'>newXName</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>XName</span>-<a name="line-156"></a><span class='definition'>newXName</span> <span class='keyglyph'>=</span> <span class='varid'>newAtom</span>-<a name="line-157"></a>-<a name="line-158"></a><a name="isNullXName"></a><span class='definition'>isNullXName</span> <span class='keyglyph'>::</span> <span class='conid'>XName</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-159"></a><span class='definition'>isNullXName</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='varid'>nullXName</span><span class='layout'>)</span>-<a name="line-160"></a>-<a name="line-161"></a><a name="nullXName"></a><span class='definition'>nullXName</span> <span class='keyglyph'>::</span> <span class='conid'>XName</span>-<a name="line-162"></a><span class='definition'>nullXName</span> <span class='keyglyph'>=</span> <span class='varid'>newXName</span> <span class='str'>""</span>-<a name="line-163"></a>-<a name="line-164"></a><span class='comment'>-- | access name prefix</span>-<a name="line-165"></a>-<a name="line-166"></a><a name="namePrefix'"></a><span class='definition'>namePrefix'</span> <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='conid'>XName</span>-<a name="line-167"></a><span class='definition'>namePrefix'</span> <span class='layout'>(</span><span class='conid'>LP</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>nullXName</span>-<a name="line-168"></a><span class='definition'>namePrefix'</span> <span class='layout'>(</span><span class='conid'>PX</span> <span class='varid'>px</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>px</span>-<a name="line-169"></a><span class='definition'>namePrefix'</span> <span class='layout'>(</span><span class='conid'>NS</span> <span class='keyword'>_</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>namePrefix'</span> <span class='varid'>n</span>-<a name="line-170"></a>-<a name="line-171"></a><span class='comment'>-- | access local part</span>-<a name="line-172"></a>-<a name="line-173"></a><a name="localPart'"></a><span class='definition'>localPart'</span> <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='conid'>XName</span>-<a name="line-174"></a><span class='definition'>localPart'</span> <span class='layout'>(</span><span class='conid'>LP</span> <span class='varid'>lp</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>lp</span>-<a name="line-175"></a><span class='definition'>localPart'</span> <span class='layout'>(</span><span class='conid'>PX</span> <span class='keyword'>_</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>localPart'</span> <span class='varid'>n</span>-<a name="line-176"></a><span class='definition'>localPart'</span> <span class='layout'>(</span><span class='conid'>NS</span> <span class='keyword'>_</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>localPart'</span> <span class='varid'>n</span>-<a name="line-177"></a>-<a name="line-178"></a><span class='comment'>-- | access namespace uri</span>-<a name="line-179"></a>-<a name="line-180"></a><a name="namespaceUri'"></a><span class='definition'>namespaceUri'</span> <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='conid'>XName</span>-<a name="line-181"></a><span class='definition'>namespaceUri'</span> <span class='layout'>(</span><span class='conid'>NS</span> <span class='varid'>ns</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>ns</span>-<a name="line-182"></a><span class='definition'>namespaceUri'</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='varid'>nullXName</span>-<a name="line-183"></a>-<a name="line-184"></a><a name="namePrefix"></a><span class='definition'>namePrefix</span> <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-185"></a><span class='definition'>namePrefix</span> <span class='keyglyph'>=</span> <span class='varid'>show</span> <span class='varop'>.</span> <span class='varid'>namePrefix'</span>-<a name="line-186"></a>-<a name="line-187"></a><a name="localPart"></a><span class='definition'>localPart</span> <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-188"></a><span class='definition'>localPart</span> <span class='keyglyph'>=</span> <span class='varid'>show</span> <span class='varop'>.</span> <span class='varid'>localPart'</span>-<a name="line-189"></a>-<a name="line-190"></a><a name="namespaceUri"></a><span class='definition'>namespaceUri</span> <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-191"></a><span class='definition'>namespaceUri</span> <span class='keyglyph'>=</span> <span class='varid'>show</span> <span class='varop'>.</span> <span class='varid'>namespaceUri'</span>-<a name="line-192"></a>-<a name="line-193"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-194"></a>-<a name="line-195"></a><span class='comment'>-- | set name prefix</span>-<a name="line-196"></a>-<a name="line-197"></a><a name="setNamespaceUri'"></a><span class='definition'>setNamespaceUri'</span> <span class='keyglyph'>::</span> <span class='conid'>XName</span> <span class='keyglyph'>-></span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='conid'>QName</span>-<a name="line-198"></a><span class='definition'>setNamespaceUri'</span> <span class='varid'>ns</span> <span class='layout'>(</span><span class='conid'>NS</span> <span class='keyword'>_</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>isNullXName</span> <span class='varid'>ns</span>-<a name="line-199"></a> <span class='keyword'>then</span> <span class='varid'>n</span>-<a name="line-200"></a> <span class='keyword'>else</span> <span class='conid'>NS</span> <span class='varid'>ns</span> <span class='varid'>n</span>-<a name="line-201"></a><span class='definition'>setNamespaceUri'</span> <span class='varid'>ns</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>isNullXName</span> <span class='varid'>ns</span>-<a name="line-202"></a> <span class='keyword'>then</span> <span class='varid'>n</span>-<a name="line-203"></a> <span class='keyword'>else</span> <span class='conid'>NS</span> <span class='varid'>ns</span> <span class='varid'>n</span>-<a name="line-204"></a>-<a name="line-205"></a><span class='comment'>-- | set local part</span>-<a name="line-206"></a>-<a name="line-207"></a><a name="setLocalPart'"></a><span class='definition'>setLocalPart'</span> <span class='keyglyph'>::</span> <span class='conid'>XName</span> <span class='keyglyph'>-></span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='conid'>QName</span>-<a name="line-208"></a><span class='definition'>setLocalPart'</span> <span class='varid'>lp</span> <span class='layout'>(</span><span class='conid'>LP</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>LP</span> <span class='varid'>lp</span>-<a name="line-209"></a><span class='definition'>setLocalPart'</span> <span class='varid'>lp</span> <span class='layout'>(</span><span class='conid'>PX</span> <span class='varid'>px</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>PX</span> <span class='varid'>px</span> <span class='layout'>(</span><span class='varid'>setLocalPart'</span> <span class='varid'>lp</span> <span class='varid'>n</span><span class='layout'>)</span>-<a name="line-210"></a><span class='definition'>setLocalPart'</span> <span class='varid'>lp</span> <span class='layout'>(</span><span class='conid'>NS</span> <span class='varid'>ns</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>NS</span> <span class='varid'>ns</span> <span class='layout'>(</span><span class='varid'>setLocalPart'</span> <span class='varid'>lp</span> <span class='varid'>n</span><span class='layout'>)</span>-<a name="line-211"></a>-<a name="line-212"></a><span class='comment'>-- | set name prefix</span>-<a name="line-213"></a>-<a name="line-214"></a><a name="setNamePrefix'"></a><span class='definition'>setNamePrefix'</span> <span class='keyglyph'>::</span> <span class='conid'>XName</span> <span class='keyglyph'>-></span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='conid'>QName</span>-<a name="line-215"></a><span class='definition'>setNamePrefix'</span> <span class='varid'>px</span> <span class='layout'>(</span><span class='conid'>PX</span> <span class='keyword'>_</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>px</span> <span class='varop'>==</span> <span class='varid'>nullXName</span>-<a name="line-216"></a> <span class='keyword'>then</span> <span class='varid'>n</span>-<a name="line-217"></a> <span class='keyword'>else</span> <span class='conid'>PX</span> <span class='varid'>px</span> <span class='varid'>n</span>-<a name="line-218"></a><span class='definition'>setNamePrefix'</span> <span class='varid'>px</span> <span class='varid'>n</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>LP</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>px</span> <span class='varop'>==</span> <span class='varid'>nullXName</span>-<a name="line-219"></a> <span class='keyword'>then</span> <span class='varid'>n</span>-<a name="line-220"></a> <span class='keyword'>else</span> <span class='conid'>PX</span> <span class='varid'>px</span> <span class='varid'>n</span>-<a name="line-221"></a><span class='definition'>setNamePrefix'</span> <span class='varid'>px</span> <span class='layout'>(</span><span class='conid'>NS</span> <span class='varid'>ns</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>NS</span> <span class='varid'>ns</span> <span class='layout'>(</span><span class='varid'>setNamePrefix'</span> <span class='varid'>px</span> <span class='varid'>n</span><span class='layout'>)</span>-<a name="line-222"></a>-<a name="line-223"></a>-<a name="line-224"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-225"></a>-<a name="line-226"></a><span class='comment'>-- |</span>-<a name="line-227"></a><span class='comment'>-- builds the full name \"prefix:localPart\", if prefix is not null, else the local part is the result</span>-<a name="line-228"></a>-<a name="line-229"></a><a name="qualifiedName"></a><span class='definition'>qualifiedName</span> <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-230"></a><span class='definition'>qualifiedName</span> <span class='layout'>(</span><span class='conid'>LP</span> <span class='varid'>lp</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>show</span> <span class='varid'>lp</span>-<a name="line-231"></a><span class='definition'>qualifiedName</span> <span class='layout'>(</span><span class='conid'>PX</span> <span class='varid'>px</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>show</span> <span class='varid'>px</span> <span class='varop'>++</span> <span class='layout'>(</span><span class='chr'>':'</span> <span class='conop'>:</span> <span class='varid'>qualifiedName</span> <span class='varid'>n</span><span class='layout'>)</span>-<a name="line-232"></a><span class='definition'>qualifiedName</span> <span class='layout'>(</span><span class='conid'>NS</span> <span class='keyword'>_</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>qualifiedName</span> <span class='varid'>n</span>-<a name="line-233"></a>-<a name="line-234"></a><span class='comment'>-- |</span>-<a name="line-235"></a><span class='comment'>-- builds the \"universal\" name, that is the namespace uri surrounded with \"{\" and \"}\" followed by the local part</span>-<a name="line-236"></a><span class='comment'>-- (specialisation of 'buildUniversalName')</span>-<a name="line-237"></a>-<a name="line-238"></a><a name="universalName"></a><span class='definition'>universalName</span> <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-239"></a><span class='definition'>universalName</span> <span class='keyglyph'>=</span> <span class='varid'>buildUniversalName</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>ns</span> <span class='varid'>lp</span> <span class='keyglyph'>-></span> <span class='chr'>'{'</span> <span class='conop'>:</span> <span class='varid'>ns</span> <span class='varop'>++</span> <span class='chr'>'}'</span> <span class='conop'>:</span> <span class='varid'>lp</span><span class='layout'>)</span>-<a name="line-240"></a>-<a name="line-241"></a><span class='comment'>-- |</span>-<a name="line-242"></a><span class='comment'>-- builds an \"universal\" uri, that is the namespace uri followed by the local part. This is usefull for RDF applications,</span>-<a name="line-243"></a><span class='comment'>-- where the subject, predicate and object often are concatenated from namespace uri and local part</span>-<a name="line-244"></a><span class='comment'>-- (specialisation of 'buildUniversalName')</span>-<a name="line-245"></a>-<a name="line-246"></a><a name="universalUri"></a><span class='definition'>universalUri</span> <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-247"></a><span class='definition'>universalUri</span> <span class='keyglyph'>=</span> <span class='varid'>buildUniversalName</span> <span class='layout'>(</span><span class='varop'>++</span><span class='layout'>)</span>-<a name="line-248"></a>-<a name="line-249"></a><span class='comment'>-- |</span>-<a name="line-250"></a><span class='comment'>-- builds a string from the namespace uri and the local part. If the namespace uri is empty, the local part is returned, else</span>-<a name="line-251"></a><span class='comment'>-- namespace uri and local part are combined with the combining function given by the first parameter</span>-<a name="line-252"></a>-<a name="line-253"></a><a name="buildUniversalName"></a><span class='definition'>buildUniversalName</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-254"></a><span class='definition'>buildUniversalName</span> <span class='varid'>bf</span> <span class='layout'>(</span><span class='conid'>NS</span> <span class='varid'>ns</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>show</span> <span class='varid'>ns</span> <span class='varop'>`bf`</span> <span class='varid'>localPart</span> <span class='varid'>n</span>-<a name="line-255"></a><span class='definition'>buildUniversalName</span> <span class='keyword'>_</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='varid'>localPart</span> <span class='varid'>n</span>-<a name="line-256"></a>-<a name="line-257"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-258"></a><span class='comment'>--</span>-<a name="line-259"></a><span class='comment'>-- internal XName functions</span>-<a name="line-260"></a>-<a name="line-261"></a><a name="mkQName'"></a><span class='definition'>mkQName'</span> <span class='keyglyph'>::</span> <span class='conid'>XName</span> <span class='keyglyph'>-></span> <span class='conid'>XName</span> <span class='keyglyph'>-></span> <span class='conid'>XName</span> <span class='keyglyph'>-></span> <span class='conid'>QName</span>-<a name="line-262"></a><span class='definition'>mkQName'</span> <span class='varid'>px</span> <span class='varid'>lp</span> <span class='varid'>ns</span>-<a name="line-263"></a> <span class='keyglyph'>|</span> <span class='varid'>isNullXName</span> <span class='varid'>ns</span> <span class='keyglyph'>=</span> <span class='varid'>px_lp</span>-<a name="line-264"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='conid'>NS</span> <span class='varid'>ns</span> <span class='varid'>px_lp</span>-<a name="line-265"></a> <span class='keyword'>where</span>-<a name="line-266"></a> <span class='varid'>px_lp</span>-<a name="line-267"></a> <span class='keyglyph'>|</span> <span class='varid'>isNullXName</span> <span class='varid'>px</span> <span class='keyglyph'>=</span> <span class='conid'>LP</span> <span class='varid'>lp</span>-<a name="line-268"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='conid'>PX</span> <span class='varid'>px</span> <span class='layout'>(</span><span class='conid'>LP</span> <span class='varid'>lp</span><span class='layout'>)</span>-<a name="line-269"></a>-<a name="line-270"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-271"></a>-<a name="line-272"></a><span class='comment'>-- |</span>-<a name="line-273"></a><span class='comment'>-- constructs a simple name, with prefix and localPart but without a namespace uri.</span>-<a name="line-274"></a><span class='comment'>--</span>-<a name="line-275"></a><span class='comment'>-- see also 'mkQName', 'mkName'</span>-<a name="line-276"></a>-<a name="line-277"></a><a name="mkPrefixLocalPart"></a><span class='definition'>mkPrefixLocalPart</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>QName</span>-<a name="line-278"></a><span class='definition'>mkPrefixLocalPart</span> <span class='varid'>px</span> <span class='varid'>lp</span>-<a name="line-279"></a> <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>px</span> <span class='keyglyph'>=</span> <span class='varid'>n1</span>-<a name="line-280"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='conid'>PX</span> <span class='layout'>(</span><span class='varid'>newXName</span> <span class='varid'>px</span><span class='layout'>)</span> <span class='varid'>n1</span>-<a name="line-281"></a> <span class='keyword'>where</span>-<a name="line-282"></a> <span class='varid'>n1</span> <span class='keyglyph'>=</span> <span class='conid'>LP</span> <span class='layout'>(</span><span class='varid'>newXName</span> <span class='varid'>lp</span><span class='layout'>)</span>-<a name="line-283"></a>-<a name="line-284"></a><span class='comment'>-- |</span>-<a name="line-285"></a><span class='comment'>-- constructs a simple, namespace unaware name.</span>-<a name="line-286"></a><span class='comment'>-- If the name is in @prefix:localpart@ form and the prefix is not empty</span>-<a name="line-287"></a><span class='comment'>-- the name is split internally into</span>-<a name="line-288"></a><span class='comment'>-- a prefix and a local part.</span>-<a name="line-289"></a>-<a name="line-290"></a><a name="mkName"></a><span class='definition'>mkName</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>QName</span>-<a name="line-291"></a><span class='definition'>mkName</span> <span class='varid'>n</span> -<a name="line-292"></a> <span class='keyglyph'>|</span> <span class='layout'>(</span><span class='chr'>':'</span> <span class='varop'>`elem`</span> <span class='varid'>n</span><span class='layout'>)</span>-<a name="line-293"></a> <span class='varop'>&&</span>-<a name="line-294"></a> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>null</span> <span class='varid'>px</span><span class='layout'>)</span> <span class='comment'>-- more restrictive: isWellformedQualifiedName n</span>-<a name="line-295"></a> <span class='keyglyph'>=</span> <span class='varid'>mkPrefixLocalPart</span> <span class='varid'>px</span> <span class='varid'>lp</span>-<a name="line-296"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>mkPrefixLocalPart</span> <span class='str'>""</span> <span class='varid'>n</span>-<a name="line-297"></a> <span class='keyword'>where</span>-<a name="line-298"></a> <span class='layout'>(</span><span class='varid'>px</span><span class='layout'>,</span> <span class='layout'>(</span><span class='keyword'>_</span><span class='conop'>:</span><span class='varid'>lp</span><span class='layout'>)</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>span</span> <span class='layout'>(</span><span class='varop'>/=</span> <span class='chr'>':'</span><span class='layout'>)</span> <span class='varid'>n</span>-<a name="line-299"></a>-<a name="line-300"></a><span class='comment'>-- |</span>-<a name="line-301"></a><span class='comment'>-- constructs a complete qualified name with 'namePrefix', 'localPart' and 'namespaceUri'.</span>-<a name="line-302"></a><span class='comment'>-- This function can be used to build not wellformed prefix:localpart names.</span>-<a name="line-303"></a><span class='comment'>-- The XPath module uses wildcard names like @xxx:*@. These must be build with 'mkQName'</span>-<a name="line-304"></a><span class='comment'>-- and not with mkName.</span>-<a name="line-305"></a>-<a name="line-306"></a><a name="mkQName"></a><span class='definition'>mkQName</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>QName</span>-<a name="line-307"></a><span class='definition'>mkQName</span> <span class='varid'>px</span> <span class='varid'>lp</span> <span class='varid'>ns</span>-<a name="line-308"></a> <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>ns</span> <span class='keyglyph'>=</span> <span class='varid'>n1</span>-<a name="line-309"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='conid'>NS</span> <span class='layout'>(</span><span class='varid'>newXName</span> <span class='varid'>ns</span><span class='layout'>)</span> <span class='varid'>n1</span>-<a name="line-310"></a> <span class='keyword'>where</span>-<a name="line-311"></a> <span class='varid'>n1</span> <span class='keyglyph'>=</span> <span class='varid'>mkPrefixLocalPart</span> <span class='varid'>px</span> <span class='varid'>lp</span>-<a name="line-312"></a>-<a name="line-313"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-314"></a>-<a name="line-315"></a><span class='comment'>-- |</span>-<a name="line-316"></a><span class='comment'>-- old name for 'mkName'</span>-<a name="line-317"></a>-<a name="line-318"></a><a name="mkSNsName"></a><span class='definition'>mkSNsName</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>QName</span>-<a name="line-319"></a><span class='definition'>mkSNsName</span> <span class='keyglyph'>=</span> <span class='varid'>mkName</span>-<a name="line-320"></a>-<a name="line-321"></a><span class='comment'>-- |</span>-<a name="line-322"></a><span class='comment'>-- constructs a simple, namespace aware name, with prefix:localPart as first parameter,</span>-<a name="line-323"></a><span class='comment'>-- namspace uri as second.</span>-<a name="line-324"></a><span class='comment'>--</span>-<a name="line-325"></a><span class='comment'>-- see also 'mkName', 'mkPrefixLocalPart'</span>-<a name="line-326"></a>-<a name="line-327"></a><a name="mkNsName"></a><span class='definition'>mkNsName</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>QName</span>-<a name="line-328"></a><span class='definition'>mkNsName</span> <span class='varid'>n</span> <span class='varid'>ns</span>-<a name="line-329"></a> <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>ns</span> <span class='keyglyph'>=</span> <span class='varid'>mkName</span> <span class='varid'>n</span>-<a name="line-330"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='conid'>NS</span> <span class='layout'>(</span><span class='varid'>newXName</span> <span class='varid'>ns</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>mkName</span> <span class='varid'>n</span><span class='layout'>)</span>-<a name="line-331"></a>-<a name="line-332"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-333"></a>-<a name="line-334"></a><span class='comment'>-- | Equivalent QNames are defined as follows: The URIs are normalized before comparison.</span>-<a name="line-335"></a><span class='comment'>-- Comparison is done with 'equalQNameBy' and 'equivUri'</span>-<a name="line-336"></a>-<a name="line-337"></a><a name="equivQName"></a><span class='definition'>equivQName</span> <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-338"></a><span class='definition'>equivQName</span> <span class='keyglyph'>=</span> <span class='varid'>equalQNameBy</span> <span class='varid'>equivUri</span>-<a name="line-339"></a>-<a name="line-340"></a><span class='comment'>-- | Comparison of normalized namespace URIs using 'normalizeNsUri'</span>-<a name="line-341"></a>-<a name="line-342"></a><a name="equivUri"></a><span class='definition'>equivUri</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-343"></a><span class='definition'>equivUri</span> <span class='varid'>x</span> <span class='varid'>y</span> <span class='keyglyph'>=</span> <span class='varid'>normalizeNsUri</span> <span class='varid'>x</span> <span class='varop'>==</span> <span class='varid'>normalizeNsUri</span> <span class='varid'>y</span>-<a name="line-344"></a>-<a name="line-345"></a><span class='comment'>-- | Sometimes a weaker equality relation than 'equalQName' is appropriate, e.g no case significance in names, ...</span>-<a name="line-346"></a><span class='comment'>-- a name normalization function can be applied to the strings before comparing. Called by 'equalQName' and</span>-<a name="line-347"></a><span class='comment'>-- 'equivQName'</span>-<a name="line-348"></a>-<a name="line-349"></a><a name="equalQNameBy"></a><span class='definition'>equalQNameBy</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-350"></a><span class='definition'>equalQNameBy</span> <span class='varid'>equiv</span> <span class='varid'>q1</span> <span class='varid'>q2</span> <span class='keyglyph'>=</span> <span class='varid'>localPart</span> <span class='varid'>q1</span> <span class='varop'>==</span> <span class='varid'>localPart</span> <span class='varid'>q2</span>-<a name="line-351"></a> <span class='varop'>&&</span>-<a name="line-352"></a> <span class='layout'>(</span><span class='varid'>namespaceUri</span> <span class='varid'>q1</span> <span class='varop'>`equiv`</span> <span class='varid'>namespaceUri</span> <span class='varid'>q2</span><span class='layout'>)</span>-<a name="line-353"></a>-<a name="line-354"></a><span class='comment'>-- | Normalization of URIs: Normalization is done by conversion into lowercase letters. A trailing \"\/\" is ignored</span>-<a name="line-355"></a>-<a name="line-356"></a><a name="normalizeNsUri"></a><span class='definition'>normalizeNsUri</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-357"></a><span class='definition'>normalizeNsUri</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>toLower</span> <span class='varop'>.</span> <span class='varid'>stripSlash</span>-<a name="line-358"></a> <span class='keyword'>where</span>-<a name="line-359"></a> <span class='varid'>stripSlash</span> <span class='str'>""</span> <span class='keyglyph'>=</span> <span class='str'>""</span>-<a name="line-360"></a> <span class='varid'>stripSlash</span> <span class='varid'>s</span>-<a name="line-361"></a> <span class='keyglyph'>|</span> <span class='varid'>last</span> <span class='varid'>s</span> <span class='varop'>==</span> <span class='chr'>'/'</span> <span class='keyglyph'>=</span> <span class='varid'>init</span> <span class='varid'>s</span>-<a name="line-362"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>s</span>-<a name="line-363"></a>-<a name="line-364"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>-<a name="line-365"></a>-<a name="line-366"></a><span class='comment'>-- Namespace predicates</span>-<a name="line-367"></a>-<a name="line-368"></a><span class='comment'>-- |</span>-<a name="line-369"></a><span class='comment'>-- Compute the name prefix and the namespace uri for a qualified name.</span>-<a name="line-370"></a><span class='comment'>--</span>-<a name="line-371"></a><span class='comment'>-- This function does not test whether the name is a wellformed qualified name.</span>-<a name="line-372"></a><span class='comment'>-- see Namespaces in XML Rule [6] to [8]. Error checking is done with separate functions,</span>-<a name="line-373"></a><span class='comment'>-- see 'isWellformedQName' and 'isWellformedQualifiedName' for error checking.</span>-<a name="line-374"></a>-<a name="line-375"></a><a name="setNamespace"></a><span class='definition'>setNamespace</span> <span class='keyglyph'>::</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-></span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='conid'>QName</span>-<a name="line-376"></a><span class='definition'>setNamespace</span> <span class='varid'>env</span> <span class='varid'>n</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>PX</span> <span class='varid'>px</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>attachNS</span> <span class='varid'>env</span> <span class='varid'>px</span> <span class='varid'>n</span> <span class='comment'>-- none empty prefix found</span>-<a name="line-377"></a><span class='definition'>setNamespace</span> <span class='varid'>env</span> <span class='varid'>n</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>LP</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>attachNS</span> <span class='varid'>env</span> <span class='varid'>nullXName</span> <span class='varid'>n</span> <span class='comment'>-- use default namespace uri</span>-<a name="line-378"></a><span class='definition'>setNamespace</span> <span class='varid'>env</span> <span class='layout'>(</span><span class='conid'>NS</span> <span class='keyword'>_</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>setNamespace</span> <span class='varid'>env</span> <span class='varid'>n</span>-<a name="line-379"></a>-<a name="line-380"></a><a name="attachNS"></a><span class='definition'>attachNS</span> <span class='keyglyph'>::</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-></span> <span class='conid'>XName</span> <span class='keyglyph'>-></span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='conid'>QName</span>-<a name="line-381"></a><span class='definition'>attachNS</span> <span class='varid'>env</span> <span class='varid'>px</span> <span class='varid'>n1</span> <span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='varid'>n1</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>ns</span> <span class='keyglyph'>-></span> <span class='conid'>NS</span> <span class='varid'>ns</span> <span class='varid'>n1</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>lookup</span> <span class='varid'>px</span> <span class='varop'>$</span> <span class='varid'>env</span>-<a name="line-382"></a>-<a name="line-383"></a><a name="xmlnsNamespaceXName"></a><span class='definition'>xmlnsNamespaceXName</span> <span class='keyglyph'>::</span> <span class='conid'>XName</span>-<a name="line-384"></a><span class='definition'>xmlnsNamespaceXName</span> <span class='keyglyph'>=</span> <span class='varid'>newXName</span> <span class='varid'>xmlnsNamespace</span>-<a name="line-385"></a>-<a name="line-386"></a><a name="xmlnsXName"></a><span class='definition'>xmlnsXName</span> <span class='keyglyph'>::</span> <span class='conid'>XName</span>-<a name="line-387"></a><span class='definition'>xmlnsXName</span> <span class='keyglyph'>=</span> <span class='varid'>newXName</span> <span class='varid'>a_xmlns</span>-<a name="line-388"></a>-<a name="line-389"></a><a name="xmlnsQN"></a><span class='definition'>xmlnsQN</span> <span class='keyglyph'>::</span> <span class='conid'>QName</span>-<a name="line-390"></a><span class='definition'>xmlnsQN</span> <span class='keyglyph'>=</span> <span class='conid'>NS</span> <span class='varid'>xmlnsNamespaceXName</span> <span class='layout'>(</span><span class='conid'>LP</span> <span class='varid'>xmlnsXName</span><span class='layout'>)</span>-<a name="line-391"></a>-<a name="line-392"></a><a name="xmlNamespaceXName"></a><span class='definition'>xmlNamespaceXName</span> <span class='keyglyph'>::</span> <span class='conid'>XName</span>-<a name="line-393"></a><span class='definition'>xmlNamespaceXName</span> <span class='keyglyph'>=</span> <span class='varid'>newXName</span> <span class='varid'>xmlNamespace</span>-<a name="line-394"></a>-<a name="line-395"></a><a name="xmlXName"></a><span class='definition'>xmlXName</span> <span class='keyglyph'>::</span> <span class='conid'>XName</span>-<a name="line-396"></a><span class='definition'>xmlXName</span> <span class='keyglyph'>=</span> <span class='varid'>newXName</span> <span class='varid'>a_xml</span>-<a name="line-397"></a>-<a name="line-398"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>-<a name="line-399"></a><span class='comment'>--</span>-<a name="line-400"></a>-<a name="line-401"></a><span class='comment'>-- |</span>-<a name="line-402"></a><span class='comment'>-- test for wellformed NCName, rule [4] XML Namespaces</span>-<a name="line-403"></a>-<a name="line-404"></a><a name="isNCName"></a><span class='definition'>isNCName</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-405"></a><span class='definition'>isNCName</span> <span class='conid'>[]</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-406"></a><span class='definition'>isNCName</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='varid'>and</span> <span class='layout'>(</span> <span class='varid'>zipWith</span> <span class='layout'>(</span><span class='varop'>$</span><span class='layout'>)</span>-<a name="line-407"></a> <span class='layout'>(</span><span class='varid'>isXmlNCNameStartChar</span> <span class='conop'>:</span> <span class='varid'>repeat</span> <span class='varid'>isXmlNCNameChar</span><span class='layout'>)</span>-<a name="line-408"></a> <span class='varid'>n</span>-<a name="line-409"></a> <span class='layout'>)</span>-<a name="line-410"></a>-<a name="line-411"></a><span class='comment'>-- |</span>-<a name="line-412"></a><span class='comment'>-- test for wellformed QName, rule [6] XML Namespaces</span>-<a name="line-413"></a><span class='comment'>-- predicate is used in filter 'valdateNamespaces'.</span>-<a name="line-414"></a>-<a name="line-415"></a><a name="isWellformedQualifiedName"></a><span class='definition'>isWellformedQualifiedName</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-416"></a><span class='definition'>isWellformedQualifiedName</span> <span class='varid'>s</span>-<a name="line-417"></a> <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>lp</span> <span class='keyglyph'>=</span> <span class='varid'>isNCName</span> <span class='varid'>px</span>-<a name="line-418"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>isNCName</span> <span class='varid'>px</span> <span class='varop'>&&</span> <span class='varid'>isNCName</span> <span class='layout'>(</span><span class='varid'>tail</span> <span class='varid'>lp</span><span class='layout'>)</span>-<a name="line-419"></a> <span class='keyword'>where</span>-<a name="line-420"></a> <span class='layout'>(</span><span class='varid'>px</span><span class='layout'>,</span> <span class='varid'>lp</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>span</span> <span class='layout'>(</span><span class='varop'>/=</span> <span class='chr'>':'</span><span class='layout'>)</span> <span class='varid'>s</span>-<a name="line-421"></a>-<a name="line-422"></a><span class='comment'>-- |</span>-<a name="line-423"></a><span class='comment'>-- test for wellformed QName values.</span>-<a name="line-424"></a><span class='comment'>-- A QName is wellformed, if the local part is a NCName, the namePrefix, if not empty, is also a NCName.</span>-<a name="line-425"></a><span class='comment'>-- predicate is used in filter 'valdateNamespaces'.</span>-<a name="line-426"></a>-<a name="line-427"></a><a name="isWellformedQName"></a><span class='definition'>isWellformedQName</span> <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-428"></a><span class='definition'>isWellformedQName</span> <span class='layout'>(</span><span class='conid'>LP</span> <span class='varid'>lp</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>isNCName</span> <span class='varop'>.</span> <span class='varid'>show</span> <span class='varop'>$</span> <span class='varid'>lp</span> <span class='comment'>-- rule [8] XML Namespaces</span>-<a name="line-429"></a><span class='definition'>isWellformedQName</span> <span class='layout'>(</span><span class='conid'>PX</span> <span class='varid'>px</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>isNCName</span> <span class='varop'>.</span> <span class='varid'>show</span><span class='layout'>)</span> <span class='varid'>px</span> <span class='comment'>-- rule [7] XML Namespaces</span>-<a name="line-430"></a> <span class='varop'>&&</span>-<a name="line-431"></a> <span class='varid'>isWellformedQName</span> <span class='varid'>n</span>-<a name="line-432"></a><span class='definition'>isWellformedQName</span> <span class='layout'>(</span><span class='conid'>NS</span> <span class='keyword'>_</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>isWellformedQName</span> <span class='varid'>n</span>-<a name="line-433"></a>-<a name="line-434"></a><span class='comment'>-- |</span>-<a name="line-435"></a><span class='comment'>-- test whether an attribute name is a namesapce declaration name.</span>-<a name="line-436"></a><span class='comment'>-- If this is not the case True is the result, else</span>-<a name="line-437"></a><span class='comment'>-- the name must be a well formed namespace name:</span>-<a name="line-438"></a><span class='comment'>-- All namespace prefixes starting with \"xml\" are reserved for XML related definitions.</span>-<a name="line-439"></a><span class='comment'>-- predicate is used in filter 'valdateNamespaces'.</span>-<a name="line-440"></a>-<a name="line-441"></a><a name="isWellformedNSDecl"></a><span class='definition'>isWellformedNSDecl</span> <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-442"></a><span class='definition'>isWellformedNSDecl</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>isNameSpaceName</span> <span class='varid'>n</span><span class='layout'>)</span>-<a name="line-443"></a> <span class='varop'>||</span>-<a name="line-444"></a> <span class='varid'>isWellformedNameSpaceName</span> <span class='varid'>n</span>-<a name="line-445"></a>-<a name="line-446"></a><span class='comment'>-- |</span>-<a name="line-447"></a><span class='comment'>-- test for a namespace name to be well formed</span>-<a name="line-448"></a>-<a name="line-449"></a><a name="isWellformedNameSpaceName"></a><span class='definition'>isWellformedNameSpaceName</span> <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-450"></a><span class='definition'>isWellformedNameSpaceName</span> <span class='layout'>(</span><span class='conid'>LP</span> <span class='varid'>lp</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>lp</span> <span class='varop'>==</span> <span class='varid'>xmlnsXName</span>-<a name="line-451"></a><span class='definition'>isWellformedNameSpaceName</span> <span class='layout'>(</span><span class='conid'>PX</span> <span class='varid'>px</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>px</span> <span class='varop'>==</span> <span class='varid'>xmlnsXName</span>-<a name="line-452"></a> <span class='varop'>&&</span>-<a name="line-453"></a> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>null</span> <span class='varid'>lp'</span><span class='layout'>)</span>-<a name="line-454"></a> <span class='varop'>&&</span>-<a name="line-455"></a> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>a_xml</span> <span class='varop'>`isPrefixOf`</span> <span class='varid'>lp'</span><span class='layout'>)</span>-<a name="line-456"></a> <span class='keyword'>where</span>-<a name="line-457"></a> <span class='varid'>lp'</span> <span class='keyglyph'>=</span> <span class='varid'>localPart</span> <span class='varid'>n</span>-<a name="line-458"></a><span class='definition'>isWellformedNameSpaceName</span> <span class='layout'>(</span><span class='conid'>NS</span> <span class='keyword'>_</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>isWellformedNSDecl</span> <span class='varid'>n</span>-<a name="line-459"></a>-<a name="line-460"></a><span class='comment'>-- |</span>-<a name="line-461"></a><span class='comment'>-- test whether a name is a namespace declaration attribute name</span>-<a name="line-462"></a>-<a name="line-463"></a><a name="isNameSpaceName"></a><span class='definition'>isNameSpaceName</span> <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-464"></a><span class='definition'>isNameSpaceName</span> <span class='layout'>(</span><span class='conid'>LP</span> <span class='varid'>lp</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>lp</span> <span class='varop'>==</span> <span class='varid'>xmlnsXName</span>-<a name="line-465"></a><span class='definition'>isNameSpaceName</span> <span class='layout'>(</span><span class='conid'>PX</span> <span class='varid'>px</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>px</span> <span class='varop'>==</span> <span class='varid'>xmlnsXName</span>-<a name="line-466"></a><span class='definition'>isNameSpaceName</span> <span class='layout'>(</span><span class='conid'>NS</span> <span class='keyword'>_</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>isNameSpaceName</span> <span class='varid'>n</span>-<a name="line-467"></a>-<a name="line-468"></a><span class='comment'>-- |</span>-<a name="line-469"></a><span class='comment'>-- </span>-<a name="line-470"></a><span class='comment'>-- predicate is used in filter 'valdateNamespaces'.</span>-<a name="line-471"></a>-<a name="line-472"></a><a name="isDeclaredNamespace"></a><span class='definition'>isDeclaredNamespace</span> <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-473"></a><span class='definition'>isDeclaredNamespace</span> <span class='layout'>(</span><span class='conid'>NS</span> <span class='varid'>ns</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>isNS</span> <span class='varid'>ns</span> <span class='varid'>n</span>-<a name="line-474"></a><span class='definition'>isDeclaredNamespace</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='varid'>isNS</span> <span class='varid'>nullXName</span> <span class='varid'>n</span>-<a name="line-475"></a>-<a name="line-476"></a><a name="isNS"></a><span class='definition'>isNS</span> <span class='keyglyph'>::</span> <span class='conid'>XName</span> <span class='keyglyph'>-></span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-477"></a><span class='definition'>isNS</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>LP</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>True</span> <span class='comment'>-- no namespace used</span>-<a name="line-478"></a><span class='definition'>isNS</span> <span class='varid'>ns</span> <span class='layout'>(</span><span class='conid'>PX</span> <span class='varid'>px</span> <span class='keyword'>_</span><span class='layout'>)</span>-<a name="line-479"></a> <span class='keyglyph'>|</span> <span class='varid'>px</span> <span class='varop'>==</span> <span class='varid'>xmlnsXName</span> <span class='keyglyph'>=</span> <span class='varid'>ns</span> <span class='varop'>==</span> <span class='varid'>xmlnsNamespaceXName</span> <span class='comment'>-- "xmlns" has a predefined namespace uri</span>-<a name="line-480"></a> <span class='keyglyph'>|</span> <span class='varid'>px</span> <span class='varop'>==</span> <span class='varid'>xmlXName</span> <span class='keyglyph'>=</span> <span class='varid'>ns</span> <span class='varop'>==</span> <span class='varid'>xmlNamespaceXName</span> <span class='comment'>-- "xml" has a predefiend namespace"</span>-<a name="line-481"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>ns</span> <span class='varop'>/=</span> <span class='varid'>nullXName</span> <span class='comment'>-- namespace values are not empty</span>-<a name="line-482"></a><span class='definition'>isNS</span> <span class='varid'>ns</span> <span class='layout'>(</span><span class='conid'>NS</span> <span class='keyword'>_</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>isNS</span> <span class='varid'>ns</span> <span class='varid'>n</span> <span class='comment'>-- this does not occur, but warning is prevented</span>-<a name="line-483"></a>-<a name="line-484"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>-<a name="line-485"></a>-<a name="line-486"></a><a name="toNsEnv"></a><span class='definition'>toNsEnv</span> <span class='keyglyph'>::</span> <span class='conid'>AssocList</span> <span class='conid'>String</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>NsEnv</span>-<a name="line-487"></a><span class='definition'>toNsEnv</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>newXName</span> <span class='varop'>***</span> <span class='varid'>newXName</span><span class='layout'>)</span>-<a name="line-488"></a>-<a name="line-489"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>-<a name="line-490"></a>-<a name="line-491"></a><span class='comment'>-- the name cache, same implementation strategy as in Data.Atom,</span>-<a name="line-492"></a><span class='comment'>-- but conversion to and from ByteString prevented</span>-<a name="line-493"></a>-<a name="line-494"></a><a name="Atoms"></a><span class='keyword'>type</span> <span class='conid'>Atoms</span> <span class='keyglyph'>=</span> <span class='conid'>M</span><span class='varop'>.</span><span class='conid'>Map</span> <span class='conid'>String</span> <span class='conid'>String</span>-<a name="line-495"></a>-<a name="line-496"></a><a name="Atom"></a><span class='keyword'>newtype</span> <span class='conid'>Atom</span> <span class='keyglyph'>=</span> <span class='conid'>A</span> <span class='conid'>String</span>-<a name="line-497"></a> <span class='keyword'>deriving</span> <span class='layout'>(</span><span class='conid'>Eq</span><span class='layout'>,</span> <span class='conid'>Ord</span><span class='layout'>,</span> <span class='conid'>Typeable</span><span class='layout'>)</span>-<a name="line-498"></a>-<a name="line-499"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-500"></a>-<a name="line-501"></a><span class='comment'>-- | the internal cache for the strings</span>-<a name="line-502"></a>-<a name="line-503"></a><a name="theAtoms"></a><span class='definition'>theAtoms</span> <span class='keyglyph'>::</span> <span class='conid'>MVar</span> <span class='conid'>Atoms</span>-<a name="line-504"></a><span class='definition'>theAtoms</span> <span class='keyglyph'>=</span> <span class='varid'>unsafePerformIO</span> <span class='layout'>(</span><span class='varid'>newMVar</span> <span class='conid'>M</span><span class='varop'>.</span><span class='varid'>empty</span><span class='layout'>)</span>-<a name="line-505"></a><span class='comment'>{-# NOINLINE theAtoms #-}</span>-<a name="line-506"></a>-<a name="line-507"></a><span class='comment'>-- | insert a bytestring into the atom cache</span>-<a name="line-508"></a>-<a name="line-509"></a><a name="insertAtom"></a><span class='definition'>insertAtom</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Atoms</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='conid'>Atoms</span><span class='layout'>,</span> <span class='conid'>Atom</span><span class='layout'>)</span>-<a name="line-510"></a><span class='definition'>insertAtom</span> <span class='varid'>s</span> <span class='varid'>m</span> <span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='layout'>(</span><span class='conid'>M</span><span class='varop'>.</span><span class='varid'>insert</span> <span class='comment'>{- (trace (show s) s) -}</span> <span class='varid'>s</span> <span class='varid'>s</span> <span class='varid'>m</span><span class='layout'>,</span> <span class='conid'>A</span> <span class='varid'>s</span> <span class='varop'>`demanding`</span> <span class='varid'>rnf</span> <span class='varid'>s</span><span class='layout'>)</span>-<a name="line-511"></a> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>s'</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='varid'>m</span><span class='layout'>,</span> <span class='conid'>A</span> <span class='varid'>s'</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-512"></a> <span class='varop'>.</span>-<a name="line-513"></a> <span class='conid'>M</span><span class='varop'>.</span><span class='varid'>lookup</span> <span class='varid'>s</span> <span class='varop'>$</span> <span class='varid'>m</span>-<a name="line-514"></a>-<a name="line-515"></a><span class='comment'>-- | creation of an @Atom@ from a @String@</span>-<a name="line-516"></a>-<a name="line-517"></a><a name="newAtom"></a><span class='definition'>newAtom</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Atom</span>-<a name="line-518"></a><span class='definition'>newAtom</span> <span class='keyglyph'>=</span> <span class='varid'>unsafePerformIO</span> <span class='varop'>.</span> <span class='varid'>newAtom'</span>-<a name="line-519"></a><span class='comment'>{-# NOINLINE newAtom #-}</span>-<a name="line-520"></a>-<a name="line-521"></a><a name="newAtom'"></a><span class='comment'>-- | The internal operation running in the IO monad</span>-<a name="line-522"></a><span class='definition'>newAtom'</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>IO</span> <span class='conid'>Atom</span>-<a name="line-523"></a><span class='definition'>newAtom'</span> <span class='varid'>s</span> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-524"></a> <span class='varid'>m</span> <span class='keyglyph'><-</span> <span class='varid'>takeMVar</span> <span class='varid'>theAtoms</span>-<a name="line-525"></a> <span class='keyword'>let</span> <span class='layout'>(</span><span class='varid'>m'</span><span class='layout'>,</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>insertAtom</span> <span class='varid'>s</span> <span class='varid'>m</span>-<a name="line-526"></a> <span class='varid'>putMVar</span> <span class='varid'>theAtoms</span> <span class='varid'>m'</span>-<a name="line-527"></a> <span class='varid'>return</span> <span class='varid'>a</span>-<a name="line-528"></a>-<a name="line-529"></a><span class='keyword'>instance</span> <span class='conid'>Read</span> <span class='conid'>Atom</span> <span class='keyword'>where</span>-<a name="line-530"></a> <span class='varid'>readsPrec</span> <span class='varid'>p</span> <span class='varid'>str</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>newAtom</span> <span class='varid'>x</span><span class='layout'>,</span> <span class='varid'>y</span><span class='layout'>)</span> <span class='keyglyph'>|</span> <span class='layout'>(</span><span class='varid'>x</span><span class='layout'>,</span> <span class='varid'>y</span><span class='layout'>)</span> <span class='keyglyph'><-</span> <span class='varid'>readsPrec</span> <span class='varid'>p</span> <span class='varid'>str</span> <span class='keyglyph'>]</span>-<a name="line-531"></a>-<a name="line-532"></a><span class='keyword'>instance</span> <span class='conid'>Show</span> <span class='conid'>Atom</span> <span class='keyword'>where</span>-<a name="line-533"></a> <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>A</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>s</span>-<a name="line-534"></a>-<a name="line-535"></a><span class='keyword'>instance</span> <span class='conid'>NFData</span> <span class='conid'>Atom</span> <span class='keyword'>where</span>-<a name="line-536"></a>-<a name="line-537"></a><span class='comment'>-----------------------------------------------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-DOM-ShowXml.html
@@ -1,415 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Text.XML.HXT.DOM.ShowXml-<a name="line-5"></a> Copyright : Copyright (C) 2008-9 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe@fh-wedel.de)-<a name="line-9"></a> Stability : stable-<a name="line-10"></a> Portability: portable-<a name="line-11"></a>-<a name="line-12"></a> XML tree conversion to external string representation-<a name="line-13"></a>-<a name="line-14"></a>-}</span>-<a name="line-15"></a>-<a name="line-16"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-17"></a>-<a name="line-18"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>ShowXml</span>-<a name="line-19"></a> <span class='layout'>(</span> <span class='varid'>xshow</span>-<a name="line-20"></a> <span class='layout'>,</span> <span class='varid'>showElemType</span>-<a name="line-21"></a> <span class='layout'>)</span>-<a name="line-22"></a><span class='keyword'>where</span>-<a name="line-23"></a>-<a name="line-24"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>-<a name="line-25"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Tree</span><span class='varop'>.</span><span class='conid'>NTree</span><span class='varop'>.</span><span class='conid'>TypeDefs</span>-<a name="line-26"></a>-<a name="line-27"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>TypeDefs</span> <span class='comment'>-- XML Tree types</span>-<a name="line-28"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlKeywords</span>-<a name="line-29"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlNode</span> <span class='layout'>(</span> <span class='varid'>mkDTDElem</span>-<a name="line-30"></a> <span class='layout'>,</span> <span class='varid'>getDTDAttrl</span>-<a name="line-31"></a> <span class='layout'>)</span>-<a name="line-32"></a>-<a name="line-33"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>-<a name="line-34"></a><span class='comment'>--</span>-<a name="line-35"></a><span class='comment'>-- the toString conversion functions</span>-<a name="line-36"></a>-<a name="line-37"></a><span class='comment'>-- |</span>-<a name="line-38"></a><span class='comment'>-- convert the result of a filter into a string</span>-<a name="line-39"></a><span class='comment'>--</span>-<a name="line-40"></a><span class='comment'>-- see also : 'xmlTreesToText' for filter version, 'Text.XML.HXT.Parser.XmlParsec.xread' for the inverse operation </span>-<a name="line-41"></a>-<a name="line-42"></a><a name="xshow"></a><span class='definition'>xshow</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-43"></a><span class='definition'>xshow</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XText</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='varid'>s</span> <span class='comment'>-- special case optimisation</span>-<a name="line-44"></a><span class='definition'>xshow</span> <span class='varid'>ts</span> <span class='keyglyph'>=</span> <span class='varid'>showXmlTrees</span> <span class='varid'>ts</span> <span class='str'>""</span>-<a name="line-45"></a>-<a name="line-46"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-47"></a>-<a name="line-48"></a><a name="showXmlTree"></a><span class='definition'>showXmlTree</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-49"></a>-<a name="line-50"></a><span class='definition'>showXmlTree</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XText</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span>-<a name="line-51"></a> <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='varid'>s</span>-<a name="line-52"></a>-<a name="line-53"></a><span class='definition'>showXmlTree</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XCharRef</span> <span class='varid'>i</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span>-<a name="line-54"></a> <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='str'>"&#"</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>i</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>showChar</span> <span class='chr'>';'</span>-<a name="line-55"></a>-<a name="line-56"></a><span class='definition'>showXmlTree</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XEntityRef</span> <span class='varid'>r</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span>-<a name="line-57"></a> <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='str'>"&"</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='varid'>r</span> <span class='varop'>.</span> <span class='varid'>showChar</span> <span class='chr'>';'</span>-<a name="line-58"></a>-<a name="line-59"></a><span class='definition'>showXmlTree</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XCmt</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span>-<a name="line-60"></a> <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='str'>"<!--"</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='varid'>c</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='str'>"-->"</span>-<a name="line-61"></a>-<a name="line-62"></a><span class='definition'>showXmlTree</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XCdata</span> <span class='varid'>d</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span>-<a name="line-63"></a> <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='str'>"<![CDATA["</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='varid'>d</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='str'>"]]>"</span>-<a name="line-64"></a>-<a name="line-65"></a><span class='definition'>showXmlTree</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XPi</span> <span class='varid'>n</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span>-<a name="line-66"></a> <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='str'>"<?"</span>-<a name="line-67"></a> <span class='varop'>.</span>-<a name="line-68"></a> <span class='varid'>showQName</span> <span class='varid'>n</span>-<a name="line-69"></a> <span class='varop'>.</span>-<a name="line-70"></a> <span class='layout'>(</span><span class='varid'>foldr</span> <span class='layout'>(</span><span class='varop'>.</span><span class='layout'>)</span> <span class='varid'>id</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='varid'>showPiAttr</span><span class='layout'>)</span> <span class='varid'>al</span>-<a name="line-71"></a> <span class='varop'>.</span>-<a name="line-72"></a> <span class='varid'>showString</span> <span class='str'>"?>"</span>-<a name="line-73"></a> <span class='keyword'>where</span>-<a name="line-74"></a> <span class='varid'>showPiAttr</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-75"></a> <span class='varid'>showPiAttr</span> <span class='varid'>a</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XAttr</span> <span class='varid'>an</span><span class='layout'>)</span> <span class='varid'>cs</span><span class='layout'>)</span>-<a name="line-76"></a> <span class='keyglyph'>|</span> <span class='varid'>qualifiedName</span> <span class='varid'>an</span> <span class='varop'>==</span> <span class='varid'>a_value</span>-<a name="line-77"></a> <span class='keyglyph'>=</span> <span class='varid'>showBlank</span> <span class='varop'>.</span> <span class='varid'>showXmlTrees</span> <span class='varid'>cs</span>-<a name="line-78"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-79"></a> <span class='keyglyph'>=</span> <span class='varid'>showXmlTree</span> <span class='varid'>a</span>-<a name="line-80"></a> <span class='varid'>showPiAttr</span> <span class='keyword'>_</span>-<a name="line-81"></a> <span class='keyglyph'>=</span> <span class='varid'>id</span>-<a name="line-82"></a>-<a name="line-83"></a><span class='definition'>showXmlTree</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XTag</span> <span class='varid'>t</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='conid'>[]</span><span class='layout'>)</span>-<a name="line-84"></a> <span class='keyglyph'>=</span> <span class='varid'>showLt</span> <span class='varop'>.</span> <span class='varid'>showQName</span> <span class='varid'>t</span> <span class='varop'>.</span> <span class='varid'>showXmlTrees</span> <span class='varid'>al</span> <span class='varop'>.</span> <span class='varid'>showSlash</span> <span class='varop'>.</span> <span class='varid'>showGt</span>-<a name="line-85"></a>-<a name="line-86"></a><span class='definition'>showXmlTree</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XTag</span> <span class='varid'>t</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varid'>cs</span><span class='layout'>)</span>-<a name="line-87"></a> <span class='keyglyph'>=</span> <span class='varid'>showLt</span> <span class='varop'>.</span> <span class='varid'>showQName</span> <span class='varid'>t</span> <span class='varop'>.</span> <span class='varid'>showXmlTrees</span> <span class='varid'>al</span> <span class='varop'>.</span> <span class='varid'>showGt</span>-<a name="line-88"></a> <span class='varop'>.</span> <span class='varid'>showXmlTrees</span> <span class='varid'>cs</span>-<a name="line-89"></a> <span class='varop'>.</span> <span class='varid'>showLt</span> <span class='varop'>.</span> <span class='varid'>showSlash</span> <span class='varop'>.</span> <span class='varid'>showQName</span> <span class='varid'>t</span> <span class='varop'>.</span> <span class='varid'>showGt</span>-<a name="line-90"></a>-<a name="line-91"></a><span class='definition'>showXmlTree</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XDTD</span> <span class='varid'>de</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varid'>cs</span><span class='layout'>)</span>-<a name="line-92"></a> <span class='keyglyph'>=</span> <span class='varid'>showXmlDTD</span> <span class='varid'>de</span> <span class='varid'>al</span> <span class='varid'>cs</span>-<a name="line-93"></a>-<a name="line-94"></a><span class='definition'>showXmlTree</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XAttr</span> <span class='varid'>an</span><span class='layout'>)</span> <span class='varid'>cs</span><span class='layout'>)</span>-<a name="line-95"></a> <span class='keyglyph'>=</span> <span class='varid'>showBlank</span> <span class='varop'>.</span> <span class='varid'>showQName</span> <span class='varid'>an</span> <span class='varop'>.</span> <span class='varid'>showEq</span> <span class='varop'>.</span> <span class='varid'>showQuoteString</span> <span class='layout'>(</span><span class='varid'>xshow</span> <span class='varid'>cs</span><span class='layout'>)</span>-<a name="line-96"></a>-<a name="line-97"></a><span class='definition'>showXmlTree</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XError</span> <span class='varid'>l</span> <span class='varid'>e</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span>-<a name="line-98"></a> <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='str'>"<!-- ERROR ("</span> <span class='varop'>.</span> <span class='varid'>shows</span> <span class='varid'>l</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='str'>"):\n"</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='varid'>e</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='str'>"\n-->"</span>-<a name="line-99"></a>-<a name="line-100"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-101"></a>-<a name="line-102"></a><a name="showXmlTrees"></a><span class='definition'>showXmlTrees</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-103"></a><span class='definition'>showXmlTrees</span> <span class='keyglyph'>=</span> <span class='varid'>foldr</span> <span class='layout'>(</span><span class='varop'>.</span><span class='layout'>)</span> <span class='varid'>id</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='varid'>showXmlTree</span>-<a name="line-104"></a>-<a name="line-105"></a><a name="showXmlTrees'"></a><span class='definition'>showXmlTrees'</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-106"></a><span class='definition'>showXmlTrees'</span> <span class='keyglyph'>=</span> <span class='varid'>foldr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='varid'>y</span> <span class='keyglyph'>-></span> <span class='varid'>x</span> <span class='varop'>.</span> <span class='varid'>showNL</span> <span class='varop'>.</span> <span class='varid'>y</span><span class='layout'>)</span> <span class='varid'>id</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='varid'>showXmlTree</span>-<a name="line-107"></a>-<a name="line-108"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-109"></a>-<a name="line-110"></a><a name="showQName"></a><span class='definition'>showQName</span> <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-111"></a><span class='definition'>showQName</span>-<a name="line-112"></a> <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='varop'>.</span> <span class='varid'>qualifiedName</span>-<a name="line-113"></a>-<a name="line-114"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-115"></a>-<a name="line-116"></a><a name="showQuoteString"></a><span class='definition'>showQuoteString</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-117"></a><span class='definition'>showQuoteString</span> <span class='varid'>s</span>-<a name="line-118"></a> <span class='keyglyph'>|</span> <span class='chr'>'\"'</span> <span class='varop'>`elem`</span> <span class='varid'>s</span>-<a name="line-119"></a> <span class='keyglyph'>=</span> <span class='varid'>showApos</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='varid'>s</span> <span class='varop'>.</span> <span class='varid'>showApos</span>-<a name="line-120"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-121"></a> <span class='keyglyph'>=</span> <span class='varid'>showQuot</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='varid'>s</span> <span class='varop'>.</span> <span class='varid'>showQuot</span>-<a name="line-122"></a>-<a name="line-123"></a>-<a name="line-124"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-125"></a>-<a name="line-126"></a><a name="showAttr"></a><span class='definition'>showAttr</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-127"></a><span class='definition'>showAttr</span> <span class='varid'>k</span> <span class='varid'>al</span>-<a name="line-128"></a> <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='layout'>(</span><span class='varid'>fromMaybe</span> <span class='str'>""</span> <span class='varop'>.</span> <span class='varid'>lookup</span> <span class='varid'>k</span> <span class='varop'>$</span> <span class='varid'>al</span><span class='layout'>)</span>-<a name="line-129"></a>-<a name="line-130"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-131"></a>-<a name="line-132"></a><a name="showPEAttr"></a><span class='definition'>showPEAttr</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-133"></a><span class='definition'>showPEAttr</span> <span class='varid'>al</span>-<a name="line-134"></a> <span class='keyglyph'>=</span> <span class='varid'>showPE</span> <span class='layout'>(</span><span class='varid'>lookup</span> <span class='varid'>a_peref</span> <span class='varid'>al</span><span class='layout'>)</span>-<a name="line-135"></a> <span class='keyword'>where</span>-<a name="line-136"></a> <span class='varid'>showPE</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>pe</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>showChar</span> <span class='chr'>'%'</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='varid'>pe</span> <span class='varop'>.</span> <span class='varid'>showChar</span> <span class='chr'>';'</span>-<a name="line-137"></a> <span class='varid'>showPE</span> <span class='conid'>Nothing</span> <span class='keyglyph'>=</span> <span class='varid'>id</span>-<a name="line-138"></a>-<a name="line-139"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-140"></a>-<a name="line-141"></a><a name="showExternalId"></a><span class='definition'>showExternalId</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-142"></a><span class='definition'>showExternalId</span> <span class='varid'>al</span>-<a name="line-143"></a> <span class='keyglyph'>=</span> <span class='varid'>id2Str</span> <span class='layout'>(</span><span class='varid'>lookup</span> <span class='varid'>k_system</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>lookup</span> <span class='varid'>k_public</span> <span class='varid'>al</span><span class='layout'>)</span>-<a name="line-144"></a> <span class='keyword'>where</span>-<a name="line-145"></a> <span class='varid'>id2Str</span> <span class='conid'>Nothing</span> <span class='conid'>Nothing</span> <span class='keyglyph'>=</span> <span class='varid'>id</span>-<a name="line-146"></a> <span class='varid'>id2Str</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='conid'>Nothing</span> <span class='keyglyph'>=</span> <span class='varid'>showBlank</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='varid'>k_system</span> <span class='varop'>.</span> <span class='varid'>showBlank</span> <span class='varop'>.</span> <span class='varid'>showQuoteString</span> <span class='varid'>s</span>-<a name="line-147"></a> <span class='varid'>id2Str</span> <span class='conid'>Nothing</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>showBlank</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='varid'>k_public</span> <span class='varop'>.</span> <span class='varid'>showBlank</span> <span class='varop'>.</span> <span class='varid'>showQuoteString</span> <span class='varid'>p</span>-<a name="line-148"></a> <span class='varid'>id2Str</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>showBlank</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='varid'>k_public</span> <span class='varop'>.</span> <span class='varid'>showBlank</span> <span class='varop'>.</span> <span class='varid'>showQuoteString</span> <span class='varid'>p</span> <span class='varop'>.</span> <span class='varid'>showBlank</span> <span class='varop'>.</span> <span class='varid'>showQuoteString</span> <span class='varid'>s</span>-<a name="line-149"></a>-<a name="line-150"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-151"></a>-<a name="line-152"></a><a name="showNData"></a><span class='definition'>showNData</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-153"></a><span class='definition'>showNData</span> <span class='varid'>al</span>-<a name="line-154"></a> <span class='keyglyph'>=</span> <span class='varid'>nd2Str</span> <span class='layout'>(</span><span class='varid'>lookup</span> <span class='varid'>k_ndata</span> <span class='varid'>al</span><span class='layout'>)</span>-<a name="line-155"></a> <span class='keyword'>where</span>-<a name="line-156"></a> <span class='varid'>nd2Str</span> <span class='conid'>Nothing</span> <span class='keyglyph'>=</span> <span class='varid'>id</span>-<a name="line-157"></a> <span class='varid'>nd2Str</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>v</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>showBlank</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='varid'>k_ndata</span> <span class='varop'>.</span> <span class='varid'>showBlank</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='varid'>v</span>-<a name="line-158"></a>-<a name="line-159"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-160"></a>-<a name="line-161"></a><a name="showXmlDTD"></a><span class='definition'>showXmlDTD</span> <span class='keyglyph'>::</span> <span class='conid'>DTDElem</span> <span class='keyglyph'>-></span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-162"></a>-<a name="line-163"></a><span class='definition'>showXmlDTD</span> <span class='conid'>DOCTYPE</span> <span class='varid'>al</span> <span class='varid'>cs</span>-<a name="line-164"></a> <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='str'>"<!DOCTYPE "</span>-<a name="line-165"></a> <span class='varop'>.</span>-<a name="line-166"></a> <span class='varid'>showAttr</span> <span class='varid'>a_name</span> <span class='varid'>al</span>-<a name="line-167"></a> <span class='varop'>.</span>-<a name="line-168"></a> <span class='varid'>showExternalId</span> <span class='varid'>al</span>-<a name="line-169"></a> <span class='varop'>.</span>-<a name="line-170"></a> <span class='varid'>showInternalDTD</span> <span class='varid'>cs</span>-<a name="line-171"></a> <span class='varop'>.</span>-<a name="line-172"></a> <span class='varid'>showString</span> <span class='str'>">"</span>-<a name="line-173"></a> <span class='keyword'>where</span>-<a name="line-174"></a> <span class='varid'>showInternalDTD</span> <span class='conid'>[]</span> <span class='keyglyph'>=</span> <span class='varid'>id</span>-<a name="line-175"></a> <span class='varid'>showInternalDTD</span> <span class='varid'>ds</span> <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='str'>" [\n"</span> <span class='varop'>.</span> <span class='varid'>showXmlTrees'</span> <span class='varid'>ds</span> <span class='varop'>.</span> <span class='varid'>showChar</span> <span class='chr'>']'</span>-<a name="line-176"></a>-<a name="line-177"></a><span class='definition'>showXmlDTD</span> <span class='conid'>ELEMENT</span> <span class='varid'>al</span> <span class='varid'>cs</span>-<a name="line-178"></a> <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='str'>"<!ELEMENT "</span>-<a name="line-179"></a> <span class='varop'>.</span>-<a name="line-180"></a> <span class='varid'>showAttr</span> <span class='varid'>a_name</span> <span class='varid'>al</span>-<a name="line-181"></a> <span class='varop'>.</span>-<a name="line-182"></a> <span class='varid'>showBlank</span>-<a name="line-183"></a> <span class='varop'>.</span>-<a name="line-184"></a> <span class='varid'>showElemType</span> <span class='layout'>(</span><span class='varid'>lookup1</span> <span class='varid'>a_type</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varid'>cs</span>-<a name="line-185"></a> <span class='varop'>.</span>-<a name="line-186"></a> <span class='varid'>showString</span> <span class='str'>" >"</span>-<a name="line-187"></a>-<a name="line-188"></a><span class='definition'>showXmlDTD</span> <span class='conid'>ATTLIST</span> <span class='varid'>al</span> <span class='varid'>cs</span>-<a name="line-189"></a> <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='str'>"<!ATTLIST "</span>-<a name="line-190"></a> <span class='varop'>.</span>-<a name="line-191"></a> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>isNothing</span> <span class='varop'>.</span> <span class='varid'>lookup</span> <span class='varid'>a_name</span> <span class='varop'>$</span> <span class='varid'>al</span>-<a name="line-192"></a> <span class='keyword'>then</span>-<a name="line-193"></a> <span class='varid'>showXmlTrees</span> <span class='varid'>cs</span>-<a name="line-194"></a> <span class='keyword'>else</span>-<a name="line-195"></a> <span class='varid'>showAttr</span> <span class='varid'>a_name</span> <span class='varid'>al</span>-<a name="line-196"></a> <span class='varop'>.</span>-<a name="line-197"></a> <span class='varid'>showBlank</span>-<a name="line-198"></a> <span class='varop'>.</span>-<a name="line-199"></a> <span class='layout'>(</span> <span class='keyword'>case</span> <span class='varid'>lookup</span> <span class='varid'>a_value</span> <span class='varid'>al</span> <span class='keyword'>of</span>-<a name="line-200"></a> <span class='conid'>Nothing</span> <span class='keyglyph'>-></span> <span class='layout'>(</span> <span class='varid'>showPEAttr</span>-<a name="line-201"></a> <span class='varop'>.</span> <span class='varid'>fromMaybe</span> <span class='conid'>[]</span> <span class='varop'>.</span> <span class='varid'>getDTDAttrl</span>-<a name="line-202"></a> <span class='varop'>.</span> <span class='varid'>head</span>-<a name="line-203"></a> <span class='layout'>)</span> <span class='varid'>cs</span>-<a name="line-204"></a> <span class='conid'>Just</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='layout'>(</span> <span class='varid'>showString</span> <span class='varid'>a</span>-<a name="line-205"></a> <span class='varop'>.</span>-<a name="line-206"></a> <span class='varid'>showAttrType</span> <span class='layout'>(</span><span class='varid'>lookup1</span> <span class='varid'>a_type</span> <span class='varid'>al</span><span class='layout'>)</span>-<a name="line-207"></a> <span class='varop'>.</span>-<a name="line-208"></a> <span class='varid'>showAttrKind</span> <span class='layout'>(</span><span class='varid'>lookup1</span> <span class='varid'>a_kind</span> <span class='varid'>al</span><span class='layout'>)</span>-<a name="line-209"></a> <span class='layout'>)</span>-<a name="line-210"></a> <span class='layout'>)</span>-<a name="line-211"></a> <span class='layout'>)</span>-<a name="line-212"></a> <span class='varop'>.</span>-<a name="line-213"></a> <span class='varid'>showString</span> <span class='str'>" >"</span>-<a name="line-214"></a> <span class='keyword'>where</span>-<a name="line-215"></a> <span class='varid'>showAttrType</span> <span class='varid'>t</span>-<a name="line-216"></a> <span class='keyglyph'>|</span> <span class='varid'>t</span> <span class='varop'>==</span> <span class='varid'>k_peref</span>-<a name="line-217"></a> <span class='keyglyph'>=</span> <span class='varid'>showBlank</span> <span class='varop'>.</span> <span class='varid'>showPEAttr</span> <span class='varid'>al</span>-<a name="line-218"></a> <span class='keyglyph'>|</span> <span class='varid'>t</span> <span class='varop'>==</span> <span class='varid'>k_enumeration</span>-<a name="line-219"></a> <span class='keyglyph'>=</span> <span class='varid'>showAttrEnum</span>-<a name="line-220"></a> <span class='keyglyph'>|</span> <span class='varid'>t</span> <span class='varop'>==</span> <span class='varid'>k_notation</span>-<a name="line-221"></a> <span class='keyglyph'>=</span> <span class='varid'>showBlank</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='varid'>k_notation</span> <span class='varop'>.</span> <span class='varid'>showAttrEnum</span>-<a name="line-222"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-223"></a> <span class='keyglyph'>=</span> <span class='varid'>showBlank</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='varid'>t</span>-<a name="line-224"></a>-<a name="line-225"></a> <span class='varid'>showAttrEnum</span>-<a name="line-226"></a> <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='str'>" ("</span>-<a name="line-227"></a> <span class='varop'>.</span>-<a name="line-228"></a> <span class='varid'>foldr1</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>s1</span> <span class='varid'>s2</span> <span class='keyglyph'>-></span> <span class='varid'>s1</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='str'>" | "</span> <span class='varop'>.</span> <span class='varid'>s2</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>getEnum</span> <span class='varop'>.</span> <span class='varid'>fromMaybe</span> <span class='conid'>[]</span> <span class='varop'>.</span> <span class='varid'>getDTDAttrl</span><span class='layout'>)</span> <span class='varid'>cs</span><span class='layout'>)</span>-<a name="line-229"></a> <span class='varop'>.</span>-<a name="line-230"></a> <span class='varid'>showString</span> <span class='str'>")"</span>-<a name="line-231"></a> <span class='keyword'>where</span>-<a name="line-232"></a> <span class='varid'>getEnum</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-233"></a> <span class='varid'>getEnum</span> <span class='varid'>l</span> <span class='keyglyph'>=</span> <span class='varid'>showAttr</span> <span class='varid'>a_name</span> <span class='varid'>l</span> <span class='varop'>.</span> <span class='varid'>showPEAttr</span> <span class='varid'>l</span>-<a name="line-234"></a>-<a name="line-235"></a> <span class='varid'>showAttrKind</span> <span class='varid'>k</span>-<a name="line-236"></a> <span class='keyglyph'>|</span> <span class='varid'>k</span> <span class='varop'>==</span> <span class='varid'>k_default</span>-<a name="line-237"></a> <span class='keyglyph'>=</span> <span class='varid'>showBlank</span> <span class='varop'>.</span> <span class='varid'>showQuoteString</span> <span class='layout'>(</span><span class='varid'>lookup1</span> <span class='varid'>a_default</span> <span class='varid'>al</span><span class='layout'>)</span>-<a name="line-238"></a> <span class='keyglyph'>|</span> <span class='varid'>k</span> <span class='varop'>==</span> <span class='varid'>k_fixed</span>-<a name="line-239"></a> <span class='keyglyph'>=</span> <span class='varid'>showBlank</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='varid'>k_fixed</span>-<a name="line-240"></a> <span class='varop'>.</span>-<a name="line-241"></a> <span class='varid'>showBlank</span> <span class='varop'>.</span> <span class='varid'>showQuoteString</span> <span class='layout'>(</span><span class='varid'>lookup1</span> <span class='varid'>a_default</span> <span class='varid'>al</span><span class='layout'>)</span>-<a name="line-242"></a> <span class='keyglyph'>|</span> <span class='varid'>k</span> <span class='varop'>==</span> <span class='str'>""</span>-<a name="line-243"></a> <span class='keyglyph'>=</span> <span class='varid'>id</span>-<a name="line-244"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-245"></a> <span class='keyglyph'>=</span> <span class='varid'>showBlank</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='varid'>k</span>-<a name="line-246"></a>-<a name="line-247"></a><span class='definition'>showXmlDTD</span> <span class='conid'>NOTATION</span> <span class='varid'>al</span> <span class='sel'>_cs</span>-<a name="line-248"></a> <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='str'>"<!NOTATION "</span>-<a name="line-249"></a> <span class='varop'>.</span>-<a name="line-250"></a> <span class='varid'>showAttr</span> <span class='varid'>a_name</span> <span class='varid'>al</span>-<a name="line-251"></a> <span class='varop'>.</span>-<a name="line-252"></a> <span class='varid'>showExternalId</span> <span class='varid'>al</span>-<a name="line-253"></a> <span class='varop'>.</span>-<a name="line-254"></a> <span class='varid'>showString</span> <span class='str'>" >"</span>-<a name="line-255"></a>-<a name="line-256"></a><span class='definition'>showXmlDTD</span> <span class='conid'>PENTITY</span> <span class='varid'>al</span> <span class='varid'>cs</span>-<a name="line-257"></a> <span class='keyglyph'>=</span> <span class='varid'>showEntity</span> <span class='str'>"% "</span> <span class='varid'>al</span> <span class='varid'>cs</span>-<a name="line-258"></a>-<a name="line-259"></a><span class='definition'>showXmlDTD</span> <span class='conid'>ENTITY</span> <span class='varid'>al</span> <span class='varid'>cs</span>-<a name="line-260"></a> <span class='keyglyph'>=</span> <span class='varid'>showEntity</span> <span class='str'>""</span> <span class='varid'>al</span> <span class='varid'>cs</span>-<a name="line-261"></a>-<a name="line-262"></a><span class='definition'>showXmlDTD</span> <span class='conid'>PEREF</span> <span class='varid'>al</span> <span class='sel'>_cs</span>-<a name="line-263"></a> <span class='keyglyph'>=</span> <span class='varid'>showPEAttr</span> <span class='varid'>al</span>-<a name="line-264"></a>-<a name="line-265"></a><span class='definition'>showXmlDTD</span> <span class='conid'>CONDSECT</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='varid'>c1</span> <span class='conop'>:</span> <span class='varid'>cs</span><span class='layout'>)</span>-<a name="line-266"></a> <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='str'>"<![ "</span>-<a name="line-267"></a> <span class='varop'>.</span>-<a name="line-268"></a> <span class='varid'>showXmlTree</span> <span class='varid'>c1</span>-<a name="line-269"></a> <span class='varop'>.</span>-<a name="line-270"></a> <span class='varid'>showString</span> <span class='str'>" [\n"</span>-<a name="line-271"></a> <span class='varop'>.</span>-<a name="line-272"></a> <span class='varid'>showXmlTrees</span> <span class='varid'>cs</span>-<a name="line-273"></a> <span class='varop'>.</span>-<a name="line-274"></a> <span class='varid'>showString</span> <span class='str'>"]]>"</span>-<a name="line-275"></a>-<a name="line-276"></a><span class='definition'>showXmlDTD</span> <span class='conid'>CONTENT</span> <span class='varid'>al</span> <span class='varid'>cs</span>-<a name="line-277"></a> <span class='keyglyph'>=</span> <span class='varid'>showContent</span> <span class='layout'>(</span><span class='varid'>mkDTDElem</span> <span class='conid'>CONTENT</span> <span class='varid'>al</span> <span class='varid'>cs</span><span class='layout'>)</span>-<a name="line-278"></a>-<a name="line-279"></a><span class='definition'>showXmlDTD</span> <span class='conid'>NAME</span> <span class='varid'>al</span> <span class='sel'>_cs</span>-<a name="line-280"></a> <span class='keyglyph'>=</span> <span class='varid'>showAttr</span> <span class='varid'>a_name</span> <span class='varid'>al</span>-<a name="line-281"></a>-<a name="line-282"></a><span class='definition'>showXmlDTD</span> <span class='varid'>de</span> <span class='varid'>al</span> <span class='sel'>_cs</span>-<a name="line-283"></a> <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='str'>"NOT YET IMPLEMETED: "</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>de</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>showBlank</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='str'>" [...]\n"</span>-<a name="line-284"></a>-<a name="line-285"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-286"></a>-<a name="line-287"></a><a name="showElemType"></a><span class='definition'>showElemType</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-288"></a><span class='definition'>showElemType</span> <span class='varid'>t</span> <span class='varid'>cs</span>-<a name="line-289"></a> <span class='keyglyph'>|</span> <span class='varid'>t</span> <span class='varop'>==</span> <span class='varid'>v_pcdata</span>-<a name="line-290"></a> <span class='keyglyph'>=</span> <span class='varid'>showLpar</span> <span class='varop'>.</span> <span class='varid'>showString</span> <span class='varid'>v_pcdata</span> <span class='varop'>.</span> <span class='varid'>showRpar</span>-<a name="line-291"></a>-<a name="line-292"></a> <span class='keyglyph'>|</span> <span class='varid'>t</span> <span class='varop'>==</span> <span class='varid'>v_mixed</span> <span class='varop'>&&</span> <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>null</span><span class='layout'>)</span> <span class='varid'>cs</span>-<a name="line-293"></a> <span class='keyglyph'>=</span> <span class='varid'>showLpar</span>-<a name="line-294"></a> <span class='varop'>.</span>-<a name="line-295"></a> <span class='varid'>showString</span> <span class='varid'>v_pcdata</span>-<a name="line-296"></a> <span class='varop'>.</span>-<a name="line-297"></a> <span class='layout'>(</span> <span class='varid'>foldr</span> <span class='layout'>(</span><span class='varop'>.</span><span class='layout'>)</span> <span class='varid'>id</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>mixedContent</span> <span class='varop'>.</span> <span class='varid'>selAttrl</span> <span class='varop'>.</span> <span class='varid'>getNode</span><span class='layout'>)</span> <span class='layout'>)</span> <span class='varid'>cs1</span>-<a name="line-298"></a> <span class='varop'>.</span>-<a name="line-299"></a> <span class='varid'>showRpar</span>-<a name="line-300"></a> <span class='varop'>.</span>-<a name="line-301"></a> <span class='varid'>showAttr</span> <span class='varid'>a_modifier</span> <span class='varid'>al1</span>-<a name="line-302"></a> <span class='keyglyph'>|</span> <span class='varid'>t</span> <span class='varop'>==</span> <span class='varid'>v_mixed</span> <span class='comment'>-- incorrect tree, e.g. after erronius pe substitution</span>-<a name="line-303"></a> <span class='keyglyph'>=</span> <span class='varid'>showLpar</span>-<a name="line-304"></a> <span class='varop'>.</span>-<a name="line-305"></a> <span class='varid'>showRpar</span>-<a name="line-306"></a> <span class='keyglyph'>|</span> <span class='varid'>t</span> <span class='varop'>==</span> <span class='varid'>v_children</span> <span class='varop'>&&</span> <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>null</span><span class='layout'>)</span> <span class='varid'>cs</span>-<a name="line-307"></a> <span class='keyglyph'>=</span> <span class='varid'>showContent</span> <span class='layout'>(</span><span class='varid'>head</span> <span class='varid'>cs</span><span class='layout'>)</span>-<a name="line-308"></a> <span class='keyglyph'>|</span> <span class='varid'>t</span> <span class='varop'>==</span> <span class='varid'>v_children</span>-<a name="line-309"></a> <span class='keyglyph'>=</span> <span class='varid'>showLpar</span>-<a name="line-310"></a> <span class='varop'>.</span> <span class='varid'>showRpar</span>-<a name="line-311"></a> <span class='keyglyph'>|</span> <span class='varid'>t</span> <span class='varop'>==</span> <span class='varid'>k_peref</span>-<a name="line-312"></a> <span class='keyglyph'>=</span> <span class='varid'>foldr</span> <span class='layout'>(</span><span class='varop'>.</span><span class='layout'>)</span> <span class='varid'>id</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='varid'>showContent</span> <span class='varop'>$</span> <span class='varid'>cs</span>-<a name="line-313"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-314"></a> <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='varid'>t</span>-<a name="line-315"></a> <span class='keyword'>where</span>-<a name="line-316"></a> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XDTD</span> <span class='conid'>CONTENT</span> <span class='varid'>al1</span><span class='layout'>)</span> <span class='varid'>cs1</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='varid'>cs</span>-<a name="line-317"></a>-<a name="line-318"></a> <span class='varid'>mixedContent</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-319"></a> <span class='varid'>mixedContent</span> <span class='varid'>l</span>-<a name="line-320"></a> <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='str'>" | "</span> <span class='varop'>.</span> <span class='varid'>showAttr</span> <span class='varid'>a_name</span> <span class='varid'>l</span> <span class='varop'>.</span> <span class='varid'>showPEAttr</span> <span class='varid'>l</span>-<a name="line-321"></a>-<a name="line-322"></a> <span class='varid'>selAttrl</span> <span class='layout'>(</span><span class='conid'>XDTD</span> <span class='keyword'>_</span> <span class='keyword'>as</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='keyword'>as</span>-<a name="line-323"></a> <span class='varid'>selAttrl</span> <span class='layout'>(</span><span class='conid'>XText</span> <span class='varid'>tex</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a_name</span><span class='layout'>,</span> <span class='varid'>tex</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-324"></a> <span class='varid'>selAttrl</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-325"></a>-<a name="line-326"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-327"></a>-<a name="line-328"></a><a name="showContent"></a><span class='definition'>showContent</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-329"></a><span class='definition'>showContent</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XDTD</span> <span class='varid'>de</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varid'>cs</span><span class='layout'>)</span>-<a name="line-330"></a> <span class='keyglyph'>=</span> <span class='varid'>cont2String</span> <span class='varid'>de</span>-<a name="line-331"></a> <span class='keyword'>where</span>-<a name="line-332"></a> <span class='varid'>cont2String</span> <span class='keyglyph'>::</span> <span class='conid'>DTDElem</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-333"></a> <span class='varid'>cont2String</span> <span class='conid'>NAME</span>-<a name="line-334"></a> <span class='keyglyph'>=</span> <span class='varid'>showAttr</span> <span class='varid'>a_name</span> <span class='varid'>al</span>-<a name="line-335"></a> <span class='varid'>cont2String</span> <span class='conid'>PEREF</span>-<a name="line-336"></a> <span class='keyglyph'>=</span> <span class='varid'>showPEAttr</span> <span class='varid'>al</span>-<a name="line-337"></a> <span class='varid'>cont2String</span> <span class='conid'>CONTENT</span>-<a name="line-338"></a> <span class='keyglyph'>=</span> <span class='varid'>showLpar</span>-<a name="line-339"></a> <span class='varop'>.</span>-<a name="line-340"></a> <span class='varid'>foldr1</span> <span class='layout'>(</span><span class='varid'>combine</span> <span class='layout'>(</span><span class='varid'>lookup1</span> <span class='varid'>a_kind</span> <span class='varid'>al</span><span class='layout'>)</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>showContent</span> <span class='varid'>cs</span><span class='layout'>)</span>-<a name="line-341"></a> <span class='varop'>.</span>-<a name="line-342"></a> <span class='varid'>showRpar</span>-<a name="line-343"></a> <span class='varop'>.</span>-<a name="line-344"></a> <span class='varid'>showAttr</span> <span class='varid'>a_modifier</span> <span class='varid'>al</span>-<a name="line-345"></a> <span class='varid'>cont2String</span> <span class='varid'>n</span>-<a name="line-346"></a> <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"cont2string "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span> <span class='varop'>++</span> <span class='str'>" is undefined"</span><span class='layout'>)</span>-<a name="line-347"></a> <span class='varid'>combine</span> <span class='varid'>k</span> <span class='varid'>s1</span> <span class='varid'>s2</span>-<a name="line-348"></a> <span class='keyglyph'>=</span> <span class='varid'>s1</span>-<a name="line-349"></a> <span class='varop'>.</span>-<a name="line-350"></a> <span class='varid'>showString</span> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>k</span> <span class='varop'>==</span> <span class='varid'>v_seq</span>-<a name="line-351"></a> <span class='keyword'>then</span> <span class='str'>", "</span>-<a name="line-352"></a> <span class='keyword'>else</span> <span class='str'>" | "</span>-<a name="line-353"></a> <span class='layout'>)</span>-<a name="line-354"></a> <span class='varop'>.</span>-<a name="line-355"></a> <span class='varid'>s2</span>-<a name="line-356"></a>-<a name="line-357"></a><span class='definition'>showContent</span> <span class='varid'>n</span>-<a name="line-358"></a> <span class='keyglyph'>=</span> <span class='varid'>showXmlTree</span> <span class='varid'>n</span>-<a name="line-359"></a>-<a name="line-360"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-361"></a>-<a name="line-362"></a><a name="showEntity"></a><span class='definition'>showEntity</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-363"></a>-<a name="line-364"></a><span class='definition'>showEntity</span> <span class='varid'>kind</span> <span class='varid'>al</span> <span class='varid'>cs</span>-<a name="line-365"></a> <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='str'>"<!ENTITY "</span>-<a name="line-366"></a> <span class='varop'>.</span>-<a name="line-367"></a> <span class='varid'>showString</span> <span class='varid'>kind</span>-<a name="line-368"></a> <span class='varop'>.</span>-<a name="line-369"></a> <span class='varid'>showAttr</span> <span class='varid'>a_name</span> <span class='varid'>al</span>-<a name="line-370"></a> <span class='varop'>.</span>-<a name="line-371"></a> <span class='varid'>showExternalId</span> <span class='varid'>al</span>-<a name="line-372"></a> <span class='varop'>.</span>-<a name="line-373"></a> <span class='varid'>showNData</span> <span class='varid'>al</span>-<a name="line-374"></a> <span class='varop'>.</span>-<a name="line-375"></a> <span class='varid'>showEntityValue</span> <span class='varid'>cs</span>-<a name="line-376"></a> <span class='varop'>.</span>-<a name="line-377"></a> <span class='varid'>showString</span> <span class='str'>" >"</span>-<a name="line-378"></a>-<a name="line-379"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-380"></a>-<a name="line-381"></a><a name="showEntityValue"></a><span class='definition'>showEntityValue</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-382"></a>-<a name="line-383"></a><span class='definition'>showEntityValue</span> <span class='conid'>[]</span>-<a name="line-384"></a> <span class='keyglyph'>=</span> <span class='varid'>id</span>-<a name="line-385"></a>-<a name="line-386"></a><span class='definition'>showEntityValue</span> <span class='varid'>cs</span>-<a name="line-387"></a> <span class='keyglyph'>=</span> <span class='varid'>showBlank</span> <span class='varop'>.</span> <span class='varid'>showQuoteString</span> <span class='layout'>(</span><span class='varid'>xshow</span> <span class='varid'>cs</span><span class='layout'>)</span>-<a name="line-388"></a>-<a name="line-389"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-390"></a>-<a name="line-391"></a><a name="showBlank"></a><span class='definition'>showBlank</span><span class='layout'>,</span>-<a name="line-392"></a> <span class='varid'>showEq</span><span class='layout'>,</span> <span class='varid'>showLt</span><span class='layout'>,</span> <span class='varid'>showGt</span><span class='layout'>,</span> <span class='varid'>showSlash</span><span class='layout'>,</span> <span class='varid'>showApos</span><span class='layout'>,</span> <span class='varid'>showQuot</span><span class='layout'>,</span> <span class='varid'>showLpar</span><span class='layout'>,</span> <span class='varid'>showRpar</span><span class='layout'>,</span> <span class='varid'>showNL</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-393"></a>-<a name="line-394"></a><span class='definition'>showBlank</span> <span class='keyglyph'>=</span> <span class='varid'>showChar</span> <span class='chr'>' '</span>-<a name="line-395"></a><a name="showEq"></a><span class='definition'>showEq</span> <span class='keyglyph'>=</span> <span class='varid'>showChar</span> <span class='chr'>'='</span>-<a name="line-396"></a><a name="showLt"></a><span class='definition'>showLt</span> <span class='keyglyph'>=</span> <span class='varid'>showChar</span> <span class='chr'>'<'</span>-<a name="line-397"></a><a name="showGt"></a><span class='definition'>showGt</span> <span class='keyglyph'>=</span> <span class='varid'>showChar</span> <span class='chr'>'>'</span>-<a name="line-398"></a><a name="showSlash"></a><span class='definition'>showSlash</span> <span class='keyglyph'>=</span> <span class='varid'>showChar</span> <span class='chr'>'/'</span>-<a name="line-399"></a><a name="showApos"></a><span class='definition'>showApos</span> <span class='keyglyph'>=</span> <span class='varid'>showChar</span> <span class='chr'>'\''</span>-<a name="line-400"></a><a name="showQuot"></a><span class='definition'>showQuot</span> <span class='keyglyph'>=</span> <span class='varid'>showChar</span> <span class='chr'>'\"'</span>-<a name="line-401"></a><a name="showLpar"></a><span class='definition'>showLpar</span> <span class='keyglyph'>=</span> <span class='varid'>showChar</span> <span class='chr'>'('</span>-<a name="line-402"></a><a name="showRpar"></a><span class='definition'>showRpar</span> <span class='keyglyph'>=</span> <span class='varid'>showChar</span> <span class='chr'>')'</span>-<a name="line-403"></a><a name="showNL"></a><span class='definition'>showNL</span> <span class='keyglyph'>=</span> <span class='varid'>showChar</span> <span class='chr'>'\n'</span>-<a name="line-404"></a>-<a name="line-405"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-DOM-TypeDefs.html
@@ -1,176 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Text.XML.HXT.DOM.TypeDefs-<a name="line-5"></a> Copyright : Copyright (C) 2008 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe@fh-wedel.de)-<a name="line-9"></a> Stability : stable-<a name="line-10"></a> Portability: portable-<a name="line-11"></a>-<a name="line-12"></a> The core data types of the HXT DOM.-<a name="line-13"></a>-<a name="line-14"></a>-}</span>-<a name="line-15"></a>-<a name="line-16"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-17"></a>-<a name="line-18"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>TypeDefs</span>-<a name="line-19"></a> <span class='layout'>(</span> <span class='keyword'>module</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>AssocList</span>-<a name="line-20"></a> <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>TypeDefs</span>-<a name="line-21"></a> <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>QualifiedName</span>-<a name="line-22"></a> <span class='layout'>)</span>-<a name="line-23"></a>-<a name="line-24"></a><span class='keyword'>where</span>-<a name="line-25"></a>-<a name="line-26"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Parallel</span><span class='varop'>.</span><span class='conid'>Strategies</span>-<a name="line-27"></a>-<a name="line-28"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>AssocList</span>-<a name="line-29"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Tree</span><span class='varop'>.</span><span class='conid'>NTree</span><span class='varop'>.</span><span class='conid'>TypeDefs</span>-<a name="line-30"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Typeable</span>-<a name="line-31"></a>-<a name="line-32"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>QualifiedName</span>-<a name="line-33"></a>-<a name="line-34"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>-<a name="line-35"></a><span class='comment'>--</span>-<a name="line-36"></a><span class='comment'>-- Basic types for xml tree and filters</span>-<a name="line-37"></a>-<a name="line-38"></a><span class='comment'>-- | Node of xml tree representation</span>-<a name="line-39"></a>-<a name="line-40"></a><a name="XmlTree"></a><span class='keyword'>type</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>=</span> <span class='conid'>NTree</span> <span class='conid'>XNode</span>-<a name="line-41"></a>-<a name="line-42"></a><span class='comment'>-- | List of nodes of xml tree representation</span>-<a name="line-43"></a>-<a name="line-44"></a><a name="XmlTrees"></a><span class='keyword'>type</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>=</span> <span class='conid'>NTrees</span> <span class='conid'>XNode</span>-<a name="line-45"></a>-<a name="line-46"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>-<a name="line-47"></a><span class='comment'>--</span>-<a name="line-48"></a><span class='comment'>-- XNode</span>-<a name="line-49"></a>-<a name="line-50"></a><span class='comment'>-- | Represents elements</span>-<a name="line-51"></a>-<a name="line-52"></a><a name="XNode"></a><span class='keyword'>data</span> <span class='conid'>XNode</span> <span class='keyglyph'>=</span> <span class='conid'>XText</span> <span class='conid'>String</span> <span class='comment'>-- ^ ordinary text (leaf)</span>-<a name="line-53"></a> <span class='keyglyph'>|</span> <span class='conid'>XCharRef</span> <span class='conid'>Int</span> <span class='comment'>-- ^ character reference (leaf)</span>-<a name="line-54"></a> <span class='keyglyph'>|</span> <span class='conid'>XEntityRef</span> <span class='conid'>String</span> <span class='comment'>-- ^ entity reference (leaf)</span>-<a name="line-55"></a> <span class='keyglyph'>|</span> <span class='conid'>XCmt</span> <span class='conid'>String</span> <span class='comment'>-- ^ comment (leaf)</span>-<a name="line-56"></a> <span class='keyglyph'>|</span> <span class='conid'>XCdata</span> <span class='conid'>String</span> <span class='comment'>-- ^ CDATA section (leaf)</span>-<a name="line-57"></a> <span class='keyglyph'>|</span> <span class='conid'>XPi</span> <span class='conid'>QName</span> <span class='conid'>XmlTrees</span> <span class='comment'>-- ^ Processing Instr with qualified name (leaf)</span>-<a name="line-58"></a> <span class='comment'>-- with list of attributes.</span>-<a name="line-59"></a> <span class='comment'>-- If tag name is xml, attributs are \"version\", \"encoding\", \"standalone\",</span>-<a name="line-60"></a> <span class='comment'>-- else attribute list is empty, content is a text child node</span>-<a name="line-61"></a> <span class='keyglyph'>|</span> <span class='conid'>XTag</span> <span class='conid'>QName</span> <span class='conid'>XmlTrees</span> <span class='comment'>-- ^ tag with qualified name and list of attributes (inner node or leaf)</span>-<a name="line-62"></a> <span class='keyglyph'>|</span> <span class='conid'>XDTD</span> <span class='conid'>DTDElem</span> <span class='conid'>Attributes</span> <span class='comment'>-- ^ DTD element with assoc list for dtd element features</span>-<a name="line-63"></a> <span class='keyglyph'>|</span> <span class='conid'>XAttr</span> <span class='conid'>QName</span> <span class='comment'>-- ^ attribute with qualified name, the attribute value is stored in children</span>-<a name="line-64"></a> <span class='keyglyph'>|</span> <span class='conid'>XError</span> <span class='conid'>Int</span> <span class='conid'>String</span> <span class='comment'>-- ^ error message with level and text</span>-<a name="line-65"></a> <span class='keyword'>deriving</span> <span class='layout'>(</span><span class='conid'>Eq</span><span class='layout'>,</span> <span class='conid'>Ord</span><span class='layout'>,</span> <span class='conid'>Show</span><span class='layout'>,</span> <span class='conid'>Read</span><span class='layout'>,</span> <span class='conid'>Typeable</span><span class='layout'>)</span>-<a name="line-66"></a>-<a name="line-67"></a><span class='keyword'>instance</span> <span class='conid'>NFData</span> <span class='conid'>XNode</span> <span class='keyword'>where</span>-<a name="line-68"></a> <span class='varid'>rnf</span> <span class='layout'>(</span><span class='conid'>XText</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>rnf</span> <span class='varid'>s</span>-<a name="line-69"></a> <span class='varid'>rnf</span> <span class='layout'>(</span><span class='conid'>XCharRef</span> <span class='varid'>i</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>rnf</span> <span class='varid'>i</span>-<a name="line-70"></a> <span class='varid'>rnf</span> <span class='layout'>(</span><span class='conid'>XEntityRef</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>rnf</span> <span class='varid'>n</span>-<a name="line-71"></a> <span class='varid'>rnf</span> <span class='layout'>(</span><span class='conid'>XCmt</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>rnf</span> <span class='varid'>c</span>-<a name="line-72"></a> <span class='varid'>rnf</span> <span class='layout'>(</span><span class='conid'>XCdata</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>rnf</span> <span class='varid'>s</span>-<a name="line-73"></a> <span class='varid'>rnf</span> <span class='layout'>(</span><span class='conid'>XPi</span> <span class='varid'>qn</span> <span class='varid'>ts</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>rnf</span> <span class='varid'>qn</span> <span class='varop'>`seq`</span> <span class='varid'>rnf</span> <span class='varid'>ts</span>-<a name="line-74"></a> <span class='varid'>rnf</span> <span class='layout'>(</span><span class='conid'>XTag</span> <span class='varid'>qn</span> <span class='varid'>cs</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>rnf</span> <span class='varid'>qn</span> <span class='varop'>`seq`</span> <span class='varid'>rnf</span> <span class='varid'>cs</span>-<a name="line-75"></a> <span class='varid'>rnf</span> <span class='layout'>(</span><span class='conid'>XDTD</span> <span class='varid'>de</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>rnf</span> <span class='varid'>de</span> <span class='varop'>`seq`</span> <span class='varid'>rnf</span> <span class='varid'>al</span>-<a name="line-76"></a> <span class='varid'>rnf</span> <span class='layout'>(</span><span class='conid'>XAttr</span> <span class='varid'>qn</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>rnf</span> <span class='varid'>qn</span>-<a name="line-77"></a> <span class='varid'>rnf</span> <span class='layout'>(</span><span class='conid'>XError</span> <span class='varid'>n</span> <span class='varid'>e</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>rnf</span> <span class='varid'>n</span> <span class='varop'>`seq`</span> <span class='varid'>rnf</span> <span class='varid'>e</span>-<a name="line-78"></a>-<a name="line-79"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>-<a name="line-80"></a><span class='comment'>--</span>-<a name="line-81"></a><span class='comment'>-- DTDElem</span>-<a name="line-82"></a>-<a name="line-83"></a><span class='comment'>-- | Represents a DTD element</span>-<a name="line-84"></a>-<a name="line-85"></a><a name="DTDElem"></a><span class='keyword'>data</span> <span class='conid'>DTDElem</span> <span class='keyglyph'>=</span> <span class='conid'>DOCTYPE</span> <span class='comment'>-- ^ attr: name, system, public, XDTD elems as children</span>-<a name="line-86"></a> <span class='keyglyph'>|</span> <span class='conid'>ELEMENT</span> <span class='comment'>-- ^ attr: name, kind</span>-<a name="line-87"></a> <span class='comment'>--</span>-<a name="line-88"></a> <span class='comment'>-- name: element name</span>-<a name="line-89"></a> <span class='comment'>--</span>-<a name="line-90"></a> <span class='comment'>-- kind: \"EMPTY\" | \"ANY\" | \"\#PCDATA\" | children | mixed</span>-<a name="line-91"></a> <span class='keyglyph'>|</span> <span class='conid'>CONTENT</span> <span class='comment'>-- ^ element content</span>-<a name="line-92"></a> <span class='comment'>--</span>-<a name="line-93"></a> <span class='comment'>-- attr: kind, modifier</span>-<a name="line-94"></a> <span class='comment'>--</span>-<a name="line-95"></a> <span class='comment'>-- modifier: \"\" | \"?\" | \"*\" | \"+\"</span>-<a name="line-96"></a> <span class='comment'>--</span>-<a name="line-97"></a> <span class='comment'>-- kind: seq | choice</span>-<a name="line-98"></a> <span class='keyglyph'>|</span> <span class='conid'>ATTLIST</span> <span class='comment'>-- ^ attributes:</span>-<a name="line-99"></a> <span class='comment'>-- name - name of element</span>-<a name="line-100"></a> <span class='comment'>--</span>-<a name="line-101"></a> <span class='comment'>-- value - name of attribute</span>-<a name="line-102"></a> <span class='comment'>--</span>-<a name="line-103"></a> <span class='comment'>-- type: \"CDATA\" | \"ID\" | \"IDREF\" | \"IDREFS\" | \"ENTITY\" | \"ENTITIES\" |</span>-<a name="line-104"></a> <span class='comment'>--</span>-<a name="line-105"></a> <span class='comment'>-- \"NMTOKEN\" | \"NMTOKENS\" |\"NOTATION\" | \"ENUMTYPE\"</span>-<a name="line-106"></a> <span class='comment'>--</span>-<a name="line-107"></a> <span class='comment'>-- kind: \"#REQUIRED\" | \"#IMPLIED\" | \"DEFAULT\"</span>-<a name="line-108"></a> <span class='keyglyph'>|</span> <span class='conid'>ENTITY</span> <span class='comment'>-- ^ for entity declarations</span>-<a name="line-109"></a> <span class='keyglyph'>|</span> <span class='conid'>PENTITY</span> <span class='comment'>-- ^ for parameter entity declarations</span>-<a name="line-110"></a> <span class='keyglyph'>|</span> <span class='conid'>NOTATION</span> <span class='comment'>-- ^ for notations</span>-<a name="line-111"></a> <span class='keyglyph'>|</span> <span class='conid'>CONDSECT</span> <span class='comment'>-- ^ for INCLUDEs, IGNOREs and peRefs: attr: type</span>-<a name="line-112"></a> <span class='comment'>--</span>-<a name="line-113"></a> <span class='comment'>-- type = INCLUDE, IGNORE or %...;</span>-<a name="line-114"></a> <span class='keyglyph'>|</span> <span class='conid'>NAME</span> <span class='comment'>-- ^ attr: name</span>-<a name="line-115"></a> <span class='comment'>--</span>-<a name="line-116"></a> <span class='comment'>-- for lists of names in notation types or nmtokens in enumeration types</span>-<a name="line-117"></a> <span class='keyglyph'>|</span> <span class='conid'>PEREF</span> <span class='comment'>-- ^ for Parameter Entity References in DTDs</span>-<a name="line-118"></a> <span class='keyword'>deriving</span> <span class='layout'>(</span><span class='conid'>Eq</span><span class='layout'>,</span> <span class='conid'>Ord</span><span class='layout'>,</span> <span class='conid'>Show</span><span class='layout'>,</span> <span class='conid'>Read</span><span class='layout'>,</span> <span class='conid'>Typeable</span><span class='layout'>)</span>-<a name="line-119"></a>-<a name="line-120"></a><span class='keyword'>instance</span> <span class='conid'>NFData</span> <span class='conid'>DTDElem</span>-<a name="line-121"></a>-<a name="line-122"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>-<a name="line-123"></a>-<a name="line-124"></a><span class='comment'>-- | Attribute list</span>-<a name="line-125"></a><span class='comment'>--</span>-<a name="line-126"></a><span class='comment'>-- used for storing option lists and features of DTD parts</span>-<a name="line-127"></a>-<a name="line-128"></a><a name="Attributes"></a><span class='keyword'>type</span> <span class='conid'>Attributes</span> <span class='keyglyph'>=</span> <span class='conid'>AssocList</span> <span class='conid'>String</span> <span class='conid'>String</span>-<a name="line-129"></a>-<a name="line-130"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>-<a name="line-131"></a><span class='comment'>--</span>-<a name="line-132"></a><span class='comment'>-- Constants for error levels</span>-<a name="line-133"></a>-<a name="line-134"></a><a name="c_ok"></a><span class='comment'>-- | no error, everything is ok</span>-<a name="line-135"></a><span class='definition'>c_ok</span> <span class='keyglyph'>::</span> <span class='conid'>Int</span>-<a name="line-136"></a><span class='definition'>c_ok</span> <span class='keyglyph'>=</span> <span class='num'>0</span>-<a name="line-137"></a>-<a name="line-138"></a><a name="c_warn"></a><span class='comment'>-- | Error level for XError, type warning</span>-<a name="line-139"></a><span class='definition'>c_warn</span> <span class='keyglyph'>::</span> <span class='conid'>Int</span>-<a name="line-140"></a><span class='definition'>c_warn</span> <span class='keyglyph'>=</span> <span class='varid'>c_ok</span> <span class='varop'>+</span> <span class='num'>1</span>-<a name="line-141"></a>-<a name="line-142"></a><a name="c_err"></a><span class='comment'>-- | Error level for XError, type error</span>-<a name="line-143"></a><span class='definition'>c_err</span> <span class='keyglyph'>::</span> <span class='conid'>Int</span>-<a name="line-144"></a><span class='definition'>c_err</span> <span class='keyglyph'>=</span> <span class='varid'>c_warn</span> <span class='varop'>+</span> <span class='num'>1</span>-<a name="line-145"></a>-<a name="line-146"></a><a name="c_fatal"></a><span class='comment'>-- | Error level for XError, type fatal error</span>-<a name="line-147"></a><span class='definition'>c_fatal</span> <span class='keyglyph'>::</span> <span class='conid'>Int</span>-<a name="line-148"></a><span class='definition'>c_fatal</span> <span class='keyglyph'>=</span> <span class='varid'>c_err</span> <span class='varop'>+</span> <span class='num'>1</span>-<a name="line-149"></a>-<a name="line-150"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>-<a name="line-151"></a>-<a name="line-152"></a><span class='comment'>-- | data type for representing a set of nodes as a tree structure</span>-<a name="line-153"></a><span class='comment'>--</span>-<a name="line-154"></a><span class='comment'>-- this structure is e.g. used to repesent the result of an XPath query</span>-<a name="line-155"></a><span class='comment'>-- such that the selected nodes can be processed or selected later in</span>-<a name="line-156"></a><span class='comment'>-- processing a document tree</span>-<a name="line-157"></a>-<a name="line-158"></a><a name="XmlNodeSet"></a><span class='keyword'>data</span> <span class='conid'>XmlNodeSet</span> <span class='keyglyph'>=</span> <span class='conid'>XNS</span> <span class='layout'>{</span> <span class='varid'>thisNode</span> <span class='keyglyph'>::</span> <span class='conid'>Bool</span> <span class='comment'>-- ^ is this node part of the set ?</span>-<a name="line-159"></a> <span class='layout'>,</span> <span class='varid'>attrNodes</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>QName</span><span class='keyglyph'>]</span> <span class='comment'>-- ^ the set of attribute nodes</span>-<a name="line-160"></a> <span class='layout'>,</span> <span class='varid'>childNodes</span> <span class='keyglyph'>::</span> <span class='conid'>ChildNodes</span> <span class='comment'>-- ^ the set of child nodes, a list of pairs of index and node set </span>-<a name="line-161"></a> <span class='layout'>}</span>-<a name="line-162"></a> <span class='keyword'>deriving</span> <span class='layout'>(</span><span class='conid'>Eq</span><span class='layout'>,</span> <span class='conid'>Show</span><span class='layout'>,</span> <span class='conid'>Typeable</span><span class='layout'>)</span>-<a name="line-163"></a>-<a name="line-164"></a><a name="ChildNodes"></a><span class='keyword'>type</span> <span class='conid'>ChildNodes</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>Int</span><span class='layout'>,</span> <span class='conid'>XmlNodeSet</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-165"></a>-<a name="line-166"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-DOM-UTF8Decoding.html
@@ -1,62 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Text.XML.HXT.DOM.UTF8Decoding-<a name="line-5"></a> Copyright : Copyright (C) 2005 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe@fh-wedel.de)-<a name="line-9"></a> Stability : stable-<a name="line-10"></a> Portability: portable-<a name="line-11"></a>-<a name="line-12"></a> Interface for Data.Char.UTF8 funtions-<a name="line-13"></a>-<a name="line-14"></a>-}</span>-<a name="line-15"></a>-<a name="line-16"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-17"></a>-<a name="line-18"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>UTF8Decoding</span> <span class='layout'>(</span>-<a name="line-19"></a> <span class='varid'>decodeUtf8</span><span class='layout'>,</span>-<a name="line-20"></a> <span class='varid'>decodeUtf8EmbedErrors</span><span class='layout'>,</span>-<a name="line-21"></a> <span class='varid'>decodeUtf8IgnoreErrors</span><span class='layout'>,</span>-<a name="line-22"></a> <span class='layout'>)</span>-<a name="line-23"></a><span class='keyword'>where</span>-<a name="line-24"></a>-<a name="line-25"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Char</span><span class='varop'>.</span><span class='conid'>UTF8</span> <span class='keyword'>as</span> <span class='conid'>UTF8</span>-<a name="line-26"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Word</span> <span class='layout'>(</span><span class='conid'>Word8</span><span class='layout'>)</span>-<a name="line-27"></a>-<a name="line-28"></a><span class='comment'>-- | calls 'Data.Char.UTF8.decode' for parsing and decoding UTF-8</span>-<a name="line-29"></a>-<a name="line-30"></a><a name="decodeUtf8"></a><span class='definition'>decodeUtf8</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-31"></a><span class='definition'>decodeUtf8</span> <span class='varid'>str</span>-<a name="line-32"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>res</span><span class='layout'>,</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>uncurry</span> <span class='varid'>toErrStr</span><span class='layout'>)</span> <span class='varid'>errs</span><span class='layout'>)</span>-<a name="line-33"></a> <span class='keyword'>where</span>-<a name="line-34"></a> <span class='layout'>(</span><span class='varid'>res</span><span class='layout'>,</span> <span class='varid'>errs</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>UTF8</span><span class='varop'>.</span><span class='varid'>decode</span> <span class='varop'>.</span> <span class='varid'>stringToByteString</span> <span class='varop'>$</span> <span class='varid'>str</span>-<a name="line-35"></a>-<a name="line-36"></a><a name="decodeUtf8IgnoreErrors"></a><span class='definition'>decodeUtf8IgnoreErrors</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-37"></a><span class='definition'>decodeUtf8IgnoreErrors</span>-<a name="line-38"></a> <span class='keyglyph'>=</span> <span class='varid'>fst</span> <span class='varop'>.</span> <span class='varid'>decodeUtf8</span>-<a name="line-39"></a>-<a name="line-40"></a><a name="decodeUtf8EmbedErrors"></a><span class='definition'>decodeUtf8EmbedErrors</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>Either</span> <span class='conid'>String</span> <span class='conid'>Char</span><span class='keyglyph'>]</span>-<a name="line-41"></a><span class='definition'>decodeUtf8EmbedErrors</span> <span class='varid'>str</span>-<a name="line-42"></a> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>either</span> <span class='layout'>(</span><span class='conid'>Left</span> <span class='varop'>.</span> <span class='varid'>uncurry</span> <span class='varid'>toErrStr</span><span class='layout'>)</span> <span class='conid'>Right</span><span class='layout'>)</span> <span class='varop'>$</span>-<a name="line-43"></a> <span class='conid'>UTF8</span><span class='varop'>.</span><span class='varid'>decodeEmbedErrors</span> <span class='varop'>$</span> <span class='varid'>stringToByteString</span> <span class='varop'>$</span> <span class='varid'>str</span>-<a name="line-44"></a>-<a name="line-45"></a><a name="stringToByteString"></a><span class='definition'>stringToByteString</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>Word8</span><span class='keyglyph'>]</span>-<a name="line-46"></a><span class='definition'>stringToByteString</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>toEnum</span> <span class='varop'>.</span> <span class='varid'>fromEnum</span><span class='layout'>)</span>-<a name="line-47"></a>-<a name="line-48"></a><a name="toErrStr"></a><span class='definition'>toErrStr</span> <span class='keyglyph'>::</span> <span class='conid'>UTF8</span><span class='varop'>.</span><span class='conid'>Error</span> <span class='keyglyph'>-></span> <span class='conid'>Int</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-49"></a><span class='definition'>toErrStr</span> <span class='varid'>err</span> <span class='varid'>pos</span>-<a name="line-50"></a> <span class='keyglyph'>=</span> <span class='str'>" at input position "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>pos</span> <span class='varop'>++</span> <span class='str'>": "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>err</span>-<a name="line-51"></a>-<a name="line-52"></a><span class='comment'>-- ------------------------------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-DOM-Unicode.html
@@ -1,1114 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Text.XML.HXT.DOM.Unicode-<a name="line-5"></a> Copyright : Copyright (C) 2005-2008 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe@fh-wedel.de)-<a name="line-9"></a> Stability : experimental-<a name="line-10"></a> Portability: portable-<a name="line-11"></a>-<a name="line-12"></a> Unicode and UTF-8 Conversion Functions-<a name="line-13"></a>-<a name="line-14"></a>-}</span>-<a name="line-15"></a>-<a name="line-16"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-17"></a>-<a name="line-18"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Unicode</span>-<a name="line-19"></a> <span class='layout'>(</span>-<a name="line-20"></a> <span class='comment'>-- * Unicode Type declarations</span>-<a name="line-21"></a> <span class='conid'>Unicode</span><span class='layout'>,</span>-<a name="line-22"></a> <span class='conid'>UString</span><span class='layout'>,</span>-<a name="line-23"></a> <span class='conid'>UTF8Char</span><span class='layout'>,</span>-<a name="line-24"></a> <span class='conid'>UTF8String</span><span class='layout'>,</span>-<a name="line-25"></a> <span class='conid'>UStringWithErrors</span><span class='layout'>,</span>-<a name="line-26"></a> <span class='conid'>DecodingFct</span><span class='layout'>,</span>-<a name="line-27"></a> <span class='conid'>DecodingFctEmbedErrors</span><span class='layout'>,</span>-<a name="line-28"></a>-<a name="line-29"></a> <span class='comment'>-- * XML char predicates</span>-<a name="line-30"></a>-<a name="line-31"></a> <span class='varid'>isXmlChar</span>-<a name="line-32"></a> <span class='layout'>,</span> <span class='varid'>isXmlLatin1Char</span>-<a name="line-33"></a> <span class='layout'>,</span> <span class='varid'>isXmlSpaceChar</span>-<a name="line-34"></a> <span class='layout'>,</span> <span class='varid'>isXml11SpaceChar</span>-<a name="line-35"></a> <span class='layout'>,</span> <span class='varid'>isXmlNameChar</span>-<a name="line-36"></a> <span class='layout'>,</span> <span class='varid'>isXmlNameStartChar</span>-<a name="line-37"></a> <span class='layout'>,</span> <span class='varid'>isXmlNCNameChar</span>-<a name="line-38"></a> <span class='layout'>,</span> <span class='varid'>isXmlNCNameStartChar</span>-<a name="line-39"></a> <span class='layout'>,</span> <span class='varid'>isXmlPubidChar</span>-<a name="line-40"></a> <span class='layout'>,</span> <span class='varid'>isXmlLetter</span>-<a name="line-41"></a> <span class='layout'>,</span> <span class='varid'>isXmlBaseChar</span>-<a name="line-42"></a> <span class='layout'>,</span> <span class='varid'>isXmlIdeographicChar</span>-<a name="line-43"></a> <span class='layout'>,</span> <span class='varid'>isXmlCombiningChar</span>-<a name="line-44"></a> <span class='layout'>,</span> <span class='varid'>isXmlDigit</span>-<a name="line-45"></a> <span class='layout'>,</span> <span class='varid'>isXmlExtender</span>-<a name="line-46"></a> <span class='layout'>,</span> <span class='varid'>isXmlControlOrPermanentlyUndefined</span>-<a name="line-47"></a>-<a name="line-48"></a> <span class='comment'>-- * UTF-8 and Unicode conversion functions</span>-<a name="line-49"></a> <span class='layout'>,</span> <span class='varid'>utf8ToUnicode</span>-<a name="line-50"></a> <span class='layout'>,</span> <span class='varid'>utf8ToUnicodeEmbedErrors</span>-<a name="line-51"></a> <span class='layout'>,</span> <span class='varid'>latin1ToUnicode</span>-<a name="line-52"></a> <span class='layout'>,</span> <span class='varid'>ucs2ToUnicode</span>-<a name="line-53"></a> <span class='layout'>,</span> <span class='varid'>ucs2BigEndianToUnicode</span>-<a name="line-54"></a> <span class='layout'>,</span> <span class='varid'>ucs2LittleEndianToUnicode</span>-<a name="line-55"></a> <span class='layout'>,</span> <span class='varid'>utf16beToUnicode</span>-<a name="line-56"></a> <span class='layout'>,</span> <span class='varid'>utf16leToUnicode</span>-<a name="line-57"></a>-<a name="line-58"></a> <span class='layout'>,</span> <span class='varid'>unicodeCharToUtf8</span>-<a name="line-59"></a>-<a name="line-60"></a> <span class='layout'>,</span> <span class='varid'>unicodeToUtf8</span>-<a name="line-61"></a> <span class='layout'>,</span> <span class='varid'>unicodeToXmlEntity</span>-<a name="line-62"></a> <span class='layout'>,</span> <span class='varid'>unicodeToLatin1</span>-<a name="line-63"></a> <span class='layout'>,</span> <span class='varid'>unicodeRemoveNoneAscii</span>-<a name="line-64"></a> <span class='layout'>,</span> <span class='varid'>unicodeRemoveNoneLatin1</span>-<a name="line-65"></a>-<a name="line-66"></a> <span class='layout'>,</span> <span class='varid'>intToCharRef</span>-<a name="line-67"></a> <span class='layout'>,</span> <span class='varid'>intToCharRefHex</span>-<a name="line-68"></a>-<a name="line-69"></a> <span class='layout'>,</span> <span class='varid'>getDecodingFct</span>-<a name="line-70"></a> <span class='layout'>,</span> <span class='varid'>getDecodingFctEmbedErrors</span>-<a name="line-71"></a> <span class='layout'>,</span> <span class='varid'>getOutputEncodingFct</span>-<a name="line-72"></a>-<a name="line-73"></a> <span class='layout'>,</span> <span class='varid'>normalizeNL</span>-<a name="line-74"></a> <span class='layout'>,</span> <span class='varid'>guessEncoding</span>-<a name="line-75"></a> <span class='layout'>)</span>-<a name="line-76"></a><span class='keyword'>where</span>-<a name="line-77"></a>-<a name="line-78"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Char</span><span class='layout'>(</span> <span class='varid'>toUpper</span> <span class='layout'>)</span>-<a name="line-79"></a>-<a name="line-80"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Util</span> <span class='layout'>(</span> <span class='varid'>swap</span><span class='layout'>,</span> <span class='varid'>partitionEither</span> <span class='layout'>)</span>-<a name="line-81"></a>-<a name="line-82"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>IsoLatinTables</span>-<a name="line-83"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>UTF8Decoding</span> <span class='layout'>(</span> <span class='varid'>decodeUtf8</span><span class='layout'>,</span> <span class='varid'>decodeUtf8EmbedErrors</span> <span class='layout'>)</span>-<a name="line-84"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Util</span> <span class='layout'>(</span> <span class='varid'>intToHexString</span> <span class='layout'>)</span>-<a name="line-85"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlKeywords</span>-<a name="line-86"></a>-<a name="line-87"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-88"></a>-<a name="line-89"></a><span class='comment'>-- | Unicode is represented as the Char type</span>-<a name="line-90"></a><span class='comment'>-- Precondition for this is the support of Unicode character range</span>-<a name="line-91"></a><span class='comment'>-- in the compiler (e.g. ghc but not hugs)</span>-<a name="line-92"></a>-<a name="line-93"></a><a name="Unicode"></a><span class='keyword'>type</span> <span class='conid'>Unicode</span> <span class='keyglyph'>=</span> <span class='conid'>Char</span>-<a name="line-94"></a>-<a name="line-95"></a><span class='comment'>-- | the type for Unicode strings</span>-<a name="line-96"></a>-<a name="line-97"></a><a name="UString"></a><span class='keyword'>type</span> <span class='conid'>UString</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>Unicode</span><span class='keyglyph'>]</span>-<a name="line-98"></a>-<a name="line-99"></a><span class='comment'>-- | UTF-8 charachters are represented by the Char type</span>-<a name="line-100"></a>-<a name="line-101"></a><a name="UTF8Char"></a><span class='keyword'>type</span> <span class='conid'>UTF8Char</span> <span class='keyglyph'>=</span> <span class='conid'>Char</span>-<a name="line-102"></a>-<a name="line-103"></a><span class='comment'>-- | UTF-8 strings are implemented as Haskell strings</span>-<a name="line-104"></a>-<a name="line-105"></a><a name="UTF8String"></a><span class='keyword'>type</span> <span class='conid'>UTF8String</span> <span class='keyglyph'>=</span> <span class='conid'>String</span>-<a name="line-106"></a>-<a name="line-107"></a><span class='comment'>-- | Decoding function with a pair containing the result string and a list of decoding errors as result</span>-<a name="line-108"></a>-<a name="line-109"></a><a name="DecodingFct"></a><span class='keyword'>type</span> <span class='conid'>DecodingFct</span> <span class='keyglyph'>=</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='conid'>UString</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-110"></a>-<a name="line-111"></a><a name="UStringWithErrors"></a><span class='keyword'>type</span> <span class='conid'>UStringWithErrors</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>Either</span> <span class='conid'>String</span> <span class='conid'>Char</span><span class='keyglyph'>]</span>-<a name="line-112"></a>-<a name="line-113"></a><span class='comment'>-- | Decoding function where decoding errors are interleaved with decoded characters</span>-<a name="line-114"></a>-<a name="line-115"></a><a name="DecodingFctEmbedErrors"></a><span class='keyword'>type</span> <span class='conid'>DecodingFctEmbedErrors</span> <span class='keyglyph'>=</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>UStringWithErrors</span>-<a name="line-116"></a>-<a name="line-117"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-118"></a><span class='comment'>--</span>-<a name="line-119"></a><span class='comment'>-- Unicode predicates</span>-<a name="line-120"></a>-<a name="line-121"></a><span class='comment'>-- |</span>-<a name="line-122"></a><span class='comment'>-- test for a legal 1 byte XML char</span>-<a name="line-123"></a>-<a name="line-124"></a><a name="is1ByteXmlChar"></a><span class='definition'>is1ByteXmlChar</span> <span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-125"></a><span class='definition'>is1ByteXmlChar</span> <span class='varid'>c</span>-<a name="line-126"></a> <span class='keyglyph'>=</span> <span class='varid'>c</span> <span class='varop'><</span> <span class='chr'>'\x80'</span>-<a name="line-127"></a> <span class='varop'>&&</span> <span class='layout'>(</span> <span class='varid'>c</span> <span class='varop'>>=</span> <span class='chr'>' '</span>-<a name="line-128"></a> <span class='varop'>||</span>-<a name="line-129"></a> <span class='varid'>c</span> <span class='varop'>==</span> <span class='chr'>'\n'</span>-<a name="line-130"></a> <span class='varop'>||</span>-<a name="line-131"></a> <span class='varid'>c</span> <span class='varop'>==</span> <span class='chr'>'\t'</span>-<a name="line-132"></a> <span class='varop'>||</span>-<a name="line-133"></a> <span class='varid'>c</span> <span class='varop'>==</span> <span class='chr'>'\r'</span>-<a name="line-134"></a> <span class='layout'>)</span>-<a name="line-135"></a>-<a name="line-136"></a><span class='comment'>-- |</span>-<a name="line-137"></a><span class='comment'>-- test for a legal latin1 XML char</span>-<a name="line-138"></a>-<a name="line-139"></a><a name="isXmlLatin1Char"></a><span class='definition'>isXmlLatin1Char</span> <span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-140"></a><span class='definition'>isXmlLatin1Char</span> <span class='varid'>i</span>-<a name="line-141"></a> <span class='keyglyph'>=</span> <span class='varid'>is1ByteXmlChar</span> <span class='varid'>i</span>-<a name="line-142"></a> <span class='varop'>||</span>-<a name="line-143"></a> <span class='layout'>(</span><span class='varid'>i</span> <span class='varop'>>=</span> <span class='chr'>'\x80'</span> <span class='varop'>&&</span> <span class='varid'>i</span> <span class='varop'><=</span> <span class='chr'>'\xff'</span><span class='layout'>)</span>-<a name="line-144"></a>-<a name="line-145"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-146"></a>-<a name="line-147"></a><span class='comment'>-- |</span>-<a name="line-148"></a><span class='comment'>-- conversion from Unicode strings (UString) to UTF8 encoded strings.</span>-<a name="line-149"></a>-<a name="line-150"></a><a name="unicodeToUtf8"></a><span class='definition'>unicodeToUtf8</span> <span class='keyglyph'>::</span> <span class='conid'>UString</span> <span class='keyglyph'>-></span> <span class='conid'>UTF8String</span>-<a name="line-151"></a><span class='definition'>unicodeToUtf8</span> <span class='keyglyph'>=</span> <span class='varid'>concatMap</span> <span class='varid'>unicodeCharToUtf8</span>-<a name="line-152"></a>-<a name="line-153"></a><span class='comment'>-- |</span>-<a name="line-154"></a><span class='comment'>-- conversion from Unicode (Char) to a UTF8 encoded string.</span>-<a name="line-155"></a>-<a name="line-156"></a><a name="unicodeCharToUtf8"></a><span class='definition'>unicodeCharToUtf8</span> <span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-></span> <span class='conid'>UTF8String</span>-<a name="line-157"></a><span class='definition'>unicodeCharToUtf8</span> <span class='varid'>c</span>-<a name="line-158"></a> <span class='keyglyph'>|</span> <span class='varid'>i</span> <span class='varop'>>=</span> <span class='num'>0</span> <span class='varop'>&&</span> <span class='varid'>i</span> <span class='varop'><=</span> <span class='num'>0x0000007F</span> <span class='comment'>-- 1 byte UTF8 (7 bits)</span>-<a name="line-159"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='varid'>toEnum</span> <span class='varid'>i</span> <span class='keyglyph'>]</span>-<a name="line-160"></a> <span class='keyglyph'>|</span> <span class='varid'>i</span> <span class='varop'>>=</span> <span class='num'>0x00000080</span> <span class='varop'>&&</span> <span class='varid'>i</span> <span class='varop'><=</span> <span class='num'>0x000007FF</span> <span class='comment'>-- 2 byte UTF8 (5 + 6 bits)</span>-<a name="line-161"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='varid'>toEnum</span> <span class='layout'>(</span><span class='num'>0xC0</span> <span class='varop'>+</span> <span class='varid'>i</span> <span class='varop'>`div`</span> <span class='num'>0x40</span><span class='layout'>)</span>-<a name="line-162"></a> <span class='layout'>,</span> <span class='varid'>toEnum</span> <span class='layout'>(</span><span class='num'>0x80</span> <span class='varop'>+</span> <span class='varid'>i</span> <span class='varop'>`mod`</span> <span class='num'>0x40</span><span class='layout'>)</span>-<a name="line-163"></a> <span class='keyglyph'>]</span>-<a name="line-164"></a> <span class='keyglyph'>|</span> <span class='varid'>i</span> <span class='varop'>>=</span> <span class='num'>0x00000800</span> <span class='varop'>&&</span> <span class='varid'>i</span> <span class='varop'><=</span> <span class='num'>0x0000FFFF</span> <span class='comment'>-- 3 byte UTF8 (4 + 6 + 6 bits)</span>-<a name="line-165"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='varid'>toEnum</span> <span class='layout'>(</span><span class='num'>0xE0</span> <span class='varop'>+</span> <span class='varid'>i</span> <span class='varop'>`div`</span> <span class='num'>0x1000</span><span class='layout'>)</span>-<a name="line-166"></a> <span class='layout'>,</span> <span class='varid'>toEnum</span> <span class='layout'>(</span><span class='num'>0x80</span> <span class='varop'>+</span> <span class='layout'>(</span><span class='varid'>i</span> <span class='varop'>`div`</span> <span class='num'>0x40</span><span class='layout'>)</span> <span class='varop'>`mod`</span> <span class='num'>0x40</span><span class='layout'>)</span>-<a name="line-167"></a> <span class='layout'>,</span> <span class='varid'>toEnum</span> <span class='layout'>(</span><span class='num'>0x80</span> <span class='varop'>+</span> <span class='varid'>i</span> <span class='varop'>`mod`</span> <span class='num'>0x40</span><span class='layout'>)</span>-<a name="line-168"></a> <span class='keyglyph'>]</span>-<a name="line-169"></a> <span class='keyglyph'>|</span> <span class='varid'>i</span> <span class='varop'>>=</span> <span class='num'>0x00010000</span> <span class='varop'>&&</span> <span class='varid'>i</span> <span class='varop'><=</span> <span class='num'>0x001FFFFF</span> <span class='comment'>-- 4 byte UTF8 (3 + 6 + 6 + 6 bits)</span>-<a name="line-170"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='varid'>toEnum</span> <span class='layout'>(</span><span class='num'>0xF0</span> <span class='varop'>+</span> <span class='varid'>i</span> <span class='varop'>`div`</span> <span class='num'>0x40000</span><span class='layout'>)</span>-<a name="line-171"></a> <span class='layout'>,</span> <span class='varid'>toEnum</span> <span class='layout'>(</span><span class='num'>0x80</span> <span class='varop'>+</span> <span class='layout'>(</span><span class='varid'>i</span> <span class='varop'>`div`</span> <span class='num'>0x1000</span><span class='layout'>)</span> <span class='varop'>`mod`</span> <span class='num'>0x40</span><span class='layout'>)</span>-<a name="line-172"></a> <span class='layout'>,</span> <span class='varid'>toEnum</span> <span class='layout'>(</span><span class='num'>0x80</span> <span class='varop'>+</span> <span class='layout'>(</span><span class='varid'>i</span> <span class='varop'>`div`</span> <span class='num'>0x40</span><span class='layout'>)</span> <span class='varop'>`mod`</span> <span class='num'>0x40</span><span class='layout'>)</span>-<a name="line-173"></a> <span class='layout'>,</span> <span class='varid'>toEnum</span> <span class='layout'>(</span><span class='num'>0x80</span> <span class='varop'>+</span> <span class='varid'>i</span> <span class='varop'>`mod`</span> <span class='num'>0x40</span><span class='layout'>)</span>-<a name="line-174"></a> <span class='keyglyph'>]</span>-<a name="line-175"></a> <span class='keyglyph'>|</span> <span class='varid'>i</span> <span class='varop'>>=</span> <span class='num'>0x00200000</span> <span class='varop'>&&</span> <span class='varid'>i</span> <span class='varop'><=</span> <span class='num'>0x03FFFFFF</span> <span class='comment'>-- 5 byte UTF8 (2 + 6 + 6 + 6 + 6 bits)</span>-<a name="line-176"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='varid'>toEnum</span> <span class='layout'>(</span><span class='num'>0xF8</span> <span class='varop'>+</span> <span class='varid'>i</span> <span class='varop'>`div`</span> <span class='num'>0x1000000</span><span class='layout'>)</span>-<a name="line-177"></a> <span class='layout'>,</span> <span class='varid'>toEnum</span> <span class='layout'>(</span><span class='num'>0x80</span> <span class='varop'>+</span> <span class='layout'>(</span><span class='varid'>i</span> <span class='varop'>`div`</span> <span class='num'>0x40000</span><span class='layout'>)</span> <span class='varop'>`mod`</span> <span class='num'>0x40</span><span class='layout'>)</span>-<a name="line-178"></a> <span class='layout'>,</span> <span class='varid'>toEnum</span> <span class='layout'>(</span><span class='num'>0x80</span> <span class='varop'>+</span> <span class='layout'>(</span><span class='varid'>i</span> <span class='varop'>`div`</span> <span class='num'>0x1000</span><span class='layout'>)</span> <span class='varop'>`mod`</span> <span class='num'>0x40</span><span class='layout'>)</span>-<a name="line-179"></a> <span class='layout'>,</span> <span class='varid'>toEnum</span> <span class='layout'>(</span><span class='num'>0x80</span> <span class='varop'>+</span> <span class='layout'>(</span><span class='varid'>i</span> <span class='varop'>`div`</span> <span class='num'>0x40</span><span class='layout'>)</span> <span class='varop'>`mod`</span> <span class='num'>0x40</span><span class='layout'>)</span>-<a name="line-180"></a> <span class='layout'>,</span> <span class='varid'>toEnum</span> <span class='layout'>(</span><span class='num'>0x80</span> <span class='varop'>+</span> <span class='varid'>i</span> <span class='varop'>`mod`</span> <span class='num'>0x40</span><span class='layout'>)</span>-<a name="line-181"></a> <span class='keyglyph'>]</span>-<a name="line-182"></a> <span class='keyglyph'>|</span> <span class='varid'>i</span> <span class='varop'>>=</span> <span class='num'>0x04000000</span> <span class='varop'>&&</span> <span class='varid'>i</span> <span class='varop'><=</span> <span class='num'>0x7FFFFFFF</span> <span class='comment'>-- 6 byte UTF8 (1 + 6 + 6 + 6 + 6 + 6 bits)</span>-<a name="line-183"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='varid'>toEnum</span> <span class='layout'>(</span><span class='num'>0xFC</span> <span class='varop'>+</span> <span class='varid'>i</span> <span class='varop'>`div`</span> <span class='num'>0x40000000</span><span class='layout'>)</span>-<a name="line-184"></a> <span class='layout'>,</span> <span class='varid'>toEnum</span> <span class='layout'>(</span><span class='num'>0x80</span> <span class='varop'>+</span> <span class='layout'>(</span><span class='varid'>i</span> <span class='varop'>`div`</span> <span class='num'>0x1000000</span><span class='layout'>)</span> <span class='varop'>`mod`</span> <span class='num'>0x40</span><span class='layout'>)</span>-<a name="line-185"></a> <span class='layout'>,</span> <span class='varid'>toEnum</span> <span class='layout'>(</span><span class='num'>0x80</span> <span class='varop'>+</span> <span class='layout'>(</span><span class='varid'>i</span> <span class='varop'>`div`</span> <span class='num'>0x40000</span><span class='layout'>)</span> <span class='varop'>`mod`</span> <span class='num'>0x40</span><span class='layout'>)</span>-<a name="line-186"></a> <span class='layout'>,</span> <span class='varid'>toEnum</span> <span class='layout'>(</span><span class='num'>0x80</span> <span class='varop'>+</span> <span class='layout'>(</span><span class='varid'>i</span> <span class='varop'>`div`</span> <span class='num'>0x1000</span><span class='layout'>)</span> <span class='varop'>`mod`</span> <span class='num'>0x40</span><span class='layout'>)</span>-<a name="line-187"></a> <span class='layout'>,</span> <span class='varid'>toEnum</span> <span class='layout'>(</span><span class='num'>0x80</span> <span class='varop'>+</span> <span class='layout'>(</span><span class='varid'>i</span> <span class='varop'>`div`</span> <span class='num'>0x40</span><span class='layout'>)</span> <span class='varop'>`mod`</span> <span class='num'>0x40</span><span class='layout'>)</span>-<a name="line-188"></a> <span class='layout'>,</span> <span class='varid'>toEnum</span> <span class='layout'>(</span><span class='num'>0x80</span> <span class='varop'>+</span> <span class='varid'>i</span> <span class='varop'>`mod`</span> <span class='num'>0x40</span><span class='layout'>)</span>-<a name="line-189"></a> <span class='keyglyph'>]</span>-<a name="line-190"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='comment'>-- other values not supported</span>-<a name="line-191"></a> <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"unicodeCharToUtf8: illegal integer argument "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>i</span><span class='layout'>)</span>-<a name="line-192"></a> <span class='keyword'>where</span>-<a name="line-193"></a> <span class='varid'>i</span> <span class='keyglyph'>=</span> <span class='varid'>fromEnum</span> <span class='varid'>c</span>-<a name="line-194"></a>-<a name="line-195"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-196"></a>-<a name="line-197"></a><span class='comment'>-- |</span>-<a name="line-198"></a><span class='comment'>-- checking for valid XML characters</span>-<a name="line-199"></a>-<a name="line-200"></a><a name="isXmlChar"></a><span class='definition'>isXmlChar</span> <span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-201"></a><span class='definition'>isXmlChar</span> <span class='varid'>c</span>-<a name="line-202"></a> <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>-<a name="line-203"></a> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\x0009'</span><span class='layout'>,</span> <span class='chr'>'\x000A'</span><span class='layout'>)</span>-<a name="line-204"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x000D'</span><span class='layout'>,</span> <span class='chr'>'\x000D'</span><span class='layout'>)</span>-<a name="line-205"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0020'</span><span class='layout'>,</span> <span class='chr'>'\xD7FF'</span><span class='layout'>)</span>-<a name="line-206"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\xE000'</span><span class='layout'>,</span> <span class='chr'>'\xFFFD'</span><span class='layout'>)</span>-<a name="line-207"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x10000'</span><span class='layout'>,</span> <span class='chr'>'\x10FFFF'</span><span class='layout'>)</span>-<a name="line-208"></a> <span class='keyglyph'>]</span>-<a name="line-209"></a>-<a name="line-210"></a><span class='comment'>-- |</span>-<a name="line-211"></a><span class='comment'>-- checking for XML space character: \\\n, \\\r, \\\t and \" \"</span>-<a name="line-212"></a>-<a name="line-213"></a><a name="isXmlSpaceChar"></a><span class='definition'>isXmlSpaceChar</span> <span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-214"></a><span class='definition'>isXmlSpaceChar</span> <span class='varid'>c</span>-<a name="line-215"></a> <span class='keyglyph'>=</span> <span class='varid'>c</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='chr'>'\x20'</span><span class='layout'>,</span> <span class='chr'>'\x09'</span><span class='layout'>,</span> <span class='chr'>'\x0D'</span><span class='layout'>,</span> <span class='chr'>'\x0A'</span><span class='keyglyph'>]</span>-<a name="line-216"></a>-<a name="line-217"></a><span class='comment'>-- |</span>-<a name="line-218"></a><span class='comment'>-- checking for XML1.1 space character: additional space 0x85 and 0x2028</span>-<a name="line-219"></a><span class='comment'>--</span>-<a name="line-220"></a><span class='comment'>-- see also : 'isXmlSpaceChar'</span>-<a name="line-221"></a>-<a name="line-222"></a><a name="isXml11SpaceChar"></a><span class='definition'>isXml11SpaceChar</span> <span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-223"></a><span class='definition'>isXml11SpaceChar</span> <span class='varid'>c</span>-<a name="line-224"></a> <span class='keyglyph'>=</span> <span class='varid'>c</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='chr'>'\x20'</span><span class='layout'>,</span> <span class='chr'>'\x09'</span><span class='layout'>,</span> <span class='chr'>'\x0D'</span><span class='layout'>,</span> <span class='chr'>'\x0A'</span><span class='layout'>,</span> <span class='chr'>'\x85'</span><span class='layout'>,</span> <span class='chr'>'\x2028'</span><span class='keyglyph'>]</span>-<a name="line-225"></a>-<a name="line-226"></a><span class='comment'>-- |</span>-<a name="line-227"></a><span class='comment'>-- checking for XML name character</span>-<a name="line-228"></a>-<a name="line-229"></a><a name="isXmlNameChar"></a><span class='definition'>isXmlNameChar</span> <span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-230"></a><span class='definition'>isXmlNameChar</span> <span class='varid'>c</span>-<a name="line-231"></a> <span class='keyglyph'>=</span> <span class='varid'>isXmlLetter</span> <span class='varid'>c</span>-<a name="line-232"></a> <span class='varop'>||</span>-<a name="line-233"></a> <span class='varid'>isXmlDigit</span> <span class='varid'>c</span>-<a name="line-234"></a> <span class='varop'>||</span>-<a name="line-235"></a> <span class='layout'>(</span><span class='varid'>c</span> <span class='varop'>==</span> <span class='chr'>'\x2D'</span> <span class='varop'>||</span> <span class='varid'>c</span> <span class='varop'>==</span> <span class='chr'>'\x2E'</span><span class='layout'>)</span> <span class='comment'>-- '-' | '.'</span>-<a name="line-236"></a> <span class='varop'>||</span>-<a name="line-237"></a> <span class='layout'>(</span><span class='varid'>c</span> <span class='varop'>==</span> <span class='chr'>'\x3A'</span> <span class='varop'>||</span> <span class='varid'>c</span> <span class='varop'>==</span> <span class='chr'>'\x5F'</span><span class='layout'>)</span> <span class='comment'>-- Letter | ':' | '_'</span>-<a name="line-238"></a> <span class='varop'>||</span>-<a name="line-239"></a> <span class='varid'>isXmlCombiningChar</span> <span class='varid'>c</span>-<a name="line-240"></a> <span class='varop'>||</span>-<a name="line-241"></a> <span class='varid'>isXmlExtender</span> <span class='varid'>c</span>-<a name="line-242"></a>-<a name="line-243"></a><span class='comment'>-- |</span>-<a name="line-244"></a><span class='comment'>-- checking for XML name start character</span>-<a name="line-245"></a><span class='comment'>--</span>-<a name="line-246"></a><span class='comment'>-- see also : 'isXmlNameChar'</span>-<a name="line-247"></a>-<a name="line-248"></a><a name="isXmlNameStartChar"></a><span class='definition'>isXmlNameStartChar</span> <span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-249"></a><span class='definition'>isXmlNameStartChar</span> <span class='varid'>c</span>-<a name="line-250"></a> <span class='keyglyph'>=</span> <span class='varid'>isXmlLetter</span> <span class='varid'>c</span>-<a name="line-251"></a> <span class='varop'>||</span>-<a name="line-252"></a> <span class='layout'>(</span><span class='varid'>c</span> <span class='varop'>==</span> <span class='chr'>'\x3A'</span> <span class='varop'>||</span> <span class='varid'>c</span> <span class='varop'>==</span> <span class='chr'>'\x5F'</span><span class='layout'>)</span> <span class='comment'>-- Letter | ':' | '_'</span>-<a name="line-253"></a>-<a name="line-254"></a><span class='comment'>-- |</span>-<a name="line-255"></a><span class='comment'>-- checking for XML NCName character: no \":\" allowed</span>-<a name="line-256"></a><span class='comment'>--</span>-<a name="line-257"></a><span class='comment'>-- see also : 'isXmlNameChar'</span>-<a name="line-258"></a>-<a name="line-259"></a><a name="isXmlNCNameChar"></a><span class='definition'>isXmlNCNameChar</span> <span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-260"></a><span class='definition'>isXmlNCNameChar</span> <span class='varid'>c</span>-<a name="line-261"></a> <span class='keyglyph'>=</span> <span class='varid'>c</span> <span class='varop'>/=</span> <span class='chr'>'\x3A'</span>-<a name="line-262"></a> <span class='varop'>&&</span>-<a name="line-263"></a> <span class='varid'>isXmlNameChar</span> <span class='varid'>c</span>-<a name="line-264"></a>-<a name="line-265"></a><span class='comment'>-- |</span>-<a name="line-266"></a><span class='comment'>-- checking for XML NCName start character: no \":\" allowed</span>-<a name="line-267"></a><span class='comment'>--</span>-<a name="line-268"></a><span class='comment'>-- see also : 'isXmlNameChar', 'isXmlNCNameChar'</span>-<a name="line-269"></a>-<a name="line-270"></a><a name="isXmlNCNameStartChar"></a><span class='definition'>isXmlNCNameStartChar</span> <span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-271"></a><span class='definition'>isXmlNCNameStartChar</span> <span class='varid'>c</span>-<a name="line-272"></a> <span class='keyglyph'>=</span> <span class='varid'>c</span> <span class='varop'>/=</span> <span class='chr'>'\x3A'</span>-<a name="line-273"></a> <span class='varop'>&&</span>-<a name="line-274"></a> <span class='varid'>isXmlNameStartChar</span> <span class='varid'>c</span>-<a name="line-275"></a>-<a name="line-276"></a><span class='comment'>-- |</span>-<a name="line-277"></a><span class='comment'>-- checking for XML public id character</span>-<a name="line-278"></a>-<a name="line-279"></a><a name="isXmlPubidChar"></a><span class='definition'>isXmlPubidChar</span> <span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-280"></a><span class='definition'>isXmlPubidChar</span> <span class='varid'>c</span>-<a name="line-281"></a> <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'0'</span><span class='layout'>,</span> <span class='chr'>'9'</span><span class='layout'>)</span>-<a name="line-282"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'A'</span><span class='layout'>,</span> <span class='chr'>'Z'</span><span class='layout'>)</span>-<a name="line-283"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'a'</span><span class='layout'>,</span> <span class='chr'>'z'</span><span class='layout'>)</span>-<a name="line-284"></a> <span class='keyglyph'>]</span>-<a name="line-285"></a> <span class='varop'>||</span>-<a name="line-286"></a> <span class='layout'>(</span> <span class='varid'>c</span> <span class='varop'>`elem`</span> <span class='str'>" \r\n-'()+,./:=?;!*#@$_%"</span> <span class='layout'>)</span>-<a name="line-287"></a>-<a name="line-288"></a><span class='comment'>-- |</span>-<a name="line-289"></a><span class='comment'>-- checking for XML letter</span>-<a name="line-290"></a>-<a name="line-291"></a><a name="isXmlLetter"></a><span class='definition'>isXmlLetter</span> <span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-292"></a><span class='definition'>isXmlLetter</span> <span class='varid'>c</span>-<a name="line-293"></a> <span class='keyglyph'>=</span> <span class='varid'>isXmlBaseChar</span> <span class='varid'>c</span>-<a name="line-294"></a> <span class='varop'>||</span>-<a name="line-295"></a> <span class='varid'>isXmlIdeographicChar</span> <span class='varid'>c</span>-<a name="line-296"></a>-<a name="line-297"></a><span class='comment'>-- |</span>-<a name="line-298"></a><span class='comment'>-- checking for XML base charater</span>-<a name="line-299"></a>-<a name="line-300"></a><a name="isXmlBaseChar"></a><span class='definition'>isXmlBaseChar</span> <span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-301"></a><span class='definition'>isXmlBaseChar</span> <span class='varid'>c</span>-<a name="line-302"></a> <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>-<a name="line-303"></a> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\x0041'</span><span class='layout'>,</span> <span class='chr'>'\x005A'</span><span class='layout'>)</span>-<a name="line-304"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0061'</span><span class='layout'>,</span> <span class='chr'>'\x007A'</span><span class='layout'>)</span>-<a name="line-305"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x00C0'</span><span class='layout'>,</span> <span class='chr'>'\x00D6'</span><span class='layout'>)</span>-<a name="line-306"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x00D8'</span><span class='layout'>,</span> <span class='chr'>'\x00F6'</span><span class='layout'>)</span>-<a name="line-307"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x00F8'</span><span class='layout'>,</span> <span class='chr'>'\x0131'</span><span class='layout'>)</span>-<a name="line-308"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0134'</span><span class='layout'>,</span> <span class='chr'>'\x013E'</span><span class='layout'>)</span>-<a name="line-309"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0141'</span><span class='layout'>,</span> <span class='chr'>'\x0148'</span><span class='layout'>)</span>-<a name="line-310"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x014A'</span><span class='layout'>,</span> <span class='chr'>'\x017E'</span><span class='layout'>)</span>-<a name="line-311"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0180'</span><span class='layout'>,</span> <span class='chr'>'\x01C3'</span><span class='layout'>)</span>-<a name="line-312"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x01CD'</span><span class='layout'>,</span> <span class='chr'>'\x01F0'</span><span class='layout'>)</span>-<a name="line-313"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x01F4'</span><span class='layout'>,</span> <span class='chr'>'\x01F5'</span><span class='layout'>)</span>-<a name="line-314"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x01FA'</span><span class='layout'>,</span> <span class='chr'>'\x0217'</span><span class='layout'>)</span>-<a name="line-315"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0250'</span><span class='layout'>,</span> <span class='chr'>'\x02A8'</span><span class='layout'>)</span>-<a name="line-316"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x02BB'</span><span class='layout'>,</span> <span class='chr'>'\x02C1'</span><span class='layout'>)</span>-<a name="line-317"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0386'</span><span class='layout'>,</span> <span class='chr'>'\x0386'</span><span class='layout'>)</span>-<a name="line-318"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0388'</span><span class='layout'>,</span> <span class='chr'>'\x038A'</span><span class='layout'>)</span>-<a name="line-319"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x038C'</span><span class='layout'>,</span> <span class='chr'>'\x038C'</span><span class='layout'>)</span>-<a name="line-320"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x038E'</span><span class='layout'>,</span> <span class='chr'>'\x03A1'</span><span class='layout'>)</span>-<a name="line-321"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x03A3'</span><span class='layout'>,</span> <span class='chr'>'\x03CE'</span><span class='layout'>)</span>-<a name="line-322"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x03D0'</span><span class='layout'>,</span> <span class='chr'>'\x03D6'</span><span class='layout'>)</span>-<a name="line-323"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x03DA'</span><span class='layout'>,</span> <span class='chr'>'\x03DA'</span><span class='layout'>)</span>-<a name="line-324"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x03DC'</span><span class='layout'>,</span> <span class='chr'>'\x03DC'</span><span class='layout'>)</span>-<a name="line-325"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x03DE'</span><span class='layout'>,</span> <span class='chr'>'\x03DE'</span><span class='layout'>)</span>-<a name="line-326"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x03E0'</span><span class='layout'>,</span> <span class='chr'>'\x03E0'</span><span class='layout'>)</span>-<a name="line-327"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x03E2'</span><span class='layout'>,</span> <span class='chr'>'\x03F3'</span><span class='layout'>)</span>-<a name="line-328"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0401'</span><span class='layout'>,</span> <span class='chr'>'\x040C'</span><span class='layout'>)</span>-<a name="line-329"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x040E'</span><span class='layout'>,</span> <span class='chr'>'\x044F'</span><span class='layout'>)</span>-<a name="line-330"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0451'</span><span class='layout'>,</span> <span class='chr'>'\x045C'</span><span class='layout'>)</span>-<a name="line-331"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x045E'</span><span class='layout'>,</span> <span class='chr'>'\x0481'</span><span class='layout'>)</span>-<a name="line-332"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0490'</span><span class='layout'>,</span> <span class='chr'>'\x04C4'</span><span class='layout'>)</span>-<a name="line-333"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x04C7'</span><span class='layout'>,</span> <span class='chr'>'\x04C8'</span><span class='layout'>)</span>-<a name="line-334"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x04CB'</span><span class='layout'>,</span> <span class='chr'>'\x04CC'</span><span class='layout'>)</span>-<a name="line-335"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x04D0'</span><span class='layout'>,</span> <span class='chr'>'\x04EB'</span><span class='layout'>)</span>-<a name="line-336"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x04EE'</span><span class='layout'>,</span> <span class='chr'>'\x04F5'</span><span class='layout'>)</span>-<a name="line-337"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x04F8'</span><span class='layout'>,</span> <span class='chr'>'\x04F9'</span><span class='layout'>)</span>-<a name="line-338"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0531'</span><span class='layout'>,</span> <span class='chr'>'\x0556'</span><span class='layout'>)</span>-<a name="line-339"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0559'</span><span class='layout'>,</span> <span class='chr'>'\x0559'</span><span class='layout'>)</span>-<a name="line-340"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0561'</span><span class='layout'>,</span> <span class='chr'>'\x0586'</span><span class='layout'>)</span>-<a name="line-341"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x05D0'</span><span class='layout'>,</span> <span class='chr'>'\x05EA'</span><span class='layout'>)</span>-<a name="line-342"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x05F0'</span><span class='layout'>,</span> <span class='chr'>'\x05F2'</span><span class='layout'>)</span>-<a name="line-343"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0621'</span><span class='layout'>,</span> <span class='chr'>'\x063A'</span><span class='layout'>)</span>-<a name="line-344"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0641'</span><span class='layout'>,</span> <span class='chr'>'\x064A'</span><span class='layout'>)</span>-<a name="line-345"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0671'</span><span class='layout'>,</span> <span class='chr'>'\x06B7'</span><span class='layout'>)</span>-<a name="line-346"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x06BA'</span><span class='layout'>,</span> <span class='chr'>'\x06BE'</span><span class='layout'>)</span>-<a name="line-347"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x06C0'</span><span class='layout'>,</span> <span class='chr'>'\x06CE'</span><span class='layout'>)</span>-<a name="line-348"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x06D0'</span><span class='layout'>,</span> <span class='chr'>'\x06D3'</span><span class='layout'>)</span>-<a name="line-349"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x06D5'</span><span class='layout'>,</span> <span class='chr'>'\x06D5'</span><span class='layout'>)</span>-<a name="line-350"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x06E5'</span><span class='layout'>,</span> <span class='chr'>'\x06E6'</span><span class='layout'>)</span>-<a name="line-351"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0905'</span><span class='layout'>,</span> <span class='chr'>'\x0939'</span><span class='layout'>)</span>-<a name="line-352"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x093D'</span><span class='layout'>,</span> <span class='chr'>'\x093D'</span><span class='layout'>)</span>-<a name="line-353"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0958'</span><span class='layout'>,</span> <span class='chr'>'\x0961'</span><span class='layout'>)</span>-<a name="line-354"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0985'</span><span class='layout'>,</span> <span class='chr'>'\x098C'</span><span class='layout'>)</span>-<a name="line-355"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x098F'</span><span class='layout'>,</span> <span class='chr'>'\x0990'</span><span class='layout'>)</span>-<a name="line-356"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0993'</span><span class='layout'>,</span> <span class='chr'>'\x09A8'</span><span class='layout'>)</span>-<a name="line-357"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x09AA'</span><span class='layout'>,</span> <span class='chr'>'\x09B0'</span><span class='layout'>)</span>-<a name="line-358"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x09B2'</span><span class='layout'>,</span> <span class='chr'>'\x09B2'</span><span class='layout'>)</span>-<a name="line-359"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x09B6'</span><span class='layout'>,</span> <span class='chr'>'\x09B9'</span><span class='layout'>)</span>-<a name="line-360"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x09DC'</span><span class='layout'>,</span> <span class='chr'>'\x09DD'</span><span class='layout'>)</span>-<a name="line-361"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x09DF'</span><span class='layout'>,</span> <span class='chr'>'\x09E1'</span><span class='layout'>)</span>-<a name="line-362"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x09F0'</span><span class='layout'>,</span> <span class='chr'>'\x09F1'</span><span class='layout'>)</span>-<a name="line-363"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A05'</span><span class='layout'>,</span> <span class='chr'>'\x0A0A'</span><span class='layout'>)</span>-<a name="line-364"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A0F'</span><span class='layout'>,</span> <span class='chr'>'\x0A10'</span><span class='layout'>)</span>-<a name="line-365"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A13'</span><span class='layout'>,</span> <span class='chr'>'\x0A28'</span><span class='layout'>)</span>-<a name="line-366"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A2A'</span><span class='layout'>,</span> <span class='chr'>'\x0A30'</span><span class='layout'>)</span>-<a name="line-367"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A32'</span><span class='layout'>,</span> <span class='chr'>'\x0A33'</span><span class='layout'>)</span>-<a name="line-368"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A35'</span><span class='layout'>,</span> <span class='chr'>'\x0A36'</span><span class='layout'>)</span>-<a name="line-369"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A38'</span><span class='layout'>,</span> <span class='chr'>'\x0A39'</span><span class='layout'>)</span>-<a name="line-370"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A59'</span><span class='layout'>,</span> <span class='chr'>'\x0A5C'</span><span class='layout'>)</span>-<a name="line-371"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A5E'</span><span class='layout'>,</span> <span class='chr'>'\x0A5E'</span><span class='layout'>)</span>-<a name="line-372"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A72'</span><span class='layout'>,</span> <span class='chr'>'\x0A74'</span><span class='layout'>)</span>-<a name="line-373"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A85'</span><span class='layout'>,</span> <span class='chr'>'\x0A8B'</span><span class='layout'>)</span>-<a name="line-374"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A8D'</span><span class='layout'>,</span> <span class='chr'>'\x0A8D'</span><span class='layout'>)</span>-<a name="line-375"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A8F'</span><span class='layout'>,</span> <span class='chr'>'\x0A91'</span><span class='layout'>)</span>-<a name="line-376"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A93'</span><span class='layout'>,</span> <span class='chr'>'\x0AA8'</span><span class='layout'>)</span>-<a name="line-377"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0AAA'</span><span class='layout'>,</span> <span class='chr'>'\x0AB0'</span><span class='layout'>)</span>-<a name="line-378"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0AB2'</span><span class='layout'>,</span> <span class='chr'>'\x0AB3'</span><span class='layout'>)</span>-<a name="line-379"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0AB5'</span><span class='layout'>,</span> <span class='chr'>'\x0AB9'</span><span class='layout'>)</span>-<a name="line-380"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0ABD'</span><span class='layout'>,</span> <span class='chr'>'\x0ABD'</span><span class='layout'>)</span>-<a name="line-381"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0AE0'</span><span class='layout'>,</span> <span class='chr'>'\x0AE0'</span><span class='layout'>)</span>-<a name="line-382"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0B05'</span><span class='layout'>,</span> <span class='chr'>'\x0B0C'</span><span class='layout'>)</span>-<a name="line-383"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0B0F'</span><span class='layout'>,</span> <span class='chr'>'\x0B10'</span><span class='layout'>)</span>-<a name="line-384"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0B13'</span><span class='layout'>,</span> <span class='chr'>'\x0B28'</span><span class='layout'>)</span>-<a name="line-385"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0B2A'</span><span class='layout'>,</span> <span class='chr'>'\x0B30'</span><span class='layout'>)</span>-<a name="line-386"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0B32'</span><span class='layout'>,</span> <span class='chr'>'\x0B33'</span><span class='layout'>)</span>-<a name="line-387"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0B36'</span><span class='layout'>,</span> <span class='chr'>'\x0B39'</span><span class='layout'>)</span>-<a name="line-388"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0B3D'</span><span class='layout'>,</span> <span class='chr'>'\x0B3D'</span><span class='layout'>)</span>-<a name="line-389"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0B5C'</span><span class='layout'>,</span> <span class='chr'>'\x0B5D'</span><span class='layout'>)</span>-<a name="line-390"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0B5F'</span><span class='layout'>,</span> <span class='chr'>'\x0B61'</span><span class='layout'>)</span>-<a name="line-391"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0B85'</span><span class='layout'>,</span> <span class='chr'>'\x0B8A'</span><span class='layout'>)</span>-<a name="line-392"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0B8E'</span><span class='layout'>,</span> <span class='chr'>'\x0B90'</span><span class='layout'>)</span>-<a name="line-393"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0B92'</span><span class='layout'>,</span> <span class='chr'>'\x0B95'</span><span class='layout'>)</span>-<a name="line-394"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0B99'</span><span class='layout'>,</span> <span class='chr'>'\x0B9A'</span><span class='layout'>)</span>-<a name="line-395"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0B9C'</span><span class='layout'>,</span> <span class='chr'>'\x0B9C'</span><span class='layout'>)</span>-<a name="line-396"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0B9E'</span><span class='layout'>,</span> <span class='chr'>'\x0B9F'</span><span class='layout'>)</span>-<a name="line-397"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0BA3'</span><span class='layout'>,</span> <span class='chr'>'\x0BA4'</span><span class='layout'>)</span>-<a name="line-398"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0BA8'</span><span class='layout'>,</span> <span class='chr'>'\x0BAA'</span><span class='layout'>)</span>-<a name="line-399"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0BAE'</span><span class='layout'>,</span> <span class='chr'>'\x0BB5'</span><span class='layout'>)</span>-<a name="line-400"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0BB7'</span><span class='layout'>,</span> <span class='chr'>'\x0BB9'</span><span class='layout'>)</span>-<a name="line-401"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0C05'</span><span class='layout'>,</span> <span class='chr'>'\x0C0C'</span><span class='layout'>)</span>-<a name="line-402"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0C0E'</span><span class='layout'>,</span> <span class='chr'>'\x0C10'</span><span class='layout'>)</span>-<a name="line-403"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0C12'</span><span class='layout'>,</span> <span class='chr'>'\x0C28'</span><span class='layout'>)</span>-<a name="line-404"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0C2A'</span><span class='layout'>,</span> <span class='chr'>'\x0C33'</span><span class='layout'>)</span>-<a name="line-405"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0C35'</span><span class='layout'>,</span> <span class='chr'>'\x0C39'</span><span class='layout'>)</span>-<a name="line-406"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0C60'</span><span class='layout'>,</span> <span class='chr'>'\x0C61'</span><span class='layout'>)</span>-<a name="line-407"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0C85'</span><span class='layout'>,</span> <span class='chr'>'\x0C8C'</span><span class='layout'>)</span>-<a name="line-408"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0C8E'</span><span class='layout'>,</span> <span class='chr'>'\x0C90'</span><span class='layout'>)</span>-<a name="line-409"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0C92'</span><span class='layout'>,</span> <span class='chr'>'\x0CA8'</span><span class='layout'>)</span>-<a name="line-410"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0CAA'</span><span class='layout'>,</span> <span class='chr'>'\x0CB3'</span><span class='layout'>)</span>-<a name="line-411"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0CB5'</span><span class='layout'>,</span> <span class='chr'>'\x0CB9'</span><span class='layout'>)</span>-<a name="line-412"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0CDE'</span><span class='layout'>,</span> <span class='chr'>'\x0CDE'</span><span class='layout'>)</span>-<a name="line-413"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0CE0'</span><span class='layout'>,</span> <span class='chr'>'\x0CE1'</span><span class='layout'>)</span>-<a name="line-414"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0D05'</span><span class='layout'>,</span> <span class='chr'>'\x0D0C'</span><span class='layout'>)</span>-<a name="line-415"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0D0E'</span><span class='layout'>,</span> <span class='chr'>'\x0D10'</span><span class='layout'>)</span>-<a name="line-416"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0D12'</span><span class='layout'>,</span> <span class='chr'>'\x0D28'</span><span class='layout'>)</span>-<a name="line-417"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0D2A'</span><span class='layout'>,</span> <span class='chr'>'\x0D39'</span><span class='layout'>)</span>-<a name="line-418"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0D60'</span><span class='layout'>,</span> <span class='chr'>'\x0D61'</span><span class='layout'>)</span>-<a name="line-419"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0E01'</span><span class='layout'>,</span> <span class='chr'>'\x0E2E'</span><span class='layout'>)</span>-<a name="line-420"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0E30'</span><span class='layout'>,</span> <span class='chr'>'\x0E30'</span><span class='layout'>)</span>-<a name="line-421"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0E32'</span><span class='layout'>,</span> <span class='chr'>'\x0E33'</span><span class='layout'>)</span>-<a name="line-422"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0E40'</span><span class='layout'>,</span> <span class='chr'>'\x0E45'</span><span class='layout'>)</span>-<a name="line-423"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0E81'</span><span class='layout'>,</span> <span class='chr'>'\x0E82'</span><span class='layout'>)</span>-<a name="line-424"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0E84'</span><span class='layout'>,</span> <span class='chr'>'\x0E84'</span><span class='layout'>)</span>-<a name="line-425"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0E87'</span><span class='layout'>,</span> <span class='chr'>'\x0E88'</span><span class='layout'>)</span>-<a name="line-426"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0E8A'</span><span class='layout'>,</span> <span class='chr'>'\x0E8A'</span><span class='layout'>)</span>-<a name="line-427"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0E8D'</span><span class='layout'>,</span> <span class='chr'>'\x0E8D'</span><span class='layout'>)</span>-<a name="line-428"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0E94'</span><span class='layout'>,</span> <span class='chr'>'\x0E97'</span><span class='layout'>)</span>-<a name="line-429"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0E99'</span><span class='layout'>,</span> <span class='chr'>'\x0E9F'</span><span class='layout'>)</span>-<a name="line-430"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0EA1'</span><span class='layout'>,</span> <span class='chr'>'\x0EA3'</span><span class='layout'>)</span>-<a name="line-431"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0EA5'</span><span class='layout'>,</span> <span class='chr'>'\x0EA5'</span><span class='layout'>)</span>-<a name="line-432"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0EA7'</span><span class='layout'>,</span> <span class='chr'>'\x0EA7'</span><span class='layout'>)</span>-<a name="line-433"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0EAA'</span><span class='layout'>,</span> <span class='chr'>'\x0EAB'</span><span class='layout'>)</span>-<a name="line-434"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0EAD'</span><span class='layout'>,</span> <span class='chr'>'\x0EAE'</span><span class='layout'>)</span>-<a name="line-435"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0EB0'</span><span class='layout'>,</span> <span class='chr'>'\x0EB0'</span><span class='layout'>)</span>-<a name="line-436"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0EB2'</span><span class='layout'>,</span> <span class='chr'>'\x0EB3'</span><span class='layout'>)</span>-<a name="line-437"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0EBD'</span><span class='layout'>,</span> <span class='chr'>'\x0EBD'</span><span class='layout'>)</span>-<a name="line-438"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0EC0'</span><span class='layout'>,</span> <span class='chr'>'\x0EC4'</span><span class='layout'>)</span>-<a name="line-439"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0F40'</span><span class='layout'>,</span> <span class='chr'>'\x0F47'</span><span class='layout'>)</span>-<a name="line-440"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0F49'</span><span class='layout'>,</span> <span class='chr'>'\x0F69'</span><span class='layout'>)</span>-<a name="line-441"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x10A0'</span><span class='layout'>,</span> <span class='chr'>'\x10C5'</span><span class='layout'>)</span>-<a name="line-442"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x10D0'</span><span class='layout'>,</span> <span class='chr'>'\x10F6'</span><span class='layout'>)</span>-<a name="line-443"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1100'</span><span class='layout'>,</span> <span class='chr'>'\x1100'</span><span class='layout'>)</span>-<a name="line-444"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1102'</span><span class='layout'>,</span> <span class='chr'>'\x1103'</span><span class='layout'>)</span>-<a name="line-445"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1105'</span><span class='layout'>,</span> <span class='chr'>'\x1107'</span><span class='layout'>)</span>-<a name="line-446"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1109'</span><span class='layout'>,</span> <span class='chr'>'\x1109'</span><span class='layout'>)</span>-<a name="line-447"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x110B'</span><span class='layout'>,</span> <span class='chr'>'\x110C'</span><span class='layout'>)</span>-<a name="line-448"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x110E'</span><span class='layout'>,</span> <span class='chr'>'\x1112'</span><span class='layout'>)</span>-<a name="line-449"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x113C'</span><span class='layout'>,</span> <span class='chr'>'\x113C'</span><span class='layout'>)</span>-<a name="line-450"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x113E'</span><span class='layout'>,</span> <span class='chr'>'\x113E'</span><span class='layout'>)</span>-<a name="line-451"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1140'</span><span class='layout'>,</span> <span class='chr'>'\x1140'</span><span class='layout'>)</span>-<a name="line-452"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x114C'</span><span class='layout'>,</span> <span class='chr'>'\x114C'</span><span class='layout'>)</span>-<a name="line-453"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x114E'</span><span class='layout'>,</span> <span class='chr'>'\x114E'</span><span class='layout'>)</span>-<a name="line-454"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1150'</span><span class='layout'>,</span> <span class='chr'>'\x1150'</span><span class='layout'>)</span>-<a name="line-455"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1154'</span><span class='layout'>,</span> <span class='chr'>'\x1155'</span><span class='layout'>)</span>-<a name="line-456"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1159'</span><span class='layout'>,</span> <span class='chr'>'\x1159'</span><span class='layout'>)</span>-<a name="line-457"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x115F'</span><span class='layout'>,</span> <span class='chr'>'\x1161'</span><span class='layout'>)</span>-<a name="line-458"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1163'</span><span class='layout'>,</span> <span class='chr'>'\x1163'</span><span class='layout'>)</span>-<a name="line-459"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1165'</span><span class='layout'>,</span> <span class='chr'>'\x1165'</span><span class='layout'>)</span>-<a name="line-460"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1167'</span><span class='layout'>,</span> <span class='chr'>'\x1167'</span><span class='layout'>)</span>-<a name="line-461"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1169'</span><span class='layout'>,</span> <span class='chr'>'\x1169'</span><span class='layout'>)</span>-<a name="line-462"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x116D'</span><span class='layout'>,</span> <span class='chr'>'\x116E'</span><span class='layout'>)</span>-<a name="line-463"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1172'</span><span class='layout'>,</span> <span class='chr'>'\x1173'</span><span class='layout'>)</span>-<a name="line-464"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1175'</span><span class='layout'>,</span> <span class='chr'>'\x1175'</span><span class='layout'>)</span>-<a name="line-465"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x119E'</span><span class='layout'>,</span> <span class='chr'>'\x119E'</span><span class='layout'>)</span>-<a name="line-466"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x11A8'</span><span class='layout'>,</span> <span class='chr'>'\x11A8'</span><span class='layout'>)</span>-<a name="line-467"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x11AB'</span><span class='layout'>,</span> <span class='chr'>'\x11AB'</span><span class='layout'>)</span>-<a name="line-468"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x11AE'</span><span class='layout'>,</span> <span class='chr'>'\x11AF'</span><span class='layout'>)</span>-<a name="line-469"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x11B7'</span><span class='layout'>,</span> <span class='chr'>'\x11B8'</span><span class='layout'>)</span>-<a name="line-470"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x11BA'</span><span class='layout'>,</span> <span class='chr'>'\x11BA'</span><span class='layout'>)</span>-<a name="line-471"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x11BC'</span><span class='layout'>,</span> <span class='chr'>'\x11C2'</span><span class='layout'>)</span>-<a name="line-472"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x11EB'</span><span class='layout'>,</span> <span class='chr'>'\x11EB'</span><span class='layout'>)</span>-<a name="line-473"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x11F0'</span><span class='layout'>,</span> <span class='chr'>'\x11F0'</span><span class='layout'>)</span>-<a name="line-474"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x11F9'</span><span class='layout'>,</span> <span class='chr'>'\x11F9'</span><span class='layout'>)</span>-<a name="line-475"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1E00'</span><span class='layout'>,</span> <span class='chr'>'\x1E9B'</span><span class='layout'>)</span>-<a name="line-476"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1EA0'</span><span class='layout'>,</span> <span class='chr'>'\x1EF9'</span><span class='layout'>)</span>-<a name="line-477"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1F00'</span><span class='layout'>,</span> <span class='chr'>'\x1F15'</span><span class='layout'>)</span>-<a name="line-478"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1F18'</span><span class='layout'>,</span> <span class='chr'>'\x1F1D'</span><span class='layout'>)</span>-<a name="line-479"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1F20'</span><span class='layout'>,</span> <span class='chr'>'\x1F45'</span><span class='layout'>)</span>-<a name="line-480"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1F48'</span><span class='layout'>,</span> <span class='chr'>'\x1F4D'</span><span class='layout'>)</span>-<a name="line-481"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1F50'</span><span class='layout'>,</span> <span class='chr'>'\x1F57'</span><span class='layout'>)</span>-<a name="line-482"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1F59'</span><span class='layout'>,</span> <span class='chr'>'\x1F59'</span><span class='layout'>)</span>-<a name="line-483"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1F5B'</span><span class='layout'>,</span> <span class='chr'>'\x1F5B'</span><span class='layout'>)</span>-<a name="line-484"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1F5D'</span><span class='layout'>,</span> <span class='chr'>'\x1F5D'</span><span class='layout'>)</span>-<a name="line-485"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1F5F'</span><span class='layout'>,</span> <span class='chr'>'\x1F7D'</span><span class='layout'>)</span>-<a name="line-486"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1F80'</span><span class='layout'>,</span> <span class='chr'>'\x1FB4'</span><span class='layout'>)</span>-<a name="line-487"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1FB6'</span><span class='layout'>,</span> <span class='chr'>'\x1FBC'</span><span class='layout'>)</span>-<a name="line-488"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1FBE'</span><span class='layout'>,</span> <span class='chr'>'\x1FBE'</span><span class='layout'>)</span>-<a name="line-489"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1FC2'</span><span class='layout'>,</span> <span class='chr'>'\x1FC4'</span><span class='layout'>)</span>-<a name="line-490"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1FC6'</span><span class='layout'>,</span> <span class='chr'>'\x1FCC'</span><span class='layout'>)</span>-<a name="line-491"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1FD0'</span><span class='layout'>,</span> <span class='chr'>'\x1FD3'</span><span class='layout'>)</span>-<a name="line-492"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1FD6'</span><span class='layout'>,</span> <span class='chr'>'\x1FDB'</span><span class='layout'>)</span>-<a name="line-493"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1FE0'</span><span class='layout'>,</span> <span class='chr'>'\x1FEC'</span><span class='layout'>)</span>-<a name="line-494"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1FF2'</span><span class='layout'>,</span> <span class='chr'>'\x1FF4'</span><span class='layout'>)</span>-<a name="line-495"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1FF6'</span><span class='layout'>,</span> <span class='chr'>'\x1FFC'</span><span class='layout'>)</span>-<a name="line-496"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x2126'</span><span class='layout'>,</span> <span class='chr'>'\x2126'</span><span class='layout'>)</span>-<a name="line-497"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x212A'</span><span class='layout'>,</span> <span class='chr'>'\x212B'</span><span class='layout'>)</span>-<a name="line-498"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x212E'</span><span class='layout'>,</span> <span class='chr'>'\x212E'</span><span class='layout'>)</span>-<a name="line-499"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x2180'</span><span class='layout'>,</span> <span class='chr'>'\x2182'</span><span class='layout'>)</span>-<a name="line-500"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x3041'</span><span class='layout'>,</span> <span class='chr'>'\x3094'</span><span class='layout'>)</span>-<a name="line-501"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x30A1'</span><span class='layout'>,</span> <span class='chr'>'\x30FA'</span><span class='layout'>)</span>-<a name="line-502"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x3105'</span><span class='layout'>,</span> <span class='chr'>'\x312C'</span><span class='layout'>)</span>-<a name="line-503"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\xAC00'</span><span class='layout'>,</span> <span class='chr'>'\xD7A3'</span><span class='layout'>)</span>-<a name="line-504"></a> <span class='keyglyph'>]</span>-<a name="line-505"></a>-<a name="line-506"></a><span class='comment'>-- |</span>-<a name="line-507"></a><span class='comment'>-- checking for XML ideographic charater</span>-<a name="line-508"></a>-<a name="line-509"></a><a name="isXmlIdeographicChar"></a><span class='definition'>isXmlIdeographicChar</span> <span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-510"></a><span class='definition'>isXmlIdeographicChar</span> <span class='varid'>c</span>-<a name="line-511"></a> <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>-<a name="line-512"></a> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\x3007'</span><span class='layout'>,</span> <span class='chr'>'\x3007'</span><span class='layout'>)</span>-<a name="line-513"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x3021'</span><span class='layout'>,</span> <span class='chr'>'\x3029'</span><span class='layout'>)</span>-<a name="line-514"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x4E00'</span><span class='layout'>,</span> <span class='chr'>'\x9FA5'</span><span class='layout'>)</span>-<a name="line-515"></a> <span class='keyglyph'>]</span>-<a name="line-516"></a>-<a name="line-517"></a><span class='comment'>-- |</span>-<a name="line-518"></a><span class='comment'>-- checking for XML combining charater</span>-<a name="line-519"></a>-<a name="line-520"></a><a name="isXmlCombiningChar"></a><span class='definition'>isXmlCombiningChar</span> <span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-521"></a><span class='definition'>isXmlCombiningChar</span> <span class='varid'>c</span>-<a name="line-522"></a> <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>-<a name="line-523"></a> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\x0300'</span><span class='layout'>,</span> <span class='chr'>'\x0345'</span><span class='layout'>)</span>-<a name="line-524"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0360'</span><span class='layout'>,</span> <span class='chr'>'\x0361'</span><span class='layout'>)</span>-<a name="line-525"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0483'</span><span class='layout'>,</span> <span class='chr'>'\x0486'</span><span class='layout'>)</span>-<a name="line-526"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0591'</span><span class='layout'>,</span> <span class='chr'>'\x05A1'</span><span class='layout'>)</span>-<a name="line-527"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x05A3'</span><span class='layout'>,</span> <span class='chr'>'\x05B9'</span><span class='layout'>)</span>-<a name="line-528"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x05BB'</span><span class='layout'>,</span> <span class='chr'>'\x05BD'</span><span class='layout'>)</span>-<a name="line-529"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x05BF'</span><span class='layout'>,</span> <span class='chr'>'\x05BF'</span><span class='layout'>)</span>-<a name="line-530"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x05C1'</span><span class='layout'>,</span> <span class='chr'>'\x05C2'</span><span class='layout'>)</span>-<a name="line-531"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x05C4'</span><span class='layout'>,</span> <span class='chr'>'\x05C4'</span><span class='layout'>)</span>-<a name="line-532"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x064B'</span><span class='layout'>,</span> <span class='chr'>'\x0652'</span><span class='layout'>)</span>-<a name="line-533"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0670'</span><span class='layout'>,</span> <span class='chr'>'\x0670'</span><span class='layout'>)</span>-<a name="line-534"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x06D6'</span><span class='layout'>,</span> <span class='chr'>'\x06DC'</span><span class='layout'>)</span>-<a name="line-535"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x06DD'</span><span class='layout'>,</span> <span class='chr'>'\x06DF'</span><span class='layout'>)</span>-<a name="line-536"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x06E0'</span><span class='layout'>,</span> <span class='chr'>'\x06E4'</span><span class='layout'>)</span>-<a name="line-537"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x06E7'</span><span class='layout'>,</span> <span class='chr'>'\x06E8'</span><span class='layout'>)</span>-<a name="line-538"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x06EA'</span><span class='layout'>,</span> <span class='chr'>'\x06ED'</span><span class='layout'>)</span>-<a name="line-539"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0901'</span><span class='layout'>,</span> <span class='chr'>'\x0903'</span><span class='layout'>)</span>-<a name="line-540"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x093C'</span><span class='layout'>,</span> <span class='chr'>'\x093C'</span><span class='layout'>)</span>-<a name="line-541"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x093E'</span><span class='layout'>,</span> <span class='chr'>'\x094C'</span><span class='layout'>)</span>-<a name="line-542"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x094D'</span><span class='layout'>,</span> <span class='chr'>'\x094D'</span><span class='layout'>)</span>-<a name="line-543"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0951'</span><span class='layout'>,</span> <span class='chr'>'\x0954'</span><span class='layout'>)</span>-<a name="line-544"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0962'</span><span class='layout'>,</span> <span class='chr'>'\x0963'</span><span class='layout'>)</span>-<a name="line-545"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0981'</span><span class='layout'>,</span> <span class='chr'>'\x0983'</span><span class='layout'>)</span>-<a name="line-546"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x09BC'</span><span class='layout'>,</span> <span class='chr'>'\x09BC'</span><span class='layout'>)</span>-<a name="line-547"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x09BE'</span><span class='layout'>,</span> <span class='chr'>'\x09BE'</span><span class='layout'>)</span>-<a name="line-548"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x09BF'</span><span class='layout'>,</span> <span class='chr'>'\x09BF'</span><span class='layout'>)</span>-<a name="line-549"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x09C0'</span><span class='layout'>,</span> <span class='chr'>'\x09C4'</span><span class='layout'>)</span>-<a name="line-550"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x09C7'</span><span class='layout'>,</span> <span class='chr'>'\x09C8'</span><span class='layout'>)</span>-<a name="line-551"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x09CB'</span><span class='layout'>,</span> <span class='chr'>'\x09CD'</span><span class='layout'>)</span>-<a name="line-552"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x09D7'</span><span class='layout'>,</span> <span class='chr'>'\x09D7'</span><span class='layout'>)</span>-<a name="line-553"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x09E2'</span><span class='layout'>,</span> <span class='chr'>'\x09E3'</span><span class='layout'>)</span>-<a name="line-554"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A02'</span><span class='layout'>,</span> <span class='chr'>'\x0A02'</span><span class='layout'>)</span>-<a name="line-555"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A3C'</span><span class='layout'>,</span> <span class='chr'>'\x0A3C'</span><span class='layout'>)</span>-<a name="line-556"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A3E'</span><span class='layout'>,</span> <span class='chr'>'\x0A3E'</span><span class='layout'>)</span>-<a name="line-557"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A3F'</span><span class='layout'>,</span> <span class='chr'>'\x0A3F'</span><span class='layout'>)</span>-<a name="line-558"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A40'</span><span class='layout'>,</span> <span class='chr'>'\x0A42'</span><span class='layout'>)</span>-<a name="line-559"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A47'</span><span class='layout'>,</span> <span class='chr'>'\x0A48'</span><span class='layout'>)</span>-<a name="line-560"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A4B'</span><span class='layout'>,</span> <span class='chr'>'\x0A4D'</span><span class='layout'>)</span>-<a name="line-561"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A70'</span><span class='layout'>,</span> <span class='chr'>'\x0A71'</span><span class='layout'>)</span>-<a name="line-562"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A81'</span><span class='layout'>,</span> <span class='chr'>'\x0A83'</span><span class='layout'>)</span>-<a name="line-563"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0ABC'</span><span class='layout'>,</span> <span class='chr'>'\x0ABC'</span><span class='layout'>)</span>-<a name="line-564"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0ABE'</span><span class='layout'>,</span> <span class='chr'>'\x0AC5'</span><span class='layout'>)</span>-<a name="line-565"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0AC7'</span><span class='layout'>,</span> <span class='chr'>'\x0AC9'</span><span class='layout'>)</span>-<a name="line-566"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0ACB'</span><span class='layout'>,</span> <span class='chr'>'\x0ACD'</span><span class='layout'>)</span>-<a name="line-567"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0B01'</span><span class='layout'>,</span> <span class='chr'>'\x0B03'</span><span class='layout'>)</span>-<a name="line-568"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0B3C'</span><span class='layout'>,</span> <span class='chr'>'\x0B3C'</span><span class='layout'>)</span>-<a name="line-569"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0B3E'</span><span class='layout'>,</span> <span class='chr'>'\x0B43'</span><span class='layout'>)</span>-<a name="line-570"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0B47'</span><span class='layout'>,</span> <span class='chr'>'\x0B48'</span><span class='layout'>)</span>-<a name="line-571"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0B4B'</span><span class='layout'>,</span> <span class='chr'>'\x0B4D'</span><span class='layout'>)</span>-<a name="line-572"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0B56'</span><span class='layout'>,</span> <span class='chr'>'\x0B57'</span><span class='layout'>)</span>-<a name="line-573"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0B82'</span><span class='layout'>,</span> <span class='chr'>'\x0B83'</span><span class='layout'>)</span>-<a name="line-574"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0BBE'</span><span class='layout'>,</span> <span class='chr'>'\x0BC2'</span><span class='layout'>)</span>-<a name="line-575"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0BC6'</span><span class='layout'>,</span> <span class='chr'>'\x0BC8'</span><span class='layout'>)</span>-<a name="line-576"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0BCA'</span><span class='layout'>,</span> <span class='chr'>'\x0BCD'</span><span class='layout'>)</span>-<a name="line-577"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0BD7'</span><span class='layout'>,</span> <span class='chr'>'\x0BD7'</span><span class='layout'>)</span>-<a name="line-578"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0C01'</span><span class='layout'>,</span> <span class='chr'>'\x0C03'</span><span class='layout'>)</span>-<a name="line-579"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0C3E'</span><span class='layout'>,</span> <span class='chr'>'\x0C44'</span><span class='layout'>)</span>-<a name="line-580"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0C46'</span><span class='layout'>,</span> <span class='chr'>'\x0C48'</span><span class='layout'>)</span>-<a name="line-581"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0C4A'</span><span class='layout'>,</span> <span class='chr'>'\x0C4D'</span><span class='layout'>)</span>-<a name="line-582"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0C55'</span><span class='layout'>,</span> <span class='chr'>'\x0C56'</span><span class='layout'>)</span>-<a name="line-583"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0C82'</span><span class='layout'>,</span> <span class='chr'>'\x0C83'</span><span class='layout'>)</span>-<a name="line-584"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0CBE'</span><span class='layout'>,</span> <span class='chr'>'\x0CC4'</span><span class='layout'>)</span>-<a name="line-585"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0CC6'</span><span class='layout'>,</span> <span class='chr'>'\x0CC8'</span><span class='layout'>)</span>-<a name="line-586"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0CCA'</span><span class='layout'>,</span> <span class='chr'>'\x0CCD'</span><span class='layout'>)</span>-<a name="line-587"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0CD5'</span><span class='layout'>,</span> <span class='chr'>'\x0CD6'</span><span class='layout'>)</span>-<a name="line-588"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0D02'</span><span class='layout'>,</span> <span class='chr'>'\x0D03'</span><span class='layout'>)</span>-<a name="line-589"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0D3E'</span><span class='layout'>,</span> <span class='chr'>'\x0D43'</span><span class='layout'>)</span>-<a name="line-590"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0D46'</span><span class='layout'>,</span> <span class='chr'>'\x0D48'</span><span class='layout'>)</span>-<a name="line-591"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0D4A'</span><span class='layout'>,</span> <span class='chr'>'\x0D4D'</span><span class='layout'>)</span>-<a name="line-592"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0D57'</span><span class='layout'>,</span> <span class='chr'>'\x0D57'</span><span class='layout'>)</span>-<a name="line-593"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0E31'</span><span class='layout'>,</span> <span class='chr'>'\x0E31'</span><span class='layout'>)</span>-<a name="line-594"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0E34'</span><span class='layout'>,</span> <span class='chr'>'\x0E3A'</span><span class='layout'>)</span>-<a name="line-595"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0E47'</span><span class='layout'>,</span> <span class='chr'>'\x0E4E'</span><span class='layout'>)</span>-<a name="line-596"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0EB1'</span><span class='layout'>,</span> <span class='chr'>'\x0EB1'</span><span class='layout'>)</span>-<a name="line-597"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0EB4'</span><span class='layout'>,</span> <span class='chr'>'\x0EB9'</span><span class='layout'>)</span>-<a name="line-598"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0EBB'</span><span class='layout'>,</span> <span class='chr'>'\x0EBC'</span><span class='layout'>)</span>-<a name="line-599"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0EC8'</span><span class='layout'>,</span> <span class='chr'>'\x0ECD'</span><span class='layout'>)</span>-<a name="line-600"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0F18'</span><span class='layout'>,</span> <span class='chr'>'\x0F19'</span><span class='layout'>)</span>-<a name="line-601"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0F35'</span><span class='layout'>,</span> <span class='chr'>'\x0F35'</span><span class='layout'>)</span>-<a name="line-602"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0F37'</span><span class='layout'>,</span> <span class='chr'>'\x0F37'</span><span class='layout'>)</span>-<a name="line-603"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0F39'</span><span class='layout'>,</span> <span class='chr'>'\x0F39'</span><span class='layout'>)</span>-<a name="line-604"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0F3E'</span><span class='layout'>,</span> <span class='chr'>'\x0F3E'</span><span class='layout'>)</span>-<a name="line-605"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0F3F'</span><span class='layout'>,</span> <span class='chr'>'\x0F3F'</span><span class='layout'>)</span>-<a name="line-606"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0F71'</span><span class='layout'>,</span> <span class='chr'>'\x0F84'</span><span class='layout'>)</span>-<a name="line-607"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0F86'</span><span class='layout'>,</span> <span class='chr'>'\x0F8B'</span><span class='layout'>)</span>-<a name="line-608"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0F90'</span><span class='layout'>,</span> <span class='chr'>'\x0F95'</span><span class='layout'>)</span>-<a name="line-609"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0F97'</span><span class='layout'>,</span> <span class='chr'>'\x0F97'</span><span class='layout'>)</span>-<a name="line-610"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0F99'</span><span class='layout'>,</span> <span class='chr'>'\x0FAD'</span><span class='layout'>)</span>-<a name="line-611"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0FB1'</span><span class='layout'>,</span> <span class='chr'>'\x0FB7'</span><span class='layout'>)</span>-<a name="line-612"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0FB9'</span><span class='layout'>,</span> <span class='chr'>'\x0FB9'</span><span class='layout'>)</span>-<a name="line-613"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x20D0'</span><span class='layout'>,</span> <span class='chr'>'\x20DC'</span><span class='layout'>)</span>-<a name="line-614"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x20E1'</span><span class='layout'>,</span> <span class='chr'>'\x20E1'</span><span class='layout'>)</span>-<a name="line-615"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x302A'</span><span class='layout'>,</span> <span class='chr'>'\x302F'</span><span class='layout'>)</span>-<a name="line-616"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x3099'</span><span class='layout'>,</span> <span class='chr'>'\x3099'</span><span class='layout'>)</span>-<a name="line-617"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x309A'</span><span class='layout'>,</span> <span class='chr'>'\x309A'</span><span class='layout'>)</span>-<a name="line-618"></a> <span class='keyglyph'>]</span>-<a name="line-619"></a>-<a name="line-620"></a><span class='comment'>-- |</span>-<a name="line-621"></a><span class='comment'>-- checking for XML digit</span>-<a name="line-622"></a>-<a name="line-623"></a><a name="isXmlDigit"></a><span class='definition'>isXmlDigit</span> <span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-624"></a><span class='definition'>isXmlDigit</span> <span class='varid'>c</span>-<a name="line-625"></a> <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>-<a name="line-626"></a> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\x0030'</span><span class='layout'>,</span> <span class='chr'>'\x0039'</span><span class='layout'>)</span>-<a name="line-627"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0660'</span><span class='layout'>,</span> <span class='chr'>'\x0669'</span><span class='layout'>)</span>-<a name="line-628"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x06F0'</span><span class='layout'>,</span> <span class='chr'>'\x06F9'</span><span class='layout'>)</span>-<a name="line-629"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0966'</span><span class='layout'>,</span> <span class='chr'>'\x096F'</span><span class='layout'>)</span>-<a name="line-630"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x09E6'</span><span class='layout'>,</span> <span class='chr'>'\x09EF'</span><span class='layout'>)</span>-<a name="line-631"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0A66'</span><span class='layout'>,</span> <span class='chr'>'\x0A6F'</span><span class='layout'>)</span>-<a name="line-632"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0AE6'</span><span class='layout'>,</span> <span class='chr'>'\x0AEF'</span><span class='layout'>)</span>-<a name="line-633"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0B66'</span><span class='layout'>,</span> <span class='chr'>'\x0B6F'</span><span class='layout'>)</span>-<a name="line-634"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0BE7'</span><span class='layout'>,</span> <span class='chr'>'\x0BEF'</span><span class='layout'>)</span>-<a name="line-635"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0C66'</span><span class='layout'>,</span> <span class='chr'>'\x0C6F'</span><span class='layout'>)</span>-<a name="line-636"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0CE6'</span><span class='layout'>,</span> <span class='chr'>'\x0CEF'</span><span class='layout'>)</span>-<a name="line-637"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0D66'</span><span class='layout'>,</span> <span class='chr'>'\x0D6F'</span><span class='layout'>)</span>-<a name="line-638"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0E50'</span><span class='layout'>,</span> <span class='chr'>'\x0E59'</span><span class='layout'>)</span>-<a name="line-639"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0ED0'</span><span class='layout'>,</span> <span class='chr'>'\x0ED9'</span><span class='layout'>)</span>-<a name="line-640"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0F20'</span><span class='layout'>,</span> <span class='chr'>'\x0F29'</span><span class='layout'>)</span>-<a name="line-641"></a> <span class='keyglyph'>]</span>-<a name="line-642"></a>-<a name="line-643"></a><span class='comment'>-- |</span>-<a name="line-644"></a><span class='comment'>-- checking for XML extender</span>-<a name="line-645"></a>-<a name="line-646"></a><a name="isXmlExtender"></a><span class='definition'>isXmlExtender</span> <span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-647"></a><span class='definition'>isXmlExtender</span> <span class='varid'>c</span>-<a name="line-648"></a> <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>-<a name="line-649"></a> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\x00B7'</span><span class='layout'>,</span> <span class='chr'>'\x00B7'</span><span class='layout'>)</span>-<a name="line-650"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x02D0'</span><span class='layout'>,</span> <span class='chr'>'\x02D0'</span><span class='layout'>)</span>-<a name="line-651"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x02D1'</span><span class='layout'>,</span> <span class='chr'>'\x02D1'</span><span class='layout'>)</span>-<a name="line-652"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0387'</span><span class='layout'>,</span> <span class='chr'>'\x0387'</span><span class='layout'>)</span>-<a name="line-653"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0640'</span><span class='layout'>,</span> <span class='chr'>'\x0640'</span><span class='layout'>)</span>-<a name="line-654"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0E46'</span><span class='layout'>,</span> <span class='chr'>'\x0E46'</span><span class='layout'>)</span>-<a name="line-655"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x0EC6'</span><span class='layout'>,</span> <span class='chr'>'\x0EC6'</span><span class='layout'>)</span>-<a name="line-656"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x3005'</span><span class='layout'>,</span> <span class='chr'>'\x3005'</span><span class='layout'>)</span>-<a name="line-657"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x3031'</span><span class='layout'>,</span> <span class='chr'>'\x3035'</span><span class='layout'>)</span>-<a name="line-658"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x309D'</span><span class='layout'>,</span> <span class='chr'>'\x309E'</span><span class='layout'>)</span>-<a name="line-659"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x30FC'</span><span class='layout'>,</span> <span class='chr'>'\x30FE'</span><span class='layout'>)</span>-<a name="line-660"></a> <span class='keyglyph'>]</span>-<a name="line-661"></a>-<a name="line-662"></a><span class='comment'>-- |</span>-<a name="line-663"></a><span class='comment'>-- checking for XML control or permanently discouraged char</span>-<a name="line-664"></a><span class='comment'>--</span>-<a name="line-665"></a><span class='comment'>-- see Errata to XML1.0 (http:\/\/www.w3.org\/XML\/xml-V10-2e-errata) No 46</span>-<a name="line-666"></a><span class='comment'>--</span>-<a name="line-667"></a><span class='comment'>-- Document authors are encouraged to avoid "compatibility characters",</span>-<a name="line-668"></a><span class='comment'>-- as defined in section 6.8 of [Unicode] (see also D21 in section 3.6 of [Unicode3]).</span>-<a name="line-669"></a><span class='comment'>-- The characters defined in the following ranges are also discouraged.</span>-<a name="line-670"></a><span class='comment'>-- They are either control characters or permanently undefined Unicode characters:</span>-<a name="line-671"></a>-<a name="line-672"></a>-<a name="line-673"></a><a name="isXmlControlOrPermanentlyUndefined"></a><span class='definition'>isXmlControlOrPermanentlyUndefined</span> <span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-674"></a><span class='definition'>isXmlControlOrPermanentlyUndefined</span> <span class='varid'>c</span>-<a name="line-675"></a> <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>-<a name="line-676"></a> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\x7F'</span><span class='layout'>,</span> <span class='chr'>'\x84'</span><span class='layout'>)</span>-<a name="line-677"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x86'</span><span class='layout'>,</span> <span class='chr'>'\x9F'</span><span class='layout'>)</span>-<a name="line-678"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\xFDD0'</span><span class='layout'>,</span> <span class='chr'>'\xFDDF'</span><span class='layout'>)</span>-<a name="line-679"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x1FFFE'</span><span class='layout'>,</span> <span class='chr'>'\x1FFFF'</span><span class='layout'>)</span>-<a name="line-680"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x2FFFE'</span><span class='layout'>,</span> <span class='chr'>'\x2FFFF'</span><span class='layout'>)</span>-<a name="line-681"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x3FFFE'</span><span class='layout'>,</span> <span class='chr'>'\x3FFFF'</span><span class='layout'>)</span>-<a name="line-682"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x4FFFE'</span><span class='layout'>,</span> <span class='chr'>'\x4FFFF'</span><span class='layout'>)</span>-<a name="line-683"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x5FFFE'</span><span class='layout'>,</span> <span class='chr'>'\x5FFFF'</span><span class='layout'>)</span>-<a name="line-684"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x6FFFE'</span><span class='layout'>,</span> <span class='chr'>'\x6FFFF'</span><span class='layout'>)</span>-<a name="line-685"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x7FFFE'</span><span class='layout'>,</span> <span class='chr'>'\x7FFFF'</span><span class='layout'>)</span>-<a name="line-686"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x8FFFE'</span><span class='layout'>,</span> <span class='chr'>'\x8FFFF'</span><span class='layout'>)</span>-<a name="line-687"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x9FFFE'</span><span class='layout'>,</span> <span class='chr'>'\x9FFFF'</span><span class='layout'>)</span>-<a name="line-688"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\xAFFFE'</span><span class='layout'>,</span> <span class='chr'>'\xAFFFF'</span><span class='layout'>)</span>-<a name="line-689"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\xBFFFE'</span><span class='layout'>,</span> <span class='chr'>'\xBFFFF'</span><span class='layout'>)</span>-<a name="line-690"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\xCFFFE'</span><span class='layout'>,</span> <span class='chr'>'\xCFFFF'</span><span class='layout'>)</span>-<a name="line-691"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\xDFFFE'</span><span class='layout'>,</span> <span class='chr'>'\xDFFFF'</span><span class='layout'>)</span>-<a name="line-692"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\xEFFFE'</span><span class='layout'>,</span> <span class='chr'>'\xEFFFF'</span><span class='layout'>)</span>-<a name="line-693"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\xFFFFE'</span><span class='layout'>,</span> <span class='chr'>'\xFFFFF'</span><span class='layout'>)</span>-<a name="line-694"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\x10FFFE'</span><span class='layout'>,</span> <span class='chr'>'\x10FFFF'</span><span class='layout'>)</span>-<a name="line-695"></a> <span class='keyglyph'>]</span>-<a name="line-696"></a>-<a name="line-697"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-698"></a>-<a name="line-699"></a><a name="isInList"></a><span class='definition'>isInList</span> <span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>Unicode</span><span class='layout'>,</span> <span class='conid'>Unicode</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-700"></a><span class='definition'>isInList</span> <span class='varid'>i</span> <span class='keyglyph'>=</span>-<a name="line-701"></a> <span class='varid'>foldr</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='layout'>(</span><span class='varid'>lb</span><span class='layout'>,</span> <span class='varid'>ub</span><span class='layout'>)</span> <span class='varid'>b</span> <span class='keyglyph'>-></span> <span class='varid'>i</span> <span class='varop'>>=</span> <span class='varid'>lb</span> <span class='varop'>&&</span> <span class='layout'>(</span><span class='varid'>i</span> <span class='varop'><=</span> <span class='varid'>ub</span> <span class='varop'>||</span> <span class='varid'>b</span><span class='layout'>)</span><span class='layout'>)</span> <span class='conid'>False</span>-<a name="line-702"></a> <span class='comment'>{- The expression (i>=lb && i<=ub) || b would work more generally,-<a name="line-703"></a> but in a sorted list, the above one aborts the computation as early as possible. -}</span>-<a name="line-704"></a>-<a name="line-705"></a><span class='comment'>{--<a name="line-706"></a>isInList' :: Unicode -> [(Unicode, Unicode)] -> Bool-<a name="line-707"></a>isInList' i ((lb, ub) : l)-<a name="line-708"></a> | i < lb = False-<a name="line-709"></a> | i <= ub = True-<a name="line-710"></a> | otherwise = isInList' i l-<a name="line-711"></a>-<a name="line-712"></a>isInList' _ []-<a name="line-713"></a> = False-<a name="line-714"></a>-<a name="line-715"></a>{- works, but is not so fast -}-<a name="line-716"></a>isInList'' :: Unicode -> [(Unicode, Unicode)] -> Bool-<a name="line-717"></a>isInList'' i = any (flip isInRange i)-<a name="line-718"></a>-<a name="line-719"></a>-- move to an Utility module?-<a name="line-720"></a>isInRange :: Ord a => (a,a) -> a -> Bool-<a name="line-721"></a>isInRange (l,r) x = l<=x && x<=r-<a name="line-722"></a>-<a name="line-723"></a>propIsInList :: Bool-<a name="line-724"></a>propIsInList =-<a name="line-725"></a> all-<a name="line-726"></a> (\c -> let dict = [ ('\x0041', '\x005A'), ('\x0061', '\x007A') ]-<a name="line-727"></a> b0 = isInList c dict-<a name="line-728"></a> b1 = isInList' c dict-<a name="line-729"></a> b2 = isInList'' c dict-<a name="line-730"></a> in b0 == b1 && b0 == b2)-<a name="line-731"></a> ['\x00'..'\x100']-<a name="line-732"></a>-}</span>-<a name="line-733"></a>-<a name="line-734"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-735"></a>-<a name="line-736"></a><span class='comment'>-- |</span>-<a name="line-737"></a><span class='comment'>-- code conversion from latin1 to Unicode</span>-<a name="line-738"></a>-<a name="line-739"></a><a name="latin1ToUnicode"></a><span class='definition'>latin1ToUnicode</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>UString</span>-<a name="line-740"></a><span class='definition'>latin1ToUnicode</span> <span class='keyglyph'>=</span> <span class='varid'>id</span>-<a name="line-741"></a>-<a name="line-742"></a><a name="latinToUnicode"></a><span class='definition'>latinToUnicode</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>Char</span><span class='layout'>,</span> <span class='conid'>Char</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>UString</span>-<a name="line-743"></a><span class='definition'>latinToUnicode</span> <span class='varid'>tt</span>-<a name="line-744"></a> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>charToUni</span>-<a name="line-745"></a> <span class='keyword'>where</span>-<a name="line-746"></a> <span class='varid'>charToUni</span> <span class='varid'>c</span> <span class='keyglyph'>=</span>-<a name="line-747"></a> <span class='varid'>foldr</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='layout'>(</span><span class='varid'>src</span><span class='layout'>,</span><span class='varid'>dst</span><span class='layout'>)</span> <span class='varid'>r</span> <span class='keyglyph'>-></span>-<a name="line-748"></a> <span class='keyword'>case</span> <span class='varid'>compare</span> <span class='varid'>c</span> <span class='varid'>src</span> <span class='keyword'>of</span>-<a name="line-749"></a> <span class='conid'>EQ</span> <span class='keyglyph'>-></span> <span class='varid'>dst</span>-<a name="line-750"></a> <span class='conid'>LT</span> <span class='keyglyph'>-></span> <span class='varid'>c</span> <span class='comment'>{- not found in table -}</span>-<a name="line-751"></a> <span class='conid'>GT</span> <span class='keyglyph'>-></span> <span class='varid'>r</span><span class='layout'>)</span> <span class='varid'>c</span> <span class='varid'>tt</span>-<a name="line-752"></a>-<a name="line-753"></a><span class='comment'>-- | conversion from ASCII to unicode with check for legal ASCII char set</span>-<a name="line-754"></a><span class='comment'>--</span>-<a name="line-755"></a><span class='comment'>-- Structure of decoding function copied from 'Data.Char.UTF8.decode'.</span>-<a name="line-756"></a>-<a name="line-757"></a><a name="decodeAscii"></a><span class='definition'>decodeAscii</span> <span class='keyglyph'>::</span> <span class='conid'>DecodingFct</span>-<a name="line-758"></a><span class='definition'>decodeAscii</span>-<a name="line-759"></a> <span class='keyglyph'>=</span> <span class='varid'>swap</span> <span class='varop'>.</span> <span class='varid'>partitionEither</span> <span class='varop'>.</span> <span class='varid'>decodeAsciiEmbedErrors</span>-<a name="line-760"></a>-<a name="line-761"></a><a name="decodeAsciiEmbedErrors"></a><span class='definition'>decodeAsciiEmbedErrors</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>UStringWithErrors</span>-<a name="line-762"></a><span class='definition'>decodeAsciiEmbedErrors</span> <span class='varid'>str</span>-<a name="line-763"></a> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='layout'>(</span><span class='varid'>c</span><span class='layout'>,</span><span class='varid'>pos</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='keyword'>if</span> <span class='varid'>isValid</span> <span class='varid'>c</span>-<a name="line-764"></a> <span class='keyword'>then</span> <span class='conid'>Right</span> <span class='varid'>c</span>-<a name="line-765"></a> <span class='keyword'>else</span> <span class='conid'>Left</span> <span class='layout'>(</span><span class='varid'>toErrStr</span> <span class='varid'>c</span> <span class='varid'>pos</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varid'>posStr</span>-<a name="line-766"></a> <span class='keyword'>where</span>-<a name="line-767"></a> <span class='varid'>posStr</span> <span class='keyglyph'>=</span> <span class='varid'>zip</span> <span class='varid'>str</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='num'>0</span><span class='keyglyph'>::</span><span class='conid'>Int</span><span class='layout'>)</span><span class='keyglyph'>..</span><span class='keyglyph'>]</span>-<a name="line-768"></a> <span class='varid'>toErrStr</span> <span class='varid'>errChr</span> <span class='varid'>pos</span>-<a name="line-769"></a> <span class='keyglyph'>=</span> <span class='str'>" at input position "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>pos</span> <span class='varop'>++</span> <span class='str'>": none ASCII char "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>errChr</span>-<a name="line-770"></a> <span class='varid'>isValid</span> <span class='varid'>x</span> <span class='keyglyph'>=</span> <span class='varid'>x</span> <span class='varop'><</span> <span class='chr'>'\x80'</span>-<a name="line-771"></a>-<a name="line-772"></a><span class='comment'>-- |</span>-<a name="line-773"></a><span class='comment'>-- UCS-2 big endian to Unicode conversion</span>-<a name="line-774"></a>-<a name="line-775"></a><a name="ucs2BigEndianToUnicode"></a><span class='definition'>ucs2BigEndianToUnicode</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>UString</span>-<a name="line-776"></a>-<a name="line-777"></a><span class='definition'>ucs2BigEndianToUnicode</span> <span class='layout'>(</span><span class='varid'>b</span> <span class='conop'>:</span> <span class='varid'>l</span> <span class='conop'>:</span> <span class='varid'>r</span><span class='layout'>)</span>-<a name="line-778"></a> <span class='keyglyph'>=</span> <span class='varid'>toEnum</span> <span class='layout'>(</span><span class='varid'>fromEnum</span> <span class='varid'>b</span> <span class='varop'>*</span> <span class='num'>256</span> <span class='varop'>+</span> <span class='varid'>fromEnum</span> <span class='varid'>l</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>ucs2BigEndianToUnicode</span> <span class='varid'>r</span>-<a name="line-779"></a>-<a name="line-780"></a><span class='definition'>ucs2BigEndianToUnicode</span> <span class='conid'>[]</span>-<a name="line-781"></a> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-782"></a>-<a name="line-783"></a><span class='definition'>ucs2BigEndianToUnicode</span> <span class='keyword'>_</span>-<a name="line-784"></a> <span class='keyglyph'>=</span> <span class='conid'>[]</span> <span class='comment'>-- error "illegal UCS-2 byte input sequence with odd length"</span>-<a name="line-785"></a> <span class='comment'>-- is ignored (garbage in, garbage out)</span>-<a name="line-786"></a>-<a name="line-787"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-788"></a>-<a name="line-789"></a><span class='comment'>-- |</span>-<a name="line-790"></a><span class='comment'>-- UCS-2 little endian to Unicode conversion</span>-<a name="line-791"></a>-<a name="line-792"></a><a name="ucs2LittleEndianToUnicode"></a><span class='definition'>ucs2LittleEndianToUnicode</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>UString</span>-<a name="line-793"></a>-<a name="line-794"></a><span class='definition'>ucs2LittleEndianToUnicode</span> <span class='layout'>(</span><span class='varid'>l</span> <span class='conop'>:</span> <span class='varid'>b</span> <span class='conop'>:</span> <span class='varid'>r</span><span class='layout'>)</span>-<a name="line-795"></a> <span class='keyglyph'>=</span> <span class='varid'>toEnum</span> <span class='layout'>(</span><span class='varid'>fromEnum</span> <span class='varid'>b</span> <span class='varop'>*</span> <span class='num'>256</span> <span class='varop'>+</span> <span class='varid'>fromEnum</span> <span class='varid'>l</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>ucs2LittleEndianToUnicode</span> <span class='varid'>r</span>-<a name="line-796"></a>-<a name="line-797"></a><span class='definition'>ucs2LittleEndianToUnicode</span> <span class='conid'>[]</span>-<a name="line-798"></a> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-799"></a>-<a name="line-800"></a><span class='definition'>ucs2LittleEndianToUnicode</span> <span class='keyglyph'>[</span><span class='keyword'>_</span><span class='keyglyph'>]</span>-<a name="line-801"></a> <span class='keyglyph'>=</span> <span class='conid'>[]</span> <span class='comment'>-- error "illegal UCS-2 byte input sequence with odd length"</span>-<a name="line-802"></a> <span class='comment'>-- is ignored</span>-<a name="line-803"></a>-<a name="line-804"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-805"></a>-<a name="line-806"></a><span class='comment'>-- |</span>-<a name="line-807"></a><span class='comment'>-- UCS-2 to UTF-8 conversion with byte order mark analysis</span>-<a name="line-808"></a>-<a name="line-809"></a><a name="ucs2ToUnicode"></a><span class='definition'>ucs2ToUnicode</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>UString</span>-<a name="line-810"></a>-<a name="line-811"></a><span class='definition'>ucs2ToUnicode</span> <span class='layout'>(</span><span class='chr'>'\xFE'</span><span class='conop'>:</span><span class='chr'>'\xFF'</span><span class='conop'>:</span><span class='varid'>s</span><span class='layout'>)</span> <span class='comment'>-- 2 byte mark for big endian encoding</span>-<a name="line-812"></a> <span class='keyglyph'>=</span> <span class='varid'>ucs2BigEndianToUnicode</span> <span class='varid'>s</span>-<a name="line-813"></a>-<a name="line-814"></a><span class='definition'>ucs2ToUnicode</span> <span class='layout'>(</span><span class='chr'>'\xFF'</span><span class='conop'>:</span><span class='chr'>'\xFE'</span><span class='conop'>:</span><span class='varid'>s</span><span class='layout'>)</span> <span class='comment'>-- 2 byte mark for little endian encoding</span>-<a name="line-815"></a> <span class='keyglyph'>=</span> <span class='varid'>ucs2LittleEndianToUnicode</span> <span class='varid'>s</span>-<a name="line-816"></a>-<a name="line-817"></a><span class='definition'>ucs2ToUnicode</span> <span class='varid'>s</span>-<a name="line-818"></a> <span class='keyglyph'>=</span> <span class='varid'>ucs2BigEndianToUnicode</span> <span class='varid'>s</span> <span class='comment'>-- default: big endian</span>-<a name="line-819"></a>-<a name="line-820"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-821"></a>-<a name="line-822"></a><span class='comment'>-- |</span>-<a name="line-823"></a><span class='comment'>-- UTF-8 to Unicode conversion with deletion of leading byte order mark, as described in XML standard F.1</span>-<a name="line-824"></a>-<a name="line-825"></a><a name="utf8ToUnicode"></a><span class='definition'>utf8ToUnicode</span> <span class='keyglyph'>::</span> <span class='conid'>DecodingFct</span>-<a name="line-826"></a>-<a name="line-827"></a><span class='definition'>utf8ToUnicode</span> <span class='layout'>(</span><span class='chr'>'\xEF'</span><span class='conop'>:</span><span class='chr'>'\xBB'</span><span class='conop'>:</span><span class='chr'>'\xBF'</span><span class='conop'>:</span><span class='varid'>s</span><span class='layout'>)</span> <span class='comment'>-- remove byte order mark ( XML standard F.1 )</span>-<a name="line-828"></a> <span class='keyglyph'>=</span> <span class='varid'>decodeUtf8</span> <span class='varid'>s</span>-<a name="line-829"></a>-<a name="line-830"></a><span class='definition'>utf8ToUnicode</span> <span class='varid'>s</span>-<a name="line-831"></a> <span class='keyglyph'>=</span> <span class='varid'>decodeUtf8</span> <span class='varid'>s</span>-<a name="line-832"></a>-<a name="line-833"></a><a name="utf8ToUnicodeEmbedErrors"></a><span class='definition'>utf8ToUnicodeEmbedErrors</span> <span class='keyglyph'>::</span> <span class='conid'>DecodingFctEmbedErrors</span>-<a name="line-834"></a>-<a name="line-835"></a><span class='definition'>utf8ToUnicodeEmbedErrors</span> <span class='layout'>(</span><span class='chr'>'\xEF'</span><span class='conop'>:</span><span class='chr'>'\xBB'</span><span class='conop'>:</span><span class='chr'>'\xBF'</span><span class='conop'>:</span><span class='varid'>s</span><span class='layout'>)</span> <span class='comment'>-- remove byte order mark ( XML standard F.1 )</span>-<a name="line-836"></a> <span class='keyglyph'>=</span> <span class='varid'>decodeUtf8EmbedErrors</span> <span class='varid'>s</span>-<a name="line-837"></a>-<a name="line-838"></a><span class='definition'>utf8ToUnicodeEmbedErrors</span> <span class='varid'>s</span>-<a name="line-839"></a> <span class='keyglyph'>=</span> <span class='varid'>decodeUtf8EmbedErrors</span> <span class='varid'>s</span>-<a name="line-840"></a>-<a name="line-841"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-842"></a>-<a name="line-843"></a><span class='comment'>-- |</span>-<a name="line-844"></a><span class='comment'>-- UTF-16 big endian to UTF-8 conversion with removal of byte order mark</span>-<a name="line-845"></a>-<a name="line-846"></a><a name="utf16beToUnicode"></a><span class='definition'>utf16beToUnicode</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>UString</span>-<a name="line-847"></a>-<a name="line-848"></a><span class='definition'>utf16beToUnicode</span> <span class='layout'>(</span><span class='chr'>'\xFE'</span><span class='conop'>:</span><span class='chr'>'\xFF'</span><span class='conop'>:</span><span class='varid'>s</span><span class='layout'>)</span> <span class='comment'>-- remove byte order mark</span>-<a name="line-849"></a> <span class='keyglyph'>=</span> <span class='varid'>ucs2BigEndianToUnicode</span> <span class='varid'>s</span>-<a name="line-850"></a>-<a name="line-851"></a><span class='definition'>utf16beToUnicode</span> <span class='varid'>s</span>-<a name="line-852"></a> <span class='keyglyph'>=</span> <span class='varid'>ucs2BigEndianToUnicode</span> <span class='varid'>s</span>-<a name="line-853"></a>-<a name="line-854"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-855"></a>-<a name="line-856"></a><span class='comment'>-- |</span>-<a name="line-857"></a><span class='comment'>-- UTF-16 little endian to UTF-8 conversion with removal of byte order mark</span>-<a name="line-858"></a>-<a name="line-859"></a><a name="utf16leToUnicode"></a><span class='definition'>utf16leToUnicode</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>UString</span>-<a name="line-860"></a>-<a name="line-861"></a><span class='definition'>utf16leToUnicode</span> <span class='layout'>(</span><span class='chr'>'\xFF'</span><span class='conop'>:</span><span class='chr'>'\xFE'</span><span class='conop'>:</span><span class='varid'>s</span><span class='layout'>)</span> <span class='comment'>-- remove byte order mark</span>-<a name="line-862"></a> <span class='keyglyph'>=</span> <span class='varid'>ucs2LittleEndianToUnicode</span> <span class='varid'>s</span>-<a name="line-863"></a>-<a name="line-864"></a><span class='definition'>utf16leToUnicode</span> <span class='varid'>s</span>-<a name="line-865"></a> <span class='keyglyph'>=</span> <span class='varid'>ucs2LittleEndianToUnicode</span> <span class='varid'>s</span>-<a name="line-866"></a>-<a name="line-867"></a>-<a name="line-868"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-869"></a>-<a name="line-870"></a><span class='comment'>-- |</span>-<a name="line-871"></a><span class='comment'>-- substitute all Unicode characters, that are not legal 1-byte</span>-<a name="line-872"></a><span class='comment'>-- UTF-8 XML characters by a character reference.</span>-<a name="line-873"></a><span class='comment'>--</span>-<a name="line-874"></a><span class='comment'>-- This function can be used to translate all text nodes and</span>-<a name="line-875"></a><span class='comment'>-- attribute values into pure ascii.</span>-<a name="line-876"></a><span class='comment'>--</span>-<a name="line-877"></a><span class='comment'>-- see also : 'unicodeToLatin1'</span>-<a name="line-878"></a>-<a name="line-879"></a><a name="unicodeToXmlEntity"></a><span class='definition'>unicodeToXmlEntity</span> <span class='keyglyph'>::</span> <span class='conid'>UString</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-880"></a><span class='definition'>unicodeToXmlEntity</span>-<a name="line-881"></a> <span class='keyglyph'>=</span> <span class='varid'>escape</span> <span class='varid'>is1ByteXmlChar</span> <span class='layout'>(</span><span class='varid'>intToCharRef</span> <span class='varop'>.</span> <span class='varid'>fromEnum</span><span class='layout'>)</span>-<a name="line-882"></a>-<a name="line-883"></a><span class='comment'>-- |</span>-<a name="line-884"></a><span class='comment'>-- substitute all Unicode characters, that are not legal latin1</span>-<a name="line-885"></a><span class='comment'>-- UTF-8 XML characters by a character reference.</span>-<a name="line-886"></a><span class='comment'>--</span>-<a name="line-887"></a><span class='comment'>-- This function can be used to translate all text nodes and</span>-<a name="line-888"></a><span class='comment'>-- attribute values into ISO latin1.</span>-<a name="line-889"></a><span class='comment'>--</span>-<a name="line-890"></a><span class='comment'>-- see also : 'unicodeToXmlEntity'</span>-<a name="line-891"></a>-<a name="line-892"></a><a name="unicodeToLatin1"></a><span class='definition'>unicodeToLatin1</span> <span class='keyglyph'>::</span> <span class='conid'>UString</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-893"></a><span class='definition'>unicodeToLatin1</span>-<a name="line-894"></a> <span class='keyglyph'>=</span> <span class='varid'>escape</span> <span class='varid'>isXmlLatin1Char</span> <span class='layout'>(</span><span class='varid'>intToCharRef</span> <span class='varop'>.</span> <span class='varid'>fromEnum</span><span class='layout'>)</span>-<a name="line-895"></a>-<a name="line-896"></a>-<a name="line-897"></a><a name="escape"></a><span class='comment'>-- |</span>-<a name="line-898"></a><span class='comment'>-- substitute selected characters</span>-<a name="line-899"></a><span class='comment'>-- The @check@ function returns 'True' whenever a character needs to substitution</span>-<a name="line-900"></a><span class='comment'>-- The function @esc@ computes a substitute.</span>-<a name="line-901"></a><span class='definition'>escape</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Unicode</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='conid'>Unicode</span> <span class='keyglyph'>-></span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>UString</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-902"></a><span class='definition'>escape</span> <span class='varid'>check</span> <span class='varid'>esc</span> <span class='keyglyph'>=</span>-<a name="line-903"></a> <span class='varid'>concatMap</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>uc</span> <span class='keyglyph'>-></span> <span class='keyword'>if</span> <span class='varid'>check</span> <span class='varid'>uc</span> <span class='keyword'>then</span> <span class='keyglyph'>[</span><span class='varid'>uc</span><span class='keyglyph'>]</span> <span class='keyword'>else</span> <span class='varid'>esc</span> <span class='varid'>uc</span><span class='layout'>)</span>-<a name="line-904"></a>-<a name="line-905"></a><span class='comment'>-- |</span>-<a name="line-906"></a><span class='comment'>-- removes all non ascii chars, may be used to transform</span>-<a name="line-907"></a><span class='comment'>-- a document into a pure ascii representation by removing</span>-<a name="line-908"></a><span class='comment'>-- all non ascii chars from tag and attibute names</span>-<a name="line-909"></a><span class='comment'>--</span>-<a name="line-910"></a><span class='comment'>-- see also : 'unicodeRemoveNoneLatin1', 'unicodeToXmlEntity'</span>-<a name="line-911"></a>-<a name="line-912"></a><a name="unicodeRemoveNoneAscii"></a><span class='definition'>unicodeRemoveNoneAscii</span> <span class='keyglyph'>::</span> <span class='conid'>UString</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-913"></a><span class='definition'>unicodeRemoveNoneAscii</span>-<a name="line-914"></a> <span class='keyglyph'>=</span> <span class='varid'>filter</span> <span class='varid'>is1ByteXmlChar</span>-<a name="line-915"></a>-<a name="line-916"></a><span class='comment'>-- |</span>-<a name="line-917"></a><span class='comment'>-- removes all non latin1 chars, may be used to transform</span>-<a name="line-918"></a><span class='comment'>-- a document into a pure ascii representation by removing</span>-<a name="line-919"></a><span class='comment'>-- all non ascii chars from tag and attibute names</span>-<a name="line-920"></a><span class='comment'>--</span>-<a name="line-921"></a><span class='comment'>-- see also : 'unicodeRemoveNoneAscii', 'unicodeToLatin1'</span>-<a name="line-922"></a>-<a name="line-923"></a><a name="unicodeRemoveNoneLatin1"></a><span class='definition'>unicodeRemoveNoneLatin1</span> <span class='keyglyph'>::</span> <span class='conid'>UString</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-924"></a><span class='definition'>unicodeRemoveNoneLatin1</span>-<a name="line-925"></a> <span class='keyglyph'>=</span> <span class='varid'>filter</span> <span class='varid'>isXmlLatin1Char</span>-<a name="line-926"></a>-<a name="line-927"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-928"></a>-<a name="line-929"></a><span class='comment'>-- |</span>-<a name="line-930"></a><span class='comment'>-- convert an Unicode into a XML character reference.</span>-<a name="line-931"></a><span class='comment'>--</span>-<a name="line-932"></a><span class='comment'>-- see also : 'intToCharRefHex'</span>-<a name="line-933"></a>-<a name="line-934"></a><a name="intToCharRef"></a><span class='definition'>intToCharRef</span> <span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-935"></a><span class='definition'>intToCharRef</span> <span class='varid'>i</span>-<a name="line-936"></a> <span class='keyglyph'>=</span> <span class='str'>"&#"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>i</span> <span class='varop'>++</span> <span class='str'>";"</span>-<a name="line-937"></a>-<a name="line-938"></a><span class='comment'>-- |</span>-<a name="line-939"></a><span class='comment'>-- convert an Unicode into a XML hexadecimal character reference.</span>-<a name="line-940"></a><span class='comment'>--</span>-<a name="line-941"></a><span class='comment'>-- see also: 'intToCharRef'</span>-<a name="line-942"></a>-<a name="line-943"></a><a name="intToCharRefHex"></a><span class='definition'>intToCharRefHex</span> <span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-944"></a><span class='definition'>intToCharRefHex</span> <span class='varid'>i</span>-<a name="line-945"></a> <span class='keyglyph'>=</span> <span class='str'>"&#x"</span> <span class='varop'>++</span> <span class='varid'>h2</span> <span class='varop'>++</span> <span class='str'>";"</span>-<a name="line-946"></a> <span class='keyword'>where</span>-<a name="line-947"></a> <span class='varid'>h1</span> <span class='keyglyph'>=</span> <span class='varid'>intToHexString</span> <span class='varid'>i</span>-<a name="line-948"></a> <span class='varid'>h2</span> <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>length</span> <span class='varid'>h1</span> <span class='varop'>`mod`</span> <span class='num'>2</span> <span class='varop'>==</span> <span class='num'>1</span>-<a name="line-949"></a> <span class='keyword'>then</span> <span class='chr'>'0'</span><span class='conop'>:</span> <span class='varid'>h1</span>-<a name="line-950"></a> <span class='keyword'>else</span> <span class='varid'>h1</span>-<a name="line-951"></a>-<a name="line-952"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-953"></a><span class='comment'>--</span>-<a name="line-954"></a><span class='comment'>-- | White Space (XML Standard 2.3) and</span>-<a name="line-955"></a><span class='comment'>-- end of line handling (2.11)</span>-<a name="line-956"></a><span class='comment'>--</span>-<a name="line-957"></a><span class='comment'>-- \#x0D and \#x0D\#x0A are mapped to \#x0A</span>-<a name="line-958"></a>-<a name="line-959"></a><a name="normalizeNL"></a><span class='definition'>normalizeNL</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-960"></a><span class='definition'>normalizeNL</span> <span class='layout'>(</span><span class='chr'>'\r'</span> <span class='conop'>:</span> <span class='chr'>'\n'</span> <span class='conop'>:</span> <span class='varid'>rest</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='chr'>'\n'</span> <span class='conop'>:</span> <span class='varid'>normalizeNL</span> <span class='varid'>rest</span>-<a name="line-961"></a><span class='definition'>normalizeNL</span> <span class='layout'>(</span><span class='chr'>'\r'</span> <span class='conop'>:</span> <span class='varid'>rest</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='chr'>'\n'</span> <span class='conop'>:</span> <span class='varid'>normalizeNL</span> <span class='varid'>rest</span>-<a name="line-962"></a><span class='definition'>normalizeNL</span> <span class='layout'>(</span><span class='varid'>c</span> <span class='conop'>:</span> <span class='varid'>rest</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>c</span> <span class='conop'>:</span> <span class='varid'>normalizeNL</span> <span class='varid'>rest</span>-<a name="line-963"></a><span class='definition'>normalizeNL</span> <span class='conid'>[]</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-964"></a>-<a name="line-965"></a>-<a name="line-966"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-967"></a>-<a name="line-968"></a><span class='comment'>-- |</span>-<a name="line-969"></a><span class='comment'>-- the table of supported character encoding schemes and the associated</span>-<a name="line-970"></a><span class='comment'>-- conversion functions into Unicode:q</span>-<a name="line-971"></a>-<a name="line-972"></a><span class='comment'>{--<a name="line-973"></a>This table could be derived from decodingTableEither,-<a name="line-974"></a>but this way it is certainly more efficient.-<a name="line-975"></a>-}</span>-<a name="line-976"></a>-<a name="line-977"></a><a name="decodingTable"></a><span class='definition'>decodingTable</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>DecodingFct</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-978"></a><span class='definition'>decodingTable</span>-<a name="line-979"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>utf8</span><span class='layout'>,</span> <span class='varid'>utf8ToUnicode</span> <span class='layout'>)</span>-<a name="line-980"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>isoLatin1</span><span class='layout'>,</span> <span class='varid'>liftDecFct</span> <span class='varid'>latin1ToUnicode</span> <span class='layout'>)</span>-<a name="line-981"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>usAscii</span><span class='layout'>,</span> <span class='varid'>decodeAscii</span> <span class='layout'>)</span>-<a name="line-982"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>ucs2</span><span class='layout'>,</span> <span class='varid'>liftDecFct</span> <span class='varid'>ucs2ToUnicode</span> <span class='layout'>)</span>-<a name="line-983"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>utf16</span><span class='layout'>,</span> <span class='varid'>liftDecFct</span> <span class='varid'>ucs2ToUnicode</span> <span class='layout'>)</span>-<a name="line-984"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>utf16be</span><span class='layout'>,</span> <span class='varid'>liftDecFct</span> <span class='varid'>utf16beToUnicode</span> <span class='layout'>)</span>-<a name="line-985"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>utf16le</span><span class='layout'>,</span> <span class='varid'>liftDecFct</span> <span class='varid'>utf16leToUnicode</span> <span class='layout'>)</span>-<a name="line-986"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_2</span><span class='layout'>,</span> <span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_2</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-987"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_3</span><span class='layout'>,</span> <span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_3</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-988"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_4</span><span class='layout'>,</span> <span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_4</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-989"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_5</span><span class='layout'>,</span> <span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_5</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-990"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_6</span><span class='layout'>,</span> <span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_6</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-991"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_7</span><span class='layout'>,</span> <span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_7</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-992"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_8</span><span class='layout'>,</span> <span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_8</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-993"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_9</span><span class='layout'>,</span> <span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_9</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-994"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_10</span><span class='layout'>,</span> <span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_10</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-995"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_11</span><span class='layout'>,</span> <span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_11</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-996"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_13</span><span class='layout'>,</span> <span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_13</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-997"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_14</span><span class='layout'>,</span> <span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_14</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-998"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_15</span><span class='layout'>,</span> <span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_15</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-999"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_16</span><span class='layout'>,</span> <span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_16</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-1000"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>unicodeString</span><span class='layout'>,</span> <span class='varid'>liftDecFct</span> <span class='varid'>id</span> <span class='layout'>)</span>-<a name="line-1001"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>""</span><span class='layout'>,</span> <span class='varid'>liftDecFct</span> <span class='varid'>id</span> <span class='layout'>)</span> <span class='comment'>-- default</span>-<a name="line-1002"></a> <span class='keyglyph'>]</span>-<a name="line-1003"></a> <span class='keyword'>where</span>-<a name="line-1004"></a> <span class='varid'>liftDecFct</span> <span class='varid'>df</span> <span class='keyglyph'>=</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='varid'>df</span> <span class='varid'>s</span><span class='layout'>,</span> <span class='conid'>[]</span><span class='layout'>)</span>-<a name="line-1005"></a>-<a name="line-1006"></a><span class='comment'>-- |</span>-<a name="line-1007"></a><span class='comment'>-- the lookup function for selecting the decoding function</span>-<a name="line-1008"></a>-<a name="line-1009"></a><a name="getDecodingFct"></a><span class='definition'>getDecodingFct</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Maybe</span> <span class='conid'>DecodingFct</span>-<a name="line-1010"></a><span class='definition'>getDecodingFct</span> <span class='varid'>enc</span>-<a name="line-1011"></a> <span class='keyglyph'>=</span> <span class='varid'>lookup</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>toUpper</span> <span class='varid'>enc</span><span class='layout'>)</span> <span class='varid'>decodingTable</span>-<a name="line-1012"></a>-<a name="line-1013"></a>-<a name="line-1014"></a><span class='comment'>-- |</span>-<a name="line-1015"></a><span class='comment'>-- Similar to 'decodingTable' but it embeds errors</span>-<a name="line-1016"></a><span class='comment'>-- in the string of decoded characters.</span>-<a name="line-1017"></a>-<a name="line-1018"></a><a name="decodingTableEmbedErrors"></a><span class='definition'>decodingTableEmbedErrors</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>DecodingFctEmbedErrors</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-1019"></a><span class='definition'>decodingTableEmbedErrors</span>-<a name="line-1020"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>utf8</span><span class='layout'>,</span> <span class='varid'>utf8ToUnicodeEmbedErrors</span> <span class='layout'>)</span>-<a name="line-1021"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>isoLatin1</span><span class='layout'>,</span> <span class='varid'>liftDecFct</span> <span class='varid'>latin1ToUnicode</span> <span class='layout'>)</span>-<a name="line-1022"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>usAscii</span><span class='layout'>,</span> <span class='varid'>decodeAsciiEmbedErrors</span> <span class='layout'>)</span>-<a name="line-1023"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>ucs2</span><span class='layout'>,</span> <span class='varid'>liftDecFct</span> <span class='varid'>ucs2ToUnicode</span> <span class='layout'>)</span>-<a name="line-1024"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>utf16</span><span class='layout'>,</span> <span class='varid'>liftDecFct</span> <span class='varid'>ucs2ToUnicode</span> <span class='layout'>)</span>-<a name="line-1025"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>utf16be</span><span class='layout'>,</span> <span class='varid'>liftDecFct</span> <span class='varid'>utf16beToUnicode</span> <span class='layout'>)</span>-<a name="line-1026"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>utf16le</span><span class='layout'>,</span> <span class='varid'>liftDecFct</span> <span class='varid'>utf16leToUnicode</span> <span class='layout'>)</span>-<a name="line-1027"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_2</span><span class='layout'>,</span> <span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_2</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-1028"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_3</span><span class='layout'>,</span> <span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_3</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-1029"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_4</span><span class='layout'>,</span> <span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_4</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-1030"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_5</span><span class='layout'>,</span> <span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_5</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-1031"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_6</span><span class='layout'>,</span> <span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_6</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-1032"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_7</span><span class='layout'>,</span> <span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_7</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-1033"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_8</span><span class='layout'>,</span> <span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_8</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-1034"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_9</span><span class='layout'>,</span> <span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_9</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-1035"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_10</span><span class='layout'>,</span> <span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_10</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-1036"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_11</span><span class='layout'>,</span> <span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_11</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-1037"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_13</span><span class='layout'>,</span> <span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_13</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-1038"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_14</span><span class='layout'>,</span> <span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_14</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-1039"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_15</span><span class='layout'>,</span> <span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_15</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-1040"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>iso8859_16</span><span class='layout'>,</span> <span class='varid'>liftDecFct</span> <span class='layout'>(</span><span class='varid'>latinToUnicode</span> <span class='varid'>iso_8859_16</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-1041"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>unicodeString</span><span class='layout'>,</span> <span class='varid'>liftDecFct</span> <span class='varid'>id</span> <span class='layout'>)</span>-<a name="line-1042"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>""</span><span class='layout'>,</span> <span class='varid'>liftDecFct</span> <span class='varid'>id</span> <span class='layout'>)</span> <span class='comment'>-- default</span>-<a name="line-1043"></a> <span class='keyglyph'>]</span>-<a name="line-1044"></a> <span class='keyword'>where</span>-<a name="line-1045"></a> <span class='varid'>liftDecFct</span> <span class='varid'>df</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='conid'>Right</span> <span class='varop'>.</span> <span class='varid'>df</span>-<a name="line-1046"></a>-<a name="line-1047"></a><span class='comment'>-- |</span>-<a name="line-1048"></a><span class='comment'>-- the lookup function for selecting the decoding function</span>-<a name="line-1049"></a>-<a name="line-1050"></a><a name="getDecodingFctEmbedErrors"></a><span class='definition'>getDecodingFctEmbedErrors</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Maybe</span> <span class='conid'>DecodingFctEmbedErrors</span>-<a name="line-1051"></a><span class='definition'>getDecodingFctEmbedErrors</span> <span class='varid'>enc</span>-<a name="line-1052"></a> <span class='keyglyph'>=</span> <span class='varid'>lookup</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>toUpper</span> <span class='varid'>enc</span><span class='layout'>)</span> <span class='varid'>decodingTableEmbedErrors</span>-<a name="line-1053"></a>-<a name="line-1054"></a>-<a name="line-1055"></a>-<a name="line-1056"></a><span class='comment'>-- |</span>-<a name="line-1057"></a><span class='comment'>-- the table of supported output encoding schemes and the associated</span>-<a name="line-1058"></a><span class='comment'>-- conversion functions from Unicode</span>-<a name="line-1059"></a>-<a name="line-1060"></a><a name="outputEncodingTable"></a><span class='definition'>outputEncodingTable</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='layout'>(</span><span class='conid'>UString</span> <span class='keyglyph'>-></span> <span class='conid'>String</span><span class='layout'>)</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-1061"></a><span class='definition'>outputEncodingTable</span>-<a name="line-1062"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>utf8</span><span class='layout'>,</span> <span class='varid'>unicodeToUtf8</span> <span class='layout'>)</span>-<a name="line-1063"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>isoLatin1</span><span class='layout'>,</span> <span class='varid'>unicodeToLatin1</span> <span class='layout'>)</span>-<a name="line-1064"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>usAscii</span><span class='layout'>,</span> <span class='varid'>unicodeToXmlEntity</span> <span class='layout'>)</span>-<a name="line-1065"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>ucs2</span><span class='layout'>,</span> <span class='varid'>ucs2ToUnicode</span> <span class='layout'>)</span>-<a name="line-1066"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>""</span><span class='layout'>,</span> <span class='varid'>unicodeToUtf8</span> <span class='layout'>)</span> <span class='comment'>-- default</span>-<a name="line-1067"></a> <span class='keyglyph'>]</span>-<a name="line-1068"></a>-<a name="line-1069"></a><span class='comment'>-- |</span>-<a name="line-1070"></a><span class='comment'>-- the lookup function for selecting the encoding function</span>-<a name="line-1071"></a>-<a name="line-1072"></a><a name="getOutputEncodingFct"></a><span class='definition'>getOutputEncodingFct</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Maybe</span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>UString</span><span class='layout'>)</span>-<a name="line-1073"></a><span class='definition'>getOutputEncodingFct</span> <span class='varid'>enc</span>-<a name="line-1074"></a> <span class='keyglyph'>=</span> <span class='varid'>lookup</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>toUpper</span> <span class='varid'>enc</span><span class='layout'>)</span> <span class='varid'>outputEncodingTable</span>-<a name="line-1075"></a>-<a name="line-1076"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-1077"></a><span class='comment'>--</span>-<a name="line-1078"></a>-<a name="line-1079"></a><a name="guessEncoding"></a><span class='definition'>guessEncoding</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-1080"></a>-<a name="line-1081"></a><span class='definition'>guessEncoding</span> <span class='layout'>(</span><span class='chr'>'\xFF'</span><span class='conop'>:</span><span class='chr'>'\xFE'</span><span class='conop'>:</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>"UCS-4LE"</span> <span class='comment'>-- with byte order mark</span>-<a name="line-1082"></a><span class='definition'>guessEncoding</span> <span class='layout'>(</span><span class='chr'>'\xFF'</span><span class='conop'>:</span><span class='chr'>'\xFE'</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>"UTF-16LE"</span> <span class='comment'>-- with byte order mark</span>-<a name="line-1083"></a>-<a name="line-1084"></a><span class='definition'>guessEncoding</span> <span class='layout'>(</span><span class='chr'>'\xFE'</span><span class='conop'>:</span><span class='chr'>'\xFF'</span><span class='conop'>:</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>"UCS-4-3421"</span> <span class='comment'>-- with byte order mark</span>-<a name="line-1085"></a><span class='definition'>guessEncoding</span> <span class='layout'>(</span><span class='chr'>'\xFE'</span><span class='conop'>:</span><span class='chr'>'\xFF'</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>"UTF-16BE"</span> <span class='comment'>-- with byte order mark</span>-<a name="line-1086"></a>-<a name="line-1087"></a><span class='definition'>guessEncoding</span> <span class='layout'>(</span><span class='chr'>'\xEF'</span><span class='conop'>:</span><span class='chr'>'\xBB'</span><span class='conop'>:</span><span class='chr'>'\xBF'</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>utf8</span> <span class='comment'>-- with byte order mark</span>-<a name="line-1088"></a>-<a name="line-1089"></a><span class='definition'>guessEncoding</span> <span class='layout'>(</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='chr'>'\xFE'</span><span class='conop'>:</span><span class='chr'>'\xFF'</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>"UCS-4BE"</span> <span class='comment'>-- with byte order mark</span>-<a name="line-1090"></a><span class='definition'>guessEncoding</span> <span class='layout'>(</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='chr'>'\xFF'</span><span class='conop'>:</span><span class='chr'>'\xFE'</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>"UCS-4-2143"</span> <span class='comment'>-- with byte order mark</span>-<a name="line-1091"></a>-<a name="line-1092"></a><span class='definition'>guessEncoding</span> <span class='layout'>(</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='chr'>'\x3C'</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>"UCS-4BE"</span> <span class='comment'>-- "<" of "<?xml"</span>-<a name="line-1093"></a><span class='definition'>guessEncoding</span> <span class='layout'>(</span><span class='chr'>'\x3C'</span><span class='conop'>:</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>"UCS-4LE"</span> <span class='comment'>-- "<" of "<?xml"</span>-<a name="line-1094"></a><span class='definition'>guessEncoding</span> <span class='layout'>(</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='chr'>'\x3C'</span><span class='conop'>:</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>"UCS-4-2143"</span> <span class='comment'>-- "<" of "<?xml"</span>-<a name="line-1095"></a><span class='definition'>guessEncoding</span> <span class='layout'>(</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='chr'>'\x3C'</span><span class='conop'>:</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>"UCS-4-3412"</span> <span class='comment'>-- "<" of "<?xml"</span>-<a name="line-1096"></a>-<a name="line-1097"></a><span class='definition'>guessEncoding</span> <span class='layout'>(</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='chr'>'\x3C'</span><span class='conop'>:</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='chr'>'\x3F'</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>"UTF-16BE"</span> <span class='comment'>-- "<?" of "<?xml"</span>-<a name="line-1098"></a><span class='definition'>guessEncoding</span> <span class='layout'>(</span><span class='chr'>'\x3C'</span><span class='conop'>:</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='chr'>'\x3F'</span><span class='conop'>:</span><span class='chr'>'\x00'</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>"UTF-16LE"</span> <span class='comment'>-- "<?" of "<?xml"</span>-<a name="line-1099"></a>-<a name="line-1100"></a><span class='definition'>guessEncoding</span> <span class='layout'>(</span><span class='chr'>'\x4C'</span><span class='conop'>:</span><span class='chr'>'\x6F'</span><span class='conop'>:</span><span class='chr'>'\xA7'</span><span class='conop'>:</span><span class='chr'>'\x94'</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>"EBCDIC"</span> <span class='comment'>-- "<?xm" of "<?xml"</span>-<a name="line-1101"></a>-<a name="line-1102"></a><span class='definition'>guessEncoding</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='str'>""</span> <span class='comment'>-- no guess</span>-<a name="line-1103"></a>-<a name="line-1104"></a><span class='comment'>-- ------------------------------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-DOM-Util.html
@@ -1,287 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- |</span>-<a name="line-2"></a><span class='comment'>-- utility functions</span>-<a name="line-3"></a><span class='comment'>---- Version : $Id: Util.hs,v 1.3 2006/05/01 18:56:24 hxml Exp $</span>-<a name="line-4"></a>-<a name="line-5"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Util</span>-<a name="line-6"></a> <span class='layout'>(</span> <span class='varid'>stringTrim</span>-<a name="line-7"></a> <span class='layout'>,</span> <span class='varid'>stringToUpper</span>-<a name="line-8"></a> <span class='layout'>,</span> <span class='varid'>normalizeNumber</span>-<a name="line-9"></a> <span class='layout'>,</span> <span class='varid'>normalizeWhitespace</span>-<a name="line-10"></a> <span class='layout'>,</span> <span class='varid'>normalizeBlanks</span>-<a name="line-11"></a>-<a name="line-12"></a> <span class='layout'>,</span> <span class='varid'>escapeURI</span>-<a name="line-13"></a> <span class='layout'>,</span> <span class='varid'>textEscapeXml</span>-<a name="line-14"></a> <span class='layout'>,</span> <span class='varid'>stringEscapeXml</span>-<a name="line-15"></a> <span class='layout'>,</span> <span class='varid'>attrEscapeXml</span>-<a name="line-16"></a>-<a name="line-17"></a> <span class='layout'>,</span> <span class='varid'>stringToInt</span>-<a name="line-18"></a> <span class='layout'>,</span> <span class='varid'>stringToHexString</span>-<a name="line-19"></a> <span class='layout'>,</span> <span class='varid'>charToHexString</span>-<a name="line-20"></a> <span class='layout'>,</span> <span class='varid'>intToHexString</span>-<a name="line-21"></a> <span class='layout'>,</span> <span class='varid'>hexStringToInt</span>-<a name="line-22"></a> <span class='layout'>,</span> <span class='varid'>decimalStringToInt</span>-<a name="line-23"></a>-<a name="line-24"></a> <span class='layout'>,</span> <span class='varid'>doubles</span>-<a name="line-25"></a> <span class='layout'>,</span> <span class='varid'>singles</span>-<a name="line-26"></a> <span class='layout'>,</span> <span class='varid'>noDoubles</span>-<a name="line-27"></a>-<a name="line-28"></a> <span class='layout'>,</span> <span class='varid'>swap</span>-<a name="line-29"></a> <span class='layout'>,</span> <span class='varid'>partitionEither</span>-<a name="line-30"></a> <span class='layout'>,</span> <span class='varid'>toMaybe</span>-<a name="line-31"></a>-<a name="line-32"></a> <span class='layout'>,</span> <span class='varid'>uncurry3</span>-<a name="line-33"></a> <span class='layout'>,</span> <span class='varid'>uncurry4</span>-<a name="line-34"></a> <span class='layout'>)</span>-<a name="line-35"></a><span class='keyword'>where</span>-<a name="line-36"></a>-<a name="line-37"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Char</span>-<a name="line-38"></a>-<a name="line-39"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-40"></a><span class='comment'>-- |</span>-<a name="line-41"></a><span class='comment'>-- remove leading and trailing whitespace with standard Haskell predicate isSpace</span>-<a name="line-42"></a>-<a name="line-43"></a><a name="stringTrim"></a><span class='definition'>stringTrim</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-44"></a><span class='definition'>stringTrim</span>-<a name="line-45"></a> <span class='keyglyph'>=</span> <span class='varid'>reverse</span> <span class='varop'>.</span> <span class='varid'>dropWhile</span> <span class='varid'>isSpace</span> <span class='varop'>.</span> <span class='varid'>reverse</span> <span class='varop'>.</span> <span class='varid'>dropWhile</span> <span class='varid'>isSpace</span>-<a name="line-46"></a>-<a name="line-47"></a><span class='comment'>-- |</span>-<a name="line-48"></a><span class='comment'>-- convert string to upercase with standard Haskell toUpper function</span>-<a name="line-49"></a>-<a name="line-50"></a><a name="stringToUpper"></a><span class='definition'>stringToUpper</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-51"></a><span class='definition'>stringToUpper</span>-<a name="line-52"></a> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>toUpper</span>-<a name="line-53"></a>-<a name="line-54"></a><span class='comment'>-- | Removes leading \/ trailing whitespaces and leading zeros</span>-<a name="line-55"></a>-<a name="line-56"></a><a name="normalizeNumber"></a><span class='definition'>normalizeNumber</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-57"></a><span class='definition'>normalizeNumber</span>-<a name="line-58"></a> <span class='keyglyph'>=</span> <span class='varid'>reverse</span> <span class='varop'>.</span> <span class='varid'>dropWhile</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='chr'>' '</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>reverse</span> <span class='varop'>.</span> -<a name="line-59"></a> <span class='varid'>dropWhile</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='varid'>x</span> <span class='varop'>==</span> <span class='chr'>'0'</span> <span class='varop'>||</span> <span class='varid'>x</span> <span class='varop'>==</span> <span class='chr'>' '</span><span class='layout'>)</span>-<a name="line-60"></a>-<a name="line-61"></a>-<a name="line-62"></a><span class='comment'>-- | Reduce whitespace sequences to a single whitespace</span>-<a name="line-63"></a>-<a name="line-64"></a><a name="normalizeWhitespace"></a><span class='definition'>normalizeWhitespace</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-65"></a><span class='definition'>normalizeWhitespace</span>-<a name="line-66"></a> <span class='keyglyph'>=</span> <span class='varid'>unwords</span> <span class='varop'>.</span> <span class='varid'>words</span>-<a name="line-67"></a>-<a name="line-68"></a><span class='comment'>-- | replace all whitespace chars by blanks</span>-<a name="line-69"></a>-<a name="line-70"></a><a name="normalizeBlanks"></a><span class='definition'>normalizeBlanks</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-71"></a><span class='definition'>normalizeBlanks</span>-<a name="line-72"></a> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='keyword'>if</span> <span class='varid'>isSpace</span> <span class='varid'>x</span> <span class='keyword'>then</span> <span class='chr'>' '</span> <span class='keyword'>else</span> <span class='varid'>x</span><span class='layout'>)</span>-<a name="line-73"></a>-<a name="line-74"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-75"></a>-<a name="line-76"></a><span class='comment'>-- | Escape all disallowed characters in URI </span>-<a name="line-77"></a><span class='comment'>-- references (see <<a href="http://www.w3.org/TR/xlink/#link-locators">http://www.w3.org/TR/xlink/#link-locators</a>>)</span>-<a name="line-78"></a>-<a name="line-79"></a><a name="escapeURI"></a><span class='definition'>escapeURI</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-80"></a><span class='definition'>escapeURI</span> <span class='varid'>ref</span>-<a name="line-81"></a> <span class='keyglyph'>=</span> <span class='varid'>concatMap</span> <span class='varid'>replace</span> <span class='varid'>ref</span>-<a name="line-82"></a> <span class='keyword'>where</span>-<a name="line-83"></a> <span class='varid'>notAllowed</span> <span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-84"></a> <span class='varid'>notAllowed</span> <span class='varid'>c</span>-<a name="line-85"></a> <span class='keyglyph'>=</span> <span class='varid'>c</span> <span class='varop'><</span> <span class='chr'>'\31'</span>-<a name="line-86"></a> <span class='varop'>||</span>-<a name="line-87"></a> <span class='varid'>c</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='chr'>'\DEL'</span><span class='layout'>,</span> <span class='chr'>' '</span><span class='layout'>,</span> <span class='chr'>'<'</span><span class='layout'>,</span> <span class='chr'>'>'</span><span class='layout'>,</span> <span class='chr'>'\"'</span><span class='layout'>,</span> <span class='chr'>'{'</span><span class='layout'>,</span> <span class='chr'>'}'</span><span class='layout'>,</span> <span class='chr'>'|'</span><span class='layout'>,</span> <span class='chr'>'\\'</span><span class='layout'>,</span> <span class='chr'>'^'</span><span class='layout'>,</span> <span class='chr'>'`'</span> <span class='keyglyph'>]</span>-<a name="line-88"></a>-<a name="line-89"></a> <span class='varid'>replace</span> <span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-90"></a> <span class='varid'>replace</span> <span class='varid'>c</span>-<a name="line-91"></a> <span class='keyglyph'>|</span> <span class='varid'>notAllowed</span> <span class='varid'>c</span>-<a name="line-92"></a> <span class='keyglyph'>=</span> <span class='chr'>'%'</span> <span class='conop'>:</span> <span class='varid'>charToHexString</span> <span class='varid'>c</span>-<a name="line-93"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-94"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span>-<a name="line-95"></a>-<a name="line-96"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-97"></a>-<a name="line-98"></a><a name="escapeXml"></a><span class='definition'>escapeXml</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-99"></a><span class='definition'>escapeXml</span> <span class='varid'>escSet</span>-<a name="line-100"></a> <span class='keyglyph'>=</span> <span class='varid'>concatMap</span> <span class='varid'>esc</span>-<a name="line-101"></a> <span class='keyword'>where</span>-<a name="line-102"></a> <span class='varid'>esc</span> <span class='varid'>c</span>-<a name="line-103"></a> <span class='keyglyph'>|</span> <span class='varid'>c</span> <span class='varop'>`elem`</span> <span class='varid'>escSet</span>-<a name="line-104"></a> <span class='keyglyph'>=</span> <span class='str'>"&#"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>fromEnum</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='str'>";"</span>-<a name="line-105"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-106"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span>-<a name="line-107"></a>-<a name="line-108"></a><span class='comment'>-- |</span>-<a name="line-109"></a><span class='comment'>-- escape XML chars &lt;, &gt;, &quot;, and ampercent by transforming them into character references</span>-<a name="line-110"></a><span class='comment'>--</span>-<a name="line-111"></a><span class='comment'>-- see also : 'attrEscapeXml'</span>-<a name="line-112"></a>-<a name="line-113"></a><a name="stringEscapeXml"></a><span class='definition'>stringEscapeXml</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-114"></a><span class='definition'>stringEscapeXml</span> <span class='keyglyph'>=</span> <span class='varid'>escapeXml</span> <span class='str'>"<>\"\'&"</span>-<a name="line-115"></a>-<a name="line-116"></a><span class='comment'>-- |</span>-<a name="line-117"></a><span class='comment'>-- escape XML chars &lt; and ampercent by transforming them into character references, used for escaping text nodes</span>-<a name="line-118"></a><span class='comment'>--</span>-<a name="line-119"></a><span class='comment'>-- see also : 'attrEscapeXml'</span>-<a name="line-120"></a>-<a name="line-121"></a><a name="textEscapeXml"></a><span class='definition'>textEscapeXml</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-122"></a><span class='definition'>textEscapeXml</span> <span class='keyglyph'>=</span> <span class='varid'>escapeXml</span> <span class='str'>"<&"</span>-<a name="line-123"></a>-<a name="line-124"></a><span class='comment'>-- |</span>-<a name="line-125"></a><span class='comment'>-- escape XML chars in attribute values, same as stringEscapeXml, but none blank whitespace</span>-<a name="line-126"></a><span class='comment'>-- is also escaped</span>-<a name="line-127"></a><span class='comment'>--</span>-<a name="line-128"></a><span class='comment'>-- see also : 'stringEscapeXml'</span>-<a name="line-129"></a>-<a name="line-130"></a><a name="attrEscapeXml"></a><span class='definition'>attrEscapeXml</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-131"></a><span class='definition'>attrEscapeXml</span> <span class='keyglyph'>=</span> <span class='varid'>escapeXml</span> <span class='str'>"<>\"\'&\n\r\t"</span>-<a name="line-132"></a>-<a name="line-133"></a><a name="stringToInt"></a><span class='definition'>stringToInt</span> <span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Int</span>-<a name="line-134"></a><span class='definition'>stringToInt</span> <span class='varid'>base</span> <span class='varid'>digits</span>-<a name="line-135"></a> <span class='keyglyph'>=</span> <span class='varid'>sign</span> <span class='varop'>*</span> <span class='layout'>(</span><span class='varid'>foldl</span> <span class='varid'>acc</span> <span class='num'>0</span> <span class='varop'>$</span> <span class='varid'>concatMap</span> <span class='varid'>digToInt</span> <span class='varid'>digits1</span><span class='layout'>)</span>-<a name="line-136"></a> <span class='keyword'>where</span>-<a name="line-137"></a> <span class='varid'>splitSign</span> <span class='layout'>(</span><span class='chr'>'-'</span> <span class='conop'>:</span> <span class='varid'>ds</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='layout'>(</span><span class='comment'>-</span><span class='num'>1</span><span class='layout'>)</span><span class='layout'>,</span> <span class='varid'>ds</span><span class='layout'>)</span>-<a name="line-138"></a> <span class='varid'>splitSign</span> <span class='layout'>(</span><span class='chr'>'+'</span> <span class='conop'>:</span> <span class='varid'>ds</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='num'>1</span> <span class='layout'>,</span> <span class='varid'>ds</span><span class='layout'>)</span>-<a name="line-139"></a> <span class='varid'>splitSign</span> <span class='varid'>ds</span> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='num'>1</span> <span class='layout'>,</span> <span class='varid'>ds</span><span class='layout'>)</span>-<a name="line-140"></a> <span class='layout'>(</span><span class='varid'>sign</span><span class='layout'>,</span> <span class='varid'>digits1</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>splitSign</span> <span class='varid'>digits</span>-<a name="line-141"></a> <span class='varid'>digToInt</span> <span class='varid'>c</span>-<a name="line-142"></a> <span class='keyglyph'>|</span> <span class='varid'>c</span> <span class='varop'>>=</span> <span class='chr'>'0'</span> <span class='varop'>&&</span> <span class='varid'>c</span> <span class='varop'><=</span> <span class='chr'>'9'</span>-<a name="line-143"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>ord</span> <span class='varid'>c</span> <span class='comment'>-</span> <span class='varid'>ord</span> <span class='chr'>'0'</span><span class='keyglyph'>]</span>-<a name="line-144"></a> <span class='keyglyph'>|</span> <span class='varid'>c</span> <span class='varop'>>=</span> <span class='chr'>'A'</span> <span class='varop'>&&</span> <span class='varid'>c</span> <span class='varop'><=</span> <span class='chr'>'Z'</span>-<a name="line-145"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>ord</span> <span class='varid'>c</span> <span class='comment'>-</span> <span class='varid'>ord</span> <span class='chr'>'A'</span> <span class='varop'>+</span> <span class='num'>10</span><span class='keyglyph'>]</span>-<a name="line-146"></a> <span class='keyglyph'>|</span> <span class='varid'>c</span> <span class='varop'>>=</span> <span class='chr'>'a'</span> <span class='varop'>&&</span> <span class='varid'>c</span> <span class='varop'><=</span> <span class='chr'>'z'</span>-<a name="line-147"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>ord</span> <span class='varid'>c</span> <span class='comment'>-</span> <span class='varid'>ord</span> <span class='chr'>'a'</span> <span class='varop'>+</span> <span class='num'>10</span><span class='keyglyph'>]</span>-<a name="line-148"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-149"></a> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-150"></a> <span class='varid'>acc</span> <span class='varid'>i1</span> <span class='varid'>i0</span>-<a name="line-151"></a> <span class='keyglyph'>=</span> <span class='varid'>i1</span> <span class='varop'>*</span> <span class='varid'>base</span> <span class='varop'>+</span> <span class='varid'>i0</span>-<a name="line-152"></a>-<a name="line-153"></a>-<a name="line-154"></a><span class='comment'>-- |</span>-<a name="line-155"></a><span class='comment'>-- convert a string of hexadecimal digits into an Int</span>-<a name="line-156"></a>-<a name="line-157"></a><a name="hexStringToInt"></a><span class='definition'>hexStringToInt</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Int</span>-<a name="line-158"></a><span class='definition'>hexStringToInt</span> <span class='keyglyph'>=</span> <span class='varid'>stringToInt</span> <span class='num'>16</span>-<a name="line-159"></a>-<a name="line-160"></a><span class='comment'>-- |</span>-<a name="line-161"></a><span class='comment'>-- convert a string of digits into an Int</span>-<a name="line-162"></a>-<a name="line-163"></a><a name="decimalStringToInt"></a><span class='definition'>decimalStringToInt</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Int</span>-<a name="line-164"></a><span class='definition'>decimalStringToInt</span> <span class='keyglyph'>=</span> <span class='varid'>stringToInt</span> <span class='num'>10</span>-<a name="line-165"></a>-<a name="line-166"></a><span class='comment'>-- |</span>-<a name="line-167"></a><span class='comment'>-- convert a string into a hexadecimal string applying charToHexString</span>-<a name="line-168"></a><span class='comment'>--</span>-<a name="line-169"></a><span class='comment'>-- see also : 'charToHexString'</span>-<a name="line-170"></a>-<a name="line-171"></a><a name="stringToHexString"></a><span class='definition'>stringToHexString</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-172"></a><span class='definition'>stringToHexString</span> <span class='keyglyph'>=</span> <span class='varid'>concatMap</span> <span class='varid'>charToHexString</span>-<a name="line-173"></a>-<a name="line-174"></a><span class='comment'>-- |</span>-<a name="line-175"></a><span class='comment'>-- convert a char (byte) into a 2-digit hexadecimal string</span>-<a name="line-176"></a><span class='comment'>--</span>-<a name="line-177"></a><span class='comment'>-- see also : 'stringToHexString', 'intToHexString'</span>-<a name="line-178"></a>-<a name="line-179"></a><a name="charToHexString"></a><span class='definition'>charToHexString</span> <span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-180"></a><span class='definition'>charToHexString</span> <span class='varid'>c</span>-<a name="line-181"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='varid'>fourBitsToChar</span> <span class='layout'>(</span><span class='varid'>c'</span> <span class='varop'>`div`</span> <span class='num'>16</span><span class='layout'>)</span>-<a name="line-182"></a> <span class='layout'>,</span> <span class='varid'>fourBitsToChar</span> <span class='layout'>(</span><span class='varid'>c'</span> <span class='varop'>`mod`</span> <span class='num'>16</span><span class='layout'>)</span>-<a name="line-183"></a> <span class='keyglyph'>]</span>-<a name="line-184"></a> <span class='keyword'>where</span>-<a name="line-185"></a> <span class='varid'>c'</span> <span class='keyglyph'>=</span> <span class='varid'>fromEnum</span> <span class='varid'>c</span>-<a name="line-186"></a>-<a name="line-187"></a><span class='comment'>-- |</span>-<a name="line-188"></a><span class='comment'>-- convert a none negative Int into a hexadecimal string</span>-<a name="line-189"></a><span class='comment'>--</span>-<a name="line-190"></a><span class='comment'>-- see also : 'charToHexString'</span>-<a name="line-191"></a>-<a name="line-192"></a><a name="intToHexString"></a><span class='definition'>intToHexString</span> <span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-193"></a><span class='definition'>intToHexString</span> <span class='varid'>i</span>-<a name="line-194"></a> <span class='keyglyph'>|</span> <span class='varid'>i</span> <span class='varop'>==</span> <span class='num'>0</span>-<a name="line-195"></a> <span class='keyglyph'>=</span> <span class='str'>"0"</span>-<a name="line-196"></a> <span class='keyglyph'>|</span> <span class='varid'>i</span> <span class='varop'>></span> <span class='num'>0</span>-<a name="line-197"></a> <span class='keyglyph'>=</span> <span class='varid'>intToStr</span> <span class='varid'>i</span>-<a name="line-198"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-199"></a> <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"intToHexString: negative argument "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>i</span><span class='layout'>)</span>-<a name="line-200"></a> <span class='keyword'>where</span>-<a name="line-201"></a> <span class='varid'>intToStr</span> <span class='num'>0</span> <span class='keyglyph'>=</span> <span class='str'>""</span>-<a name="line-202"></a> <span class='varid'>intToStr</span> <span class='varid'>i'</span> <span class='keyglyph'>=</span> <span class='varid'>intToStr</span> <span class='layout'>(</span><span class='varid'>i'</span> <span class='varop'>`div`</span> <span class='num'>16</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='keyglyph'>[</span><span class='varid'>fourBitsToChar</span> <span class='layout'>(</span><span class='varid'>i'</span> <span class='varop'>`mod`</span> <span class='num'>16</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-203"></a>-<a name="line-204"></a><a name="fourBitsToChar"></a><span class='definition'>fourBitsToChar</span> <span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-></span> <span class='conid'>Char</span>-<a name="line-205"></a><span class='definition'>fourBitsToChar</span> <span class='varid'>i</span> <span class='keyglyph'>=</span> <span class='str'>"0123456789ABCDEF"</span> <span class='varop'>!!</span> <span class='varid'>i</span>-<a name="line-206"></a>-<a name="line-207"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-208"></a>-<a name="line-209"></a><span class='comment'>-- |</span>-<a name="line-210"></a><span class='comment'>-- take all elements of a list which occur more than once. The result does not contain doubles.</span>-<a name="line-211"></a><span class='comment'>-- (doubles . doubles == doubles)</span>-<a name="line-212"></a>-<a name="line-213"></a><a name="doubles"></a><span class='definition'>doubles</span> <span class='keyglyph'>::</span> <span class='conid'>Eq</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span>-<a name="line-214"></a><span class='definition'>doubles</span>-<a name="line-215"></a> <span class='keyglyph'>=</span> <span class='varid'>doubles'</span> <span class='conid'>[]</span>-<a name="line-216"></a> <span class='keyword'>where</span>-<a name="line-217"></a> <span class='varid'>doubles'</span> <span class='varid'>acc</span> <span class='conid'>[]</span>-<a name="line-218"></a> <span class='keyglyph'>=</span> <span class='varid'>acc</span>-<a name="line-219"></a> <span class='varid'>doubles'</span> <span class='varid'>acc</span> <span class='layout'>(</span><span class='varid'>e</span> <span class='conop'>:</span> <span class='varid'>s</span><span class='layout'>)</span>-<a name="line-220"></a> <span class='keyglyph'>|</span> <span class='varid'>e</span> <span class='varop'>`elem`</span> <span class='varid'>s</span>-<a name="line-221"></a> <span class='varop'>&&</span>-<a name="line-222"></a> <span class='varid'>e</span> <span class='varop'>`notElem`</span> <span class='varid'>acc</span>-<a name="line-223"></a> <span class='keyglyph'>=</span> <span class='varid'>doubles'</span> <span class='layout'>(</span><span class='varid'>e</span><span class='conop'>:</span><span class='varid'>acc</span><span class='layout'>)</span> <span class='varid'>s</span>-<a name="line-224"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-225"></a> <span class='keyglyph'>=</span> <span class='varid'>doubles'</span> <span class='varid'>acc</span> <span class='varid'>s</span>-<a name="line-226"></a>-<a name="line-227"></a><span class='comment'>-- |</span>-<a name="line-228"></a><span class='comment'>-- drop all elements from a list which occur more than once.</span>-<a name="line-229"></a>-<a name="line-230"></a><a name="singles"></a><span class='definition'>singles</span> <span class='keyglyph'>::</span> <span class='conid'>Eq</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span>-<a name="line-231"></a><span class='definition'>singles</span>-<a name="line-232"></a> <span class='keyglyph'>=</span> <span class='varid'>singles'</span> <span class='conid'>[]</span>-<a name="line-233"></a> <span class='keyword'>where</span>-<a name="line-234"></a> <span class='varid'>singles'</span> <span class='varid'>acc</span> <span class='conid'>[]</span>-<a name="line-235"></a> <span class='keyglyph'>=</span> <span class='varid'>acc</span>-<a name="line-236"></a> <span class='varid'>singles'</span> <span class='varid'>acc</span> <span class='layout'>(</span><span class='varid'>e</span> <span class='conop'>:</span> <span class='varid'>s</span><span class='layout'>)</span>-<a name="line-237"></a> <span class='keyglyph'>|</span> <span class='varid'>e</span> <span class='varop'>`elem`</span> <span class='varid'>s</span>-<a name="line-238"></a> <span class='varop'>||</span>-<a name="line-239"></a> <span class='varid'>e</span> <span class='varop'>`elem`</span> <span class='varid'>acc</span>-<a name="line-240"></a> <span class='keyglyph'>=</span> <span class='varid'>singles'</span> <span class='varid'>acc</span> <span class='varid'>s</span>-<a name="line-241"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-242"></a> <span class='keyglyph'>=</span> <span class='varid'>singles'</span> <span class='layout'>(</span><span class='varid'>e</span> <span class='conop'>:</span> <span class='varid'>acc</span><span class='layout'>)</span> <span class='varid'>s</span>-<a name="line-243"></a>-<a name="line-244"></a><span class='comment'>-- |</span>-<a name="line-245"></a><span class='comment'>-- remove duplicates from list</span>-<a name="line-246"></a>-<a name="line-247"></a><a name="noDoubles"></a><span class='definition'>noDoubles</span> <span class='keyglyph'>::</span> <span class='conid'>Eq</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span>-<a name="line-248"></a><span class='definition'>noDoubles</span> <span class='conid'>[]</span>-<a name="line-249"></a> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-250"></a><span class='definition'>noDoubles</span> <span class='layout'>(</span><span class='varid'>e</span> <span class='conop'>:</span> <span class='varid'>s</span><span class='layout'>)</span>-<a name="line-251"></a> <span class='keyglyph'>|</span> <span class='varid'>e</span> <span class='varop'>`elem`</span> <span class='varid'>s</span> <span class='keyglyph'>=</span> <span class='varid'>noDoubles</span> <span class='varid'>s</span>-<a name="line-252"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>e</span> <span class='conop'>:</span> <span class='varid'>noDoubles</span> <span class='varid'>s</span>-<a name="line-253"></a>-<a name="line-254"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-255"></a>-<a name="line-256"></a><a name="swap"></a><span class='definition'>swap</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span><span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='varid'>b</span><span class='layout'>,</span><span class='varid'>a</span><span class='layout'>)</span>-<a name="line-257"></a><span class='definition'>swap</span> <span class='layout'>(</span><span class='varid'>x</span><span class='layout'>,</span><span class='varid'>y</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>y</span><span class='layout'>,</span><span class='varid'>x</span><span class='layout'>)</span>-<a name="line-258"></a>-<a name="line-259"></a><a name="partitionEither"></a><span class='definition'>partitionEither</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>Either</span> <span class='varid'>a</span> <span class='varid'>b</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-260"></a><span class='definition'>partitionEither</span> <span class='keyglyph'>=</span>-<a name="line-261"></a> <span class='varid'>foldr</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>x</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>ls</span><span class='layout'>,</span><span class='varid'>rs</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>either</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>l</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='varid'>l</span><span class='conop'>:</span><span class='varid'>ls</span><span class='layout'>,</span><span class='varid'>rs</span><span class='layout'>)</span><span class='layout'>)</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>r</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='varid'>ls</span><span class='layout'>,</span><span class='varid'>r</span><span class='conop'>:</span><span class='varid'>rs</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varid'>x</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>[]</span><span class='layout'>,</span><span class='conid'>[]</span><span class='layout'>)</span>-<a name="line-262"></a>-<a name="line-263"></a><a name="toMaybe"></a><span class='definition'>toMaybe</span> <span class='keyglyph'>::</span> <span class='conid'>Bool</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>Maybe</span> <span class='varid'>a</span>-<a name="line-264"></a><span class='definition'>toMaybe</span> <span class='conid'>False</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>Nothing</span>-<a name="line-265"></a><span class='definition'>toMaybe</span> <span class='conid'>True</span> <span class='varid'>x</span> <span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='varid'>x</span>-<a name="line-266"></a>-<a name="line-267"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-268"></a>-<a name="line-269"></a><span class='comment'>-- | mothers little helpers for to much curry</span>-<a name="line-270"></a>-<a name="line-271"></a><a name="uncurry3"></a><span class='definition'>uncurry3</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='varid'>b</span> <span class='keyglyph'>-></span> <span class='varid'>c</span> <span class='keyglyph'>-></span> <span class='varid'>d</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>b</span><span class='layout'>,</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>d</span>-<a name="line-272"></a><span class='definition'>uncurry3</span> <span class='varid'>f</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>b</span><span class='layout'>,</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span>-<a name="line-273"></a>-<a name="line-274"></a><a name="uncurry4"></a><span class='definition'>uncurry4</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='varid'>b</span> <span class='keyglyph'>-></span> <span class='varid'>c</span> <span class='keyglyph'>-></span> <span class='varid'>d</span> <span class='keyglyph'>-></span> <span class='varid'>e</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>b</span><span class='layout'>,</span> <span class='varid'>c</span><span class='layout'>,</span> <span class='varid'>d</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>e</span>-<a name="line-275"></a><span class='definition'>uncurry4</span> <span class='varid'>f</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>b</span><span class='layout'>,</span> <span class='varid'>c</span><span class='layout'>,</span> <span class='varid'>d</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span> <span class='varid'>d</span>-<a name="line-276"></a>-<a name="line-277"></a><span class='comment'>-- ------------------------------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-DOM-XmlKeywords.html
@@ -1,368 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Text.XML.HXT.DOM.XmlKeywords-<a name="line-5"></a> Copyright : Copyright (C) 2005 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe@fh-wedel.de)-<a name="line-9"></a> Stability : experimental-<a name="line-10"></a> Portability: portable-<a name="line-11"></a>-<a name="line-12"></a> Constants for XML keywords, for special attribute names-<a name="line-13"></a> and special attribute values-<a name="line-14"></a>-<a name="line-15"></a>-}</span>-<a name="line-16"></a>-<a name="line-17"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-18"></a>-<a name="line-19"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlKeywords</span>-<a name="line-20"></a><span class='keyword'>where</span>-<a name="line-21"></a>-<a name="line-22"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-23"></a><span class='comment'>--</span>-<a name="line-24"></a><span class='comment'>-- string constants for representing DTD keywords and attributes</span>-<a name="line-25"></a>-<a name="line-26"></a><a name="t_xml"></a><span class='definition'>t_xml</span><span class='layout'>,</span> <span class='comment'>-- tag names</span>-<a name="line-27"></a> <span class='varid'>t_root</span> <span class='keyglyph'>::</span> <span class='conid'>String</span>-<a name="line-28"></a>-<a name="line-29"></a><a name="a_canonicalize"></a><span class='definition'>a_canonicalize</span><span class='layout'>,</span>-<a name="line-30"></a> <span class='varid'>a_default</span><span class='layout'>,</span> <span class='comment'>-- attribute names</span>-<a name="line-31"></a> <span class='varid'>a_check_namespaces</span><span class='layout'>,</span>-<a name="line-32"></a> <span class='varid'>a_contentLength</span><span class='layout'>,</span>-<a name="line-33"></a> <span class='varid'>a_collect_errors</span><span class='layout'>,</span>-<a name="line-34"></a> <span class='varid'>a_column</span><span class='layout'>,</span>-<a name="line-35"></a> <span class='varid'>a_default_baseuri</span><span class='layout'>,</span>-<a name="line-36"></a> <span class='varid'>a_do_not_canonicalize</span><span class='layout'>,</span>-<a name="line-37"></a> <span class='varid'>a_do_not_check_namespaces</span><span class='layout'>,</span>-<a name="line-38"></a> <span class='varid'>a_do_not_issue_errors</span><span class='layout'>,</span>-<a name="line-39"></a> <span class='varid'>a_do_not_issue_warnings</span><span class='layout'>,</span>-<a name="line-40"></a> <span class='varid'>a_do_not_preserve_comment</span><span class='layout'>,</span>-<a name="line-41"></a> <span class='varid'>a_do_not_remove_whitespace</span><span class='layout'>,</span>-<a name="line-42"></a> <span class='varid'>a_do_not_use_curl</span><span class='layout'>,</span>-<a name="line-43"></a> <span class='varid'>a_do_not_validate</span><span class='layout'>,</span>-<a name="line-44"></a> <span class='varid'>a_encoding</span><span class='layout'>,</span>-<a name="line-45"></a> <span class='varid'>a_error</span><span class='layout'>,</span>-<a name="line-46"></a> <span class='varid'>a_error_log</span><span class='layout'>,</span>-<a name="line-47"></a> <span class='varid'>a_help</span><span class='layout'>,</span>-<a name="line-48"></a> <span class='varid'>a_ignore_encoding_errors</span><span class='layout'>,</span>-<a name="line-49"></a> <span class='varid'>a_ignore_none_xml_contents</span><span class='layout'>,</span>-<a name="line-50"></a> <span class='varid'>a_indent</span><span class='layout'>,</span>-<a name="line-51"></a> <span class='varid'>a_issue_errors</span><span class='layout'>,</span>-<a name="line-52"></a> <span class='varid'>a_issue_warnings</span><span class='layout'>,</span>-<a name="line-53"></a> <span class='varid'>a_kind</span><span class='layout'>,</span>-<a name="line-54"></a> <span class='varid'>a_line</span><span class='layout'>,</span>-<a name="line-55"></a> <span class='varid'>a_mime_types</span><span class='layout'>,</span>-<a name="line-56"></a> <span class='varid'>a_module</span><span class='layout'>,</span>-<a name="line-57"></a> <span class='varid'>a_modifier</span><span class='layout'>,</span>-<a name="line-58"></a> <span class='varid'>a_name</span><span class='layout'>,</span>-<a name="line-59"></a> <span class='varid'>a_no_empty_elements</span><span class='layout'>,</span>-<a name="line-60"></a> <span class='varid'>a_no_xml_pi</span><span class='layout'>,</span>-<a name="line-61"></a> <span class='varid'>a_options_curl</span><span class='layout'>,</span>-<a name="line-62"></a> <span class='varid'>a_output_encoding</span><span class='layout'>,</span>-<a name="line-63"></a> <span class='varid'>a_output_file</span><span class='layout'>,</span>-<a name="line-64"></a> <span class='varid'>a_output_xml</span><span class='layout'>,</span>-<a name="line-65"></a> <span class='varid'>a_output_html</span><span class='layout'>,</span>-<a name="line-66"></a> <span class='varid'>a_parse_by_mimetype</span><span class='layout'>,</span>-<a name="line-67"></a> <span class='varid'>a_parse_html</span><span class='layout'>,</span>-<a name="line-68"></a> <span class='varid'>a_parse_xml</span><span class='layout'>,</span>-<a name="line-69"></a> <span class='varid'>a_peref</span><span class='layout'>,</span>-<a name="line-70"></a> <span class='varid'>a_preserve_comment</span><span class='layout'>,</span>-<a name="line-71"></a> <span class='varid'>a_propagate_errors</span><span class='layout'>,</span>-<a name="line-72"></a> <span class='varid'>a_proxy</span><span class='layout'>,</span>-<a name="line-73"></a> <span class='varid'>a_remove_whitespace</span><span class='layout'>,</span>-<a name="line-74"></a> <span class='varid'>a_show_haskell</span><span class='layout'>,</span>-<a name="line-75"></a> <span class='varid'>a_show_tree</span><span class='layout'>,</span>-<a name="line-76"></a> <span class='varid'>a_source</span><span class='layout'>,</span>-<a name="line-77"></a> <span class='varid'>a_status</span><span class='layout'>,</span>-<a name="line-78"></a> <span class='varid'>a_standalone</span><span class='layout'>,</span>-<a name="line-79"></a> <span class='varid'>a_strict_input</span><span class='layout'>,</span>-<a name="line-80"></a> <span class='varid'>a_tagsoup</span><span class='layout'>,</span>-<a name="line-81"></a> <span class='varid'>a_trace</span><span class='layout'>,</span>-<a name="line-82"></a> <span class='varid'>a_type</span><span class='layout'>,</span>-<a name="line-83"></a> <span class='varid'>a_use_curl</span><span class='layout'>,</span>-<a name="line-84"></a> <span class='varid'>a_url</span><span class='layout'>,</span>-<a name="line-85"></a> <span class='varid'>a_validate</span><span class='layout'>,</span>-<a name="line-86"></a> <span class='varid'>a_value</span><span class='layout'>,</span>-<a name="line-87"></a> <span class='varid'>a_verbose</span><span class='layout'>,</span>-<a name="line-88"></a> <span class='varid'>a_version</span><span class='layout'>,</span>-<a name="line-89"></a> <span class='varid'>a_xml</span><span class='layout'>,</span>-<a name="line-90"></a> <span class='varid'>a_xmlns</span> <span class='keyglyph'>::</span> <span class='conid'>String</span>-<a name="line-91"></a>-<a name="line-92"></a><a name="v_0"></a><span class='definition'>v_0</span><span class='layout'>,</span> <span class='comment'>-- attribute values</span>-<a name="line-93"></a> <span class='varid'>v_1</span><span class='layout'>,</span>-<a name="line-94"></a> <span class='varid'>v_yes</span><span class='layout'>,</span>-<a name="line-95"></a> <span class='varid'>v_no</span><span class='layout'>,</span>-<a name="line-96"></a> <span class='varid'>v_any</span><span class='layout'>,</span>-<a name="line-97"></a> <span class='varid'>v_children</span><span class='layout'>,</span>-<a name="line-98"></a> <span class='varid'>v_choice</span><span class='layout'>,</span>-<a name="line-99"></a> <span class='varid'>v_empty</span><span class='layout'>,</span>-<a name="line-100"></a> <span class='varid'>v_mixed</span><span class='layout'>,</span>-<a name="line-101"></a> <span class='varid'>v_seq</span><span class='layout'>,</span>-<a name="line-102"></a> <span class='varid'>v_null</span><span class='layout'>,</span>-<a name="line-103"></a> <span class='varid'>v_option</span><span class='layout'>,</span>-<a name="line-104"></a> <span class='varid'>v_pcdata</span><span class='layout'>,</span>-<a name="line-105"></a> <span class='varid'>v_star</span><span class='layout'>,</span>-<a name="line-106"></a> <span class='varid'>v_plus</span> <span class='keyglyph'>::</span> <span class='conid'>String</span>-<a name="line-107"></a>-<a name="line-108"></a><a name="k_any"></a><span class='definition'>k_any</span><span class='layout'>,</span> <span class='comment'>-- DTD keywords</span>-<a name="line-109"></a> <span class='varid'>k_cdata</span><span class='layout'>,</span>-<a name="line-110"></a> <span class='varid'>k_empty</span><span class='layout'>,</span>-<a name="line-111"></a> <span class='varid'>k_entity</span><span class='layout'>,</span>-<a name="line-112"></a> <span class='varid'>k_entities</span><span class='layout'>,</span>-<a name="line-113"></a> <span class='varid'>k_id</span><span class='layout'>,</span>-<a name="line-114"></a> <span class='varid'>k_idref</span><span class='layout'>,</span>-<a name="line-115"></a> <span class='varid'>k_idrefs</span><span class='layout'>,</span>-<a name="line-116"></a> <span class='varid'>k_include</span><span class='layout'>,</span>-<a name="line-117"></a> <span class='varid'>k_ignore</span><span class='layout'>,</span>-<a name="line-118"></a> <span class='varid'>k_nmtoken</span><span class='layout'>,</span>-<a name="line-119"></a> <span class='varid'>k_nmtokens</span><span class='layout'>,</span>-<a name="line-120"></a> <span class='varid'>k_peref</span><span class='layout'>,</span>-<a name="line-121"></a> <span class='varid'>k_public</span><span class='layout'>,</span>-<a name="line-122"></a> <span class='varid'>k_system</span><span class='layout'>,</span>-<a name="line-123"></a> <span class='varid'>k_enumeration</span><span class='layout'>,</span>-<a name="line-124"></a> <span class='varid'>k_fixed</span><span class='layout'>,</span>-<a name="line-125"></a> <span class='varid'>k_implied</span><span class='layout'>,</span>-<a name="line-126"></a> <span class='varid'>k_ndata</span><span class='layout'>,</span>-<a name="line-127"></a> <span class='varid'>k_notation</span><span class='layout'>,</span>-<a name="line-128"></a> <span class='varid'>k_pcdata</span><span class='layout'>,</span>-<a name="line-129"></a> <span class='varid'>k_required</span><span class='layout'>,</span>-<a name="line-130"></a> <span class='varid'>k_default</span> <span class='keyglyph'>::</span> <span class='conid'>String</span>-<a name="line-131"></a>-<a name="line-132"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-133"></a>-<a name="line-134"></a><span class='definition'>t_xml</span> <span class='keyglyph'>=</span> <span class='str'>"xml"</span>-<a name="line-135"></a><a name="t_root"></a><span class='definition'>t_root</span> <span class='keyglyph'>=</span> <span class='str'>"/"</span> <span class='comment'>-- name of root node tag</span>-<a name="line-136"></a>-<a name="line-137"></a><span class='definition'>a_canonicalize</span> <span class='keyglyph'>=</span> <span class='str'>"canonicalize"</span>-<a name="line-138"></a><a name="a_check_namespaces"></a><span class='definition'>a_check_namespaces</span> <span class='keyglyph'>=</span> <span class='str'>"check-namespaces"</span>-<a name="line-139"></a><a name="a_collect_errors"></a><span class='definition'>a_collect_errors</span> <span class='keyglyph'>=</span> <span class='str'>"collect-errors"</span>-<a name="line-140"></a><a name="a_column"></a><span class='definition'>a_column</span> <span class='keyglyph'>=</span> <span class='str'>"column"</span>-<a name="line-141"></a><a name="a_contentLength"></a><span class='definition'>a_contentLength</span> <span class='keyglyph'>=</span> <span class='str'>"Content-Length"</span>-<a name="line-142"></a><a name="a_default"></a><span class='definition'>a_default</span> <span class='keyglyph'>=</span> <span class='str'>"default"</span>-<a name="line-143"></a><a name="a_default_baseuri"></a><span class='definition'>a_default_baseuri</span> <span class='keyglyph'>=</span> <span class='str'>"default-base-URI"</span>-<a name="line-144"></a><a name="a_do_not_canonicalize"></a><span class='definition'>a_do_not_canonicalize</span> <span class='keyglyph'>=</span> <span class='str'>"do-not-canonicalize"</span>-<a name="line-145"></a><a name="a_do_not_check_namespaces"></a><span class='definition'>a_do_not_check_namespaces</span> <span class='keyglyph'>=</span> <span class='str'>"do-not-check-namespaces"</span>-<a name="line-146"></a><a name="a_do_not_issue_errors"></a><span class='definition'>a_do_not_issue_errors</span> <span class='keyglyph'>=</span> <span class='str'>"do-not-issue-errors"</span>-<a name="line-147"></a><a name="a_do_not_issue_warnings"></a><span class='definition'>a_do_not_issue_warnings</span> <span class='keyglyph'>=</span> <span class='str'>"do-not-issue-warnings"</span>-<a name="line-148"></a><a name="a_do_not_preserve_comment"></a><span class='definition'>a_do_not_preserve_comment</span> <span class='keyglyph'>=</span> <span class='str'>"do-not-preserve-comment"</span>-<a name="line-149"></a><a name="a_do_not_remove_whitespace"></a><span class='definition'>a_do_not_remove_whitespace</span> <span class='keyglyph'>=</span> <span class='str'>"do-not-remove-whitespace"</span>-<a name="line-150"></a><a name="a_do_not_use_curl"></a><span class='definition'>a_do_not_use_curl</span> <span class='keyglyph'>=</span> <span class='str'>"do-not-use-curl"</span>-<a name="line-151"></a><a name="a_do_not_validate"></a><span class='definition'>a_do_not_validate</span> <span class='keyglyph'>=</span> <span class='str'>"do-not-validate"</span>-<a name="line-152"></a><a name="a_encoding"></a><span class='definition'>a_encoding</span> <span class='keyglyph'>=</span> <span class='str'>"encoding"</span>-<a name="line-153"></a><a name="a_error"></a><span class='definition'>a_error</span> <span class='keyglyph'>=</span> <span class='str'>"error"</span>-<a name="line-154"></a><a name="a_error_log"></a><span class='definition'>a_error_log</span> <span class='keyglyph'>=</span> <span class='str'>"errorLog"</span>-<a name="line-155"></a><a name="a_help"></a><span class='definition'>a_help</span> <span class='keyglyph'>=</span> <span class='str'>"help"</span>-<a name="line-156"></a><a name="a_ignore_encoding_errors"></a><span class='definition'>a_ignore_encoding_errors</span> <span class='keyglyph'>=</span> <span class='str'>"ignore-encoding-errors"</span>-<a name="line-157"></a><a name="a_ignore_none_xml_contents"></a><span class='definition'>a_ignore_none_xml_contents</span> <span class='keyglyph'>=</span> <span class='str'>"ignore-none-xml-contents"</span>-<a name="line-158"></a><a name="a_indent"></a><span class='definition'>a_indent</span> <span class='keyglyph'>=</span> <span class='str'>"indent"</span>-<a name="line-159"></a><a name="a_issue_warnings"></a><span class='definition'>a_issue_warnings</span> <span class='keyglyph'>=</span> <span class='str'>"issue-warnings"</span>-<a name="line-160"></a><a name="a_issue_errors"></a><span class='definition'>a_issue_errors</span> <span class='keyglyph'>=</span> <span class='str'>"issue-errors"</span>-<a name="line-161"></a><a name="a_kind"></a><span class='definition'>a_kind</span> <span class='keyglyph'>=</span> <span class='str'>"kind"</span>-<a name="line-162"></a><a name="a_line"></a><span class='definition'>a_line</span> <span class='keyglyph'>=</span> <span class='str'>"line"</span>-<a name="line-163"></a><a name="a_mime_types"></a><span class='definition'>a_mime_types</span> <span class='keyglyph'>=</span> <span class='str'>"mimetypes"</span>-<a name="line-164"></a><a name="a_module"></a><span class='definition'>a_module</span> <span class='keyglyph'>=</span> <span class='str'>"module"</span>-<a name="line-165"></a><a name="a_modifier"></a><span class='definition'>a_modifier</span> <span class='keyglyph'>=</span> <span class='str'>"modifier"</span>-<a name="line-166"></a><a name="a_name"></a><span class='definition'>a_name</span> <span class='keyglyph'>=</span> <span class='str'>"name"</span>-<a name="line-167"></a><a name="a_no_empty_elements"></a><span class='definition'>a_no_empty_elements</span> <span class='keyglyph'>=</span> <span class='str'>"no-empty-elements"</span>-<a name="line-168"></a><a name="a_no_xml_pi"></a><span class='definition'>a_no_xml_pi</span> <span class='keyglyph'>=</span> <span class='str'>"no-xml-pi"</span>-<a name="line-169"></a><a name="a_options_curl"></a><span class='definition'>a_options_curl</span> <span class='keyglyph'>=</span> <span class='str'>"options-curl"</span>-<a name="line-170"></a><a name="a_output_file"></a><span class='definition'>a_output_file</span> <span class='keyglyph'>=</span> <span class='str'>"output-file"</span>-<a name="line-171"></a><a name="a_output_encoding"></a><span class='definition'>a_output_encoding</span> <span class='keyglyph'>=</span> <span class='str'>"output-encoding"</span>-<a name="line-172"></a><a name="a_output_html"></a><span class='definition'>a_output_html</span> <span class='keyglyph'>=</span> <span class='str'>"output-html"</span>-<a name="line-173"></a><a name="a_output_xml"></a><span class='definition'>a_output_xml</span> <span class='keyglyph'>=</span> <span class='str'>"output-xml"</span>-<a name="line-174"></a><a name="a_parse_by_mimetype"></a><span class='definition'>a_parse_by_mimetype</span> <span class='keyglyph'>=</span> <span class='str'>"parse-by-mimetype"</span>-<a name="line-175"></a><a name="a_parse_html"></a><span class='definition'>a_parse_html</span> <span class='keyglyph'>=</span> <span class='str'>"parse-html"</span>-<a name="line-176"></a><a name="a_parse_xml"></a><span class='definition'>a_parse_xml</span> <span class='keyglyph'>=</span> <span class='str'>"parse-xml"</span>-<a name="line-177"></a><a name="a_peref"></a><span class='definition'>a_peref</span> <span class='keyglyph'>=</span> <span class='varid'>k_peref</span>-<a name="line-178"></a><a name="a_preserve_comment"></a><span class='definition'>a_preserve_comment</span> <span class='keyglyph'>=</span> <span class='str'>"preserve-comment"</span>-<a name="line-179"></a><a name="a_propagate_errors"></a><span class='definition'>a_propagate_errors</span> <span class='keyglyph'>=</span> <span class='str'>"propagate-errors"</span>-<a name="line-180"></a><a name="a_proxy"></a><span class='definition'>a_proxy</span> <span class='keyglyph'>=</span> <span class='str'>"proxy"</span>-<a name="line-181"></a><a name="a_remove_whitespace"></a><span class='definition'>a_remove_whitespace</span> <span class='keyglyph'>=</span> <span class='str'>"remove-whitespace"</span>-<a name="line-182"></a><a name="a_show_haskell"></a><span class='definition'>a_show_haskell</span> <span class='keyglyph'>=</span> <span class='str'>"show-haskell"</span>-<a name="line-183"></a><a name="a_show_tree"></a><span class='definition'>a_show_tree</span> <span class='keyglyph'>=</span> <span class='str'>"show-tree"</span>-<a name="line-184"></a><a name="a_source"></a><span class='definition'>a_source</span> <span class='keyglyph'>=</span> <span class='str'>"source"</span>-<a name="line-185"></a><a name="a_standalone"></a><span class='definition'>a_standalone</span> <span class='keyglyph'>=</span> <span class='str'>"standalone"</span>-<a name="line-186"></a><a name="a_status"></a><span class='definition'>a_status</span> <span class='keyglyph'>=</span> <span class='str'>"status"</span>-<a name="line-187"></a><a name="a_strict_input"></a><span class='definition'>a_strict_input</span> <span class='keyglyph'>=</span> <span class='str'>"strict-input"</span>-<a name="line-188"></a><a name="a_tagsoup"></a><span class='definition'>a_tagsoup</span> <span class='keyglyph'>=</span> <span class='str'>"tagsoup"</span>-<a name="line-189"></a><a name="a_trace"></a><span class='definition'>a_trace</span> <span class='keyglyph'>=</span> <span class='str'>"trace"</span>-<a name="line-190"></a><a name="a_type"></a><span class='definition'>a_type</span> <span class='keyglyph'>=</span> <span class='str'>"type"</span>-<a name="line-191"></a><a name="a_url"></a><span class='definition'>a_url</span> <span class='keyglyph'>=</span> <span class='str'>"url"</span>-<a name="line-192"></a><a name="a_use_curl"></a><span class='definition'>a_use_curl</span> <span class='keyglyph'>=</span> <span class='str'>"use-curl"</span>-<a name="line-193"></a><a name="a_validate"></a><span class='definition'>a_validate</span> <span class='keyglyph'>=</span> <span class='str'>"validate"</span>-<a name="line-194"></a><a name="a_value"></a><span class='definition'>a_value</span> <span class='keyglyph'>=</span> <span class='str'>"value"</span>-<a name="line-195"></a><a name="a_verbose"></a><span class='definition'>a_verbose</span> <span class='keyglyph'>=</span> <span class='str'>"verbose"</span>-<a name="line-196"></a><a name="a_version"></a><span class='definition'>a_version</span> <span class='keyglyph'>=</span> <span class='str'>"version"</span>-<a name="line-197"></a><a name="a_xml"></a><span class='definition'>a_xml</span> <span class='keyglyph'>=</span> <span class='str'>"xml"</span>-<a name="line-198"></a><a name="a_xmlns"></a><span class='definition'>a_xmlns</span> <span class='keyglyph'>=</span> <span class='str'>"xmlns"</span>-<a name="line-199"></a>-<a name="line-200"></a><a name="v_yes"></a><span class='definition'>v_yes</span> <span class='keyglyph'>=</span> <span class='str'>"yes"</span>-<a name="line-201"></a><a name="v_no"></a><span class='definition'>v_no</span> <span class='keyglyph'>=</span> <span class='str'>"no"</span>-<a name="line-202"></a><a name="v_1"></a><span class='definition'>v_1</span> <span class='keyglyph'>=</span> <span class='str'>"1"</span>-<a name="line-203"></a><span class='definition'>v_0</span> <span class='keyglyph'>=</span> <span class='str'>"0"</span>-<a name="line-204"></a>-<a name="line-205"></a><a name="v_any"></a><span class='definition'>v_any</span> <span class='keyglyph'>=</span> <span class='varid'>k_any</span>-<a name="line-206"></a><a name="v_children"></a><span class='definition'>v_children</span> <span class='keyglyph'>=</span> <span class='str'>"children"</span>-<a name="line-207"></a><a name="v_choice"></a><span class='definition'>v_choice</span> <span class='keyglyph'>=</span> <span class='str'>"choice"</span>-<a name="line-208"></a><a name="v_empty"></a><span class='definition'>v_empty</span> <span class='keyglyph'>=</span> <span class='varid'>k_empty</span>-<a name="line-209"></a><a name="v_pcdata"></a><span class='definition'>v_pcdata</span> <span class='keyglyph'>=</span> <span class='varid'>k_pcdata</span>-<a name="line-210"></a><a name="v_mixed"></a><span class='definition'>v_mixed</span> <span class='keyglyph'>=</span> <span class='str'>"mixed"</span>-<a name="line-211"></a><a name="v_seq"></a><span class='definition'>v_seq</span> <span class='keyglyph'>=</span> <span class='str'>"seq"</span>-<a name="line-212"></a>-<a name="line-213"></a><a name="v_null"></a><span class='definition'>v_null</span> <span class='keyglyph'>=</span> <span class='str'>""</span>-<a name="line-214"></a><a name="v_option"></a><span class='definition'>v_option</span> <span class='keyglyph'>=</span> <span class='str'>"?"</span>-<a name="line-215"></a><a name="v_star"></a><span class='definition'>v_star</span> <span class='keyglyph'>=</span> <span class='str'>"*"</span>-<a name="line-216"></a><a name="v_plus"></a><span class='definition'>v_plus</span> <span class='keyglyph'>=</span> <span class='str'>"+"</span>-<a name="line-217"></a>-<a name="line-218"></a><span class='definition'>k_any</span> <span class='keyglyph'>=</span> <span class='str'>"ANY"</span>-<a name="line-219"></a><a name="k_cdata"></a><span class='definition'>k_cdata</span> <span class='keyglyph'>=</span> <span class='str'>"CDATA"</span>-<a name="line-220"></a><a name="k_empty"></a><span class='definition'>k_empty</span> <span class='keyglyph'>=</span> <span class='str'>"EMPTY"</span>-<a name="line-221"></a><a name="k_entity"></a><span class='definition'>k_entity</span> <span class='keyglyph'>=</span> <span class='str'>"ENTITY"</span>-<a name="line-222"></a><a name="k_entities"></a><span class='definition'>k_entities</span> <span class='keyglyph'>=</span> <span class='str'>"ENTITIES"</span>-<a name="line-223"></a><a name="k_id"></a><span class='definition'>k_id</span> <span class='keyglyph'>=</span> <span class='str'>"ID"</span>-<a name="line-224"></a><a name="k_idref"></a><span class='definition'>k_idref</span> <span class='keyglyph'>=</span> <span class='str'>"IDREF"</span>-<a name="line-225"></a><a name="k_idrefs"></a><span class='definition'>k_idrefs</span> <span class='keyglyph'>=</span> <span class='str'>"IDREFS"</span>-<a name="line-226"></a><a name="k_include"></a><span class='definition'>k_include</span> <span class='keyglyph'>=</span> <span class='str'>"INCLUDE"</span>-<a name="line-227"></a><a name="k_ignore"></a><span class='definition'>k_ignore</span> <span class='keyglyph'>=</span> <span class='str'>"IGNORE"</span>-<a name="line-228"></a><a name="k_nmtoken"></a><span class='definition'>k_nmtoken</span> <span class='keyglyph'>=</span> <span class='str'>"NMTOKEN"</span>-<a name="line-229"></a><a name="k_nmtokens"></a><span class='definition'>k_nmtokens</span> <span class='keyglyph'>=</span> <span class='str'>"NMTOKENS"</span>-<a name="line-230"></a><a name="k_peref"></a><span class='definition'>k_peref</span> <span class='keyglyph'>=</span> <span class='str'>"PERef"</span>-<a name="line-231"></a><a name="k_public"></a><span class='definition'>k_public</span> <span class='keyglyph'>=</span> <span class='str'>"PUBLIC"</span>-<a name="line-232"></a><a name="k_system"></a><span class='definition'>k_system</span> <span class='keyglyph'>=</span> <span class='str'>"SYSTEM"</span>-<a name="line-233"></a>-<a name="line-234"></a><a name="k_enumeration"></a><span class='definition'>k_enumeration</span> <span class='keyglyph'>=</span> <span class='str'>"#ENUMERATION"</span>-<a name="line-235"></a><a name="k_fixed"></a><span class='definition'>k_fixed</span> <span class='keyglyph'>=</span> <span class='str'>"#FIXED"</span>-<a name="line-236"></a><a name="k_implied"></a><span class='definition'>k_implied</span> <span class='keyglyph'>=</span> <span class='str'>"#IMPLIED"</span>-<a name="line-237"></a><a name="k_ndata"></a><span class='definition'>k_ndata</span> <span class='keyglyph'>=</span> <span class='str'>"NDATA"</span>-<a name="line-238"></a><a name="k_notation"></a><span class='definition'>k_notation</span> <span class='keyglyph'>=</span> <span class='str'>"NOTATION"</span>-<a name="line-239"></a><a name="k_pcdata"></a><span class='definition'>k_pcdata</span> <span class='keyglyph'>=</span> <span class='str'>"#PCDATA"</span>-<a name="line-240"></a><a name="k_required"></a><span class='definition'>k_required</span> <span class='keyglyph'>=</span> <span class='str'>"#REQUIRED"</span>-<a name="line-241"></a><a name="k_default"></a><span class='definition'>k_default</span> <span class='keyglyph'>=</span> <span class='str'>"#DEFAULT"</span>-<a name="line-242"></a>-<a name="line-243"></a>-<a name="line-244"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-245"></a><span class='comment'>--</span>-<a name="line-246"></a>-<a name="line-247"></a><span class='comment'>-- attribute names for transfer protocol attributes</span>-<a name="line-248"></a><span class='comment'>-- used in XmlInput for describing header information</span>-<a name="line-249"></a><span class='comment'>-- of http and other requests</span>-<a name="line-250"></a>-<a name="line-251"></a><a name="transferPrefix"></a><span class='definition'>transferPrefix</span>-<a name="line-252"></a> <span class='layout'>,</span> <span class='varid'>transferProtocol</span>-<a name="line-253"></a> <span class='layout'>,</span> <span class='varid'>transferMimeType</span>-<a name="line-254"></a> <span class='layout'>,</span> <span class='varid'>transferEncoding</span>-<a name="line-255"></a> <span class='layout'>,</span> <span class='varid'>transferURI</span>-<a name="line-256"></a> <span class='layout'>,</span> <span class='varid'>transferDefaultURI</span>-<a name="line-257"></a> <span class='layout'>,</span> <span class='varid'>transferStatus</span>-<a name="line-258"></a> <span class='layout'>,</span> <span class='varid'>transferMessage</span>-<a name="line-259"></a> <span class='layout'>,</span> <span class='varid'>transferVersion</span> <span class='keyglyph'>::</span> <span class='conid'>String</span>-<a name="line-260"></a>-<a name="line-261"></a><span class='definition'>transferPrefix</span> <span class='keyglyph'>=</span> <span class='str'>"transfer-"</span>-<a name="line-262"></a>-<a name="line-263"></a><a name="transferProtocol"></a><span class='definition'>transferProtocol</span> <span class='keyglyph'>=</span> <span class='varid'>transferPrefix</span> <span class='varop'>++</span> <span class='str'>"Protocol"</span>-<a name="line-264"></a><a name="transferVersion"></a><span class='definition'>transferVersion</span> <span class='keyglyph'>=</span> <span class='varid'>transferPrefix</span> <span class='varop'>++</span> <span class='str'>"Version"</span>-<a name="line-265"></a><a name="transferMimeType"></a><span class='definition'>transferMimeType</span> <span class='keyglyph'>=</span> <span class='varid'>transferPrefix</span> <span class='varop'>++</span> <span class='str'>"MimeType"</span>-<a name="line-266"></a><a name="transferEncoding"></a><span class='definition'>transferEncoding</span> <span class='keyglyph'>=</span> <span class='varid'>transferPrefix</span> <span class='varop'>++</span> <span class='str'>"Encoding"</span>-<a name="line-267"></a><a name="transferDefaultURI"></a><span class='definition'>transferDefaultURI</span> <span class='keyglyph'>=</span> <span class='varid'>transferPrefix</span> <span class='varop'>++</span> <span class='str'>"DefaultURI"</span>-<a name="line-268"></a><a name="transferStatus"></a><span class='definition'>transferStatus</span> <span class='keyglyph'>=</span> <span class='varid'>transferPrefix</span> <span class='varop'>++</span> <span class='str'>"Status"</span>-<a name="line-269"></a><a name="transferMessage"></a><span class='definition'>transferMessage</span> <span class='keyglyph'>=</span> <span class='varid'>transferPrefix</span> <span class='varop'>++</span> <span class='str'>"Message"</span>-<a name="line-270"></a><a name="transferURI"></a><span class='definition'>transferURI</span> <span class='keyglyph'>=</span> <span class='varid'>transferPrefix</span> <span class='varop'>++</span> <span class='str'>"URI"</span>-<a name="line-271"></a>-<a name="line-272"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-273"></a><span class='comment'>--</span>-<a name="line-274"></a>-<a name="line-275"></a><a name="httpPrefix"></a><span class='definition'>httpPrefix</span> <span class='keyglyph'>::</span> <span class='conid'>String</span>-<a name="line-276"></a><span class='definition'>httpPrefix</span> <span class='keyglyph'>=</span> <span class='str'>"http-"</span>-<a name="line-277"></a>-<a name="line-278"></a><a name="stringProtocol"></a><span class='definition'>stringProtocol</span> <span class='keyglyph'>::</span> <span class='conid'>String</span>-<a name="line-279"></a><span class='definition'>stringProtocol</span> <span class='keyglyph'>=</span> <span class='str'>"string:"</span>-<a name="line-280"></a>-<a name="line-281"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-282"></a><span class='comment'>--</span>-<a name="line-283"></a><span class='comment'>-- encoding names</span>-<a name="line-284"></a>-<a name="line-285"></a><a name="isoLatin1"></a><span class='definition'>isoLatin1</span>-<a name="line-286"></a> <span class='layout'>,</span> <span class='varid'>iso8859_1</span><span class='layout'>,</span> <span class='varid'>iso8859_2</span><span class='layout'>,</span> <span class='varid'>iso8859_3</span><span class='layout'>,</span> <span class='varid'>iso8859_4</span><span class='layout'>,</span> <span class='varid'>iso8859_5</span>-<a name="line-287"></a> <span class='layout'>,</span> <span class='varid'>iso8859_6</span><span class='layout'>,</span> <span class='varid'>iso8859_7</span><span class='layout'>,</span> <span class='varid'>iso8859_8</span><span class='layout'>,</span> <span class='varid'>iso8859_9</span><span class='layout'>,</span> <span class='varid'>iso8859_10</span>-<a name="line-288"></a> <span class='layout'>,</span> <span class='varid'>iso8859_11</span><span class='layout'>,</span> <span class='varid'>iso8859_13</span><span class='layout'>,</span> <span class='varid'>iso8859_14</span><span class='layout'>,</span> <span class='varid'>iso8859_15</span><span class='layout'>,</span> <span class='varid'>iso8859_16</span>-<a name="line-289"></a> <span class='layout'>,</span> <span class='varid'>usAscii</span><span class='layout'>,</span> <span class='varid'>ucs2</span><span class='layout'>,</span> <span class='varid'>utf8</span><span class='layout'>,</span> <span class='varid'>utf16</span><span class='layout'>,</span> <span class='varid'>utf16be</span><span class='layout'>,</span> <span class='varid'>utf16le</span><span class='layout'>,</span> <span class='varid'>unicodeString</span> <span class='keyglyph'>::</span> <span class='conid'>String</span>-<a name="line-290"></a>-<a name="line-291"></a><span class='definition'>isoLatin1</span> <span class='keyglyph'>=</span> <span class='varid'>iso8859_1</span>-<a name="line-292"></a><a name="iso8859_1"></a><span class='definition'>iso8859_1</span> <span class='keyglyph'>=</span> <span class='str'>"ISO-8859-1"</span>-<a name="line-293"></a><a name="iso8859_2"></a><span class='definition'>iso8859_2</span> <span class='keyglyph'>=</span> <span class='str'>"ISO-8859-2"</span>-<a name="line-294"></a><a name="iso8859_3"></a><span class='definition'>iso8859_3</span> <span class='keyglyph'>=</span> <span class='str'>"ISO-8859-3"</span>-<a name="line-295"></a><a name="iso8859_4"></a><span class='definition'>iso8859_4</span> <span class='keyglyph'>=</span> <span class='str'>"ISO-8859-4"</span>-<a name="line-296"></a><a name="iso8859_5"></a><span class='definition'>iso8859_5</span> <span class='keyglyph'>=</span> <span class='str'>"ISO-8859-5"</span>-<a name="line-297"></a><a name="iso8859_6"></a><span class='definition'>iso8859_6</span> <span class='keyglyph'>=</span> <span class='str'>"ISO-8859-6"</span>-<a name="line-298"></a><a name="iso8859_7"></a><span class='definition'>iso8859_7</span> <span class='keyglyph'>=</span> <span class='str'>"ISO-8859-7"</span>-<a name="line-299"></a><a name="iso8859_8"></a><span class='definition'>iso8859_8</span> <span class='keyglyph'>=</span> <span class='str'>"ISO-8859-8"</span>-<a name="line-300"></a><a name="iso8859_9"></a><span class='definition'>iso8859_9</span> <span class='keyglyph'>=</span> <span class='str'>"ISO-8859-9"</span>-<a name="line-301"></a><a name="iso8859_10"></a><span class='definition'>iso8859_10</span> <span class='keyglyph'>=</span> <span class='str'>"ISO-8859-10"</span>-<a name="line-302"></a><a name="iso8859_11"></a><span class='definition'>iso8859_11</span> <span class='keyglyph'>=</span> <span class='str'>"ISO-8859-11"</span>-<a name="line-303"></a><a name="iso8859_13"></a><span class='definition'>iso8859_13</span> <span class='keyglyph'>=</span> <span class='str'>"ISO-8859-13"</span>-<a name="line-304"></a><a name="iso8859_14"></a><span class='definition'>iso8859_14</span> <span class='keyglyph'>=</span> <span class='str'>"ISO-8859-14"</span>-<a name="line-305"></a><a name="iso8859_15"></a><span class='definition'>iso8859_15</span> <span class='keyglyph'>=</span> <span class='str'>"ISO-8859-15"</span>-<a name="line-306"></a><a name="iso8859_16"></a><span class='definition'>iso8859_16</span> <span class='keyglyph'>=</span> <span class='str'>"ISO-8859-16"</span>-<a name="line-307"></a><a name="usAscii"></a><span class='definition'>usAscii</span> <span class='keyglyph'>=</span> <span class='str'>"US-ASCII"</span>-<a name="line-308"></a><a name="ucs2"></a><span class='definition'>ucs2</span> <span class='keyglyph'>=</span> <span class='str'>"ISO-10646-UCS-2"</span>-<a name="line-309"></a><a name="utf8"></a><span class='definition'>utf8</span> <span class='keyglyph'>=</span> <span class='str'>"UTF-8"</span>-<a name="line-310"></a><a name="utf16"></a><span class='definition'>utf16</span> <span class='keyglyph'>=</span> <span class='str'>"UTF-16"</span>-<a name="line-311"></a><a name="utf16be"></a><span class='definition'>utf16be</span> <span class='keyglyph'>=</span> <span class='str'>"UTF-16BE"</span>-<a name="line-312"></a><a name="utf16le"></a><span class='definition'>utf16le</span> <span class='keyglyph'>=</span> <span class='str'>"UTF-16LE"</span>-<a name="line-313"></a><a name="unicodeString"></a><span class='definition'>unicodeString</span> <span class='keyglyph'>=</span> <span class='str'>"UNICODE"</span>-<a name="line-314"></a>-<a name="line-315"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-316"></a><span class='comment'>--</span>-<a name="line-317"></a><span class='comment'>-- known namespaces</span>-<a name="line-318"></a>-<a name="line-319"></a><span class='comment'>-- |</span>-<a name="line-320"></a><span class='comment'>-- the predefined namespace uri for xml: \"http:\/\/www.w3.org\/XML\/1998\/namespace\"</span>-<a name="line-321"></a>-<a name="line-322"></a><a name="xmlNamespace"></a><span class='definition'>xmlNamespace</span> <span class='keyglyph'>::</span> <span class='conid'>String</span>-<a name="line-323"></a><span class='definition'>xmlNamespace</span> <span class='keyglyph'>=</span> <span class='str'>"http://www.w3.org/XML/1998/namespace"</span>-<a name="line-324"></a>-<a name="line-325"></a><span class='comment'>-- |</span>-<a name="line-326"></a><span class='comment'>-- the predefined namespace uri for xmlns: \"http:\/\/www.w3.org\/2000\/xmlns\/\"</span>-<a name="line-327"></a>-<a name="line-328"></a><a name="xmlnsNamespace"></a><span class='definition'>xmlnsNamespace</span> <span class='keyglyph'>::</span> <span class='conid'>String</span>-<a name="line-329"></a><span class='definition'>xmlnsNamespace</span> <span class='keyglyph'>=</span> <span class='str'>"http://www.w3.org/2000/xmlns/"</span>-<a name="line-330"></a>-<a name="line-331"></a><a name="relaxNamespace"></a><span class='comment'>-- | Relax NG namespace</span>-<a name="line-332"></a><span class='definition'>relaxNamespace</span> <span class='keyglyph'>::</span> <span class='conid'>String</span>-<a name="line-333"></a><span class='definition'>relaxNamespace</span> <span class='keyglyph'>=</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span>-<a name="line-334"></a>-<a name="line-335"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-336"></a><span class='comment'>-- option for Relax NG</span>-<a name="line-337"></a>-<a name="line-338"></a><a name="a_relax_schema"></a><span class='definition'>a_relax_schema</span><span class='layout'>,</span>-<a name="line-339"></a> <span class='varid'>a_do_not_check_restrictions</span><span class='layout'>,</span> -<a name="line-340"></a> <span class='varid'>a_check_restrictions</span><span class='layout'>,</span>-<a name="line-341"></a> <span class='varid'>a_do_not_validate_externalRef</span><span class='layout'>,</span>-<a name="line-342"></a> <span class='varid'>a_validate_externalRef</span><span class='layout'>,</span>-<a name="line-343"></a> <span class='varid'>a_do_not_validate_include</span><span class='layout'>,</span>-<a name="line-344"></a> <span class='varid'>a_validate_include</span><span class='layout'>,</span>-<a name="line-345"></a> <span class='varid'>a_output_changes</span><span class='layout'>,</span> -<a name="line-346"></a> <span class='varid'>a_do_not_collect_errors</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> -<a name="line-347"></a>-<a name="line-348"></a><span class='definition'>a_relax_schema</span> <span class='keyglyph'>=</span> <span class='str'>"relax-schema"</span>-<a name="line-349"></a><a name="a_do_not_check_restrictions"></a><span class='definition'>a_do_not_check_restrictions</span> <span class='keyglyph'>=</span> <span class='str'>"do-not-check-restrictions"</span>-<a name="line-350"></a><a name="a_check_restrictions"></a><span class='definition'>a_check_restrictions</span> <span class='keyglyph'>=</span> <span class='str'>"check-restrictions"</span>-<a name="line-351"></a><a name="a_do_not_validate_externalRef"></a><span class='definition'>a_do_not_validate_externalRef</span> <span class='keyglyph'>=</span> <span class='str'>"do-not-validate-externalRef"</span>-<a name="line-352"></a><a name="a_validate_externalRef"></a><span class='definition'>a_validate_externalRef</span> <span class='keyglyph'>=</span> <span class='str'>"validate-externalRef"</span> -<a name="line-353"></a><a name="a_do_not_validate_include"></a><span class='definition'>a_do_not_validate_include</span> <span class='keyglyph'>=</span> <span class='str'>"do-not-validate-include"</span>-<a name="line-354"></a><a name="a_validate_include"></a><span class='definition'>a_validate_include</span> <span class='keyglyph'>=</span> <span class='str'>"validate-include"</span>-<a name="line-355"></a><a name="a_output_changes"></a><span class='definition'>a_output_changes</span> <span class='keyglyph'>=</span> <span class='str'>"output-pattern-transformations"</span>-<a name="line-356"></a><a name="a_do_not_collect_errors"></a><span class='definition'>a_do_not_collect_errors</span> <span class='keyglyph'>=</span> <span class='str'>"do-not-collect-errors"</span>-<a name="line-357"></a>-<a name="line-358"></a><span class='comment'>-- ------------------------------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-DOM-XmlNode.html
@@ -1,343 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Text.XML.HXT.DOM.XmlNode-<a name="line-5"></a> Copyright : Copyright (C) 2008 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a>-<a name="line-9"></a> Maintainer : Uwe Schmidt (uwe@fh-wedel.de)-<a name="line-10"></a> Stability : stable-<a name="line-11"></a> Portability: portable-<a name="line-12"></a>-<a name="line-13"></a> Interface for XmlArrow to basic data types NTree and XmlTree-<a name="line-14"></a>-<a name="line-15"></a> If this module must be used in code working with arrows,-<a name="line-16"></a> it should be imported qualified e.g. @as XN@, to prevent name clashes.-<a name="line-17"></a>-<a name="line-18"></a> For code working on the \"node and tree level\" this module-<a name="line-19"></a> is the interface for writing code without using the-<a name="line-20"></a> constructor functions of 'XNode' and 'NTree' directly-<a name="line-21"></a>-<a name="line-22"></a>-}</span>-<a name="line-23"></a>-<a name="line-24"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-25"></a>-<a name="line-26"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlNode</span>-<a name="line-27"></a> <span class='layout'>(</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlNode</span>-<a name="line-28"></a> <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Tree</span><span class='varop'>.</span><span class='conid'>NTree</span><span class='varop'>.</span><span class='conid'>TypeDefs</span>-<a name="line-29"></a> <span class='layout'>)</span>-<a name="line-30"></a><span class='keyword'>where</span>-<a name="line-31"></a>-<a name="line-32"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Monad</span>-<a name="line-33"></a>-<a name="line-34"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Tree</span><span class='varop'>.</span><span class='conid'>NTree</span><span class='varop'>.</span><span class='conid'>TypeDefs</span>-<a name="line-35"></a>-<a name="line-36"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>-<a name="line-37"></a>-<a name="line-38"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>-<a name="line-39"></a>-<a name="line-40"></a><a name="XmlNode"></a><span class='keyword'>class</span> <span class='conid'>XmlNode</span> <span class='varid'>a</span> <span class='keyword'>where</span>-<a name="line-41"></a> <span class='comment'>-- discriminating predicates</span>-<a name="line-42"></a>-<a name="line-43"></a> <span class='varid'>isText</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-44"></a> <span class='varid'>isCharRef</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-45"></a> <span class='varid'>isEntityRef</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-46"></a> <span class='varid'>isCmt</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-47"></a> <span class='varid'>isCdata</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-48"></a> <span class='varid'>isPi</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-49"></a> <span class='varid'>isElem</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-50"></a> <span class='varid'>isRoot</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-51"></a> <span class='varid'>isDTD</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-52"></a> <span class='varid'>isAttr</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-53"></a> <span class='varid'>isError</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-54"></a>-<a name="line-55"></a> <span class='comment'>-- constructor functions for leave nodes</span>-<a name="line-56"></a>-<a name="line-57"></a> <span class='varid'>mkText</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='varid'>a</span>-<a name="line-58"></a> <span class='varid'>mkCharRef</span> <span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-></span> <span class='varid'>a</span>-<a name="line-59"></a> <span class='varid'>mkEntityRef</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='varid'>a</span>-<a name="line-60"></a> <span class='varid'>mkCmt</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='varid'>a</span>-<a name="line-61"></a> <span class='varid'>mkCdata</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='varid'>a</span>-<a name="line-62"></a> <span class='varid'>mkPi</span> <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='varid'>a</span>-<a name="line-63"></a> <span class='varid'>mkError</span> <span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='varid'>a</span>-<a name="line-64"></a>-<a name="line-65"></a> <span class='comment'>-- selectors</span>-<a name="line-66"></a>-<a name="line-67"></a> <span class='varid'>getText</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>Maybe</span> <span class='conid'>String</span>-<a name="line-68"></a> <span class='varid'>getCharRef</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>Maybe</span> <span class='conid'>Int</span>-<a name="line-69"></a> <span class='varid'>getEntityRef</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>Maybe</span> <span class='conid'>String</span>-<a name="line-70"></a> <span class='varid'>getCmt</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>Maybe</span> <span class='conid'>String</span>-<a name="line-71"></a> <span class='varid'>getCdata</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>Maybe</span> <span class='conid'>String</span>-<a name="line-72"></a> <span class='varid'>getPiName</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>Maybe</span> <span class='conid'>QName</span>-<a name="line-73"></a> <span class='varid'>getPiContent</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>Maybe</span> <span class='conid'>XmlTrees</span>-<a name="line-74"></a> <span class='varid'>getElemName</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>Maybe</span> <span class='conid'>QName</span>-<a name="line-75"></a> <span class='varid'>getAttrl</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>Maybe</span> <span class='conid'>XmlTrees</span>-<a name="line-76"></a> <span class='varid'>getDTDPart</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>Maybe</span> <span class='conid'>DTDElem</span>-<a name="line-77"></a> <span class='varid'>getDTDAttrl</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>Maybe</span> <span class='conid'>Attributes</span>-<a name="line-78"></a> <span class='varid'>getAttrName</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>Maybe</span> <span class='conid'>QName</span>-<a name="line-79"></a> <span class='varid'>getErrorLevel</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>Maybe</span> <span class='conid'>Int</span>-<a name="line-80"></a> <span class='varid'>getErrorMsg</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>Maybe</span> <span class='conid'>String</span>-<a name="line-81"></a>-<a name="line-82"></a> <span class='comment'>-- derived selectors</span>-<a name="line-83"></a>-<a name="line-84"></a> <span class='varid'>getName</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>Maybe</span> <span class='conid'>QName</span>-<a name="line-85"></a> <span class='varid'>getQualifiedName</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>Maybe</span> <span class='conid'>String</span>-<a name="line-86"></a> <span class='varid'>getUniversalName</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>Maybe</span> <span class='conid'>String</span>-<a name="line-87"></a> <span class='varid'>getUniversalUri</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>Maybe</span> <span class='conid'>String</span>-<a name="line-88"></a> <span class='varid'>getLocalPart</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>Maybe</span> <span class='conid'>String</span>-<a name="line-89"></a> <span class='varid'>getNamePrefix</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>Maybe</span> <span class='conid'>String</span>-<a name="line-90"></a> <span class='varid'>getNamespaceUri</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>Maybe</span> <span class='conid'>String</span>-<a name="line-91"></a>-<a name="line-92"></a> <span class='comment'>-- "modifier" functions</span>-<a name="line-93"></a>-<a name="line-94"></a> <span class='varid'>changeText</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='varid'>a</span>-<a name="line-95"></a> <span class='varid'>changeCmt</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='varid'>a</span>-<a name="line-96"></a> <span class='varid'>changeName</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='conid'>QName</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='varid'>a</span>-<a name="line-97"></a> <span class='varid'>changeElemName</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='conid'>QName</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='varid'>a</span>-<a name="line-98"></a> <span class='varid'>changeAttrl</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='varid'>a</span>-<a name="line-99"></a> <span class='varid'>changeAttrName</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='conid'>QName</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='varid'>a</span>-<a name="line-100"></a> <span class='varid'>changePiName</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='conid'>QName</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='varid'>a</span>-<a name="line-101"></a> <span class='varid'>changeDTDAttrl</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>Attributes</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='varid'>a</span>-<a name="line-102"></a>-<a name="line-103"></a> <span class='varid'>setText</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='varid'>a</span>-<a name="line-104"></a> <span class='varid'>setCmt</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='varid'>a</span>-<a name="line-105"></a> <span class='varid'>setName</span> <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='varid'>a</span>-<a name="line-106"></a> <span class='varid'>setElemName</span> <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='varid'>a</span>-<a name="line-107"></a> <span class='varid'>setElemAttrl</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='varid'>a</span>-<a name="line-108"></a> <span class='varid'>setAttrName</span> <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='varid'>a</span>-<a name="line-109"></a> <span class='varid'>setPiName</span> <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='varid'>a</span>-<a name="line-110"></a> <span class='varid'>setDTDAttrl</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='varid'>a</span>-<a name="line-111"></a>-<a name="line-112"></a> <span class='comment'>-- default implementations</span>-<a name="line-113"></a>-<a name="line-114"></a> <span class='varid'>getName</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='varid'>getElemName</span> <span class='varid'>n</span> <span class='varop'>`mplus`</span> <span class='varid'>getAttrName</span> <span class='varid'>n</span> <span class='varop'>`mplus`</span> <span class='varid'>getPiName</span> <span class='varid'>n</span>-<a name="line-115"></a> <span class='varid'>getQualifiedName</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='varid'>getName</span> <span class='varid'>n</span> <span class='varop'>>>=</span> <span class='keyglyph'>\</span> <span class='varid'>n'</span> <span class='keyglyph'>-></span> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>qualifiedName</span> <span class='varid'>n'</span><span class='layout'>)</span>-<a name="line-116"></a> <span class='varid'>getUniversalName</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='varid'>getName</span> <span class='varid'>n</span> <span class='varop'>>>=</span> <span class='keyglyph'>\</span> <span class='varid'>n'</span> <span class='keyglyph'>-></span> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>universalName</span> <span class='varid'>n'</span><span class='layout'>)</span>-<a name="line-117"></a> <span class='varid'>getUniversalUri</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='varid'>getName</span> <span class='varid'>n</span> <span class='varop'>>>=</span> <span class='keyglyph'>\</span> <span class='varid'>n'</span> <span class='keyglyph'>-></span> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>universalUri</span> <span class='varid'>n'</span><span class='layout'>)</span>-<a name="line-118"></a> <span class='varid'>getLocalPart</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='varid'>getName</span> <span class='varid'>n</span> <span class='varop'>>>=</span> <span class='keyglyph'>\</span> <span class='varid'>n'</span> <span class='keyglyph'>-></span> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>localPart</span> <span class='varid'>n'</span><span class='layout'>)</span>-<a name="line-119"></a> <span class='varid'>getNamePrefix</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='varid'>getName</span> <span class='varid'>n</span> <span class='varop'>>>=</span> <span class='keyglyph'>\</span> <span class='varid'>n'</span> <span class='keyglyph'>-></span> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>namePrefix</span> <span class='varid'>n'</span><span class='layout'>)</span>-<a name="line-120"></a> <span class='varid'>getNamespaceUri</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='varid'>getName</span> <span class='varid'>n</span> <span class='varop'>>>=</span> <span class='keyglyph'>\</span> <span class='varid'>n'</span> <span class='keyglyph'>-></span> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>namespaceUri</span> <span class='varid'>n'</span><span class='layout'>)</span>-<a name="line-121"></a>-<a name="line-122"></a> <span class='varid'>setText</span> <span class='varid'>t</span> <span class='keyglyph'>=</span> <span class='varid'>changeText</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varid'>t</span><span class='layout'>)</span>-<a name="line-123"></a> <span class='varid'>setCmt</span> <span class='varid'>c</span> <span class='keyglyph'>=</span> <span class='varid'>changeCmt</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varid'>c</span><span class='layout'>)</span>-<a name="line-124"></a> <span class='varid'>setName</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='varid'>changeName</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varid'>n</span><span class='layout'>)</span>-<a name="line-125"></a> <span class='varid'>setElemName</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='varid'>changeElemName</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varid'>n</span><span class='layout'>)</span>-<a name="line-126"></a> <span class='varid'>setElemAttrl</span> <span class='varid'>al</span> <span class='keyglyph'>=</span> <span class='varid'>changeAttrl</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varid'>al</span><span class='layout'>)</span>-<a name="line-127"></a> <span class='varid'>setAttrName</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='varid'>changeAttrName</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varid'>n</span><span class='layout'>)</span>-<a name="line-128"></a> <span class='varid'>setPiName</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='varid'>changePiName</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varid'>n</span><span class='layout'>)</span>-<a name="line-129"></a> <span class='varid'>setDTDAttrl</span> <span class='varid'>al</span> <span class='keyglyph'>=</span> <span class='varid'>changeDTDAttrl</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varid'>al</span><span class='layout'>)</span>-<a name="line-130"></a>-<a name="line-131"></a><span class='comment'>-- XNode and XmlTree are instances of XmlNode</span>-<a name="line-132"></a>-<a name="line-133"></a><span class='keyword'>instance</span> <span class='conid'>XmlNode</span> <span class='conid'>XNode</span> <span class='keyword'>where</span>-<a name="line-134"></a> <span class='varid'>isText</span> <span class='layout'>(</span><span class='conid'>XText</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-135"></a> <span class='varid'>isText</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-136"></a>-<a name="line-137"></a> <span class='varid'>isCharRef</span> <span class='layout'>(</span><span class='conid'>XCharRef</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-138"></a> <span class='varid'>isCharRef</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-139"></a>-<a name="line-140"></a> <span class='varid'>isEntityRef</span> <span class='layout'>(</span><span class='conid'>XEntityRef</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-141"></a> <span class='varid'>isEntityRef</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-142"></a>-<a name="line-143"></a> <span class='varid'>isCmt</span> <span class='layout'>(</span><span class='conid'>XCmt</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-144"></a> <span class='varid'>isCmt</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-145"></a>-<a name="line-146"></a> <span class='varid'>isCdata</span> <span class='layout'>(</span><span class='conid'>XCdata</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-147"></a> <span class='varid'>isCdata</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-148"></a>-<a name="line-149"></a> <span class='varid'>isPi</span> <span class='layout'>(</span><span class='conid'>XPi</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-150"></a> <span class='varid'>isPi</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-151"></a>-<a name="line-152"></a> <span class='varid'>isElem</span> <span class='layout'>(</span><span class='conid'>XTag</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-153"></a> <span class='varid'>isElem</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-154"></a>-<a name="line-155"></a> <span class='varid'>isRoot</span> <span class='varid'>t</span> <span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varid'>t</span>-<a name="line-156"></a> <span class='varop'>&&</span>-<a name="line-157"></a> <span class='varid'>fromMaybe</span> <span class='str'>""</span> <span class='layout'>(</span><span class='varid'>getQualifiedName</span> <span class='varid'>t</span><span class='layout'>)</span> <span class='varop'>==</span> <span class='varid'>t_root</span>-<a name="line-158"></a>-<a name="line-159"></a> <span class='varid'>isDTD</span> <span class='layout'>(</span><span class='conid'>XDTD</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-160"></a> <span class='varid'>isDTD</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-161"></a>-<a name="line-162"></a> <span class='varid'>isAttr</span> <span class='layout'>(</span><span class='conid'>XAttr</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-163"></a> <span class='varid'>isAttr</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-164"></a>-<a name="line-165"></a> <span class='varid'>isError</span> <span class='layout'>(</span><span class='conid'>XError</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-166"></a> <span class='varid'>isError</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-167"></a>-<a name="line-168"></a>-<a name="line-169"></a> <span class='varid'>mkText</span> <span class='varid'>t</span> <span class='keyglyph'>=</span> <span class='conid'>XText</span> <span class='varid'>t</span>-<a name="line-170"></a> <span class='varid'>mkCharRef</span> <span class='varid'>c</span> <span class='keyglyph'>=</span> <span class='conid'>XCharRef</span> <span class='varid'>c</span>-<a name="line-171"></a> <span class='varid'>mkEntityRef</span> <span class='varid'>e</span> <span class='keyglyph'>=</span> <span class='conid'>XEntityRef</span> <span class='varid'>e</span>-<a name="line-172"></a> <span class='varid'>mkCmt</span> <span class='varid'>c</span> <span class='keyglyph'>=</span> <span class='conid'>XCmt</span> <span class='varid'>c</span>-<a name="line-173"></a> <span class='varid'>mkCdata</span> <span class='varid'>d</span> <span class='keyglyph'>=</span> <span class='conid'>XCdata</span> <span class='varid'>d</span>-<a name="line-174"></a> <span class='varid'>mkPi</span> <span class='varid'>n</span> <span class='varid'>c</span> <span class='keyglyph'>=</span> <span class='conid'>XPi</span> <span class='varid'>n</span> <span class='layout'>(</span><span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>c</span> <span class='keyword'>then</span> <span class='conid'>[]</span> <span class='keyword'>else</span> <span class='keyglyph'>[</span><span class='varid'>mkAttr</span> <span class='layout'>(</span><span class='varid'>mkName</span> <span class='varid'>a_value</span><span class='layout'>)</span> <span class='varid'>c</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-175"></a> <span class='varid'>mkError</span> <span class='varid'>l</span> <span class='varid'>msg</span> <span class='keyglyph'>=</span> <span class='conid'>XError</span> <span class='varid'>l</span> <span class='varid'>msg</span>-<a name="line-176"></a>-<a name="line-177"></a>-<a name="line-178"></a> <span class='varid'>getText</span> <span class='layout'>(</span><span class='conid'>XText</span> <span class='varid'>t</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='varid'>t</span>-<a name="line-179"></a> <span class='varid'>getText</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>Nothing</span>-<a name="line-180"></a>-<a name="line-181"></a> <span class='varid'>getCharRef</span> <span class='layout'>(</span><span class='conid'>XCharRef</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='varid'>c</span>-<a name="line-182"></a> <span class='varid'>getCharRef</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>Nothing</span>-<a name="line-183"></a>-<a name="line-184"></a> <span class='varid'>getEntityRef</span> <span class='layout'>(</span><span class='conid'>XEntityRef</span> <span class='varid'>e</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='varid'>e</span>-<a name="line-185"></a> <span class='varid'>getEntityRef</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>Nothing</span>-<a name="line-186"></a>-<a name="line-187"></a> <span class='varid'>getCmt</span> <span class='layout'>(</span><span class='conid'>XCmt</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='varid'>c</span>-<a name="line-188"></a> <span class='varid'>getCmt</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>Nothing</span>-<a name="line-189"></a>-<a name="line-190"></a> <span class='varid'>getCdata</span> <span class='layout'>(</span><span class='conid'>XCdata</span> <span class='varid'>d</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='varid'>d</span>-<a name="line-191"></a> <span class='varid'>getCdata</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>Nothing</span>-<a name="line-192"></a>-<a name="line-193"></a> <span class='varid'>getPiName</span> <span class='layout'>(</span><span class='conid'>XPi</span> <span class='varid'>n</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='varid'>n</span>-<a name="line-194"></a> <span class='varid'>getPiName</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>Nothing</span>-<a name="line-195"></a>-<a name="line-196"></a> <span class='varid'>getPiContent</span> <span class='layout'>(</span><span class='conid'>XPi</span> <span class='keyword'>_</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='varid'>c</span>-<a name="line-197"></a> <span class='varid'>getPiContent</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>Nothing</span>-<a name="line-198"></a>-<a name="line-199"></a> <span class='varid'>getElemName</span> <span class='layout'>(</span><span class='conid'>XTag</span> <span class='varid'>n</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='varid'>n</span>-<a name="line-200"></a> <span class='varid'>getElemName</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>Nothing</span>-<a name="line-201"></a>-<a name="line-202"></a> <span class='varid'>getAttrl</span> <span class='layout'>(</span><span class='conid'>XTag</span> <span class='keyword'>_</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='varid'>al</span>-<a name="line-203"></a> <span class='varid'>getAttrl</span> <span class='layout'>(</span><span class='conid'>XPi</span> <span class='keyword'>_</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='varid'>al</span>-<a name="line-204"></a> <span class='varid'>getAttrl</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>Nothing</span>-<a name="line-205"></a>-<a name="line-206"></a> <span class='varid'>getDTDPart</span> <span class='layout'>(</span><span class='conid'>XDTD</span> <span class='varid'>p</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='varid'>p</span>-<a name="line-207"></a> <span class='varid'>getDTDPart</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>Nothing</span>-<a name="line-208"></a>-<a name="line-209"></a> <span class='varid'>getDTDAttrl</span> <span class='layout'>(</span><span class='conid'>XDTD</span> <span class='keyword'>_</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='varid'>al</span>-<a name="line-210"></a> <span class='varid'>getDTDAttrl</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>Nothing</span>-<a name="line-211"></a>-<a name="line-212"></a> <span class='varid'>getAttrName</span> <span class='layout'>(</span><span class='conid'>XAttr</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='varid'>n</span>-<a name="line-213"></a> <span class='varid'>getAttrName</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>Nothing</span>-<a name="line-214"></a>-<a name="line-215"></a> <span class='varid'>getErrorLevel</span> <span class='layout'>(</span><span class='conid'>XError</span> <span class='varid'>l</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='varid'>l</span>-<a name="line-216"></a> <span class='varid'>getErrorLevel</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>Nothing</span>-<a name="line-217"></a>-<a name="line-218"></a> <span class='varid'>getErrorMsg</span> <span class='layout'>(</span><span class='conid'>XError</span> <span class='keyword'>_</span> <span class='varid'>m</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='varid'>m</span>-<a name="line-219"></a> <span class='varid'>getErrorMsg</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>Nothing</span>-<a name="line-220"></a>-<a name="line-221"></a> <span class='varid'>changeText</span> <span class='varid'>cf</span> <span class='layout'>(</span><span class='conid'>XText</span> <span class='varid'>t</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>XText</span> <span class='layout'>(</span><span class='varid'>cf</span> <span class='varid'>t</span><span class='layout'>)</span>-<a name="line-222"></a> <span class='varid'>changeText</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='str'>"changeText undefined"</span>-<a name="line-223"></a>-<a name="line-224"></a> <span class='varid'>changeCmt</span> <span class='varid'>cf</span> <span class='layout'>(</span><span class='conid'>XCmt</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>XCmt</span> <span class='layout'>(</span><span class='varid'>cf</span> <span class='varid'>c</span><span class='layout'>)</span>-<a name="line-225"></a> <span class='varid'>changeCmt</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='str'>"changeCmt undefined"</span>-<a name="line-226"></a>-<a name="line-227"></a> <span class='varid'>changeName</span> <span class='varid'>cf</span> <span class='layout'>(</span><span class='conid'>XTag</span> <span class='varid'>n</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>XTag</span> <span class='layout'>(</span><span class='varid'>cf</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='varid'>al</span>-<a name="line-228"></a> <span class='varid'>changeName</span> <span class='varid'>cf</span> <span class='layout'>(</span><span class='conid'>XAttr</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>XAttr</span> <span class='layout'>(</span><span class='varid'>cf</span> <span class='varid'>n</span><span class='layout'>)</span>-<a name="line-229"></a> <span class='varid'>changeName</span> <span class='varid'>cf</span> <span class='layout'>(</span><span class='conid'>XPi</span> <span class='varid'>n</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>XPi</span> <span class='layout'>(</span><span class='varid'>cf</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='varid'>al</span>-<a name="line-230"></a> <span class='varid'>changeName</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='str'>"changeName undefined"</span>-<a name="line-231"></a>-<a name="line-232"></a> <span class='varid'>changeElemName</span> <span class='varid'>cf</span> <span class='layout'>(</span><span class='conid'>XTag</span> <span class='varid'>n</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>XTag</span> <span class='layout'>(</span><span class='varid'>cf</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='varid'>al</span>-<a name="line-233"></a> <span class='varid'>changeElemName</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='str'>"changeElemName undefined"</span>-<a name="line-234"></a>-<a name="line-235"></a> <span class='varid'>changeAttrl</span> <span class='varid'>cf</span> <span class='layout'>(</span><span class='conid'>XTag</span> <span class='varid'>n</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>XTag</span> <span class='varid'>n</span> <span class='layout'>(</span><span class='varid'>cf</span> <span class='varid'>al</span><span class='layout'>)</span>-<a name="line-236"></a> <span class='varid'>changeAttrl</span> <span class='varid'>cf</span> <span class='layout'>(</span><span class='conid'>XPi</span> <span class='varid'>n</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>XPi</span> <span class='varid'>n</span> <span class='layout'>(</span><span class='varid'>cf</span> <span class='varid'>al</span><span class='layout'>)</span>-<a name="line-237"></a> <span class='varid'>changeAttrl</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='str'>"changeAttrl undefined"</span>-<a name="line-238"></a>-<a name="line-239"></a> <span class='varid'>changeAttrName</span> <span class='varid'>cf</span> <span class='layout'>(</span><span class='conid'>XAttr</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>XAttr</span> <span class='layout'>(</span><span class='varid'>cf</span> <span class='varid'>n</span><span class='layout'>)</span>-<a name="line-240"></a> <span class='varid'>changeAttrName</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='str'>"changeAttrName undefined"</span>-<a name="line-241"></a>-<a name="line-242"></a> <span class='varid'>changePiName</span> <span class='varid'>cf</span> <span class='layout'>(</span><span class='conid'>XPi</span> <span class='varid'>n</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>XPi</span> <span class='layout'>(</span><span class='varid'>cf</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='varid'>al</span>-<a name="line-243"></a> <span class='varid'>changePiName</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='str'>"changeAttrName undefined"</span>-<a name="line-244"></a>-<a name="line-245"></a> <span class='varid'>changeDTDAttrl</span> <span class='varid'>cf</span> <span class='layout'>(</span><span class='conid'>XDTD</span> <span class='varid'>p</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>XDTD</span> <span class='varid'>p</span> <span class='layout'>(</span><span class='varid'>cf</span> <span class='varid'>al</span><span class='layout'>)</span>-<a name="line-246"></a> <span class='varid'>changeDTDAttrl</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='str'>"changeDTDAttrl undefined"</span>-<a name="line-247"></a>-<a name="line-248"></a><a name="mkElementNode"></a><span class='definition'>mkElementNode</span> <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>XNode</span>-<a name="line-249"></a><span class='definition'>mkElementNode</span> <span class='keyglyph'>=</span> <span class='conid'>XTag</span>-<a name="line-250"></a>-<a name="line-251"></a><a name="mkAttrNode"></a><span class='definition'>mkAttrNode</span> <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='conid'>XNode</span>-<a name="line-252"></a><span class='definition'>mkAttrNode</span> <span class='keyglyph'>=</span> <span class='conid'>XAttr</span>-<a name="line-253"></a>-<a name="line-254"></a><a name="mkDTDNode"></a><span class='definition'>mkDTDNode</span> <span class='keyglyph'>::</span> <span class='conid'>DTDElem</span> <span class='keyglyph'>-></span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>XNode</span>-<a name="line-255"></a><span class='definition'>mkDTDNode</span> <span class='keyglyph'>=</span> <span class='conid'>XDTD</span>-<a name="line-256"></a>-<a name="line-257"></a><span class='keyword'>instance</span> <span class='conid'>XmlNode</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='conid'>XmlNode</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyword'>where</span>-<a name="line-258"></a> <span class='varid'>isText</span> <span class='keyglyph'>=</span> <span class='varid'>isText</span> <span class='varop'>.</span> <span class='varid'>getNode</span>-<a name="line-259"></a> <span class='varid'>isCharRef</span> <span class='keyglyph'>=</span> <span class='varid'>isCharRef</span> <span class='varop'>.</span> <span class='varid'>getNode</span>-<a name="line-260"></a> <span class='varid'>isEntityRef</span> <span class='keyglyph'>=</span> <span class='varid'>isEntityRef</span> <span class='varop'>.</span> <span class='varid'>getNode</span>-<a name="line-261"></a> <span class='varid'>isCmt</span> <span class='keyglyph'>=</span> <span class='varid'>isCmt</span> <span class='varop'>.</span> <span class='varid'>getNode</span>-<a name="line-262"></a> <span class='varid'>isCdata</span> <span class='keyglyph'>=</span> <span class='varid'>isCdata</span> <span class='varop'>.</span> <span class='varid'>getNode</span>-<a name="line-263"></a> <span class='varid'>isPi</span> <span class='keyglyph'>=</span> <span class='varid'>isPi</span> <span class='varop'>.</span> <span class='varid'>getNode</span>-<a name="line-264"></a> <span class='varid'>isElem</span> <span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>.</span> <span class='varid'>getNode</span>-<a name="line-265"></a> <span class='varid'>isRoot</span> <span class='keyglyph'>=</span> <span class='varid'>isRoot</span> <span class='varop'>.</span> <span class='varid'>getNode</span>-<a name="line-266"></a> <span class='varid'>isDTD</span> <span class='keyglyph'>=</span> <span class='varid'>isDTD</span> <span class='varop'>.</span> <span class='varid'>getNode</span>-<a name="line-267"></a> <span class='varid'>isAttr</span> <span class='keyglyph'>=</span> <span class='varid'>isAttr</span> <span class='varop'>.</span> <span class='varid'>getNode</span>-<a name="line-268"></a> <span class='varid'>isError</span> <span class='keyglyph'>=</span> <span class='varid'>isError</span> <span class='varop'>.</span> <span class='varid'>getNode</span>-<a name="line-269"></a>-<a name="line-270"></a> <span class='varid'>mkText</span> <span class='keyglyph'>=</span> <span class='varid'>mkLeaf</span> <span class='varop'>.</span> <span class='varid'>mkText</span>-<a name="line-271"></a> <span class='varid'>mkCharRef</span> <span class='keyglyph'>=</span> <span class='varid'>mkLeaf</span> <span class='varop'>.</span> <span class='varid'>mkCharRef</span>-<a name="line-272"></a> <span class='varid'>mkEntityRef</span> <span class='keyglyph'>=</span> <span class='varid'>mkLeaf</span> <span class='varop'>.</span> <span class='varid'>mkEntityRef</span>-<a name="line-273"></a> <span class='varid'>mkCmt</span> <span class='keyglyph'>=</span> <span class='varid'>mkLeaf</span> <span class='varop'>.</span> <span class='varid'>mkCmt</span>-<a name="line-274"></a> <span class='varid'>mkCdata</span> <span class='keyglyph'>=</span> <span class='varid'>mkLeaf</span> <span class='varop'>.</span> <span class='varid'>mkCdata</span>-<a name="line-275"></a> <span class='varid'>mkPi</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='varid'>mkLeaf</span> <span class='varop'>.</span> <span class='varid'>mkPi</span> <span class='varid'>n</span>-<a name="line-276"></a> <span class='varid'>mkError</span> <span class='varid'>l</span> <span class='keyglyph'>=</span> <span class='varid'>mkLeaf</span> <span class='varop'>.</span> <span class='varid'>mkError</span> <span class='varid'>l</span>-<a name="line-277"></a>-<a name="line-278"></a> <span class='varid'>getText</span> <span class='keyglyph'>=</span> <span class='varid'>getText</span> <span class='varop'>.</span> <span class='varid'>getNode</span>-<a name="line-279"></a> <span class='varid'>getCharRef</span> <span class='keyglyph'>=</span> <span class='varid'>getCharRef</span> <span class='varop'>.</span> <span class='varid'>getNode</span>-<a name="line-280"></a> <span class='varid'>getEntityRef</span> <span class='keyglyph'>=</span> <span class='varid'>getEntityRef</span> <span class='varop'>.</span> <span class='varid'>getNode</span>-<a name="line-281"></a> <span class='varid'>getCmt</span> <span class='keyglyph'>=</span> <span class='varid'>getCmt</span> <span class='varop'>.</span> <span class='varid'>getNode</span>-<a name="line-282"></a> <span class='varid'>getCdata</span> <span class='keyglyph'>=</span> <span class='varid'>getCdata</span> <span class='varop'>.</span> <span class='varid'>getNode</span>-<a name="line-283"></a> <span class='varid'>getPiName</span> <span class='keyglyph'>=</span> <span class='varid'>getPiName</span> <span class='varop'>.</span> <span class='varid'>getNode</span>-<a name="line-284"></a> <span class='varid'>getPiContent</span> <span class='keyglyph'>=</span> <span class='varid'>getPiContent</span> <span class='varop'>.</span> <span class='varid'>getNode</span>-<a name="line-285"></a> <span class='varid'>getElemName</span> <span class='keyglyph'>=</span> <span class='varid'>getElemName</span> <span class='varop'>.</span> <span class='varid'>getNode</span>-<a name="line-286"></a> <span class='varid'>getAttrl</span> <span class='keyglyph'>=</span> <span class='varid'>getAttrl</span> <span class='varop'>.</span> <span class='varid'>getNode</span>-<a name="line-287"></a> <span class='varid'>getDTDPart</span> <span class='keyglyph'>=</span> <span class='varid'>getDTDPart</span> <span class='varop'>.</span> <span class='varid'>getNode</span>-<a name="line-288"></a> <span class='varid'>getDTDAttrl</span> <span class='keyglyph'>=</span> <span class='varid'>getDTDAttrl</span> <span class='varop'>.</span> <span class='varid'>getNode</span>-<a name="line-289"></a> <span class='varid'>getAttrName</span> <span class='keyglyph'>=</span> <span class='varid'>getAttrName</span> <span class='varop'>.</span> <span class='varid'>getNode</span>-<a name="line-290"></a> <span class='varid'>getErrorLevel</span> <span class='keyglyph'>=</span> <span class='varid'>getErrorLevel</span> <span class='varop'>.</span> <span class='varid'>getNode</span>-<a name="line-291"></a> <span class='varid'>getErrorMsg</span> <span class='keyglyph'>=</span> <span class='varid'>getErrorMsg</span> <span class='varop'>.</span> <span class='varid'>getNode</span>-<a name="line-292"></a>-<a name="line-293"></a> <span class='varid'>changeText</span> <span class='varid'>cf</span> <span class='keyglyph'>=</span> <span class='varid'>changeNode</span> <span class='layout'>(</span><span class='varid'>changeText</span> <span class='varid'>cf</span><span class='layout'>)</span>-<a name="line-294"></a> <span class='varid'>changeCmt</span> <span class='varid'>cf</span> <span class='keyglyph'>=</span> <span class='varid'>changeNode</span> <span class='layout'>(</span><span class='varid'>changeCmt</span> <span class='varid'>cf</span><span class='layout'>)</span>-<a name="line-295"></a> <span class='varid'>changeName</span> <span class='varid'>cf</span> <span class='keyglyph'>=</span> <span class='varid'>changeNode</span> <span class='layout'>(</span><span class='varid'>changeName</span> <span class='varid'>cf</span><span class='layout'>)</span>-<a name="line-296"></a> <span class='varid'>changeElemName</span> <span class='varid'>cf</span> <span class='keyglyph'>=</span> <span class='varid'>changeNode</span> <span class='layout'>(</span><span class='varid'>changeElemName</span> <span class='varid'>cf</span><span class='layout'>)</span>-<a name="line-297"></a> <span class='varid'>changeAttrl</span> <span class='varid'>cf</span> <span class='keyglyph'>=</span> <span class='varid'>changeNode</span> <span class='layout'>(</span><span class='varid'>changeAttrl</span> <span class='varid'>cf</span><span class='layout'>)</span>-<a name="line-298"></a> <span class='varid'>changeAttrName</span> <span class='varid'>cf</span> <span class='keyglyph'>=</span> <span class='varid'>changeNode</span> <span class='layout'>(</span><span class='varid'>changeAttrName</span> <span class='varid'>cf</span><span class='layout'>)</span>-<a name="line-299"></a> <span class='varid'>changePiName</span> <span class='varid'>cf</span> <span class='keyglyph'>=</span> <span class='varid'>changeNode</span> <span class='layout'>(</span><span class='varid'>changePiName</span> <span class='varid'>cf</span><span class='layout'>)</span>-<a name="line-300"></a> <span class='varid'>changeDTDAttrl</span> <span class='varid'>cf</span> <span class='keyglyph'>=</span> <span class='varid'>changeNode</span> <span class='layout'>(</span><span class='varid'>changeDTDAttrl</span> <span class='varid'>cf</span><span class='layout'>)</span>-<a name="line-301"></a>-<a name="line-302"></a><a name="mkElement"></a><span class='definition'>mkElement</span> <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span>-<a name="line-303"></a><span class='definition'>mkElement</span> <span class='varid'>n</span> <span class='varid'>al</span> <span class='keyglyph'>=</span> <span class='varid'>mkTree</span> <span class='layout'>(</span><span class='varid'>mkElementNode</span> <span class='varid'>n</span> <span class='varid'>al</span><span class='layout'>)</span>-<a name="line-304"></a>-<a name="line-305"></a><a name="mkRoot"></a><span class='definition'>mkRoot</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span>-<a name="line-306"></a><span class='definition'>mkRoot</span> <span class='varid'>al</span> <span class='keyglyph'>=</span> <span class='varid'>mkTree</span> <span class='layout'>(</span><span class='varid'>mkElementNode</span> <span class='layout'>(</span><span class='varid'>mkName</span> <span class='varid'>t_root</span><span class='layout'>)</span> <span class='varid'>al</span><span class='layout'>)</span>-<a name="line-307"></a>-<a name="line-308"></a><a name="mkAttr"></a><span class='definition'>mkAttr</span> <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span>-<a name="line-309"></a><span class='definition'>mkAttr</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='varid'>mkTree</span> <span class='layout'>(</span><span class='varid'>mkAttrNode</span> <span class='varid'>n</span><span class='layout'>)</span>-<a name="line-310"></a>-<a name="line-311"></a><a name="mkDTDElem"></a><span class='definition'>mkDTDElem</span> <span class='keyglyph'>::</span> <span class='conid'>DTDElem</span> <span class='keyglyph'>-></span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span>-<a name="line-312"></a><span class='definition'>mkDTDElem</span> <span class='varid'>e</span> <span class='varid'>al</span> <span class='keyglyph'>=</span> <span class='varid'>mkTree</span> <span class='layout'>(</span><span class='varid'>mkDTDNode</span> <span class='varid'>e</span> <span class='varid'>al</span><span class='layout'>)</span>-<a name="line-313"></a>-<a name="line-314"></a><a name="addAttr"></a><span class='definition'>addAttr</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span>-<a name="line-315"></a><span class='definition'>addAttr</span> <span class='varid'>a</span> <span class='varid'>al</span>-<a name="line-316"></a> <span class='keyglyph'>|</span> <span class='varid'>isAttr</span> <span class='varid'>a</span> <span class='keyglyph'>=</span> <span class='varid'>add</span> <span class='varid'>al</span>-<a name="line-317"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>al</span>-<a name="line-318"></a> <span class='keyword'>where</span>-<a name="line-319"></a> <span class='varid'>an</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>qualifiedName</span> <span class='varop'>.</span> <span class='varid'>fromJust</span> <span class='varop'>.</span> <span class='varid'>getAttrName</span><span class='layout'>)</span> <span class='varid'>a</span>-<a name="line-320"></a> <span class='varid'>add</span> <span class='conid'>[]</span>-<a name="line-321"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span>-<a name="line-322"></a> <span class='varid'>add</span> <span class='layout'>(</span><span class='varid'>a1</span><span class='conop'>:</span><span class='varid'>al1</span><span class='layout'>)</span>-<a name="line-323"></a> <span class='keyglyph'>|</span> <span class='varid'>isAttr</span> <span class='varid'>a1</span>-<a name="line-324"></a> <span class='varop'>&&</span>-<a name="line-325"></a> <span class='layout'>(</span><span class='varid'>qualifiedName</span> <span class='varop'>.</span> <span class='varid'>fromJust</span> <span class='varop'>.</span> <span class='varid'>getAttrName</span><span class='layout'>)</span> <span class='varid'>a1</span> <span class='varop'>==</span> <span class='varid'>an</span>-<a name="line-326"></a> <span class='keyglyph'>=</span> <span class='varid'>a</span> <span class='conop'>:</span> <span class='varid'>al1</span>-<a name="line-327"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-328"></a> <span class='keyglyph'>=</span> <span class='varid'>a1</span> <span class='conop'>:</span> <span class='varid'>add</span> <span class='varid'>al1</span>-<a name="line-329"></a>-<a name="line-330"></a><a name="mergeAttrl"></a><span class='definition'>mergeAttrl</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span>-<a name="line-331"></a><span class='definition'>mergeAttrl</span> <span class='keyglyph'>=</span> <span class='varid'>foldr</span> <span class='varid'>addAttr</span>-<a name="line-332"></a>-<a name="line-333"></a><span class='comment'>-- ------------------------------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-DOM-XmlOptions.html
@@ -1,191 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- |</span>-<a name="line-2"></a><span class='comment'>-- Common useful options</span>-<a name="line-3"></a><span class='comment'>--</span>-<a name="line-4"></a><span class='comment'>-- Version : $Id: XmlOptions.hs,v 1.1 2006/11/09 20:27:42 hxml Exp $</span>-<a name="line-5"></a><span class='comment'>--</span>-<a name="line-6"></a><span class='comment'>--</span>-<a name="line-7"></a>-<a name="line-8"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlOptions</span>-<a name="line-9"></a> <span class='layout'>(</span> <span class='varid'>inputOptions</span>-<a name="line-10"></a> <span class='layout'>,</span> <span class='varid'>relaxOptions</span>-<a name="line-11"></a> <span class='layout'>,</span> <span class='varid'>outputOptions</span>-<a name="line-12"></a> <span class='layout'>,</span> <span class='varid'>generalOptions</span>-<a name="line-13"></a> <span class='layout'>,</span> <span class='varid'>versionOptions</span>-<a name="line-14"></a> <span class='layout'>,</span> <span class='varid'>showOptions</span>-<a name="line-15"></a>-<a name="line-16"></a> <span class='layout'>,</span> <span class='varid'>selectOptions</span>-<a name="line-17"></a> <span class='layout'>,</span> <span class='varid'>removeOptions</span>-<a name="line-18"></a> <span class='layout'>,</span> <span class='varid'>optionIsSet</span>-<a name="line-19"></a> <span class='layout'>,</span> <span class='varid'>isTrueValue</span>-<a name="line-20"></a> <span class='layout'>)</span>-<a name="line-21"></a><span class='keyword'>where</span>-<a name="line-22"></a>-<a name="line-23"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlKeywords</span>-<a name="line-24"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>TypeDefs</span>-<a name="line-25"></a>-<a name="line-26"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>-<a name="line-27"></a>-<a name="line-28"></a><span class='keyword'>import</span> <span class='conid'>System</span><span class='varop'>.</span><span class='conid'>Console</span><span class='varop'>.</span><span class='conid'>GetOpt</span>-<a name="line-29"></a>-<a name="line-30"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-31"></a><span class='comment'>--</span>-<a name="line-32"></a>-<a name="line-33"></a><span class='comment'>-- |</span>-<a name="line-34"></a><span class='comment'>-- commonly useful options for XML input</span>-<a name="line-35"></a><span class='comment'>--</span>-<a name="line-36"></a><span class='comment'>-- can be used for option definition with haskell getopt</span>-<a name="line-37"></a><span class='comment'>--</span>-<a name="line-38"></a><span class='comment'>-- defines options: 'a_trace', 'a_proxy', 'a_use_curl', 'a_do_not_use_curl', 'a_options_curl', 'a_encoding',</span>-<a name="line-39"></a><span class='comment'>-- 'a_issue_errors', 'a_do_not_issue_errors', 'a_parse_html', 'a_parse_by_mimetype', 'a_tagsoup' 'a_issue_warnings', 'a_do_not_issue_warnings',</span>-<a name="line-40"></a><span class='comment'>-- 'a_parse_xml', 'a_validate', 'a_do_not_validate', 'a_canonicalize', 'a_do_not_canonicalize',</span>-<a name="line-41"></a><span class='comment'>--- 'a_preserve_comment', 'a_do_not_preserve_comment', 'a_check_namespaces', 'a_do_not_check_namespaces',</span>-<a name="line-42"></a><span class='comment'>-- 'a_remove_whitespace', 'a_do_not_remove_whitespace'</span>-<a name="line-43"></a>-<a name="line-44"></a><a name="inputOptions"></a><span class='definition'>inputOptions</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>OptDescr</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-45"></a><span class='definition'>inputOptions</span>-<a name="line-46"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='conid'>Option</span> <span class='str'>"t"</span> <span class='keyglyph'>[</span><span class='varid'>a_trace</span><span class='keyglyph'>]</span> <span class='layout'>(</span><span class='conid'>OptArg</span> <span class='varid'>trc</span> <span class='str'>"LEVEL"</span><span class='layout'>)</span> <span class='str'>"trace level (0-4), default 1"</span>-<a name="line-47"></a> <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>"p"</span> <span class='keyglyph'>[</span><span class='varid'>a_proxy</span><span class='keyglyph'>]</span> <span class='layout'>(</span><span class='conid'>ReqArg</span> <span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_proxy</span><span class='layout'>)</span> <span class='str'>"PROXY"</span><span class='layout'>)</span> <span class='str'>"proxy for http access (e.g. \"www-cache:3128\")"</span>-<a name="line-48"></a> <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>""</span> <span class='keyglyph'>[</span><span class='varid'>a_use_curl</span><span class='keyglyph'>]</span> <span class='layout'>(</span><span class='conid'>NoArg</span> <span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_use_curl</span> <span class='varid'>v_1</span><span class='layout'>)</span><span class='layout'>)</span> <span class='str'>"obsolete, since hxt-8.1 HTTP access is always done with curl bindings"</span>-<a name="line-49"></a> <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>""</span> <span class='keyglyph'>[</span><span class='varid'>a_do_not_use_curl</span><span class='keyglyph'>]</span> <span class='layout'>(</span><span class='conid'>NoArg</span> <span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_use_curl</span> <span class='varid'>v_0</span><span class='layout'>)</span><span class='layout'>)</span> <span class='str'>"obsolete, since hxt-8.1 HTTP access is always done with curl bindings"</span>-<a name="line-50"></a> <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>""</span> <span class='keyglyph'>[</span><span class='varid'>a_options_curl</span><span class='keyglyph'>]</span> <span class='layout'>(</span><span class='conid'>ReqArg</span> <span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_options_curl</span><span class='layout'>)</span> <span class='str'>"STR"</span><span class='layout'>)</span> <span class='str'>"additional curl options, e.g. for timeout, ..."</span>-<a name="line-51"></a> <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>""</span> <span class='keyglyph'>[</span><span class='varid'>a_default_baseuri</span><span class='keyglyph'>]</span> <span class='layout'>(</span><span class='conid'>ReqArg</span> <span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>transferURI</span><span class='layout'>)</span> <span class='str'>"URI"</span><span class='layout'>)</span> <span class='str'>"default base URI, default: \"file:///<cwd>/\""</span>-<a name="line-52"></a> <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>"e"</span> <span class='keyglyph'>[</span><span class='varid'>a_encoding</span><span class='keyglyph'>]</span> <span class='layout'>(</span><span class='conid'>ReqArg</span> <span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_encoding</span><span class='layout'>)</span> <span class='str'>"CHARSET"</span><span class='layout'>)</span> <span class='layout'>(</span> <span class='str'>"default document encoding ("</span> <span class='varop'>++</span> <span class='varid'>utf8</span> <span class='varop'>++</span> <span class='str'>", "</span> <span class='varop'>++</span> <span class='varid'>isoLatin1</span> <span class='varop'>++</span> <span class='str'>", "</span> <span class='varop'>++</span> <span class='varid'>usAscii</span> <span class='varop'>++</span> <span class='str'>", ...)"</span> <span class='layout'>)</span>-<a name="line-53"></a> <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>""</span> <span class='keyglyph'>[</span><span class='varid'>a_mime_types</span><span class='keyglyph'>]</span> <span class='layout'>(</span><span class='conid'>ReqArg</span> <span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_mime_types</span><span class='layout'>)</span> <span class='str'>"FILE"</span><span class='layout'>)</span> <span class='str'>"set mime type configuration file, e.g. \"/etc/mime.types\""</span>-<a name="line-54"></a> <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>""</span> <span class='keyglyph'>[</span><span class='varid'>a_issue_errors</span><span class='keyglyph'>]</span> <span class='layout'>(</span><span class='conid'>NoArg</span> <span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_issue_errors</span> <span class='varid'>v_1</span><span class='layout'>)</span><span class='layout'>)</span> <span class='str'>"issue all errorr messages on stderr (default)"</span>-<a name="line-55"></a> <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>""</span> <span class='keyglyph'>[</span><span class='varid'>a_do_not_issue_errors</span><span class='keyglyph'>]</span> <span class='layout'>(</span><span class='conid'>NoArg</span> <span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_issue_errors</span> <span class='varid'>v_0</span><span class='layout'>)</span><span class='layout'>)</span> <span class='str'>"ignore all error messages"</span>-<a name="line-56"></a> <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>""</span> <span class='keyglyph'>[</span><span class='varid'>a_ignore_encoding_errors</span><span class='keyglyph'>]</span> <span class='layout'>(</span><span class='conid'>NoArg</span> <span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_ignore_encoding_errors</span> <span class='varid'>v_1</span><span class='layout'>)</span><span class='layout'>)</span> <span class='str'>"ignore encoding errors"</span>-<a name="line-57"></a> <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>""</span> <span class='keyglyph'>[</span><span class='varid'>a_ignore_none_xml_contents</span><span class='keyglyph'>]</span> <span class='layout'>(</span><span class='conid'>NoArg</span> <span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_ignore_none_xml_contents</span> <span class='varid'>v_1</span><span class='layout'>)</span><span class='layout'>)</span> <span class='str'>"discards all contents of none XML/HTML documents, only the meta info remains stays in the doc tree"</span>-<a name="line-58"></a> <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>"H"</span> <span class='keyglyph'>[</span><span class='varid'>a_parse_html</span><span class='keyglyph'>]</span> <span class='layout'>(</span><span class='conid'>NoArg</span> <span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_parse_html</span> <span class='varid'>v_1</span><span class='layout'>)</span><span class='layout'>)</span> <span class='str'>"parse input as HTML, try to interprete everything as HTML, no validation"</span>-<a name="line-59"></a> <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>"M"</span> <span class='keyglyph'>[</span><span class='varid'>a_parse_by_mimetype</span><span class='keyglyph'>]</span> <span class='layout'>(</span><span class='conid'>NoArg</span> <span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_parse_by_mimetype</span> <span class='varid'>v_1</span><span class='layout'>)</span><span class='layout'>)</span> <span class='str'>"parse dependent on mime type: text/html as HTML, text/xml and text/xhtml and others as XML, else no parse"</span>-<a name="line-60"></a> <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>""</span> <span class='keyglyph'>[</span><span class='varid'>a_parse_xml</span><span class='keyglyph'>]</span> <span class='layout'>(</span><span class='conid'>NoArg</span> <span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_parse_html</span> <span class='varid'>v_0</span><span class='layout'>)</span><span class='layout'>)</span> <span class='str'>"parse input as XML, (default)"</span>-<a name="line-61"></a> <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>""</span> <span class='keyglyph'>[</span><span class='varid'>a_strict_input</span><span class='keyglyph'>]</span> <span class='layout'>(</span><span class='conid'>NoArg</span> <span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_strict_input</span> <span class='varid'>v_1</span><span class='layout'>)</span><span class='layout'>)</span> <span class='str'>"read input files strictly, this ensures closing the files correctly even if not read completely"</span>-<a name="line-62"></a> <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>"T"</span> <span class='keyglyph'>[</span><span class='varid'>a_tagsoup</span><span class='keyglyph'>]</span> <span class='layout'>(</span><span class='conid'>NoArg</span> <span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_tagsoup</span> <span class='varid'>v_1</span><span class='layout'>)</span><span class='layout'>)</span> <span class='str'>"lasy tagsoup parser, for HTML and XML, no DTD, no validation, no PIs, only XHTML entityrefs"</span>-<a name="line-63"></a> <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>""</span> <span class='keyglyph'>[</span><span class='varid'>a_issue_warnings</span><span class='keyglyph'>]</span> <span class='layout'>(</span><span class='conid'>NoArg</span> <span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_issue_warnings</span> <span class='varid'>v_1</span><span class='layout'>)</span><span class='layout'>)</span> <span class='str'>"issue warnings, when parsing HTML (default)"</span>-<a name="line-64"></a> <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>"Q"</span> <span class='keyglyph'>[</span><span class='varid'>a_do_not_issue_warnings</span><span class='keyglyph'>]</span> <span class='layout'>(</span><span class='conid'>NoArg</span> <span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_issue_warnings</span> <span class='varid'>v_0</span><span class='layout'>)</span><span class='layout'>)</span> <span class='str'>"ignore warnings, when parsing HTML"</span>-<a name="line-65"></a> <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>""</span> <span class='keyglyph'>[</span><span class='varid'>a_validate</span><span class='keyglyph'>]</span> <span class='layout'>(</span><span class='conid'>NoArg</span> <span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_validate</span> <span class='varid'>v_1</span><span class='layout'>)</span><span class='layout'>)</span> <span class='str'>"document validation when parsing XML (default)"</span>-<a name="line-66"></a> <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>"w"</span> <span class='keyglyph'>[</span><span class='varid'>a_do_not_validate</span><span class='keyglyph'>]</span> <span class='layout'>(</span><span class='conid'>NoArg</span> <span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_validate</span> <span class='varid'>v_0</span><span class='layout'>)</span><span class='layout'>)</span> <span class='str'>"only wellformed check, no validation"</span>-<a name="line-67"></a> <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>""</span> <span class='keyglyph'>[</span><span class='varid'>a_canonicalize</span><span class='keyglyph'>]</span> <span class='layout'>(</span><span class='conid'>NoArg</span> <span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_canonicalize</span> <span class='varid'>v_1</span><span class='layout'>)</span><span class='layout'>)</span> <span class='str'>"canonicalize document, remove DTD, comment, transform CDATA, CharRef's, ... (default)"</span>-<a name="line-68"></a> <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>"c"</span> <span class='keyglyph'>[</span><span class='varid'>a_do_not_canonicalize</span><span class='keyglyph'>]</span> <span class='layout'>(</span><span class='conid'>NoArg</span> <span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_canonicalize</span> <span class='varid'>v_0</span><span class='layout'>)</span><span class='layout'>)</span> <span class='str'>"do not canonicalize document, don't remove DTD, comment, don't transform CDATA, CharRef's, ..."</span>-<a name="line-69"></a> <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>"C"</span> <span class='keyglyph'>[</span><span class='varid'>a_preserve_comment</span><span class='keyglyph'>]</span> <span class='layout'>(</span><span class='conid'>NoArg</span> <span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_preserve_comment</span> <span class='varid'>v_1</span><span class='layout'>)</span><span class='layout'>)</span> <span class='str'>"don't remove comments during canonicalisation"</span>-<a name="line-70"></a> <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>""</span> <span class='keyglyph'>[</span><span class='varid'>a_do_not_preserve_comment</span><span class='keyglyph'>]</span> <span class='layout'>(</span><span class='conid'>NoArg</span> <span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_preserve_comment</span> <span class='varid'>v_0</span><span class='layout'>)</span><span class='layout'>)</span> <span class='str'>"remove comments during canonicalisation (default)"</span>-<a name="line-71"></a> <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>"n"</span> <span class='keyglyph'>[</span><span class='varid'>a_check_namespaces</span><span class='keyglyph'>]</span> <span class='layout'>(</span><span class='conid'>NoArg</span> <span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_check_namespaces</span> <span class='varid'>v_1</span><span class='layout'>)</span><span class='layout'>)</span> <span class='str'>"tag tree with namespace information and check namespaces"</span>-<a name="line-72"></a> <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>""</span> <span class='keyglyph'>[</span><span class='varid'>a_do_not_check_namespaces</span><span class='keyglyph'>]</span> <span class='layout'>(</span><span class='conid'>NoArg</span> <span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_check_namespaces</span> <span class='varid'>v_0</span><span class='layout'>)</span><span class='layout'>)</span> <span class='str'>"ignore namespaces (default)"</span>-<a name="line-73"></a> <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>"r"</span> <span class='keyglyph'>[</span><span class='varid'>a_remove_whitespace</span><span class='keyglyph'>]</span> <span class='layout'>(</span><span class='conid'>NoArg</span> <span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_remove_whitespace</span> <span class='varid'>v_1</span><span class='layout'>)</span><span class='layout'>)</span> <span class='str'>"remove redundant whitespace, simplifies tree and processing"</span>-<a name="line-74"></a> <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>""</span> <span class='keyglyph'>[</span><span class='varid'>a_do_not_remove_whitespace</span><span class='keyglyph'>]</span> <span class='layout'>(</span><span class='conid'>NoArg</span> <span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_remove_whitespace</span> <span class='varid'>v_0</span><span class='layout'>)</span><span class='layout'>)</span> <span class='str'>"don't remove redundant whitespace (default)"</span>-<a name="line-75"></a> <span class='keyglyph'>]</span>-<a name="line-76"></a> <span class='keyword'>where</span>-<a name="line-77"></a> <span class='varid'>att</span> <span class='varid'>n</span> <span class='varid'>v</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>n</span><span class='layout'>,</span> <span class='varid'>v</span><span class='layout'>)</span>-<a name="line-78"></a> <span class='varid'>trc</span> <span class='keyglyph'>=</span> <span class='varid'>att</span> <span class='varid'>a_trace</span> <span class='varop'>.</span> <span class='varid'>show</span> <span class='varop'>.</span> <span class='varid'>max</span> <span class='num'>0</span> <span class='varop'>.</span> <span class='varid'>min</span> <span class='num'>9</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='varid'>read</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Int</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='chr'>'0'</span><span class='conop'>:</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>filter</span> <span class='layout'>(</span><span class='varop'>`elem`</span> <span class='str'>"0123456789"</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>fromMaybe</span> <span class='varid'>v_1</span>-<a name="line-79"></a>-<a name="line-80"></a>-<a name="line-81"></a><span class='comment'>-- | available Relax NG validation options</span>-<a name="line-82"></a><span class='comment'>--</span>-<a name="line-83"></a><span class='comment'>-- defines options</span>-<a name="line-84"></a><span class='comment'>-- 'a_check_restrictions', 'a_validate_externalRef', 'a_validate_include', 'a_do_not_check_restrictions', </span>-<a name="line-85"></a><span class='comment'>-- 'a_do_not_validate_externalRef', 'a_do_not_validate_include'</span>-<a name="line-86"></a>-<a name="line-87"></a><a name="relaxOptions"></a><span class='definition'>relaxOptions</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>OptDescr</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-88"></a><span class='definition'>relaxOptions</span> -<a name="line-89"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='conid'>Option</span> <span class='str'>"X"</span> <span class='keyglyph'>[</span><span class='varid'>a_relax_schema</span><span class='keyglyph'>]</span> <span class='layout'>(</span><span class='conid'>ReqArg</span> <span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_relax_schema</span><span class='layout'>)</span> <span class='str'>"SCHEMA"</span><span class='layout'>)</span> <span class='str'>"validation with Relax NG, SCHEMA is the URI for the Relax NG schema"</span>-<a name="line-90"></a> <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>""</span> <span class='keyglyph'>[</span><span class='varid'>a_check_restrictions</span><span class='keyglyph'>]</span> <span class='layout'>(</span><span class='conid'>NoArg</span> <span class='layout'>(</span><span class='varid'>a_check_restrictions</span><span class='layout'>,</span> <span class='varid'>v_1</span><span class='layout'>)</span><span class='layout'>)</span> <span class='str'>"check Relax NG schema restrictions during schema simplification (default)"</span>-<a name="line-91"></a> <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>""</span> <span class='keyglyph'>[</span><span class='varid'>a_do_not_check_restrictions</span><span class='keyglyph'>]</span> <span class='layout'>(</span><span class='conid'>NoArg</span> <span class='layout'>(</span><span class='varid'>a_check_restrictions</span><span class='layout'>,</span> <span class='varid'>v_0</span><span class='layout'>)</span><span class='layout'>)</span> <span class='str'>"do not check Relax NG schema restrictions"</span>-<a name="line-92"></a> <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>""</span> <span class='keyglyph'>[</span><span class='varid'>a_validate_externalRef</span><span class='keyglyph'>]</span> <span class='layout'>(</span><span class='conid'>NoArg</span> <span class='layout'>(</span><span class='varid'>a_validate_externalRef</span><span class='layout'>,</span> <span class='varid'>v_1</span><span class='layout'>)</span><span class='layout'>)</span> <span class='str'>"validate a Relax NG schema referenced by a externalRef-Pattern (default)"</span>-<a name="line-93"></a> <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>""</span> <span class='keyglyph'>[</span><span class='varid'>a_do_not_validate_externalRef</span><span class='keyglyph'>]</span> <span class='layout'>(</span><span class='conid'>NoArg</span> <span class='layout'>(</span><span class='varid'>a_validate_externalRef</span><span class='layout'>,</span> <span class='varid'>v_0</span><span class='layout'>)</span><span class='layout'>)</span> <span class='str'>"do not validate a Relax NG schema referenced by an externalRef-Pattern"</span>-<a name="line-94"></a> <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>""</span> <span class='keyglyph'>[</span><span class='varid'>a_validate_include</span><span class='keyglyph'>]</span> <span class='layout'>(</span><span class='conid'>NoArg</span> <span class='layout'>(</span><span class='varid'>a_validate_include</span><span class='layout'>,</span> <span class='varid'>v_1</span><span class='layout'>)</span><span class='layout'>)</span> <span class='str'>"validate a Relax NG schema referenced by an include-Pattern (default)"</span>-<a name="line-95"></a> <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>""</span> <span class='keyglyph'>[</span><span class='varid'>a_do_not_validate_include</span><span class='keyglyph'>]</span> <span class='layout'>(</span><span class='conid'>NoArg</span> <span class='layout'>(</span><span class='varid'>a_validate_include</span><span class='layout'>,</span> <span class='varid'>v_0</span><span class='layout'>)</span><span class='layout'>)</span> <span class='str'>"do not validate a Relax NG schema referenced by an include-Pattern"</span>-<a name="line-96"></a> <span class='comment'>{--<a name="line-97"></a> , Option "" [a_output_changes] (NoArg (a_output_changes, v_1)) "output Pattern transformations in case of an error" -<a name="line-98"></a> , Option "" [a_do_not_collect_errors] (NoArg (a_do_not_collect_errors, v_1)) "stop Relax NG simplification after the first error has occurred"-<a name="line-99"></a> -}</span>-<a name="line-100"></a> <span class='keyglyph'>]</span>-<a name="line-101"></a> <span class='keyword'>where</span>-<a name="line-102"></a> <span class='varid'>att</span> <span class='varid'>n</span> <span class='varid'>v</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>n</span><span class='layout'>,</span> <span class='varid'>v</span><span class='layout'>)</span>-<a name="line-103"></a>-<a name="line-104"></a><span class='comment'>-- |</span>-<a name="line-105"></a><span class='comment'>-- commonly useful options for XML output</span>-<a name="line-106"></a><span class='comment'>--</span>-<a name="line-107"></a><span class='comment'>-- defines options: 'a_indent', 'a_output_encoding', 'a_output_file', 'a_output_html'</span>-<a name="line-108"></a>-<a name="line-109"></a><a name="outputOptions"></a><span class='definition'>outputOptions</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>OptDescr</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-110"></a><span class='definition'>outputOptions</span>-<a name="line-111"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='conid'>Option</span> <span class='str'>"i"</span> <span class='keyglyph'>[</span><span class='varid'>a_indent</span><span class='keyglyph'>]</span> <span class='layout'>(</span><span class='conid'>NoArg</span> <span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_indent</span> <span class='varid'>v_1</span><span class='layout'>)</span><span class='layout'>)</span> <span class='str'>"indent XML output for readability"</span>-<a name="line-112"></a> <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>"o"</span> <span class='keyglyph'>[</span><span class='varid'>a_output_encoding</span><span class='keyglyph'>]</span> <span class='layout'>(</span><span class='conid'>ReqArg</span> <span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_output_encoding</span><span class='layout'>)</span> <span class='str'>"CHARSET"</span><span class='layout'>)</span> <span class='layout'>(</span> <span class='str'>"encoding of output ("</span> <span class='varop'>++</span> <span class='varid'>utf8</span> <span class='varop'>++</span> <span class='str'>", "</span> <span class='varop'>++</span> <span class='varid'>isoLatin1</span> <span class='varop'>++</span> <span class='str'>", "</span> <span class='varop'>++</span> <span class='varid'>usAscii</span> <span class='varop'>++</span> <span class='str'>")"</span> <span class='layout'>)</span>-<a name="line-113"></a> <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>"f"</span> <span class='keyglyph'>[</span><span class='varid'>a_output_file</span><span class='keyglyph'>]</span> <span class='layout'>(</span><span class='conid'>ReqArg</span> <span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_output_file</span><span class='layout'>)</span> <span class='str'>"FILE"</span><span class='layout'>)</span> <span class='str'>"output file for resulting document (default: stdout)"</span>-<a name="line-114"></a> <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>""</span> <span class='keyglyph'>[</span><span class='varid'>a_output_html</span><span class='keyglyph'>]</span> <span class='layout'>(</span><span class='conid'>NoArg</span> <span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_output_html</span> <span class='varid'>v_1</span><span class='layout'>)</span><span class='layout'>)</span> <span class='str'>"output of none ASCII chars as HTMl entity references"</span>-<a name="line-115"></a> <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>""</span> <span class='keyglyph'>[</span><span class='varid'>a_no_xml_pi</span><span class='keyglyph'>]</span> <span class='layout'>(</span><span class='conid'>NoArg</span> <span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_no_xml_pi</span> <span class='varid'>v_1</span><span class='layout'>)</span><span class='layout'>)</span> <span class='layout'>(</span><span class='str'>"output without <?xml ...?> processing instruction, useful in combination with --"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>a_output_html</span><span class='layout'>)</span>-<a name="line-116"></a> <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>""</span> <span class='keyglyph'>[</span><span class='varid'>a_no_empty_elements</span><span class='keyglyph'>]</span> <span class='layout'>(</span><span class='conid'>NoArg</span> <span class='layout'>(</span><span class='varid'>att</span> <span class='varid'>a_no_empty_elements</span> <span class='varid'>v_1</span><span class='layout'>)</span><span class='layout'>)</span> <span class='str'>"output of empty elements done in format <elem...></elem> instead of <elem/>"</span>-<a name="line-117"></a> <span class='keyglyph'>]</span>-<a name="line-118"></a> <span class='keyword'>where</span>-<a name="line-119"></a> <span class='varid'>att</span> <span class='varid'>n</span> <span class='varid'>v</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>n</span><span class='layout'>,</span> <span class='varid'>v</span><span class='layout'>)</span>-<a name="line-120"></a>-<a name="line-121"></a><span class='comment'>-- |</span>-<a name="line-122"></a><span class='comment'>-- commonly useful options</span>-<a name="line-123"></a><span class='comment'>--</span>-<a name="line-124"></a><span class='comment'>-- defines options: 'a_verbose', 'a_help'</span>-<a name="line-125"></a>-<a name="line-126"></a><a name="generalOptions"></a><span class='definition'>generalOptions</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>OptDescr</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-127"></a><span class='definition'>generalOptions</span>-<a name="line-128"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='conid'>Option</span> <span class='str'>"v"</span> <span class='keyglyph'>[</span><span class='varid'>a_verbose</span><span class='keyglyph'>]</span> <span class='layout'>(</span><span class='conid'>NoArg</span> <span class='layout'>(</span><span class='varid'>a_verbose</span><span class='layout'>,</span> <span class='varid'>v_1</span><span class='layout'>)</span><span class='layout'>)</span> <span class='str'>"verbose output"</span>-<a name="line-129"></a> <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>"h?"</span> <span class='keyglyph'>[</span><span class='varid'>a_help</span><span class='keyglyph'>]</span> <span class='layout'>(</span><span class='conid'>NoArg</span> <span class='layout'>(</span><span class='varid'>a_help</span><span class='layout'>,</span> <span class='varid'>v_1</span><span class='layout'>)</span><span class='layout'>)</span> <span class='str'>"this message"</span>-<a name="line-130"></a> <span class='keyglyph'>]</span>-<a name="line-131"></a>-<a name="line-132"></a><span class='comment'>-- |</span>-<a name="line-133"></a><span class='comment'>-- defines 'a_version' option</span>-<a name="line-134"></a>-<a name="line-135"></a><a name="versionOptions"></a><span class='definition'>versionOptions</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>OptDescr</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-136"></a><span class='definition'>versionOptions</span>-<a name="line-137"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='conid'>Option</span> <span class='str'>"V"</span> <span class='keyglyph'>[</span><span class='varid'>a_version</span><span class='keyglyph'>]</span> <span class='layout'>(</span><span class='conid'>NoArg</span> <span class='layout'>(</span><span class='varid'>a_version</span><span class='layout'>,</span> <span class='varid'>v_1</span><span class='layout'>)</span><span class='layout'>)</span> <span class='str'>"show program version"</span>-<a name="line-138"></a> <span class='keyglyph'>]</span>-<a name="line-139"></a>-<a name="line-140"></a><span class='comment'>-- |</span>-<a name="line-141"></a><span class='comment'>-- debug output options</span>-<a name="line-142"></a>-<a name="line-143"></a><a name="showOptions"></a><span class='definition'>showOptions</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>OptDescr</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-144"></a><span class='definition'>showOptions</span>-<a name="line-145"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='conid'>Option</span> <span class='str'>""</span> <span class='keyglyph'>[</span><span class='varid'>a_show_tree</span><span class='keyglyph'>]</span> <span class='layout'>(</span><span class='conid'>NoArg</span> <span class='layout'>(</span><span class='varid'>a_show_tree</span><span class='layout'>,</span> <span class='varid'>v_1</span><span class='layout'>)</span><span class='layout'>)</span> <span class='str'>"output tree representation instead of document source"</span>-<a name="line-146"></a> <span class='layout'>,</span> <span class='conid'>Option</span> <span class='str'>""</span> <span class='keyglyph'>[</span><span class='varid'>a_show_haskell</span><span class='keyglyph'>]</span> <span class='layout'>(</span><span class='conid'>NoArg</span> <span class='layout'>(</span><span class='varid'>a_show_haskell</span><span class='layout'>,</span> <span class='varid'>v_1</span><span class='layout'>)</span><span class='layout'>)</span> <span class='str'>"output internal Haskell representation instead of document source"</span>-<a name="line-147"></a> <span class='keyglyph'>]</span>-<a name="line-148"></a>-<a name="line-149"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-150"></a>-<a name="line-151"></a><span class='comment'>-- |</span>-<a name="line-152"></a><span class='comment'>-- select options from a predefined list of option desciptions</span>-<a name="line-153"></a>-<a name="line-154"></a><a name="selectOptions"></a><span class='definition'>selectOptions</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>OptDescr</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>OptDescr</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-155"></a><span class='definition'>selectOptions</span> <span class='varid'>ol</span> <span class='varid'>os</span>-<a name="line-156"></a> <span class='keyglyph'>=</span> <span class='varid'>concat</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>on</span> <span class='keyglyph'>-></span> <span class='varid'>filter</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='layout'>(</span><span class='conid'>Option</span> <span class='keyword'>_</span> <span class='varid'>ons</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>on</span> <span class='varop'>`elem`</span> <span class='varid'>ons</span><span class='layout'>)</span> <span class='varid'>os</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>ol</span>-<a name="line-157"></a>-<a name="line-158"></a><a name="removeOptions"></a><span class='definition'>removeOptions</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>OptDescr</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>OptDescr</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-159"></a><span class='definition'>removeOptions</span> <span class='varid'>ol</span> <span class='varid'>os</span>-<a name="line-160"></a> <span class='keyglyph'>=</span> <span class='varid'>filter</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='layout'>(</span><span class='conid'>Option</span> <span class='keyword'>_</span> <span class='varid'>ons</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>any</span> <span class='layout'>(</span><span class='varop'>`elem`</span> <span class='varid'>ol</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>ons</span> <span class='layout'>)</span> <span class='varid'>os</span>-<a name="line-161"></a>-<a name="line-162"></a><span class='comment'>-- |</span>-<a name="line-163"></a><span class='comment'>-- check whether an option is set</span>-<a name="line-164"></a><span class='comment'>--</span>-<a name="line-165"></a><span class='comment'>-- reads the value of an attribute, usually applied to a document root node,</span>-<a name="line-166"></a><span class='comment'>-- and checks if the value represents True. The following strings are interpreted</span>-<a name="line-167"></a><span class='comment'>-- as true: \"1\", \"True\", \"true\", \"yes\", \"Yes\".</span>-<a name="line-168"></a>-<a name="line-169"></a><a name="optionIsSet"></a><span class='definition'>optionIsSet</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-170"></a><span class='definition'>optionIsSet</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='varid'>isTrueValue</span> <span class='varop'>.</span> <span class='varid'>lookupDef</span> <span class='str'>""</span> <span class='varid'>n</span>-<a name="line-171"></a>-<a name="line-172"></a><span class='comment'>-- | check whether a string represents True</span>-<a name="line-173"></a><span class='comment'>--</span>-<a name="line-174"></a><span class='comment'>-- definition:</span>-<a name="line-175"></a><span class='comment'>--</span>-<a name="line-176"></a><span class='comment'>-- > isTrueValue = (`elem` ["1", "True", "true", "Yes", "yes"])</span>-<a name="line-177"></a>-<a name="line-178"></a><a name="isTrueValue"></a><span class='definition'>isTrueValue</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-179"></a><span class='definition'>isTrueValue</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='str'>"1"</span><span class='layout'>,</span> <span class='str'>"True"</span><span class='layout'>,</span> <span class='str'>"true"</span><span class='layout'>,</span> <span class='str'>"Yes"</span><span class='layout'>,</span> <span class='str'>"yes"</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-180"></a>-<a name="line-181"></a><span class='comment'>-- ------------------------------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-DTDValidation-AttributeValueValidation.html
@@ -1,352 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Text.XML.HXT.DTDValidation.TypeDefs-<a name="line-5"></a> Copyright : Copyright (C) 2008 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe@fh-wedel.de)-<a name="line-9"></a> Stability : experimental-<a name="line-10"></a> Portability: portable-<a name="line-11"></a>-<a name="line-12"></a> This module provides functions for validating attributes.-<a name="line-13"></a>-<a name="line-14"></a> The main functions are:-<a name="line-15"></a>-<a name="line-16"></a> - Check if the attribute value meets the lexical constraints of its type-<a name="line-17"></a>-<a name="line-18"></a> - Normalization of an attribute value-<a name="line-19"></a>-}</span>-<a name="line-20"></a>-<a name="line-21"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-22"></a>-<a name="line-23"></a><span class='comment'>-- Special namings in source code:</span>-<a name="line-24"></a><span class='comment'>--</span>-<a name="line-25"></a><span class='comment'>-- - nd - XDTD node</span>-<a name="line-26"></a><span class='comment'>--</span>-<a name="line-27"></a><span class='comment'>-- - n - XTag node</span>-<a name="line-28"></a><span class='comment'>--</span>-<a name="line-29"></a>-<a name="line-30"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DTDValidation</span><span class='varop'>.</span><span class='conid'>AttributeValueValidation</span>-<a name="line-31"></a> <span class='layout'>(</span> <span class='varid'>checkAttributeValue</span>-<a name="line-32"></a> <span class='layout'>,</span> <span class='varid'>normalizeAttributeValue</span>-<a name="line-33"></a> <span class='layout'>)</span>-<a name="line-34"></a><span class='keyword'>where</span>-<a name="line-35"></a>-<a name="line-36"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Parser</span><span class='varop'>.</span><span class='conid'>XmlParsec</span>-<a name="line-37"></a> <span class='layout'>(</span> <span class='varid'>parseNMToken</span>-<a name="line-38"></a> <span class='layout'>,</span> <span class='varid'>parseName</span>-<a name="line-39"></a> <span class='layout'>)</span>-<a name="line-40"></a>-<a name="line-41"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DTDValidation</span><span class='varop'>.</span><span class='conid'>TypeDefs</span>-<a name="line-42"></a>-<a name="line-43"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Util</span>-<a name="line-44"></a>-<a name="line-45"></a><span class='comment'>-- |</span>-<a name="line-46"></a><span class='comment'>-- Checks if the attribute value meets the lexical constraints of its type.</span>-<a name="line-47"></a><span class='comment'>--</span>-<a name="line-48"></a><span class='comment'>-- * 1.parameter dtdPart : the children of the @DOCTYPE@ node</span>-<a name="line-49"></a><span class='comment'>--</span>-<a name="line-50"></a><span class='comment'>-- - 2.parameter attrDecl : the declaration of the attribute from the DTD</span>-<a name="line-51"></a><span class='comment'>--</span>-<a name="line-52"></a><span class='comment'>-- - returns : a function which takes an element (XTag or XDTD ATTLIST),</span>-<a name="line-53"></a><span class='comment'>-- checks if the attribute value meets the lexical constraints</span>-<a name="line-54"></a><span class='comment'>-- of its type and returns a list of errors</span>-<a name="line-55"></a>-<a name="line-56"></a><a name="checkAttributeValue"></a><span class='definition'>checkAttributeValue</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XmlArrow</span>-<a name="line-57"></a><span class='definition'>checkAttributeValue</span> <span class='varid'>dtdPart</span> <span class='varid'>attrDecl</span>-<a name="line-58"></a> <span class='keyglyph'>|</span> <span class='varid'>isDTDAttlistNode</span> <span class='varid'>attrDecl</span>-<a name="line-59"></a> <span class='keyglyph'>=</span> <span class='varid'>choiceA</span>-<a name="line-60"></a> <span class='keyglyph'>[</span> <span class='varid'>isElem</span> <span class='conop'>:-></span> <span class='layout'>(</span> <span class='varid'>checkAttrVal</span> <span class='varop'>$<</span> <span class='varid'>getAttrValue</span> <span class='varid'>attrName</span> <span class='layout'>)</span>-<a name="line-61"></a> <span class='layout'>,</span> <span class='varid'>isDTDAttlist</span> <span class='conop'>:-></span> <span class='layout'>(</span> <span class='varid'>checkAttrVal</span> <span class='varop'>$<</span> <span class='layout'>(</span><span class='varid'>getDTDAttrl</span> <span class='varop'>>>^</span> <span class='varid'>dtd_default</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-62"></a> <span class='layout'>,</span> <span class='varid'>this</span> <span class='conop'>:-></span> <span class='varid'>none</span>-<a name="line-63"></a> <span class='keyglyph'>]</span>-<a name="line-64"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-65"></a> <span class='keyglyph'>=</span> <span class='varid'>none</span>-<a name="line-66"></a> <span class='keyword'>where</span>-<a name="line-67"></a> <span class='varid'>al</span> <span class='keyglyph'>=</span> <span class='varid'>getDTDAttributes</span> <span class='varid'>attrDecl</span>-<a name="line-68"></a> <span class='varid'>attrName</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_value</span> <span class='varid'>al</span>-<a name="line-69"></a> <span class='varid'>attrType</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_type</span> <span class='varid'>al</span>-<a name="line-70"></a> <span class='varid'>checkAttrVal</span> <span class='varid'>attrValue</span>-<a name="line-71"></a> <span class='keyglyph'>=</span> <span class='varid'>checkValue</span> <span class='varid'>attrType</span> <span class='varid'>dtdPart</span> <span class='varid'>normalizedVal</span> <span class='varid'>attrDecl</span>-<a name="line-72"></a> <span class='keyword'>where</span>-<a name="line-73"></a> <span class='varid'>normalizedVal</span> <span class='keyglyph'>=</span> <span class='varid'>normalizeAttributeValue</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>attrDecl</span><span class='layout'>)</span> <span class='varid'>attrValue</span>-<a name="line-74"></a>-<a name="line-75"></a><span class='comment'>-- |</span>-<a name="line-76"></a><span class='comment'>-- Dispatches the attibute check by the attribute type.</span>-<a name="line-77"></a><span class='comment'>--</span>-<a name="line-78"></a><span class='comment'>-- * 1.parameter typ : the attribute type</span>-<a name="line-79"></a><span class='comment'>--</span>-<a name="line-80"></a><span class='comment'>-- - 2.parameter dtdPart : the children of the @DOCTYPE@ node</span>-<a name="line-81"></a><span class='comment'>--</span>-<a name="line-82"></a><span class='comment'>-- - 3.parameter attrValue : the normalized attribute value to be checked</span>-<a name="line-83"></a><span class='comment'>--</span>-<a name="line-84"></a><span class='comment'>-- - 4.parameter attrDecl : the declaration of the attribute from the DTD</span>-<a name="line-85"></a><span class='comment'>--</span>-<a name="line-86"></a><span class='comment'>-- - returns : a functions which takes an element (XTag or XDTD ATTLIST),</span>-<a name="line-87"></a><span class='comment'>-- checks if the attribute value meets the lexical constraints</span>-<a name="line-88"></a><span class='comment'>-- of its type and returns a list of errors</span>-<a name="line-89"></a>-<a name="line-90"></a><a name="checkValue"></a><span class='definition'>checkValue</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XmlArrow</span>-<a name="line-91"></a><span class='definition'>checkValue</span> <span class='varid'>typ</span> <span class='varid'>dtdPart</span> <span class='varid'>attrValue</span> <span class='varid'>attrDecl</span>-<a name="line-92"></a> <span class='keyglyph'>|</span> <span class='varid'>typ</span> <span class='varop'>==</span> <span class='varid'>k_cdata</span> <span class='keyglyph'>=</span> <span class='varid'>none</span>-<a name="line-93"></a> <span class='keyglyph'>|</span> <span class='varid'>typ</span> <span class='varop'>==</span> <span class='varid'>k_enumeration</span> <span class='keyglyph'>=</span> <span class='varid'>checkValueEnumeration</span> <span class='varid'>attrDecl</span> <span class='varid'>attrValue</span>-<a name="line-94"></a> <span class='keyglyph'>|</span> <span class='varid'>typ</span> <span class='varop'>==</span> <span class='varid'>k_entity</span> <span class='keyglyph'>=</span> <span class='varid'>checkValueEntity</span> <span class='varid'>dtdPart</span> <span class='varid'>attrDecl</span> <span class='varid'>attrValue</span>-<a name="line-95"></a> <span class='keyglyph'>|</span> <span class='varid'>typ</span> <span class='varop'>==</span> <span class='varid'>k_entities</span> <span class='keyglyph'>=</span> <span class='varid'>checkValueEntities</span> <span class='varid'>dtdPart</span> <span class='varid'>attrDecl</span> <span class='varid'>attrValue</span>-<a name="line-96"></a> <span class='keyglyph'>|</span> <span class='varid'>typ</span> <span class='varop'>==</span> <span class='varid'>k_id</span> <span class='keyglyph'>=</span> <span class='varid'>checkValueId</span> <span class='varid'>attrDecl</span> <span class='varid'>attrValue</span>-<a name="line-97"></a> <span class='keyglyph'>|</span> <span class='varid'>typ</span> <span class='varop'>==</span> <span class='varid'>k_idref</span> <span class='keyglyph'>=</span> <span class='varid'>checkValueIdref</span> <span class='varid'>attrDecl</span> <span class='varid'>attrValue</span>-<a name="line-98"></a> <span class='keyglyph'>|</span> <span class='varid'>typ</span> <span class='varop'>==</span> <span class='varid'>k_idrefs</span> <span class='keyglyph'>=</span> <span class='varid'>checkValueIdrefs</span> <span class='varid'>attrDecl</span> <span class='varid'>attrValue</span>-<a name="line-99"></a> <span class='keyglyph'>|</span> <span class='varid'>typ</span> <span class='varop'>==</span> <span class='varid'>k_nmtoken</span> <span class='keyglyph'>=</span> <span class='varid'>checkValueNmtoken</span> <span class='varid'>attrDecl</span> <span class='varid'>attrValue</span>-<a name="line-100"></a> <span class='keyglyph'>|</span> <span class='varid'>typ</span> <span class='varop'>==</span> <span class='varid'>k_nmtokens</span> <span class='keyglyph'>=</span> <span class='varid'>checkValueNmtokens</span> <span class='varid'>attrDecl</span> <span class='varid'>attrValue</span>-<a name="line-101"></a> <span class='keyglyph'>|</span> <span class='varid'>typ</span> <span class='varop'>==</span> <span class='varid'>k_notation</span> <span class='keyglyph'>=</span> <span class='varid'>checkValueEnumeration</span> <span class='varid'>attrDecl</span> <span class='varid'>attrValue</span>-<a name="line-102"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"Attribute type "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>typ</span> <span class='varop'>++</span> <span class='str'>" unknown."</span><span class='layout'>)</span>-<a name="line-103"></a>-<a name="line-104"></a><span class='comment'>-- |</span>-<a name="line-105"></a><span class='comment'>-- Checks the value of Enumeration attribute types. (3.3.1 \/ p.27 in Spec)</span>-<a name="line-106"></a><span class='comment'>--</span>-<a name="line-107"></a><span class='comment'>-- * 1.parameter attrDecl : the declaration of the attribute from the DTD</span>-<a name="line-108"></a><span class='comment'>--</span>-<a name="line-109"></a><span class='comment'>-- - 2.parameter attrValue : the normalized attribute value to be checked</span>-<a name="line-110"></a>-<a name="line-111"></a><a name="checkValueEnumeration"></a><span class='definition'>checkValueEnumeration</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>XmlArrow</span>-<a name="line-112"></a><span class='definition'>checkValueEnumeration</span> <span class='varid'>attrDecl</span> <span class='varid'>attrValue</span>-<a name="line-113"></a> <span class='keyglyph'>|</span> <span class='varid'>isDTDAttlistNode</span> <span class='varid'>attrDecl</span>-<a name="line-114"></a> <span class='varop'>&&</span>-<a name="line-115"></a> <span class='varid'>attrValue</span> <span class='varop'>`notElem`</span> <span class='varid'>enumVals</span>-<a name="line-116"></a> <span class='keyglyph'>=</span> <span class='varid'>err</span> <span class='layout'>(</span> <span class='str'>"Attribute "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>dtd_value</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='str'>" for element "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>dtd_name</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varop'>++</span>-<a name="line-117"></a> <span class='str'>" must have a value from list "</span><span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>enumVals</span> <span class='comment'>{- ++ " but has value " ++ show attrValue-}</span> <span class='varop'>++</span> <span class='str'>"."</span><span class='layout'>)</span>-<a name="line-118"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-119"></a> <span class='keyglyph'>=</span> <span class='varid'>none</span>-<a name="line-120"></a> <span class='keyword'>where</span>-<a name="line-121"></a> <span class='varid'>al</span> <span class='keyglyph'>=</span> <span class='varid'>getDTDAttributes</span> <span class='varid'>attrDecl</span>-<a name="line-122"></a>-<a name="line-123"></a> <span class='varid'>enumVals</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span>-<a name="line-124"></a> <span class='varid'>enumVals</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>dtd_name</span> <span class='varop'>.</span> <span class='varid'>getDTDAttributes</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='layout'>(</span><span class='varid'>runLA</span> <span class='varid'>getChildren</span> <span class='varid'>attrDecl</span><span class='layout'>)</span>-<a name="line-125"></a>-<a name="line-126"></a><span class='comment'>-- |</span>-<a name="line-127"></a><span class='comment'>-- Checks the value of ENTITY attribute types. (3.3.1 \/ p.26 in Spec)</span>-<a name="line-128"></a><span class='comment'>--</span>-<a name="line-129"></a><span class='comment'>-- * 1.parameter dtdPart : the children of the @DOCTYPE@ node, to get the</span>-<a name="line-130"></a><span class='comment'>-- unparsed entity declarations</span>-<a name="line-131"></a><span class='comment'>--</span>-<a name="line-132"></a><span class='comment'>-- - 2.parameter attrDecl : the declaration of the attribute from the DTD</span>-<a name="line-133"></a><span class='comment'>--</span>-<a name="line-134"></a><span class='comment'>-- - 3.parameter attrValue : the normalized attribute value to be checked</span>-<a name="line-135"></a>-<a name="line-136"></a><a name="checkValueEntity"></a><span class='definition'>checkValueEntity</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>XmlArrow</span>-<a name="line-137"></a><span class='definition'>checkValueEntity</span> <span class='varid'>dtdPart</span> <span class='varid'>attrDecl</span> <span class='varid'>attrValue</span>-<a name="line-138"></a> <span class='keyglyph'>|</span> <span class='varid'>isDTDAttlistNode</span> <span class='varid'>attrDecl</span>-<a name="line-139"></a> <span class='varop'>&&</span>-<a name="line-140"></a> <span class='varid'>attrValue</span> <span class='varop'>`notElem`</span> <span class='varid'>upEntities</span>-<a name="line-141"></a> <span class='keyglyph'>=</span> <span class='varid'>err</span> <span class='layout'>(</span> <span class='str'>"Entity "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>attrValue</span> <span class='varop'>++</span> <span class='str'>" of attribute "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>dtd_value</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varop'>++</span>-<a name="line-142"></a> <span class='str'>" for element "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>dtd_name</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='str'>" is not unparsed. "</span> <span class='varop'>++</span>-<a name="line-143"></a> <span class='str'>"The following unparsed entities exist: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>upEntities</span> <span class='varop'>++</span> <span class='str'>"."</span><span class='layout'>)</span>-<a name="line-144"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-145"></a> <span class='keyglyph'>=</span> <span class='varid'>none</span>-<a name="line-146"></a> <span class='keyword'>where</span>-<a name="line-147"></a> <span class='varid'>al</span> <span class='keyglyph'>=</span> <span class='varid'>getDTDAttributes</span> <span class='varid'>attrDecl</span>-<a name="line-148"></a>-<a name="line-149"></a> <span class='varid'>upEntities</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span>-<a name="line-150"></a> <span class='varid'>upEntities</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>dtd_name</span> <span class='varop'>.</span> <span class='varid'>getDTDAttributes</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>isUnparsedEntity</span> <span class='varop'>$$</span> <span class='varid'>dtdPart</span><span class='layout'>)</span>-<a name="line-151"></a>-<a name="line-152"></a><span class='comment'>-- |</span>-<a name="line-153"></a><span class='comment'>-- Checks the value of ENTITIES attribute types. (3.3.1 \/ p.26 in Spec)</span>-<a name="line-154"></a><span class='comment'>--</span>-<a name="line-155"></a><span class='comment'>-- * 1.parameter dtdPart : the children of the @DOCTYPE@ node, to get the</span>-<a name="line-156"></a><span class='comment'>-- unparsed entity declarations</span>-<a name="line-157"></a><span class='comment'>--</span>-<a name="line-158"></a><span class='comment'>-- - 2.parameter attrDecl : the declaration of the attribute from the DTD</span>-<a name="line-159"></a><span class='comment'>--</span>-<a name="line-160"></a><span class='comment'>-- - 3.parameter attrValue : the normalized attribute value to be checked</span>-<a name="line-161"></a>-<a name="line-162"></a><a name="checkValueEntities"></a><span class='definition'>checkValueEntities</span> <span class='keyglyph'>::</span><span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>XmlArrow</span>-<a name="line-163"></a><span class='definition'>checkValueEntities</span> <span class='varid'>dtdPart</span> <span class='varid'>attrDecl</span> <span class='varid'>attrValue</span>-<a name="line-164"></a> <span class='keyglyph'>|</span> <span class='varid'>isDTDAttlistNode</span> <span class='varid'>attrDecl</span>-<a name="line-165"></a> <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>valueList</span>-<a name="line-166"></a> <span class='keyword'>then</span> <span class='varid'>err</span> <span class='layout'>(</span><span class='str'>"Attribute "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>dtd_value</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='str'>" of element "</span> <span class='varop'>++</span>-<a name="line-167"></a> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>dtd_name</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='str'>" must be one or more names."</span><span class='layout'>)</span>-<a name="line-168"></a> <span class='keyword'>else</span> <span class='varid'>catA</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>checkValueEntity</span> <span class='varid'>dtdPart</span> <span class='varid'>attrDecl</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>valueList</span>-<a name="line-169"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-170"></a> <span class='keyglyph'>=</span> <span class='varid'>none</span>-<a name="line-171"></a> <span class='keyword'>where</span>-<a name="line-172"></a> <span class='varid'>al</span> <span class='keyglyph'>=</span> <span class='varid'>getDTDAttributes</span> <span class='varid'>attrDecl</span>-<a name="line-173"></a> <span class='varid'>valueList</span> <span class='keyglyph'>=</span> <span class='varid'>words</span> <span class='varid'>attrValue</span>-<a name="line-174"></a>-<a name="line-175"></a><span class='comment'>-- |</span>-<a name="line-176"></a><span class='comment'>-- Checks the value of NMTOKEN attribute types. (3.3.1 \/ p.26 in Spec)</span>-<a name="line-177"></a><span class='comment'>--</span>-<a name="line-178"></a><span class='comment'>-- * 1.parameter attrDecl : the declaration of the attribute from the DTD</span>-<a name="line-179"></a><span class='comment'>--</span>-<a name="line-180"></a><span class='comment'>-- - 2.parameter attrValue : the normalized attribute value to be checked</span>-<a name="line-181"></a>-<a name="line-182"></a><a name="checkValueNmtoken"></a><span class='definition'>checkValueNmtoken</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>XmlArrow</span>-<a name="line-183"></a><span class='definition'>checkValueNmtoken</span> <span class='varid'>attrDecl</span> <span class='varid'>attrValue</span>-<a name="line-184"></a> <span class='keyglyph'>|</span> <span class='varid'>isDTDAttlistNode</span> <span class='varid'>attrDecl</span>-<a name="line-185"></a> <span class='keyglyph'>=</span> <span class='varid'>constA</span> <span class='varid'>attrValue</span> <span class='varop'>>>></span> <span class='varid'>checkNmtoken</span>-<a name="line-186"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-187"></a> <span class='keyglyph'>=</span> <span class='varid'>none</span>-<a name="line-188"></a> <span class='keyword'>where</span>-<a name="line-189"></a> <span class='varid'>al</span> <span class='keyglyph'>=</span> <span class='varid'>getDTDAttributes</span> <span class='varid'>attrDecl</span>-<a name="line-190"></a> <span class='varid'>checkNmtoken</span>-<a name="line-191"></a> <span class='keyglyph'>=</span> <span class='varid'>mkText</span> <span class='varop'>>>></span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>parseNMToken</span> <span class='str'>""</span><span class='layout'>)</span>-<a name="line-192"></a> <span class='varop'>>>></span>-<a name="line-193"></a> <span class='varid'>isError</span>-<a name="line-194"></a> <span class='varop'>>>></span>-<a name="line-195"></a> <span class='varid'>getErrorMsg</span>-<a name="line-196"></a> <span class='varop'>>>></span>-<a name="line-197"></a> <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='keyglyph'>-></span> <span class='layout'>(</span> <span class='str'>"Attribute value "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>attrValue</span> <span class='varop'>++</span> <span class='str'>" of attribute "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>dtd_value</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varop'>++</span>-<a name="line-198"></a> <span class='str'>" for element "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>dtd_name</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='str'>" must be a name token, "</span><span class='varop'>++</span> <span class='layout'>(</span><span class='varid'>lines</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='varop'>!!</span> <span class='num'>1</span> <span class='varop'>++</span><span class='str'>"."</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-199"></a> <span class='varop'>>>></span>-<a name="line-200"></a> <span class='varid'>mkError</span> <span class='varid'>c_err</span>-<a name="line-201"></a>-<a name="line-202"></a><span class='comment'>-- |</span>-<a name="line-203"></a><span class='comment'>-- Checks the value of NMTOKENS attribute types. (3.3.1 \/ p.26 in Spec)</span>-<a name="line-204"></a><span class='comment'>--</span>-<a name="line-205"></a><span class='comment'>-- * 1.parameter attrDecl : the declaration of the attribute from the DTD</span>-<a name="line-206"></a><span class='comment'>--</span>-<a name="line-207"></a><span class='comment'>-- - 2.parameter attrValue : the normalized attribute value to be checked</span>-<a name="line-208"></a>-<a name="line-209"></a><a name="checkValueNmtokens"></a><span class='definition'>checkValueNmtokens</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>XmlArrow</span>-<a name="line-210"></a><span class='definition'>checkValueNmtokens</span> <span class='varid'>attrDecl</span> <span class='varid'>attrValue</span>-<a name="line-211"></a> <span class='keyglyph'>|</span> <span class='varid'>isDTDAttlistNode</span> <span class='varid'>attrDecl</span>-<a name="line-212"></a> <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>valueList</span>-<a name="line-213"></a> <span class='keyword'>then</span> <span class='varid'>err</span> <span class='layout'>(</span> <span class='str'>"Attribute "</span><span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>dtd_value</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varop'>++</span><span class='str'>" of element "</span> <span class='varop'>++</span>-<a name="line-214"></a> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>dtd_name</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='str'>" must be one or more name tokens."</span><span class='layout'>)</span>-<a name="line-215"></a> <span class='keyword'>else</span> <span class='varid'>catA</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>checkValueNmtoken</span> <span class='varid'>attrDecl</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>valueList</span>-<a name="line-216"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-217"></a> <span class='keyglyph'>=</span> <span class='varid'>none</span>-<a name="line-218"></a> <span class='keyword'>where</span>-<a name="line-219"></a> <span class='varid'>al</span> <span class='keyglyph'>=</span> <span class='varid'>getDTDAttributes</span> <span class='varid'>attrDecl</span>-<a name="line-220"></a> <span class='varid'>valueList</span> <span class='keyglyph'>=</span> <span class='varid'>words</span> <span class='varid'>attrValue</span>-<a name="line-221"></a>-<a name="line-222"></a><span class='comment'>-- |</span>-<a name="line-223"></a><span class='comment'>-- Checks the value of ID attribute types. (3.3.1 \/ p.25 in Spec)</span>-<a name="line-224"></a><span class='comment'>--</span>-<a name="line-225"></a><span class='comment'>-- * 1.parameter attrDecl : the declaration of the attribute from the DTD</span>-<a name="line-226"></a><span class='comment'>--</span>-<a name="line-227"></a><span class='comment'>-- - 2.parameter attrValue : the normalized attribute value to be checked</span>-<a name="line-228"></a>-<a name="line-229"></a><a name="checkValueId"></a><span class='definition'>checkValueId</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>XmlArrow</span>-<a name="line-230"></a><span class='definition'>checkValueId</span> <span class='varid'>attrDecl</span> <span class='varid'>attrValue</span>-<a name="line-231"></a> <span class='keyglyph'>=</span> <span class='varid'>checkForName</span> <span class='str'>"Attribute value"</span> <span class='varid'>attrDecl</span> <span class='varid'>attrValue</span>-<a name="line-232"></a>-<a name="line-233"></a>-<a name="line-234"></a><span class='comment'>-- |</span>-<a name="line-235"></a><span class='comment'>-- Checks the value of IDREF attribute types. (3.3.1 \/ p.26 in Spec)</span>-<a name="line-236"></a><span class='comment'>--</span>-<a name="line-237"></a><span class='comment'>-- * 1.parameter attrDecl : the declaration of the attribute from the DTD</span>-<a name="line-238"></a><span class='comment'>--</span>-<a name="line-239"></a><span class='comment'>-- - 2.parameter attrValue : the normalized attribute value to be checked</span>-<a name="line-240"></a>-<a name="line-241"></a><a name="checkValueIdref"></a><span class='definition'>checkValueIdref</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>XmlArrow</span>-<a name="line-242"></a><span class='definition'>checkValueIdref</span> <span class='varid'>attrDecl</span> <span class='varid'>attrValue</span>-<a name="line-243"></a> <span class='keyglyph'>=</span> <span class='varid'>checkForName</span> <span class='str'>"Attribute value"</span> <span class='varid'>attrDecl</span> <span class='varid'>attrValue</span>-<a name="line-244"></a>-<a name="line-245"></a>-<a name="line-246"></a><span class='comment'>-- |</span>-<a name="line-247"></a><span class='comment'>-- Checks the value of IDREFS attribute types. (3.3.1 \/ p.26 in Spec)</span>-<a name="line-248"></a><span class='comment'>--</span>-<a name="line-249"></a><span class='comment'>-- * 1.parameter attrDecl : the declaration of the attribute from the DTD</span>-<a name="line-250"></a><span class='comment'>--</span>-<a name="line-251"></a><span class='comment'>-- - 2.parameter attrValue : the normalized attribute value to be checked</span>-<a name="line-252"></a>-<a name="line-253"></a><a name="checkValueIdrefs"></a><span class='definition'>checkValueIdrefs</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>XmlArrow</span>-<a name="line-254"></a><span class='definition'>checkValueIdrefs</span> <span class='varid'>attrDecl</span> <span class='varid'>attrValue</span>-<a name="line-255"></a> <span class='keyglyph'>=</span> <span class='varid'>catA</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>checkValueIdref</span> <span class='varid'>attrDecl</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>words</span> <span class='varop'>$</span> <span class='varid'>attrValue</span>-<a name="line-256"></a>-<a name="line-257"></a>-<a name="line-258"></a>-<a name="line-259"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>-<a name="line-260"></a><span class='comment'>-- General helper functions for checking attribute values</span>-<a name="line-261"></a><span class='comment'>--</span>-<a name="line-262"></a>-<a name="line-263"></a><span class='comment'>-- |</span>-<a name="line-264"></a><span class='comment'>-- Checks if the value of an attribute is a name.</span>-<a name="line-265"></a><span class='comment'>--</span>-<a name="line-266"></a><span class='comment'>-- * 1.parameter msg : error message, should be "Entity" or "Attribute value"</span>-<a name="line-267"></a><span class='comment'>--</span>-<a name="line-268"></a><span class='comment'>-- - 2.parameter attrDecl : the declaration of the attribute from the DTD</span>-<a name="line-269"></a><span class='comment'>--</span>-<a name="line-270"></a><span class='comment'>-- - 3.parameter attrValue : the normalized attribute value to be checked</span>-<a name="line-271"></a>-<a name="line-272"></a><a name="checkForName"></a><span class='definition'>checkForName</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>XmlArrow</span>-<a name="line-273"></a><span class='definition'>checkForName</span> <span class='varid'>msg</span> <span class='varid'>attrDecl</span> <span class='varid'>attrValue</span>-<a name="line-274"></a> <span class='keyglyph'>|</span> <span class='varid'>isDTDAttlistNode</span> <span class='varid'>attrDecl</span>-<a name="line-275"></a> <span class='keyglyph'>=</span> <span class='varid'>constA</span> <span class='varid'>attrValue</span> <span class='varop'>>>></span> <span class='varid'>checkName</span>-<a name="line-276"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-277"></a> <span class='keyglyph'>=</span> <span class='varid'>none</span>-<a name="line-278"></a> <span class='keyword'>where</span>-<a name="line-279"></a> <span class='varid'>al</span> <span class='keyglyph'>=</span> <span class='varid'>getDTDAttributes</span> <span class='varid'>attrDecl</span>-<a name="line-280"></a> <span class='varid'>checkName</span>-<a name="line-281"></a> <span class='keyglyph'>=</span> <span class='varid'>mkText</span> <span class='varop'>>>></span> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>parseName</span> <span class='str'>""</span><span class='layout'>)</span>-<a name="line-282"></a> <span class='varop'>>>></span>-<a name="line-283"></a> <span class='varid'>isError</span>-<a name="line-284"></a> <span class='varop'>>>></span>-<a name="line-285"></a> <span class='varid'>getErrorMsg</span>-<a name="line-286"></a> <span class='varop'>>>></span>-<a name="line-287"></a> <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>s</span> <span class='keyglyph'>-></span> <span class='layout'>(</span> <span class='varid'>msg</span> <span class='varop'>++</span> <span class='str'>" "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>attrValue</span> <span class='varop'>++</span><span class='str'>" of attribute "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>dtd_value</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varop'>++</span>-<a name="line-288"></a> <span class='str'>" for element "</span><span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>dtd_name</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varop'>++</span><span class='str'>" must be a name, "</span> <span class='varop'>++</span> <span class='layout'>(</span><span class='varid'>lines</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='varop'>!!</span> <span class='num'>1</span> <span class='varop'>++</span> <span class='str'>"."</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-289"></a> <span class='varop'>>>></span>-<a name="line-290"></a> <span class='varid'>mkError</span> <span class='varid'>c_err</span>-<a name="line-291"></a>-<a name="line-292"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>-<a name="line-293"></a>-<a name="line-294"></a><a name="normalizeAttributeValue"></a><span class='comment'>-- |</span>-<a name="line-295"></a><span class='comment'>-- Normalizes an attribute value with respect to its type. (3.3.3 \/ p.29 in Spec)</span>-<a name="line-296"></a><span class='comment'>--</span>-<a name="line-297"></a><span class='comment'>-- * 1.parameter attrDecl : the declaration of the attribute from the DTD. Expected</span>-<a name="line-298"></a><span class='comment'>-- is a list. If the list is empty, no declaration exists.</span>-<a name="line-299"></a><span class='comment'>--</span>-<a name="line-300"></a><span class='comment'>-- - 2.parameter value : the attribute value to be normalized</span>-<a name="line-301"></a><span class='comment'>--</span>-<a name="line-302"></a><span class='comment'>-- - returns : the normalized value</span>-<a name="line-303"></a><span class='comment'>--</span>-<a name="line-304"></a><span class='definition'>normalizeAttributeValue</span> <span class='keyglyph'>::</span> <span class='conid'>Maybe</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-305"></a><span class='definition'>normalizeAttributeValue</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>attrDecl</span><span class='layout'>)</span> <span class='varid'>value</span>-<a name="line-306"></a> <span class='keyglyph'>=</span> <span class='varid'>normalizeAttribute</span> <span class='varid'>attrType</span>-<a name="line-307"></a> <span class='keyword'>where</span>-<a name="line-308"></a> <span class='varid'>al</span> <span class='keyglyph'>=</span> <span class='varid'>getDTDAttributes</span> <span class='varid'>attrDecl</span>-<a name="line-309"></a> <span class='varid'>attrType</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_type</span> <span class='varid'>al</span>-<a name="line-310"></a>-<a name="line-311"></a> <span class='varid'>normalizeAttribute</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-312"></a> <span class='varid'>normalizeAttribute</span> <span class='varid'>typ</span>-<a name="line-313"></a> <span class='keyglyph'>|</span> <span class='varid'>typ</span> <span class='varop'>==</span> <span class='varid'>k_cdata</span> <span class='keyglyph'>=</span> <span class='varid'>cdataNormalization</span> <span class='varid'>value</span>-<a name="line-314"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>otherNormalization</span> <span class='varid'>value</span>-<a name="line-315"></a>-<a name="line-316"></a><span class='comment'>-- Attribute not declared in DTD, normalization as CDATA</span>-<a name="line-317"></a><span class='definition'>normalizeAttributeValue</span> <span class='conid'>Nothing</span> <span class='varid'>value</span>-<a name="line-318"></a> <span class='keyglyph'>=</span> <span class='varid'>cdataNormalization</span> <span class='varid'>value</span>-<a name="line-319"></a>-<a name="line-320"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-321"></a><span class='comment'>-- Helper functions for normalization</span>-<a name="line-322"></a>-<a name="line-323"></a><span class='comment'>-- |</span>-<a name="line-324"></a><span class='comment'>-- Normalization of CDATA attribute values.</span>-<a name="line-325"></a><span class='comment'>-- is already done when parsing</span>-<a name="line-326"></a><span class='comment'>-- during entity substituion for attribute values</span>-<a name="line-327"></a>-<a name="line-328"></a><a name="cdataNormalization"></a><span class='definition'>cdataNormalization</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-329"></a><span class='definition'>cdataNormalization</span> <span class='keyglyph'>=</span> <span class='varid'>id</span>-<a name="line-330"></a>-<a name="line-331"></a><span class='comment'>-- | Normalization of attribute values other than CDATA.</span>-<a name="line-332"></a>-<a name="line-333"></a><a name="otherNormalization"></a><span class='definition'>otherNormalization</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-334"></a><span class='definition'>otherNormalization</span> <span class='keyglyph'>=</span> <span class='varid'>reduceWSSequences</span> <span class='varop'>.</span> <span class='varid'>stringTrim</span> <span class='varop'>.</span> <span class='varid'>cdataNormalization</span>-<a name="line-335"></a>-<a name="line-336"></a><span class='comment'>-- | Reduce whitespace sequences to a single whitespace.</span>-<a name="line-337"></a>-<a name="line-338"></a><a name="reduceWSSequences"></a><span class='definition'>reduceWSSequences</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-339"></a><span class='definition'>reduceWSSequences</span> <span class='varid'>str</span> <span class='keyglyph'>=</span> <span class='varid'>unwords</span> <span class='layout'>(</span><span class='varid'>words</span> <span class='varid'>str</span><span class='layout'>)</span>-<a name="line-340"></a>-<a name="line-341"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-342"></a>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-DTDValidation-DTDValidation.html
@@ -1,600 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Text.XML.HXT.DTDValidation.TypeDefs-<a name="line-5"></a> Copyright : Copyright (C) 2008 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe@fh-wedel.de)-<a name="line-9"></a> Stability : experimental-<a name="line-10"></a> Portability: portable-<a name="line-11"></a>-<a name="line-12"></a> This module provides functions for validating the DTD of XML documents-<a name="line-13"></a> represented as XmlTree.-<a name="line-14"></a>-<a name="line-15"></a> Unlike other popular XML validation tools the validation process returns-<a name="line-16"></a> a list of errors instead of aborting after the first error was found.-<a name="line-17"></a>-<a name="line-18"></a>-<a name="line-19"></a> Unlike validation of the document, the DTD branch is traversed four times:-<a name="line-20"></a>-<a name="line-21"></a> - Validation of Notations-<a name="line-22"></a>-<a name="line-23"></a> - Validation of Unparsed Entities-<a name="line-24"></a>-<a name="line-25"></a> - Validation of Element declarations-<a name="line-26"></a>-<a name="line-27"></a> - Validation of Attribute declarations-<a name="line-28"></a>-<a name="line-29"></a>-}</span>-<a name="line-30"></a>-<a name="line-31"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-32"></a>-<a name="line-33"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DTDValidation</span><span class='varop'>.</span><span class='conid'>DTDValidation</span>-<a name="line-34"></a> <span class='layout'>(</span> <span class='varid'>removeDoublicateDefs</span>-<a name="line-35"></a> <span class='layout'>,</span> <span class='varid'>validateDTD</span>-<a name="line-36"></a> <span class='layout'>)</span>-<a name="line-37"></a><span class='keyword'>where</span>-<a name="line-38"></a>-<a name="line-39"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DTDValidation</span><span class='varop'>.</span><span class='conid'>TypeDefs</span>-<a name="line-40"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DTDValidation</span><span class='varop'>.</span><span class='conid'>AttributeValueValidation</span>-<a name="line-41"></a>-<a name="line-42"></a><span class='comment'>-- |</span>-<a name="line-43"></a><span class='comment'>-- Validate a DTD.</span>-<a name="line-44"></a><span class='comment'>--</span>-<a name="line-45"></a><span class='comment'>-- - returns : a functions which takes the DTD subset of the XmlTree, checks</span>-<a name="line-46"></a><span class='comment'>-- if the DTD is valid and returns a list of errors</span>-<a name="line-47"></a>-<a name="line-48"></a><a name="validateDTD"></a><span class='definition'>validateDTD</span> <span class='keyglyph'>::</span> <span class='conid'>XmlArrow</span>-<a name="line-49"></a><span class='definition'>validateDTD</span> <span class='comment'>-- dtdPart</span>-<a name="line-50"></a> <span class='keyglyph'>=</span> <span class='varid'>isDTDDoctype</span>-<a name="line-51"></a> <span class='varop'>`guards`</span>-<a name="line-52"></a> <span class='layout'>(</span> <span class='varid'>listA</span> <span class='varid'>getChildren</span>-<a name="line-53"></a> <span class='varop'>>>></span>-<a name="line-54"></a> <span class='layout'>(</span> <span class='varid'>validateParts</span> <span class='varop'>$<<</span> <span class='layout'>(</span><span class='varid'>getNotationNames</span> <span class='varop'>&&&</span> <span class='varid'>getElemNames</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-55"></a> <span class='layout'>)</span>-<a name="line-56"></a> <span class='keyword'>where</span>-<a name="line-57"></a> <span class='varid'>validateParts</span> <span class='varid'>notationNames</span> <span class='varid'>elemNames</span>-<a name="line-58"></a> <span class='keyglyph'>=</span> <span class='varid'>validateNotations</span>-<a name="line-59"></a> <span class='varop'><+></span>-<a name="line-60"></a> <span class='varid'>validateEntities</span> <span class='varid'>notationNames</span>-<a name="line-61"></a> <span class='varop'><+></span>-<a name="line-62"></a> <span class='varid'>validateElements</span> <span class='varid'>elemNames</span>-<a name="line-63"></a> <span class='varop'><+></span>-<a name="line-64"></a> <span class='varid'>validateAttributes</span> <span class='varid'>elemNames</span> <span class='varid'>notationNames</span>-<a name="line-65"></a>-<a name="line-66"></a> <span class='varid'>getNotationNames</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span>-<a name="line-67"></a> <span class='varid'>getNotationNames</span> <span class='keyglyph'>=</span> <span class='varid'>listA</span> <span class='varop'>$</span> <span class='varid'>unlistA</span> <span class='varop'>>>></span> <span class='varid'>isDTDNotation</span> <span class='varop'>>>></span> <span class='varid'>getDTDAttrValue</span> <span class='varid'>a_name</span>-<a name="line-68"></a>-<a name="line-69"></a> <span class='varid'>getElemNames</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span>-<a name="line-70"></a> <span class='varid'>getElemNames</span> <span class='keyglyph'>=</span> <span class='varid'>listA</span> <span class='varop'>$</span> <span class='varid'>unlistA</span> <span class='varop'>>>></span> <span class='varid'>isDTDElement</span> <span class='varop'>>>></span> <span class='varid'>getDTDAttrValue</span> <span class='varid'>a_name</span>-<a name="line-71"></a>-<a name="line-72"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-73"></a>-<a name="line-74"></a><a name="checkName"></a><span class='definition'>checkName</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>SLA</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>SLA</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-75"></a><span class='definition'>checkName</span> <span class='varid'>name</span> <span class='varid'>msg</span>-<a name="line-76"></a> <span class='keyglyph'>=</span> <span class='varid'>ifA</span> <span class='layout'>(</span> <span class='varid'>getState</span>-<a name="line-77"></a> <span class='varop'>>>></span>-<a name="line-78"></a> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>name</span> <span class='varop'>`elem`</span><span class='layout'>)</span>-<a name="line-79"></a> <span class='layout'>)</span>-<a name="line-80"></a> <span class='varid'>msg</span>-<a name="line-81"></a> <span class='layout'>(</span><span class='varid'>nextState</span> <span class='layout'>(</span><span class='varid'>name</span><span class='conop'>:</span><span class='layout'>)</span> <span class='varop'>>>></span> <span class='varid'>none</span><span class='layout'>)</span>-<a name="line-82"></a>-<a name="line-83"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-84"></a>-<a name="line-85"></a><span class='comment'>-- |</span>-<a name="line-86"></a><span class='comment'>-- Validation of Notations, checks if all notation names are unique.</span>-<a name="line-87"></a><span class='comment'>-- Validity constraint: Unique Notation Name (4.7 \/ p.44 in Spec)</span>-<a name="line-88"></a><span class='comment'>--</span>-<a name="line-89"></a><span class='comment'>-- * 1.parameter dtdPart : the children of the @DOCTYPE@ node</span>-<a name="line-90"></a><span class='comment'>--</span>-<a name="line-91"></a><span class='comment'>-- - returns : a list of errors</span>-<a name="line-92"></a>-<a name="line-93"></a><a name="validateNotations"></a><span class='definition'>validateNotations</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTrees</span> <span class='conid'>XmlTree</span>-<a name="line-94"></a><span class='definition'>validateNotations</span>-<a name="line-95"></a> <span class='keyglyph'>=</span> <span class='varid'>fromSLA</span> <span class='conid'>[]</span> <span class='layout'>(</span> <span class='varid'>unlistA</span>-<a name="line-96"></a> <span class='varop'>>>></span>-<a name="line-97"></a> <span class='varid'>isDTDNotation</span>-<a name="line-98"></a> <span class='varop'>>>></span>-<a name="line-99"></a> <span class='layout'>(</span><span class='varid'>checkForUniqueNotation</span> <span class='varop'>$<</span> <span class='varid'>getDTDAttrl</span><span class='layout'>)</span>-<a name="line-100"></a> <span class='layout'>)</span>-<a name="line-101"></a> <span class='keyword'>where</span>-<a name="line-102"></a> <span class='varid'>checkForUniqueNotation</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>SLA</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-103"></a> <span class='varid'>checkForUniqueNotation</span> <span class='varid'>al</span>-<a name="line-104"></a> <span class='keyglyph'>=</span> <span class='varid'>checkName</span> <span class='varid'>name</span> <span class='varop'>$</span>-<a name="line-105"></a> <span class='varid'>err</span> <span class='layout'>(</span> <span class='str'>"Notation "</span><span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>name</span> <span class='varop'>++</span> <span class='str'>" was already specified."</span> <span class='layout'>)</span>-<a name="line-106"></a> <span class='keyword'>where</span>-<a name="line-107"></a> <span class='varid'>name</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_name</span> <span class='varid'>al</span>-<a name="line-108"></a>-<a name="line-109"></a><span class='comment'>-- |</span>-<a name="line-110"></a><span class='comment'>-- Validation of Entities.</span>-<a name="line-111"></a><span class='comment'>--</span>-<a name="line-112"></a><span class='comment'>-- 1. Issues a warning if entities are declared multiple times.</span>-<a name="line-113"></a><span class='comment'>--</span>-<a name="line-114"></a><span class='comment'>-- Optional warning: (4.2 \/ p.35 in Spec) </span>-<a name="line-115"></a><span class='comment'>--</span>-<a name="line-116"></a><span class='comment'>--</span>-<a name="line-117"></a><span class='comment'>-- 2. Validates that a notation is declared for an unparsed entity.</span>-<a name="line-118"></a><span class='comment'>--</span>-<a name="line-119"></a><span class='comment'>-- Validity constraint: Notation Declared (4.2.2 \/ p.36 in Spec)</span>-<a name="line-120"></a><span class='comment'>--</span>-<a name="line-121"></a><span class='comment'>-- * 1.parameter dtdPart : the children of the @DOCTYPE@ node</span>-<a name="line-122"></a><span class='comment'>--</span>-<a name="line-123"></a><span class='comment'>-- - 2.parameter notationNames : list of all notation names declared in the DTD</span>-<a name="line-124"></a><span class='comment'>--</span>-<a name="line-125"></a><span class='comment'>-- - returns : a list of errors</span>-<a name="line-126"></a>-<a name="line-127"></a><a name="validateEntities"></a><span class='definition'>validateEntities</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>LA</span> <span class='conid'>XmlTrees</span> <span class='conid'>XmlTree</span>-<a name="line-128"></a><span class='definition'>validateEntities</span> <span class='varid'>notationNames</span>-<a name="line-129"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>fromSLA</span> <span class='conid'>[]</span> <span class='layout'>(</span> <span class='varid'>unlistA</span>-<a name="line-130"></a> <span class='varop'>>>></span>-<a name="line-131"></a> <span class='varid'>isDTDEntity</span>-<a name="line-132"></a> <span class='varop'>>>></span>-<a name="line-133"></a> <span class='layout'>(</span><span class='varid'>checkForUniqueEntity</span> <span class='varop'>$<</span> <span class='varid'>getDTDAttrl</span><span class='layout'>)</span>-<a name="line-134"></a> <span class='layout'>)</span>-<a name="line-135"></a> <span class='layout'>)</span>-<a name="line-136"></a> <span class='varop'><+></span>-<a name="line-137"></a> <span class='layout'>(</span> <span class='varid'>unlistA</span>-<a name="line-138"></a> <span class='varop'>>>></span>-<a name="line-139"></a> <span class='varid'>isUnparsedEntity</span>-<a name="line-140"></a> <span class='varop'>>>></span>-<a name="line-141"></a> <span class='layout'>(</span><span class='varid'>checkNotationDecl</span> <span class='varop'>$<</span> <span class='varid'>getDTDAttrl</span><span class='layout'>)</span>-<a name="line-142"></a> <span class='layout'>)</span>-<a name="line-143"></a> <span class='keyword'>where</span>-<a name="line-144"></a>-<a name="line-145"></a> <span class='comment'>-- Check if entities are declared multiple times</span>-<a name="line-146"></a>-<a name="line-147"></a> <span class='varid'>checkForUniqueEntity</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>SLA</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-148"></a> <span class='varid'>checkForUniqueEntity</span> <span class='varid'>al</span>-<a name="line-149"></a> <span class='keyglyph'>=</span> <span class='varid'>checkName</span> <span class='varid'>name</span> <span class='varop'>$</span>-<a name="line-150"></a> <span class='varid'>warn</span> <span class='layout'>(</span> <span class='str'>"Entity "</span><span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>name</span> <span class='varop'>++</span> <span class='str'>" was already specified. "</span> <span class='varop'>++</span>-<a name="line-151"></a> <span class='str'>"First declaration will be used."</span> <span class='layout'>)</span>-<a name="line-152"></a> <span class='keyword'>where</span>-<a name="line-153"></a> <span class='varid'>name</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_name</span> <span class='varid'>al</span>-<a name="line-154"></a>-<a name="line-155"></a> <span class='comment'>-- Find unparsed entities for which no notation is specified</span>-<a name="line-156"></a>-<a name="line-157"></a> <span class='varid'>checkNotationDecl</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>XmlArrow</span>-<a name="line-158"></a> <span class='varid'>checkNotationDecl</span> <span class='varid'>al</span>-<a name="line-159"></a> <span class='keyglyph'>|</span> <span class='varid'>notationName</span> <span class='varop'>`elem`</span> <span class='varid'>notationNames</span>-<a name="line-160"></a> <span class='keyglyph'>=</span> <span class='varid'>none</span>-<a name="line-161"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-162"></a> <span class='keyglyph'>=</span> <span class='varid'>err</span> <span class='layout'>(</span> <span class='str'>"The notation "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>notationName</span> <span class='varop'>++</span> <span class='str'>" must be declared "</span> <span class='varop'>++</span>-<a name="line-163"></a> <span class='str'>"when referenced in the unparsed entity declaration for "</span> <span class='varop'>++</span>-<a name="line-164"></a> <span class='varid'>show</span> <span class='varid'>upEntityName</span> <span class='varop'>++</span> <span class='str'>"."</span>-<a name="line-165"></a> <span class='layout'>)</span>-<a name="line-166"></a> <span class='keyword'>where</span>-<a name="line-167"></a> <span class='varid'>notationName</span> <span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>k_ndata</span> <span class='varid'>al</span>-<a name="line-168"></a> <span class='varid'>upEntityName</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_name</span> <span class='varid'>al</span>-<a name="line-169"></a>-<a name="line-170"></a><span class='comment'>-- |</span>-<a name="line-171"></a><span class='comment'>-- Validation of Element declarations.</span>-<a name="line-172"></a><span class='comment'>--</span>-<a name="line-173"></a><span class='comment'>-- 1. Validates that an element is not declared multiple times.</span>-<a name="line-174"></a><span class='comment'>--</span>-<a name="line-175"></a><span class='comment'>-- Validity constraint: Unique Element Type Declaration (3.2 \/ p.21 in Spec) </span>-<a name="line-176"></a><span class='comment'>--</span>-<a name="line-177"></a><span class='comment'>--</span>-<a name="line-178"></a><span class='comment'>-- 2. Validates that an element name only appears once in a mixed-content declaration.</span>-<a name="line-179"></a><span class='comment'>--</span>-<a name="line-180"></a><span class='comment'>-- Validity constraint: No Duplicate Types (3.2 \/ p.21 in Spec) </span>-<a name="line-181"></a><span class='comment'>--</span>-<a name="line-182"></a><span class='comment'>--</span>-<a name="line-183"></a><span class='comment'>-- 3. Issues a warning if an element mentioned in a content model is not declared in the</span>-<a name="line-184"></a><span class='comment'>-- DTD.</span>-<a name="line-185"></a><span class='comment'>--</span>-<a name="line-186"></a><span class='comment'>-- Optional warning: (3.2 \/ p.21 in Spec)</span>-<a name="line-187"></a><span class='comment'>--</span>-<a name="line-188"></a><span class='comment'>-- * 1.parameter dtdPart : the children of the @DOCTYPE@ node</span>-<a name="line-189"></a><span class='comment'>--</span>-<a name="line-190"></a><span class='comment'>-- - 2.parameter elemNames : list of all element names declared in the DTD</span>-<a name="line-191"></a><span class='comment'>--</span>-<a name="line-192"></a><span class='comment'>-- - returns : a list of errors</span>-<a name="line-193"></a>-<a name="line-194"></a>-<a name="line-195"></a><a name="validateElements"></a><span class='definition'>validateElements</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>LA</span> <span class='conid'>XmlTrees</span> <span class='conid'>XmlTree</span>-<a name="line-196"></a><span class='definition'>validateElements</span> <span class='varid'>elemNames</span> <span class='comment'>-- dtdPart</span>-<a name="line-197"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>fromSLA</span> <span class='conid'>[]</span> <span class='layout'>(</span> <span class='varid'>unlistA</span>-<a name="line-198"></a> <span class='varop'>>>></span>-<a name="line-199"></a> <span class='varid'>isDTDElement</span>-<a name="line-200"></a> <span class='varop'>>>></span>-<a name="line-201"></a> <span class='layout'>(</span><span class='varid'>checkForUniqueElement</span> <span class='varop'>$<</span> <span class='varid'>getDTDAttrl</span><span class='layout'>)</span>-<a name="line-202"></a> <span class='layout'>)</span>-<a name="line-203"></a> <span class='layout'>)</span>-<a name="line-204"></a> <span class='varop'><+></span>-<a name="line-205"></a> <span class='layout'>(</span> <span class='varid'>unlistA</span>-<a name="line-206"></a> <span class='varop'>>>></span>-<a name="line-207"></a> <span class='varid'>isMixedContentElement</span>-<a name="line-208"></a> <span class='varop'>>>></span>-<a name="line-209"></a> <span class='layout'>(</span><span class='varid'>checkMixedContent</span> <span class='varop'>$<</span> <span class='varid'>getDTDAttrl</span><span class='layout'>)</span>-<a name="line-210"></a> <span class='layout'>)</span>-<a name="line-211"></a> <span class='varop'><+></span>-<a name="line-212"></a> <span class='layout'>(</span> <span class='varid'>unlistA</span>-<a name="line-213"></a> <span class='varop'>>>></span>-<a name="line-214"></a> <span class='varid'>isDTDElement</span>-<a name="line-215"></a> <span class='varop'>>>></span>-<a name="line-216"></a> <span class='layout'>(</span><span class='varid'>checkContentModel</span> <span class='varid'>elemNames</span> <span class='varop'>$<</span> <span class='varid'>getDTDAttrl</span><span class='layout'>)</span>-<a name="line-217"></a> <span class='layout'>)</span>-<a name="line-218"></a> <span class='keyword'>where</span>-<a name="line-219"></a>-<a name="line-220"></a> <span class='comment'>-- Validates that an element is not declared multiple times</span>-<a name="line-221"></a>-<a name="line-222"></a> <span class='varid'>checkForUniqueElement</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>SLA</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-223"></a> <span class='varid'>checkForUniqueElement</span> <span class='varid'>al</span>-<a name="line-224"></a> <span class='keyglyph'>=</span> <span class='varid'>checkName</span> <span class='varid'>name</span> <span class='varop'>$</span>-<a name="line-225"></a> <span class='varid'>err</span> <span class='layout'>(</span> <span class='str'>"Element type "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>name</span> <span class='varop'>++</span>-<a name="line-226"></a> <span class='str'>" must not be declared more than once."</span> <span class='layout'>)</span>-<a name="line-227"></a> <span class='keyword'>where</span>-<a name="line-228"></a> <span class='varid'>name</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_name</span> <span class='varid'>al</span>-<a name="line-229"></a>-<a name="line-230"></a> <span class='comment'>-- Validates that an element name only appears once in a mixed-content declaration</span>-<a name="line-231"></a>-<a name="line-232"></a> <span class='varid'>checkMixedContent</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>XmlArrow</span>-<a name="line-233"></a> <span class='varid'>checkMixedContent</span> <span class='varid'>al</span>-<a name="line-234"></a> <span class='keyglyph'>=</span> <span class='varid'>fromSLA</span> <span class='conid'>[]</span> <span class='layout'>(</span> <span class='varid'>getChildren</span>-<a name="line-235"></a> <span class='varop'>>>></span>-<a name="line-236"></a> <span class='varid'>getChildren</span>-<a name="line-237"></a> <span class='varop'>>>></span>-<a name="line-238"></a> <span class='varid'>isDTDName</span>-<a name="line-239"></a> <span class='varop'>>>></span>-<a name="line-240"></a> <span class='layout'>(</span><span class='varid'>check</span> <span class='varop'>$<</span> <span class='varid'>getDTDAttrl</span><span class='layout'>)</span>-<a name="line-241"></a> <span class='layout'>)</span>-<a name="line-242"></a> <span class='keyword'>where</span>-<a name="line-243"></a> <span class='varid'>elemName</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_name</span> <span class='varid'>al</span>-<a name="line-244"></a> <span class='varid'>check</span> <span class='varid'>al'</span>-<a name="line-245"></a> <span class='keyglyph'>=</span> <span class='varid'>checkName</span> <span class='varid'>name</span> <span class='varop'>$</span>-<a name="line-246"></a> <span class='varid'>err</span> <span class='layout'>(</span> <span class='str'>"The element type "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>name</span> <span class='varop'>++</span>-<a name="line-247"></a> <span class='str'>" was already specified in the mixed-content model of the element declaration "</span> <span class='varop'>++</span>-<a name="line-248"></a> <span class='varid'>show</span> <span class='varid'>elemName</span> <span class='varop'>++</span> <span class='str'>"."</span> <span class='layout'>)</span>-<a name="line-249"></a> <span class='keyword'>where</span>-<a name="line-250"></a> <span class='varid'>name</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_name</span> <span class='varid'>al'</span>-<a name="line-251"></a>-<a name="line-252"></a> <span class='comment'>-- Issues a warning if an element mentioned in a content model is not</span>-<a name="line-253"></a> <span class='comment'>-- declared in the DTD.</span>-<a name="line-254"></a> <span class='varid'>checkContentModel</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>XmlArrow</span>-<a name="line-255"></a> <span class='varid'>checkContentModel</span> <span class='varid'>names</span> <span class='varid'>al</span>-<a name="line-256"></a> <span class='keyglyph'>|</span> <span class='varid'>cm</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='varid'>v_children</span><span class='layout'>,</span> <span class='varid'>v_mixed</span><span class='keyglyph'>]</span>-<a name="line-257"></a> <span class='keyglyph'>=</span> <span class='varid'>getChildren</span> <span class='varop'>>>></span> <span class='varid'>checkContent</span>-<a name="line-258"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-259"></a> <span class='keyglyph'>=</span> <span class='varid'>none</span>-<a name="line-260"></a> <span class='keyword'>where</span>-<a name="line-261"></a> <span class='varid'>elemName</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_name</span> <span class='varid'>al</span>-<a name="line-262"></a> <span class='varid'>cm</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_type</span> <span class='varid'>al</span>-<a name="line-263"></a>-<a name="line-264"></a> <span class='varid'>checkContent</span> <span class='keyglyph'>::</span> <span class='conid'>XmlArrow</span>-<a name="line-265"></a> <span class='varid'>checkContent</span>-<a name="line-266"></a> <span class='keyglyph'>=</span> <span class='varid'>choiceA</span>-<a name="line-267"></a> <span class='keyglyph'>[</span> <span class='varid'>isDTDName</span> <span class='conop'>:-></span> <span class='layout'>(</span> <span class='varid'>checkName'</span> <span class='varop'>$<</span> <span class='varid'>getDTDAttrl</span> <span class='layout'>)</span>-<a name="line-268"></a> <span class='layout'>,</span> <span class='varid'>isDTDContent</span> <span class='conop'>:-></span> <span class='layout'>(</span> <span class='varid'>getChildren</span> <span class='varop'>>>></span> <span class='varid'>checkContent</span> <span class='layout'>)</span>-<a name="line-269"></a> <span class='layout'>,</span> <span class='varid'>this</span> <span class='conop'>:-></span> <span class='varid'>none</span>-<a name="line-270"></a> <span class='keyglyph'>]</span>-<a name="line-271"></a> <span class='keyword'>where</span>-<a name="line-272"></a> <span class='varid'>checkName'</span> <span class='varid'>al'</span>-<a name="line-273"></a> <span class='keyglyph'>|</span> <span class='varid'>childElemName</span> <span class='varop'>`elem`</span> <span class='varid'>names</span>-<a name="line-274"></a> <span class='keyglyph'>=</span> <span class='varid'>none</span>-<a name="line-275"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-276"></a> <span class='keyglyph'>=</span> <span class='varid'>warn</span> <span class='layout'>(</span> <span class='str'>"The element type "</span><span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>childElemName</span> <span class='varop'>++</span>-<a name="line-277"></a> <span class='str'>", used in content model of element "</span><span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>elemName</span> <span class='varop'>++</span>-<a name="line-278"></a> <span class='str'>", is not declared."</span>-<a name="line-279"></a> <span class='layout'>)</span>-<a name="line-280"></a> <span class='keyword'>where</span>-<a name="line-281"></a> <span class='varid'>childElemName</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_name</span> <span class='varid'>al'</span>-<a name="line-282"></a>-<a name="line-283"></a><span class='comment'>-- |</span>-<a name="line-284"></a><span class='comment'>-- Validation of Attribute declarations.</span>-<a name="line-285"></a><span class='comment'>--</span>-<a name="line-286"></a><span class='comment'>-- (1) Issues a warning if an attribute is declared for an element type not itself</span>-<a name="line-287"></a><span class='comment'>-- decared.</span>-<a name="line-288"></a><span class='comment'>--</span>-<a name="line-289"></a><span class='comment'>-- Optinal warning: (3.3 \/ p. 24 in Spec)</span>-<a name="line-290"></a><span class='comment'>--</span>-<a name="line-291"></a><span class='comment'>--</span>-<a name="line-292"></a><span class='comment'>-- 2. Issues a warning if more than one definition is provided for the same</span>-<a name="line-293"></a><span class='comment'>-- attribute of a given element type. Fist declaration is binding, later</span>-<a name="line-294"></a><span class='comment'>-- definitions are ignored.</span>-<a name="line-295"></a><span class='comment'>--</span>-<a name="line-296"></a><span class='comment'>-- Optional warning: (3.3 \/ p.24 in Spec)</span>-<a name="line-297"></a><span class='comment'>--</span>-<a name="line-298"></a><span class='comment'>--</span>-<a name="line-299"></a><span class='comment'>-- 3. Issues a warning if the same Nmtoken occures more than once in enumerated</span>-<a name="line-300"></a><span class='comment'>-- attribute types of a single element type.</span>-<a name="line-301"></a><span class='comment'>--</span>-<a name="line-302"></a><span class='comment'>-- Optional warning: (3.3.1 \/ p.27 in Spec) </span>-<a name="line-303"></a><span class='comment'>--</span>-<a name="line-304"></a><span class='comment'>--</span>-<a name="line-305"></a><span class='comment'>-- 4. Validates that an element type has not more than one ID attribute defined.</span>-<a name="line-306"></a><span class='comment'>--</span>-<a name="line-307"></a><span class='comment'>-- Validity constraint: One ID per Element Type (3.3.1 \/ p.26 in Spec) </span>-<a name="line-308"></a><span class='comment'>--</span>-<a name="line-309"></a><span class='comment'>--</span>-<a name="line-310"></a><span class='comment'>-- 5. Validates that an element type has not more than one NOTATION attribute defined.</span>-<a name="line-311"></a><span class='comment'>--</span>-<a name="line-312"></a><span class='comment'>-- Validity constraint: One Notation per Element Type (3.3.1 \/ p.27 in Spec) </span>-<a name="line-313"></a><span class='comment'>--</span>-<a name="line-314"></a><span class='comment'>--</span>-<a name="line-315"></a><span class='comment'>-- 6. Validates that an ID attributes has the type #IMPLIED or #REQUIRED.</span>-<a name="line-316"></a><span class='comment'>--</span>-<a name="line-317"></a><span class='comment'>-- Validity constraint: ID Attribute Default (3.3.1 \/ p.26 in Spec) </span>-<a name="line-318"></a><span class='comment'>--</span>-<a name="line-319"></a><span class='comment'>--</span>-<a name="line-320"></a><span class='comment'>-- 7. Validates that all referenced notations are declared.</span>-<a name="line-321"></a><span class='comment'>--</span>-<a name="line-322"></a><span class='comment'>-- Validity constraint: Notation Attributes (3.3.1 \/ p.27 in Spec) </span>-<a name="line-323"></a><span class='comment'>--</span>-<a name="line-324"></a><span class='comment'>--</span>-<a name="line-325"></a><span class='comment'>-- 8. Validates that notations are not declared for EMPTY elements.</span>-<a name="line-326"></a><span class='comment'>--</span>-<a name="line-327"></a><span class='comment'>-- Validity constraint: No Notation on Empty Element (3.3.1 \/p.27 in Spec) </span>-<a name="line-328"></a><span class='comment'>--</span>-<a name="line-329"></a><span class='comment'>--</span>-<a name="line-330"></a><span class='comment'>-- 9. Validates that the default value matches the lexical constraints of it's type.</span>-<a name="line-331"></a><span class='comment'>--</span>-<a name="line-332"></a><span class='comment'>-- Validity constraint: Attribute default legal (3.3.2 \/ p.28 in Spec)</span>-<a name="line-333"></a><span class='comment'>--</span>-<a name="line-334"></a><span class='comment'>--</span>-<a name="line-335"></a><span class='comment'>-- * 1.parameter dtdPart : the children of the @DOCTYPE@ node</span>-<a name="line-336"></a><span class='comment'>--</span>-<a name="line-337"></a><span class='comment'>-- - 2.parameter elemNames : list of all element names declared in the DTD</span>-<a name="line-338"></a><span class='comment'>--</span>-<a name="line-339"></a><span class='comment'>-- - 3.parameter notationNames : list of all notation names declared in the DTD</span>-<a name="line-340"></a><span class='comment'>--</span>-<a name="line-341"></a><span class='comment'>-- - returns : a list of errors</span>-<a name="line-342"></a>-<a name="line-343"></a><a name="validateAttributes"></a><span class='definition'>validateAttributes</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>LA</span> <span class='conid'>XmlTrees</span> <span class='conid'>XmlTree</span>-<a name="line-344"></a><span class='definition'>validateAttributes</span> <span class='varid'>elemNames</span> <span class='varid'>notationNames</span>-<a name="line-345"></a> <span class='keyglyph'>=</span> <span class='comment'>-- 1. Find attributes for which no elements are declared</span>-<a name="line-346"></a> <span class='layout'>(</span> <span class='varid'>runCheck</span> <span class='varid'>this</span> <span class='layout'>(</span><span class='varid'>checkDeclaredElements</span> <span class='varid'>elemNames</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-347"></a> <span class='varop'><+></span>-<a name="line-348"></a> <span class='comment'>-- 2. Find attributes which are declared more than once</span>-<a name="line-349"></a> <span class='layout'>(</span> <span class='varid'>runNameCheck</span> <span class='varid'>this</span> <span class='varid'>checkForUniqueAttributeDeclaration</span> <span class='layout'>)</span>-<a name="line-350"></a> <span class='varop'><+></span>-<a name="line-351"></a> <span class='comment'>-- 3. Find enumerated attribute types which nmtokens are declared more than once</span>-<a name="line-352"></a> <span class='layout'>(</span> <span class='varid'>runCheck</span> <span class='layout'>(</span><span class='varid'>isEnumAttrType</span> <span class='varop'>`orElse`</span> <span class='varid'>isNotationAttrType</span><span class='layout'>)</span> <span class='varid'>checkEnumeratedTypes</span> <span class='layout'>)</span>-<a name="line-353"></a> <span class='varop'><+></span>-<a name="line-354"></a> <span class='comment'>-- 4. Validate that there exists only one ID attribute for an element</span>-<a name="line-355"></a> <span class='layout'>(</span> <span class='varid'>runNameCheck</span> <span class='varid'>isIdAttrType</span> <span class='varid'>checkForUniqueId</span> <span class='layout'>)</span>-<a name="line-356"></a> <span class='varop'><+></span>-<a name="line-357"></a> <span class='comment'>-- 5. Validate that there exists only one NOTATION attribute for an element</span>-<a name="line-358"></a> <span class='layout'>(</span> <span class='varid'>runNameCheck</span> <span class='varid'>isNotationAttrType</span> <span class='varid'>checkForUniqueNotation</span> <span class='layout'>)</span>-<a name="line-359"></a> <span class='varop'><+></span>-<a name="line-360"></a> <span class='comment'>-- 6. Validate that ID attributes have the type #IMPLIED or #REQUIRED</span>-<a name="line-361"></a> <span class='layout'>(</span> <span class='varid'>runCheck</span> <span class='varid'>isIdAttrType</span> <span class='varid'>checkIdKindConstraint</span> <span class='layout'>)</span>-<a name="line-362"></a> <span class='varop'><+></span>-<a name="line-363"></a> <span class='comment'>-- 7. Validate that all referenced notations are declared</span>-<a name="line-364"></a> <span class='layout'>(</span> <span class='varid'>runCheck</span> <span class='varid'>isNotationAttrType</span> <span class='layout'>(</span><span class='varid'>checkNotationDeclaration</span> <span class='varid'>notationNames</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-365"></a> <span class='varop'><+></span>-<a name="line-366"></a> <span class='comment'>-- 8. Validate that notations are not declared for EMPTY elements</span>-<a name="line-367"></a> <span class='layout'>(</span> <span class='varid'>checkNoNotationForEmptyElements</span> <span class='varop'>$<</span> <span class='varid'>listA</span> <span class='layout'>(</span> <span class='varid'>unlistA</span>-<a name="line-368"></a> <span class='varop'>>>></span>-<a name="line-369"></a> <span class='varid'>isEmptyElement</span>-<a name="line-370"></a> <span class='varop'>>>></span>-<a name="line-371"></a> <span class='varid'>getDTDAttrValue</span> <span class='varid'>a_name</span>-<a name="line-372"></a> <span class='layout'>)</span>-<a name="line-373"></a> <span class='layout'>)</span>-<a name="line-374"></a> <span class='varop'><+></span>-<a name="line-375"></a> <span class='comment'>-- 9. Validate that the default value matches the lexical constraints of it's type</span>-<a name="line-376"></a> <span class='layout'>(</span> <span class='varid'>checkDefaultValueTypes</span> <span class='varop'>$<</span> <span class='varid'>this</span> <span class='layout'>)</span>-<a name="line-377"></a>-<a name="line-378"></a> <span class='keyword'>where</span>-<a name="line-379"></a> <span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-380"></a> <span class='comment'>-- control structures</span>-<a name="line-381"></a>-<a name="line-382"></a> <span class='varid'>runCheck</span> <span class='varid'>select</span> <span class='varid'>check</span>-<a name="line-383"></a> <span class='keyglyph'>=</span> <span class='varid'>unlistA</span> <span class='varop'>>>></span> <span class='varid'>isDTDAttlist</span>-<a name="line-384"></a> <span class='varop'>>>></span>-<a name="line-385"></a> <span class='varid'>select</span>-<a name="line-386"></a> <span class='varop'>>>></span>-<a name="line-387"></a> <span class='layout'>(</span><span class='varid'>check</span> <span class='varop'>$<</span> <span class='varid'>getDTDAttrl</span><span class='layout'>)</span>-<a name="line-388"></a> -<a name="line-389"></a> <span class='varid'>runNameCheck</span> <span class='varid'>select</span> <span class='varid'>check</span>-<a name="line-390"></a> <span class='keyglyph'>=</span> <span class='varid'>fromSLA</span> <span class='conid'>[]</span> <span class='varop'>$</span> <span class='varid'>runCheck</span> <span class='varid'>select</span> <span class='varid'>check</span>-<a name="line-391"></a>-<a name="line-392"></a> <span class='comment'>--------------------------------------------------------------------------</span>-<a name="line-393"></a>-<a name="line-394"></a> <span class='comment'>-- 1. Find attributes for which no elements are declared</span>-<a name="line-395"></a>-<a name="line-396"></a> <span class='varid'>checkDeclaredElements</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>XmlArrow</span>-<a name="line-397"></a> <span class='varid'>checkDeclaredElements</span> <span class='varid'>elemNames'</span> <span class='varid'>al</span>-<a name="line-398"></a> <span class='keyglyph'>|</span> <span class='varid'>en</span> <span class='varop'>`elem`</span> <span class='varid'>elemNames'</span>-<a name="line-399"></a> <span class='keyglyph'>=</span> <span class='varid'>none</span>-<a name="line-400"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-401"></a> <span class='keyglyph'>=</span> <span class='varid'>warn</span> <span class='layout'>(</span> <span class='str'>"The element type \""</span><span class='varop'>++</span> <span class='varid'>en</span> <span class='varop'>++</span> <span class='str'>"\" used in dclaration "</span><span class='varop'>++</span>-<a name="line-402"></a> <span class='str'>"of attribute \""</span><span class='varop'>++</span> <span class='varid'>an</span> <span class='varop'>++</span><span class='str'>"\" is not declared."</span>-<a name="line-403"></a> <span class='layout'>)</span>-<a name="line-404"></a> <span class='keyword'>where</span>-<a name="line-405"></a> <span class='varid'>en</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_name</span> <span class='varid'>al</span>-<a name="line-406"></a> <span class='varid'>an</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_value</span> <span class='varid'>al</span>-<a name="line-407"></a>-<a name="line-408"></a> <span class='comment'>--------------------------------------------------------------------------</span>-<a name="line-409"></a>-<a name="line-410"></a> <span class='comment'>-- 2. Find attributes which are declared more than once</span>-<a name="line-411"></a>-<a name="line-412"></a> <span class='varid'>checkForUniqueAttributeDeclaration</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>SLA</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-413"></a> <span class='varid'>checkForUniqueAttributeDeclaration</span> <span class='varid'>al</span>-<a name="line-414"></a> <span class='keyglyph'>=</span> <span class='varid'>checkName</span> <span class='varid'>name</span> <span class='varop'>$</span>-<a name="line-415"></a> <span class='varid'>warn</span> <span class='layout'>(</span> <span class='str'>"Attribute \""</span><span class='varop'>++</span> <span class='varid'>aname</span> <span class='varop'>++</span><span class='str'>"\" for element type \""</span><span class='varop'>++</span>-<a name="line-416"></a> <span class='varid'>ename</span> <span class='varop'>++</span><span class='str'>"\" is already declared. First "</span><span class='varop'>++</span>-<a name="line-417"></a> <span class='str'>"declaration will be used."</span> <span class='layout'>)</span>-<a name="line-418"></a> <span class='keyword'>where</span>-<a name="line-419"></a> <span class='varid'>ename</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_name</span> <span class='varid'>al</span>-<a name="line-420"></a> <span class='varid'>aname</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_value</span> <span class='varid'>al</span>-<a name="line-421"></a> <span class='varid'>name</span> <span class='keyglyph'>=</span> <span class='varid'>ename</span> <span class='varop'>++</span> <span class='str'>"|"</span> <span class='varop'>++</span> <span class='varid'>aname</span>-<a name="line-422"></a>-<a name="line-423"></a> <span class='comment'>--------------------------------------------------------------------------</span>-<a name="line-424"></a>-<a name="line-425"></a> <span class='comment'>-- 3. Find enumerated attribute types which nmtokens are declared more than once</span>-<a name="line-426"></a>-<a name="line-427"></a> <span class='varid'>checkEnumeratedTypes</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>XmlArrow</span>-<a name="line-428"></a> <span class='varid'>checkEnumeratedTypes</span> <span class='varid'>al</span>-<a name="line-429"></a> <span class='keyglyph'>=</span> <span class='varid'>fromSLA</span> <span class='conid'>[]</span> <span class='layout'>(</span> <span class='varid'>getChildren</span>-<a name="line-430"></a> <span class='varop'>>>></span>-<a name="line-431"></a> <span class='varid'>isDTDName</span>-<a name="line-432"></a> <span class='varop'>>>></span>-<a name="line-433"></a> <span class='layout'>(</span><span class='varid'>checkForUniqueType</span> <span class='varop'>$<</span> <span class='varid'>getDTDAttrl</span><span class='layout'>)</span>-<a name="line-434"></a> <span class='layout'>)</span>-<a name="line-435"></a> <span class='keyword'>where</span>-<a name="line-436"></a> <span class='varid'>checkForUniqueType</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>SLA</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-437"></a> <span class='varid'>checkForUniqueType</span> <span class='varid'>al'</span>-<a name="line-438"></a> <span class='keyglyph'>=</span> <span class='varid'>checkName</span> <span class='varid'>nmtoken</span> <span class='varop'>$</span>-<a name="line-439"></a> <span class='varid'>warn</span> <span class='layout'>(</span> <span class='str'>"Nmtoken \""</span><span class='varop'>++</span> <span class='varid'>nmtoken</span> <span class='varop'>++</span><span class='str'>"\" should not "</span><span class='varop'>++</span>-<a name="line-440"></a> <span class='str'>"occur more than once in attribute \""</span><span class='varop'>++</span> <span class='varid'>dtd_value</span> <span class='varid'>al</span> <span class='varop'>++</span>-<a name="line-441"></a> <span class='str'>"\" for element \""</span><span class='varop'>++</span> <span class='varid'>dtd_name</span> <span class='varid'>al</span> <span class='varop'>++</span> <span class='str'>"\"."</span> <span class='layout'>)</span>-<a name="line-442"></a> <span class='keyword'>where</span>-<a name="line-443"></a> <span class='varid'>nmtoken</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_name</span> <span class='varid'>al'</span>-<a name="line-444"></a>-<a name="line-445"></a> <span class='comment'>--------------------------------------------------------------------------</span>-<a name="line-446"></a>-<a name="line-447"></a> <span class='comment'>-- 4. Validate that there exists only one ID attribute for an element</span>-<a name="line-448"></a>-<a name="line-449"></a> <span class='varid'>checkForUniqueId</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>SLA</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-450"></a> <span class='varid'>checkForUniqueId</span> <span class='varid'>al</span>-<a name="line-451"></a> <span class='keyglyph'>=</span> <span class='varid'>checkName</span> <span class='varid'>ename</span> <span class='varop'>$</span>-<a name="line-452"></a> <span class='varid'>err</span> <span class='layout'>(</span> <span class='str'>"Element \""</span><span class='varop'>++</span> <span class='varid'>ename</span> <span class='varop'>++</span> <span class='str'>"\" already has attribute of type "</span><span class='varop'>++</span>-<a name="line-453"></a> <span class='str'>"ID, another attribute \""</span><span class='varop'>++</span> <span class='varid'>dtd_value</span> <span class='varid'>al</span> <span class='varop'>++</span> <span class='str'>"\" of type ID is "</span><span class='varop'>++</span>-<a name="line-454"></a> <span class='str'>"not permitted."</span> <span class='layout'>)</span>-<a name="line-455"></a> <span class='keyword'>where</span>-<a name="line-456"></a> <span class='varid'>ename</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_name</span> <span class='varid'>al</span>-<a name="line-457"></a>-<a name="line-458"></a> <span class='comment'>--------------------------------------------------------------------------</span>-<a name="line-459"></a>-<a name="line-460"></a> <span class='comment'>-- 5. Validate that there exists only one NOTATION attribute for an element</span>-<a name="line-461"></a>-<a name="line-462"></a> <span class='varid'>checkForUniqueNotation</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>SLA</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-463"></a> <span class='varid'>checkForUniqueNotation</span> <span class='varid'>al</span>-<a name="line-464"></a> <span class='keyglyph'>=</span> <span class='varid'>checkName</span> <span class='varid'>ename</span> <span class='varop'>$</span>-<a name="line-465"></a> <span class='varid'>err</span> <span class='layout'>(</span> <span class='str'>"Element \""</span><span class='varop'>++</span> <span class='varid'>ename</span> <span class='varop'>++</span> <span class='str'>"\" already has attribute of type "</span><span class='varop'>++</span>-<a name="line-466"></a> <span class='str'>"NOTATION, another attribute \""</span><span class='varop'>++</span> <span class='varid'>dtd_value</span> <span class='varid'>al</span> <span class='varop'>++</span> <span class='str'>"\" of type NOTATION "</span><span class='varop'>++</span>-<a name="line-467"></a> <span class='str'>"is not permitted."</span> <span class='layout'>)</span>-<a name="line-468"></a> <span class='keyword'>where</span>-<a name="line-469"></a> <span class='varid'>ename</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_name</span> <span class='varid'>al</span>-<a name="line-470"></a>-<a name="line-471"></a> <span class='comment'>--------------------------------------------------------------------------</span>-<a name="line-472"></a>-<a name="line-473"></a> <span class='comment'>-- 6. Validate that ID attributes have the type #IMPLIED or #REQUIRED</span>-<a name="line-474"></a>-<a name="line-475"></a> <span class='varid'>checkIdKindConstraint</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>XmlArrow</span>-<a name="line-476"></a> <span class='varid'>checkIdKindConstraint</span> <span class='varid'>al</span>-<a name="line-477"></a> <span class='keyglyph'>|</span> <span class='varid'>attKind</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='varid'>k_implied</span><span class='layout'>,</span> <span class='varid'>k_required</span><span class='keyglyph'>]</span>-<a name="line-478"></a> <span class='keyglyph'>=</span> <span class='varid'>none</span>-<a name="line-479"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-480"></a> <span class='keyglyph'>=</span> <span class='varid'>err</span> <span class='layout'>(</span> <span class='str'>"ID attribute \""</span><span class='varop'>++</span> <span class='varid'>dtd_value</span> <span class='varid'>al</span> <span class='varop'>++</span><span class='str'>"\" must have a declared default "</span><span class='varop'>++</span>-<a name="line-481"></a> <span class='str'>"of \"#IMPLIED\" or \"REQUIRED\""</span><span class='layout'>)</span>-<a name="line-482"></a> <span class='keyword'>where</span>-<a name="line-483"></a> <span class='varid'>attKind</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_kind</span> <span class='varid'>al</span>-<a name="line-484"></a>-<a name="line-485"></a>-<a name="line-486"></a> <span class='comment'>--------------------------------------------------------------------------</span>-<a name="line-487"></a>-<a name="line-488"></a> <span class='comment'>-- 7. Validate that all referenced notations are declared</span>-<a name="line-489"></a>-<a name="line-490"></a> <span class='varid'>checkNotationDeclaration</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>XmlArrow</span>-<a name="line-491"></a> <span class='varid'>checkNotationDeclaration</span> <span class='varid'>notations</span> <span class='varid'>al</span>-<a name="line-492"></a> <span class='keyglyph'>=</span> <span class='varid'>getChildren</span>-<a name="line-493"></a> <span class='varop'>>>></span>-<a name="line-494"></a> <span class='varid'>isDTDName</span>-<a name="line-495"></a> <span class='varop'>>>></span>-<a name="line-496"></a> <span class='layout'>(</span><span class='varid'>checkNotations</span> <span class='varop'>$<</span> <span class='varid'>getDTDAttrl</span><span class='layout'>)</span>-<a name="line-497"></a> <span class='keyword'>where</span>-<a name="line-498"></a> <span class='varid'>checkNotations</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>XmlArrow</span>-<a name="line-499"></a> <span class='varid'>checkNotations</span> <span class='varid'>al'</span>-<a name="line-500"></a> <span class='keyglyph'>|</span> <span class='varid'>notation</span> <span class='varop'>`elem`</span> <span class='varid'>notations</span>-<a name="line-501"></a> <span class='keyglyph'>=</span> <span class='varid'>none</span>-<a name="line-502"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-503"></a> <span class='keyglyph'>=</span> <span class='varid'>err</span> <span class='layout'>(</span> <span class='str'>"The notation \""</span><span class='varop'>++</span> <span class='varid'>notation</span> <span class='varop'>++</span><span class='str'>"\" must be declared when "</span><span class='varop'>++</span>-<a name="line-504"></a> <span class='str'>"referenced in the notation type list for attribute \""</span><span class='varop'>++</span> <span class='varid'>dtd_value</span> <span class='varid'>al</span> <span class='varop'>++</span>-<a name="line-505"></a> <span class='str'>"\" of element \""</span><span class='varop'>++</span> <span class='varid'>dtd_name</span> <span class='varid'>al</span> <span class='varop'>++</span><span class='str'>"\"."</span>-<a name="line-506"></a> <span class='layout'>)</span>-<a name="line-507"></a> <span class='keyword'>where</span>-<a name="line-508"></a> <span class='varid'>notation</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_name</span> <span class='varid'>al'</span>-<a name="line-509"></a>-<a name="line-510"></a> <span class='comment'>--------------------------------------------------------------------------</span>-<a name="line-511"></a>-<a name="line-512"></a> <span class='comment'>-- 8. Validate that notations are not declared for EMPTY elements</span>-<a name="line-513"></a>-<a name="line-514"></a> <span class='varid'>checkNoNotationForEmptyElements</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>LA</span> <span class='conid'>XmlTrees</span> <span class='conid'>XmlTree</span>-<a name="line-515"></a> <span class='varid'>checkNoNotationForEmptyElements</span> <span class='varid'>emptyElems</span>-<a name="line-516"></a> <span class='keyglyph'>=</span> <span class='varid'>unlistA</span>-<a name="line-517"></a> <span class='varop'>>>></span>-<a name="line-518"></a> <span class='varid'>isDTDAttlist</span>-<a name="line-519"></a> <span class='varop'>>>></span>-<a name="line-520"></a> <span class='varid'>isNotationAttrType</span>-<a name="line-521"></a> <span class='varop'>>>></span>-<a name="line-522"></a> <span class='layout'>(</span><span class='varid'>checkNoNotationForEmptyElement</span> <span class='varop'>$<</span> <span class='varid'>getDTDAttrl</span><span class='layout'>)</span>-<a name="line-523"></a> <span class='keyword'>where</span>-<a name="line-524"></a> <span class='varid'>checkNoNotationForEmptyElement</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>XmlArrow</span>-<a name="line-525"></a> <span class='varid'>checkNoNotationForEmptyElement</span> <span class='varid'>al</span>-<a name="line-526"></a> <span class='keyglyph'>|</span> <span class='varid'>ename</span> <span class='varop'>`elem`</span> <span class='varid'>emptyElems</span>-<a name="line-527"></a> <span class='keyglyph'>=</span> <span class='varid'>err</span> <span class='layout'>(</span> <span class='str'>"Attribute \""</span><span class='varop'>++</span> <span class='varid'>dtd_value</span> <span class='varid'>al</span> <span class='varop'>++</span><span class='str'>"\" of type NOTATION must not be "</span><span class='varop'>++</span>-<a name="line-528"></a> <span class='str'>"declared on the element \""</span><span class='varop'>++</span> <span class='varid'>ename</span> <span class='varop'>++</span><span class='str'>"\" declared EMPTY."</span>-<a name="line-529"></a> <span class='layout'>)</span>-<a name="line-530"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-531"></a> <span class='keyglyph'>=</span> <span class='varid'>none</span>-<a name="line-532"></a> <span class='keyword'>where</span>-<a name="line-533"></a> <span class='varid'>ename</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_name</span> <span class='varid'>al</span>-<a name="line-534"></a>-<a name="line-535"></a> <span class='comment'>--------------------------------------------------------------------------</span>-<a name="line-536"></a>-<a name="line-537"></a> <span class='comment'>-- 9. Validate that default values meet the lexical constraints of the attribute types</span>-<a name="line-538"></a>-<a name="line-539"></a> <span class='varid'>checkDefaultValueTypes</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>LA</span> <span class='conid'>XmlTrees</span> <span class='conid'>XmlTree</span>-<a name="line-540"></a> <span class='varid'>checkDefaultValueTypes</span> <span class='varid'>dtdPart'</span>-<a name="line-541"></a> <span class='keyglyph'>=</span> <span class='varid'>unlistA</span> <span class='varop'>>>></span> <span class='varid'>isDTDAttlist</span>-<a name="line-542"></a> <span class='varop'>>>></span>-<a name="line-543"></a> <span class='varid'>isDefaultAttrKind</span>-<a name="line-544"></a> <span class='varop'>>>></span>-<a name="line-545"></a> <span class='layout'>(</span><span class='varid'>checkAttributeValue</span> <span class='varid'>dtdPart'</span> <span class='varop'>$<</span> <span class='varid'>this</span><span class='layout'>)</span>-<a name="line-546"></a>-<a name="line-547"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-548"></a>-<a name="line-549"></a><span class='comment'>-- |</span>-<a name="line-550"></a><span class='comment'>-- Removes doublicate declarations from the DTD, which first declaration is</span>-<a name="line-551"></a><span class='comment'>-- binding. This is the case for ATTLIST and ENTITY declarations.</span>-<a name="line-552"></a><span class='comment'>--</span>-<a name="line-553"></a><span class='comment'>-- - returns : A function that replaces the children of DOCTYPE nodes by a list</span>-<a name="line-554"></a><span class='comment'>-- where all multiple declarations are removed.</span>-<a name="line-555"></a>-<a name="line-556"></a><a name="removeDoublicateDefs"></a><span class='definition'>removeDoublicateDefs</span> <span class='keyglyph'>::</span> <span class='conid'>XmlArrow</span>-<a name="line-557"></a><span class='definition'>removeDoublicateDefs</span>-<a name="line-558"></a> <span class='keyglyph'>=</span> <span class='varid'>replaceChildren</span>-<a name="line-559"></a> <span class='layout'>(</span> <span class='varid'>fromSLA</span> <span class='conid'>[]</span> <span class='layout'>(</span> <span class='varid'>getChildren</span>-<a name="line-560"></a> <span class='varop'>>>></span>-<a name="line-561"></a> <span class='varid'>choiceA</span> <span class='keyglyph'>[</span> <span class='varid'>isDTDAttlist</span> <span class='conop'>:-></span> <span class='layout'>(</span><span class='varid'>removeDoubleAttlist</span> <span class='varop'>$<</span> <span class='varid'>getDTDAttrl</span><span class='layout'>)</span>-<a name="line-562"></a> <span class='layout'>,</span> <span class='varid'>isDTDEntity</span> <span class='conop'>:-></span> <span class='layout'>(</span><span class='varid'>removeDoubleEntity</span> <span class='varop'>$<</span> <span class='varid'>getDTDAttrl</span><span class='layout'>)</span>-<a name="line-563"></a> <span class='layout'>,</span> <span class='varid'>this</span> <span class='conop'>:-></span> <span class='varid'>this</span>-<a name="line-564"></a> <span class='keyglyph'>]</span>-<a name="line-565"></a> <span class='layout'>)</span>-<a name="line-566"></a> <span class='layout'>)</span>-<a name="line-567"></a> <span class='varop'>`when`</span>-<a name="line-568"></a> <span class='varid'>isDTDDoctype</span>-<a name="line-569"></a> <span class='keyword'>where</span>-<a name="line-570"></a> <span class='varid'>checkName'</span> <span class='varid'>n'</span>-<a name="line-571"></a> <span class='keyglyph'>=</span> <span class='varid'>ifA</span> <span class='layout'>(</span> <span class='varid'>getState</span>-<a name="line-572"></a> <span class='varop'>>>></span>-<a name="line-573"></a> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>n'</span> <span class='varop'>`elem`</span><span class='layout'>)</span>-<a name="line-574"></a> <span class='layout'>)</span>-<a name="line-575"></a> <span class='varid'>none</span>-<a name="line-576"></a> <span class='layout'>(</span><span class='varid'>this</span> <span class='varop'>>>></span> <span class='varid'>perform</span> <span class='layout'>(</span><span class='varid'>nextState</span> <span class='layout'>(</span><span class='varid'>n'</span><span class='conop'>:</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-577"></a>-<a name="line-578"></a> <span class='varid'>removeDoubleAttlist</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>SLA</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-579"></a> <span class='varid'>removeDoubleAttlist</span> <span class='varid'>al</span>-<a name="line-580"></a> <span class='keyglyph'>=</span> <span class='varid'>checkName'</span> <span class='varid'>elemAttr</span>-<a name="line-581"></a> <span class='keyword'>where</span>-<a name="line-582"></a> <span class='varid'>elemAttr</span> <span class='keyglyph'>=</span> <span class='varid'>elemName</span> <span class='varop'>++</span> <span class='str'>"|"</span> <span class='varop'>++</span> <span class='varid'>attrName</span>-<a name="line-583"></a> <span class='varid'>attrName</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_value</span> <span class='varid'>al</span>-<a name="line-584"></a> <span class='varid'>elemName</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_name</span> <span class='varid'>al</span>-<a name="line-585"></a>-<a name="line-586"></a> <span class='varid'>removeDoubleEntity</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>SLA</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-587"></a> <span class='varid'>removeDoubleEntity</span> <span class='varid'>al</span>-<a name="line-588"></a> <span class='keyglyph'>=</span> <span class='varid'>checkName'</span> <span class='layout'>(</span><span class='varid'>dtd_name</span> <span class='varid'>al</span><span class='layout'>)</span>-<a name="line-589"></a>-<a name="line-590"></a><span class='comment'>-- ------------------------------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-DTDValidation-DocTransformation.html
@@ -1,220 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Text.XML.HXT.DTDValidation.DocTransformation-<a name="line-5"></a> Copyright : Copyright (C) 2008 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe@fh-wedel.de)-<a name="line-9"></a> Stability : experimental-<a name="line-10"></a> Portability: portable-<a name="line-11"></a>-<a name="line-12"></a> This module provides functions for transforming XML documents represented as-<a name="line-13"></a> XmlTree with respect to its DTD.-<a name="line-14"></a>-<a name="line-15"></a> Transforming an XML document with respect to its DTD means:-<a name="line-16"></a>-<a name="line-17"></a> - add all attributes with default values-<a name="line-18"></a>-<a name="line-19"></a> - normalize all attribute values-<a name="line-20"></a>-<a name="line-21"></a> - sort all attributes in lexical order-<a name="line-22"></a>-<a name="line-23"></a> Note: Transformation should be started after validation.-<a name="line-24"></a>-<a name="line-25"></a> Before the document is validated, a lookup-table is build on the basis of-<a name="line-26"></a> the DTD which maps element names to their transformation functions.-<a name="line-27"></a> After this initialization phase the whole document is traversed in preorder-<a name="line-28"></a> and every element is transformed by the XmlFilter from the lookup-table.-<a name="line-29"></a>-<a name="line-30"></a>-}</span>-<a name="line-31"></a>-<a name="line-32"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-33"></a>-<a name="line-34"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DTDValidation</span><span class='varop'>.</span><span class='conid'>DocTransformation</span>-<a name="line-35"></a> <span class='layout'>(</span> <span class='varid'>transform</span>-<a name="line-36"></a> <span class='layout'>)</span>-<a name="line-37"></a><span class='keyword'>where</span>-<a name="line-38"></a>-<a name="line-39"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DTDValidation</span><span class='varop'>.</span><span class='conid'>TypeDefs</span>-<a name="line-40"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DTDValidation</span><span class='varop'>.</span><span class='conid'>AttributeValueValidation</span>-<a name="line-41"></a>-<a name="line-42"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>-<a name="line-43"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>List</span>-<a name="line-44"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Ord</span>-<a name="line-45"></a>-<a name="line-46"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-47"></a>-<a name="line-48"></a><span class='comment'>-- |</span>-<a name="line-49"></a><span class='comment'>-- Lookup-table which maps element names to their transformation functions. The</span>-<a name="line-50"></a><span class='comment'>-- transformation functions are XmlArrows.</span>-<a name="line-51"></a>-<a name="line-52"></a><a name="TransEnvTable"></a><span class='keyword'>type</span> <span class='conid'>TransEnvTable</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>TransEnv</span><span class='keyglyph'>]</span>-<a name="line-53"></a><a name="TransEnv"></a><span class='keyword'>type</span> <span class='conid'>TransEnv</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>ElemName</span><span class='layout'>,</span> <span class='conid'>TransFct</span><span class='layout'>)</span>-<a name="line-54"></a><a name="ElemName"></a><span class='keyword'>type</span> <span class='conid'>ElemName</span> <span class='keyglyph'>=</span> <span class='conid'>String</span>-<a name="line-55"></a><a name="TransFct"></a><span class='keyword'>type</span> <span class='conid'>TransFct</span> <span class='keyglyph'>=</span> <span class='conid'>XmlArrow</span>-<a name="line-56"></a>-<a name="line-57"></a>-<a name="line-58"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-59"></a>-<a name="line-60"></a><span class='comment'>-- |</span>-<a name="line-61"></a><span class='comment'>-- filter for transforming the document.</span>-<a name="line-62"></a><span class='comment'>--</span>-<a name="line-63"></a><span class='comment'>-- * 1.parameter dtdPart : the DTD subset (Node @DOCTYPE@) of the XmlTree</span>-<a name="line-64"></a><span class='comment'>--</span>-<a name="line-65"></a><span class='comment'>-- - 2.parameter doc : the document subset of the XmlTree</span>-<a name="line-66"></a><span class='comment'>--</span>-<a name="line-67"></a><span class='comment'>-- - returns : a list of errors</span>-<a name="line-68"></a>-<a name="line-69"></a><a name="transform"></a><span class='definition'>transform</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XmlArrow</span>-<a name="line-70"></a><span class='definition'>transform</span> <span class='varid'>dtdPart</span>-<a name="line-71"></a> <span class='keyglyph'>=</span> <span class='varid'>traverseTree</span> <span class='varid'>transTable</span>-<a name="line-72"></a> <span class='keyword'>where</span>-<a name="line-73"></a> <span class='varid'>transTable</span> <span class='keyglyph'>=</span> <span class='varid'>buildAllTransformationFunctions</span> <span class='layout'>(</span><span class='varid'>runLA</span> <span class='varid'>getChildren</span> <span class='varid'>dtdPart</span><span class='layout'>)</span>-<a name="line-74"></a>-<a name="line-75"></a><span class='comment'>-- |</span>-<a name="line-76"></a><span class='comment'>-- Traverse the XmlTree in preorder.</span>-<a name="line-77"></a><span class='comment'>--</span>-<a name="line-78"></a><span class='comment'>-- * 1.parameter transEnv : lookup-table which maps element names to their transformation functions</span>-<a name="line-79"></a><span class='comment'>--</span>-<a name="line-80"></a><span class='comment'>-- - returns : the whole transformed document</span>-<a name="line-81"></a>-<a name="line-82"></a><a name="traverseTree"></a><span class='definition'>traverseTree</span> <span class='keyglyph'>::</span> <span class='conid'>TransEnvTable</span> <span class='keyglyph'>-></span> <span class='conid'>XmlArrow</span>-<a name="line-83"></a><span class='definition'>traverseTree</span> <span class='varid'>transEnv</span>-<a name="line-84"></a> <span class='keyglyph'>=</span> <span class='varid'>processTopDown</span>-<a name="line-85"></a> <span class='layout'>(</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>transFct</span> <span class='varop'>$<</span> <span class='varid'>getName</span><span class='layout'>)</span>-<a name="line-86"></a> <span class='varop'>>>></span>-<a name="line-87"></a> <span class='varid'>processChildren</span> <span class='layout'>(</span><span class='varid'>traverseTree</span> <span class='varid'>transEnv</span><span class='layout'>)</span>-<a name="line-88"></a> <span class='layout'>)</span>-<a name="line-89"></a> <span class='varop'>`when`</span>-<a name="line-90"></a> <span class='varid'>isElem</span>-<a name="line-91"></a> <span class='layout'>)</span>-<a name="line-92"></a> <span class='keyword'>where</span>-<a name="line-93"></a> <span class='varid'>transFct</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>XmlArrow</span>-<a name="line-94"></a> <span class='varid'>transFct</span> <span class='varid'>name</span> <span class='keyglyph'>=</span> <span class='varid'>fromMaybe</span> <span class='varid'>this</span> <span class='varop'>.</span> <span class='varid'>lookup</span> <span class='varid'>name</span> <span class='varop'>$</span> <span class='varid'>transEnv</span>-<a name="line-95"></a>-<a name="line-96"></a><span class='comment'>-- |</span>-<a name="line-97"></a><span class='comment'>-- Build all transformation functions.</span>-<a name="line-98"></a><span class='comment'>--</span>-<a name="line-99"></a><span class='comment'>-- * 1.parameter dtdPart : the DTD subset, root node should be of type @DOCTYPE@</span>-<a name="line-100"></a><span class='comment'>--</span>-<a name="line-101"></a><span class='comment'>-- - returns : lookup-table which maps element names to their transformation functions</span>-<a name="line-102"></a>-<a name="line-103"></a><a name="buildAllTransformationFunctions"></a><span class='definition'>buildAllTransformationFunctions</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>TransEnvTable</span>-<a name="line-104"></a><span class='definition'>buildAllTransformationFunctions</span> <span class='varid'>dtdNodes</span>-<a name="line-105"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>t_root</span><span class='layout'>,</span> <span class='varid'>this</span><span class='layout'>)</span>-<a name="line-106"></a> <span class='conop'>:</span>-<a name="line-107"></a> <span class='varid'>concatMap</span> <span class='layout'>(</span><span class='varid'>buildTransformationFunctions</span> <span class='varid'>dtdNodes</span><span class='layout'>)</span> <span class='varid'>dtdNodes</span>-<a name="line-108"></a>-<a name="line-109"></a><span class='comment'>-- |</span>-<a name="line-110"></a><span class='comment'>-- Build transformation functions for an element.</span>-<a name="line-111"></a><span class='comment'>--</span>-<a name="line-112"></a><span class='comment'>-- * 1.parameter dtdPart : the children of the @DOCTYPE@ node</span>-<a name="line-113"></a><span class='comment'>--</span>-<a name="line-114"></a><span class='comment'>-- * 1.parameter nd : element declaration for which the transformation functions are</span>-<a name="line-115"></a><span class='comment'>-- created</span>-<a name="line-116"></a><span class='comment'>--</span>-<a name="line-117"></a><span class='comment'>-- - returns : entry for the lookup-table</span>-<a name="line-118"></a>-<a name="line-119"></a><a name="buildTransformationFunctions"></a><span class='definition'>buildTransformationFunctions</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>TransEnv</span><span class='keyglyph'>]</span>-<a name="line-120"></a>-<a name="line-121"></a><span class='definition'>buildTransformationFunctions</span> <span class='varid'>dtdPart</span> <span class='varid'>dn</span>-<a name="line-122"></a> <span class='keyglyph'>|</span> <span class='varid'>isDTDElementNode</span> <span class='varid'>dn</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>name</span><span class='layout'>,</span> <span class='varid'>transFct</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-123"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-124"></a> <span class='keyword'>where</span>-<a name="line-125"></a> <span class='varid'>al</span> <span class='keyglyph'>=</span> <span class='varid'>getDTDAttributes</span> <span class='varid'>dn</span>-<a name="line-126"></a> <span class='varid'>name</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_name</span> <span class='varid'>al</span>-<a name="line-127"></a> <span class='varid'>transFct</span> <span class='keyglyph'>=</span> <span class='varid'>setDefaultAttributeValues</span> <span class='varid'>dtdPart</span> <span class='varid'>dn</span>-<a name="line-128"></a> <span class='varop'>>>></span>-<a name="line-129"></a> <span class='varid'>normalizeAttributeValues</span> <span class='varid'>dtdPart</span> <span class='varid'>dn</span>-<a name="line-130"></a> <span class='varop'>>>></span>-<a name="line-131"></a> <span class='varid'>lexicographicAttributeOrder</span>-<a name="line-132"></a>-<a name="line-133"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-134"></a>-<a name="line-135"></a><span class='comment'>-- |</span>-<a name="line-136"></a><span class='comment'>-- Sort the attributes of an element in lexicographic order.</span>-<a name="line-137"></a><span class='comment'>--</span>-<a name="line-138"></a><span class='comment'>-- * returns : a function which takes an element (XTag), sorts its</span>-<a name="line-139"></a><span class='comment'>-- attributes in lexicographic order and returns the changed element</span>-<a name="line-140"></a>-<a name="line-141"></a><a name="lexicographicAttributeOrder"></a><span class='definition'>lexicographicAttributeOrder</span> <span class='keyglyph'>::</span> <span class='conid'>XmlArrow</span>-<a name="line-142"></a><span class='definition'>lexicographicAttributeOrder</span>-<a name="line-143"></a> <span class='keyglyph'>=</span> <span class='varid'>setAttrl</span> <span class='layout'>(</span><span class='varid'>getAttrl</span> <span class='varop'>>>.</span> <span class='varid'>sortAttrl</span><span class='layout'>)</span>-<a name="line-144"></a> <span class='keyword'>where</span>-<a name="line-145"></a> <span class='varid'>sortAttrl</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span>-<a name="line-146"></a> <span class='varid'>sortAttrl</span> <span class='keyglyph'>=</span> <span class='varid'>sortBy</span> <span class='layout'>(</span><span class='varid'>comparing</span> <span class='varid'>nameOfAttr</span><span class='layout'>)</span>-<a name="line-147"></a>-<a name="line-148"></a><span class='comment'>-- |</span>-<a name="line-149"></a><span class='comment'>-- Normalize attribute values.</span>-<a name="line-150"></a><span class='comment'>--</span>-<a name="line-151"></a><span class='comment'>-- * returns : a function which takes an element (XTag), normalizes its</span>-<a name="line-152"></a><span class='comment'>-- attribute values and returns the changed element</span>-<a name="line-153"></a>-<a name="line-154"></a><a name="normalizeAttributeValues"></a><span class='definition'>normalizeAttributeValues</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XmlArrow</span>-<a name="line-155"></a><span class='definition'>normalizeAttributeValues</span> <span class='varid'>dtdPart</span> <span class='varid'>dn</span>-<a name="line-156"></a> <span class='keyglyph'>|</span> <span class='varid'>isDTDElementNode</span> <span class='varid'>dn</span> <span class='keyglyph'>=</span> <span class='varid'>processAttrl</span> <span class='layout'>(</span><span class='varid'>normalizeAttr</span> <span class='varop'>$<</span> <span class='varid'>getName</span><span class='layout'>)</span>-<a name="line-157"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>this</span>-<a name="line-158"></a> <span class='keyword'>where</span>-<a name="line-159"></a> <span class='varid'>al</span> <span class='keyglyph'>=</span> <span class='varid'>getDTDAttributes</span> <span class='varid'>dn</span>-<a name="line-160"></a> <span class='varid'>elemName</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_name</span> <span class='varid'>al</span>-<a name="line-161"></a> <span class='varid'>declaredAtts</span> <span class='keyglyph'>=</span> <span class='varid'>isAttlistOfElement</span> <span class='varid'>elemName</span> <span class='varop'>$$</span> <span class='varid'>dtdPart</span>-<a name="line-162"></a>-<a name="line-163"></a> <span class='varid'>normalizeAttr</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>XmlArrow</span>-<a name="line-164"></a> <span class='varid'>normalizeAttr</span> <span class='varid'>nameOfAtt</span>-<a name="line-165"></a> <span class='keyglyph'>=</span> <span class='varid'>normalizeAttrValue</span> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>attDescr</span>-<a name="line-166"></a> <span class='keyword'>then</span> <span class='conid'>Nothing</span>-<a name="line-167"></a> <span class='keyword'>else</span> <span class='conid'>Just</span> <span class='layout'>(</span><span class='varid'>head</span> <span class='varid'>attDescr</span><span class='layout'>)</span>-<a name="line-168"></a> <span class='layout'>)</span>-<a name="line-169"></a> <span class='keyword'>where</span>-<a name="line-170"></a> <span class='varid'>attDescr</span> <span class='keyglyph'>=</span> <span class='varid'>filter</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varop'>==</span> <span class='varid'>nameOfAtt</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>valueOfDTD</span> <span class='varid'>a_value</span><span class='layout'>)</span> <span class='varid'>declaredAtts</span>-<a name="line-171"></a>-<a name="line-172"></a> <span class='varid'>normalizeAttrValue</span> <span class='keyglyph'>::</span> <span class='conid'>Maybe</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XmlArrow</span>-<a name="line-173"></a> <span class='varid'>normalizeAttrValue</span> <span class='varid'>descr</span>-<a name="line-174"></a> <span class='keyglyph'>=</span> <span class='varid'>replaceChildren</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>xshow</span> <span class='varid'>getChildren</span> <span class='varop'>>>^</span> <span class='varid'>normalizeAttributeValue</span> <span class='varid'>descr</span><span class='layout'>)</span> <span class='varop'>>>></span> <span class='varid'>mkText</span><span class='layout'>)</span>-<a name="line-175"></a>-<a name="line-176"></a><span class='comment'>-- |</span>-<a name="line-177"></a><span class='comment'>-- Set default attribute values if they are not set.</span>-<a name="line-178"></a><span class='comment'>--</span>-<a name="line-179"></a><span class='comment'>-- * returns : a function which takes an element (XTag), adds missing attribute</span>-<a name="line-180"></a><span class='comment'>-- defaults and returns the changed element</span>-<a name="line-181"></a>-<a name="line-182"></a><a name="setDefaultAttributeValues"></a><span class='definition'>setDefaultAttributeValues</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XmlArrow</span>-<a name="line-183"></a><span class='definition'>setDefaultAttributeValues</span> <span class='varid'>dtdPart</span> <span class='varid'>dn</span>-<a name="line-184"></a> <span class='keyglyph'>|</span> <span class='varid'>isDTDElementNode</span> <span class='varid'>dn</span> <span class='keyglyph'>=</span> <span class='varid'>seqA</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>setDefault</span> <span class='varid'>defaultAtts</span><span class='layout'>)</span>-<a name="line-185"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>this</span>-<a name="line-186"></a> <span class='keyword'>where</span>-<a name="line-187"></a> <span class='varid'>elemName</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_name</span> <span class='varop'>.</span> <span class='varid'>getDTDAttributes</span> <span class='varop'>$</span> <span class='varid'>dn</span>-<a name="line-188"></a> <span class='varid'>defaultAtts</span> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>isAttlistOfElement</span> <span class='varid'>elemName</span>-<a name="line-189"></a> <span class='varop'>>>></span>-<a name="line-190"></a> <span class='layout'>(</span> <span class='varid'>isFixedAttrKind</span> <span class='comment'>-- select attributes with default values</span>-<a name="line-191"></a> <span class='varop'>`orElse`</span>-<a name="line-192"></a> <span class='varid'>isDefaultAttrKind</span>-<a name="line-193"></a> <span class='layout'>)</span>-<a name="line-194"></a> <span class='layout'>)</span> <span class='varop'>$$</span> <span class='varid'>dtdPart</span>-<a name="line-195"></a>-<a name="line-196"></a> <span class='varid'>setDefault</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XmlArrow</span>-<a name="line-197"></a> <span class='varid'>setDefault</span> <span class='varid'>attrDescr</span> <span class='comment'>-- add the default attributes</span>-<a name="line-198"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>addAttr</span> <span class='varid'>attName</span> <span class='varid'>defaultValue</span> <span class='comment'>-- to tag nodes with missing attributes</span>-<a name="line-199"></a> <span class='varop'>`whenNot`</span>-<a name="line-200"></a> <span class='varid'>hasAttr</span> <span class='varid'>attName</span>-<a name="line-201"></a> <span class='layout'>)</span>-<a name="line-202"></a> <span class='varop'>`when`</span>-<a name="line-203"></a> <span class='varid'>isElem</span>-<a name="line-204"></a> <span class='keyword'>where</span>-<a name="line-205"></a> <span class='varid'>al</span> <span class='keyglyph'>=</span> <span class='varid'>getDTDAttributes</span> <span class='varid'>attrDescr</span>-<a name="line-206"></a> <span class='varid'>attName</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_value</span> <span class='varid'>al</span>-<a name="line-207"></a> <span class='varid'>defaultValue</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_default</span> <span class='varid'>al</span>-<a name="line-208"></a>-<a name="line-209"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-210"></a>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-DTDValidation-DocValidation.html
@@ -1,533 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Text.XML.HXT.DTDValidation.TypeDefs-<a name="line-5"></a> Copyright : Copyright (C) 2008 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe@fh-wedel.de)-<a name="line-9"></a> Stability : experimental-<a name="line-10"></a> Portability: portable-<a name="line-11"></a>-<a name="line-12"></a> This module provides functions for validating XML Documents represented as-<a name="line-13"></a> XmlTree.-<a name="line-14"></a>-<a name="line-15"></a> Unlike other popular XML validation tools the validation process returns-<a name="line-16"></a> a list of errors instead of aborting after the first error was found.-<a name="line-17"></a>-<a name="line-18"></a> Before the document is validated, a lookup-table is build on the basis of-<a name="line-19"></a> the DTD which maps element names to their validation functions.-<a name="line-20"></a> After this initialization phase the whole document is traversed in preorder-<a name="line-21"></a> and every element is validated by the XmlFilter from the lookup-table.-<a name="line-22"></a>-<a name="line-23"></a>-}</span>-<a name="line-24"></a>-<a name="line-25"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-26"></a>-<a name="line-27"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DTDValidation</span><span class='varop'>.</span><span class='conid'>DocValidation</span>-<a name="line-28"></a> <span class='layout'>(</span> <span class='varid'>validateDoc</span>-<a name="line-29"></a> <span class='layout'>)</span>-<a name="line-30"></a><span class='keyword'>where</span>-<a name="line-31"></a>-<a name="line-32"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DTDValidation</span><span class='varop'>.</span><span class='conid'>TypeDefs</span>-<a name="line-33"></a>-<a name="line-34"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DTDValidation</span><span class='varop'>.</span><span class='conid'>AttributeValueValidation</span>-<a name="line-35"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DTDValidation</span><span class='varop'>.</span><span class='conid'>XmlRE</span>-<a name="line-36"></a>-<a name="line-37"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>-<a name="line-38"></a>-<a name="line-39"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-40"></a>-<a name="line-41"></a><span class='comment'>-- |</span>-<a name="line-42"></a><span class='comment'>-- Lookup-table which maps element names to their validation functions. The</span>-<a name="line-43"></a><span class='comment'>-- validation functions are XmlArrows.</span>-<a name="line-44"></a>-<a name="line-45"></a><a name="ValiEnvTable"></a><span class='keyword'>type</span> <span class='conid'>ValiEnvTable</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>ValiEnv</span><span class='keyglyph'>]</span>-<a name="line-46"></a><a name="ValiEnv"></a><span class='keyword'>type</span> <span class='conid'>ValiEnv</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>ElemName</span><span class='layout'>,</span> <span class='conid'>ValFct</span><span class='layout'>)</span>-<a name="line-47"></a><a name="ElemName"></a><span class='keyword'>type</span> <span class='conid'>ElemName</span> <span class='keyglyph'>=</span> <span class='conid'>String</span>-<a name="line-48"></a><a name="ValFct"></a><span class='keyword'>type</span> <span class='conid'>ValFct</span> <span class='keyglyph'>=</span> <span class='conid'>XmlArrow</span>-<a name="line-49"></a>-<a name="line-50"></a>-<a name="line-51"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-52"></a>-<a name="line-53"></a><span class='comment'>-- |</span>-<a name="line-54"></a><span class='comment'>-- Validate a document.</span>-<a name="line-55"></a><span class='comment'>--</span>-<a name="line-56"></a><span class='comment'>-- * 1.parameter dtdPart : the DTD subset (Node @DOCTYPE@) of the XmlTree</span>-<a name="line-57"></a><span class='comment'>--</span>-<a name="line-58"></a><span class='comment'>-- - 2.parameter doc : the document subset of the XmlTree</span>-<a name="line-59"></a><span class='comment'>--</span>-<a name="line-60"></a><span class='comment'>-- - returns : a list of errors</span>-<a name="line-61"></a>-<a name="line-62"></a><a name="validateDoc"></a><span class='definition'>validateDoc</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XmlArrow</span>-<a name="line-63"></a><span class='definition'>validateDoc</span> <span class='varid'>dtdPart</span>-<a name="line-64"></a> <span class='keyglyph'>=</span> <span class='varid'>traverseTree</span> <span class='varid'>valTable</span>-<a name="line-65"></a> <span class='keyword'>where</span>-<a name="line-66"></a> <span class='varid'>valTable</span> <span class='keyglyph'>=</span> <span class='varid'>buildAllValidationFunctions</span> <span class='varid'>dtdPart</span>-<a name="line-67"></a>-<a name="line-68"></a>-<a name="line-69"></a><span class='comment'>-- |</span>-<a name="line-70"></a><span class='comment'>-- Traverse the XmlTree in preorder.</span>-<a name="line-71"></a><span class='comment'>--</span>-<a name="line-72"></a><span class='comment'>-- * 1.parameter valiEnv : lookup-table which maps element names to their validation functions</span>-<a name="line-73"></a><span class='comment'>--</span>-<a name="line-74"></a><span class='comment'>-- - returns : list of errors</span>-<a name="line-75"></a>-<a name="line-76"></a><a name="traverseTree"></a><span class='definition'>traverseTree</span> <span class='keyglyph'>::</span> <span class='conid'>ValiEnvTable</span> <span class='keyglyph'>-></span> <span class='conid'>XmlArrow</span>-<a name="line-77"></a><span class='definition'>traverseTree</span> <span class='varid'>valiEnv</span>-<a name="line-78"></a> <span class='keyglyph'>=</span> <span class='varid'>choiceA</span> <span class='keyglyph'>[</span> <span class='varid'>isElem</span> <span class='conop'>:-></span> <span class='layout'>(</span><span class='varid'>valFct</span> <span class='varop'>$<</span> <span class='varid'>getQName</span><span class='layout'>)</span>-<a name="line-79"></a> <span class='layout'>,</span> <span class='varid'>this</span> <span class='conop'>:-></span> <span class='varid'>none</span>-<a name="line-80"></a> <span class='keyglyph'>]</span>-<a name="line-81"></a> <span class='varop'><+></span>-<a name="line-82"></a> <span class='layout'>(</span> <span class='varid'>getChildren</span> <span class='varop'>>>></span> <span class='varid'>traverseTree</span> <span class='varid'>valiEnv</span> <span class='layout'>)</span>-<a name="line-83"></a> <span class='keyword'>where</span>-<a name="line-84"></a> <span class='varid'>valFct</span> <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='conid'>XmlArrow</span>-<a name="line-85"></a> <span class='varid'>valFct</span> <span class='varid'>name</span> <span class='keyglyph'>=</span> <span class='keyword'>case</span> <span class='layout'>(</span><span class='varid'>lookup</span> <span class='layout'>(</span><span class='varid'>qualifiedName</span> <span class='varid'>name</span><span class='layout'>)</span> <span class='varid'>valiEnv</span><span class='layout'>)</span> <span class='keyword'>of</span>-<a name="line-86"></a> <span class='conid'>Nothing</span> <span class='keyglyph'>-></span> <span class='varid'>err</span> <span class='layout'>(</span><span class='str'>"Element "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>qualifiedName</span> <span class='varid'>name</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='str'>" not declared in DTD."</span><span class='layout'>)</span>-<a name="line-87"></a> <span class='conid'>Just</span> <span class='varid'>f</span> <span class='keyglyph'>-></span> <span class='varid'>f</span>-<a name="line-88"></a>-<a name="line-89"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-90"></a>-<a name="line-91"></a><span class='comment'>-- |</span>-<a name="line-92"></a><span class='comment'>-- Build all validation functions.</span>-<a name="line-93"></a><span class='comment'>--</span>-<a name="line-94"></a><span class='comment'>-- * 1.parameter dtdPart : DTD subset, root node should be of type @DOCTYPE@</span>-<a name="line-95"></a><span class='comment'>--</span>-<a name="line-96"></a><span class='comment'>-- - returns : lookup-table which maps element names to their validation functions</span>-<a name="line-97"></a>-<a name="line-98"></a><a name="buildAllValidationFunctions"></a><span class='definition'>buildAllValidationFunctions</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>ValiEnvTable</span>-<a name="line-99"></a><span class='definition'>buildAllValidationFunctions</span> <span class='varid'>dtdPart</span>-<a name="line-100"></a> <span class='keyglyph'>=</span> <span class='varid'>concat</span> <span class='varop'>$</span>-<a name="line-101"></a> <span class='varid'>buildValidateRoot</span> <span class='varid'>dtdPart</span> <span class='conop'>:</span> <span class='comment'>-- construct a list of validation filters for all element declarations</span>-<a name="line-102"></a> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>buildValidateFunctions</span> <span class='varid'>dtdNodes</span><span class='layout'>)</span> <span class='varid'>dtdNodes</span>-<a name="line-103"></a> <span class='keyword'>where</span>-<a name="line-104"></a> <span class='varid'>dtdNodes</span> <span class='keyglyph'>=</span> <span class='varid'>runLA</span> <span class='varid'>getChildren</span> <span class='varid'>dtdPart</span>-<a name="line-105"></a>-<a name="line-106"></a><span class='comment'>-- |</span>-<a name="line-107"></a><span class='comment'>-- Build a validation function for the document root. By root node @\/@</span>-<a name="line-108"></a><span class='comment'>-- is meant, which is the topmost dummy created by the parser.</span>-<a name="line-109"></a><span class='comment'>--</span>-<a name="line-110"></a><span class='comment'>-- * 1.parameter dtdPart : DTD subset, root node should be of type @DOCTYPE@</span>-<a name="line-111"></a><span class='comment'>--</span>-<a name="line-112"></a><span class='comment'>-- - returns : entry for the lookup-table</span>-<a name="line-113"></a>-<a name="line-114"></a><a name="buildValidateRoot"></a><span class='definition'>buildValidateRoot</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>ValiEnv</span><span class='keyglyph'>]</span>-<a name="line-115"></a><span class='definition'>buildValidateRoot</span> <span class='varid'>dn</span>-<a name="line-116"></a> <span class='keyglyph'>|</span> <span class='varid'>isDTDDoctypeNode</span> <span class='varid'>dn</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>t_root</span><span class='layout'>,</span> <span class='varid'>valFct</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-117"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-118"></a> <span class='keyword'>where</span>-<a name="line-119"></a> <span class='varid'>name</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_name</span> <span class='varop'>.</span> <span class='varid'>getDTDAttributes</span> <span class='varop'>$</span> <span class='varid'>dn</span>-<a name="line-120"></a>-<a name="line-121"></a> <span class='varid'>valFct</span> <span class='keyglyph'>::</span> <span class='conid'>XmlArrow</span>-<a name="line-122"></a> <span class='varid'>valFct</span> <span class='keyglyph'>=</span> <span class='varid'>isElem</span>-<a name="line-123"></a> <span class='varop'>`guards`</span>-<a name="line-124"></a> <span class='layout'>(</span> <span class='varid'>checkRegex</span> <span class='layout'>(</span><span class='varid'>re_sym</span> <span class='varid'>name</span><span class='layout'>)</span>-<a name="line-125"></a> <span class='varop'>>>></span>-<a name="line-126"></a> <span class='varid'>msgToErr</span> <span class='layout'>(</span><span class='layout'>(</span><span class='str'>"Root Element must be "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>name</span> <span class='varop'>++</span> <span class='str'>". "</span><span class='layout'>)</span> <span class='varop'>++</span><span class='layout'>)</span>-<a name="line-127"></a> <span class='layout'>)</span>-<a name="line-128"></a>-<a name="line-129"></a><a name="checkRegex"></a><span class='definition'>checkRegex</span> <span class='keyglyph'>::</span> <span class='conid'>RE</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>-<a name="line-130"></a><span class='definition'>checkRegex</span> <span class='varid'>re</span> <span class='keyglyph'>=</span> <span class='varid'>listA</span> <span class='varid'>getChildren</span>-<a name="line-131"></a> <span class='varop'>>>></span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>cs</span> <span class='keyglyph'>-></span> <span class='varid'>checkRE</span> <span class='layout'>(</span><span class='varid'>matches</span> <span class='varid'>re</span> <span class='varid'>cs</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-132"></a>-<a name="line-133"></a><span class='comment'>-- |</span>-<a name="line-134"></a><span class='comment'>-- Build validation functions for an element.</span>-<a name="line-135"></a><span class='comment'>--</span>-<a name="line-136"></a><span class='comment'>-- * 1.parameter dtdPart : the children of the @DOCTYPE@ node</span>-<a name="line-137"></a><span class='comment'>--</span>-<a name="line-138"></a><span class='comment'>-- - 2.parameter nd : element declaration for which the validation functions are</span>-<a name="line-139"></a><span class='comment'>-- created</span>-<a name="line-140"></a><span class='comment'>--</span>-<a name="line-141"></a><span class='comment'>-- - returns : entry for the lookup-table</span>-<a name="line-142"></a>-<a name="line-143"></a><a name="buildValidateFunctions"></a><span class='definition'>buildValidateFunctions</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>ValiEnv</span><span class='keyglyph'>]</span>-<a name="line-144"></a>-<a name="line-145"></a><span class='definition'>buildValidateFunctions</span> <span class='varid'>dtdPart</span> <span class='varid'>dn</span>-<a name="line-146"></a> <span class='keyglyph'>|</span> <span class='varid'>isDTDElementNode</span> <span class='varid'>dn</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>elemName</span><span class='layout'>,</span> <span class='varid'>valFct</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-147"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-148"></a> <span class='keyword'>where</span>-<a name="line-149"></a> <span class='varid'>elemName</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_name</span> <span class='varop'>.</span> <span class='varid'>getDTDAttributes</span> <span class='varop'>$</span> <span class='varid'>dn</span>-<a name="line-150"></a>-<a name="line-151"></a> <span class='varid'>valFct</span> <span class='keyglyph'>::</span> <span class='conid'>XmlArrow</span>-<a name="line-152"></a> <span class='varid'>valFct</span> <span class='keyglyph'>=</span> <span class='varid'>buildContentValidation</span> <span class='varid'>dn</span>-<a name="line-153"></a> <span class='varop'><+></span>-<a name="line-154"></a> <span class='varid'>buildAttributeValidation</span> <span class='varid'>dtdPart</span> <span class='varid'>dn</span>-<a name="line-155"></a>-<a name="line-156"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-157"></a>-<a name="line-158"></a>-<a name="line-159"></a><span class='comment'>-- |</span>-<a name="line-160"></a><span class='comment'>-- Build validation functions for the content model of an element.</span>-<a name="line-161"></a><span class='comment'>-- Validity constraint: Element Valid (3 \/ p.18 in Spec)</span>-<a name="line-162"></a><span class='comment'>--</span>-<a name="line-163"></a><span class='comment'>-- * 1.parameter nd : element declaration for which the content validation functions</span>-<a name="line-164"></a><span class='comment'>-- are built</span>-<a name="line-165"></a><span class='comment'>--</span>-<a name="line-166"></a><span class='comment'>-- - returns : a function which takes an element (XTag), checks if its</span>-<a name="line-167"></a><span class='comment'>-- children match its content model and returns a list of errors</span>-<a name="line-168"></a>-<a name="line-169"></a><a name="buildContentValidation"></a><span class='definition'>buildContentValidation</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XmlArrow</span>-<a name="line-170"></a><span class='definition'>buildContentValidation</span> <span class='varid'>nd</span>-<a name="line-171"></a> <span class='keyglyph'>=</span> <span class='varid'>contentValidation</span> <span class='varid'>attrType</span> <span class='varid'>nd</span>-<a name="line-172"></a> <span class='keyword'>where</span>-<a name="line-173"></a> <span class='varid'>attrType</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_type</span> <span class='varop'>.</span> <span class='varid'>getDTDAttributes</span> <span class='varop'>$</span> <span class='varid'>nd</span>-<a name="line-174"></a>-<a name="line-175"></a>-<a name="line-176"></a> <span class='comment'>-- Delegates construction of the validation function on the basis of the</span>-<a name="line-177"></a> <span class='comment'>-- content model type</span>-<a name="line-178"></a> <span class='varid'>contentValidation</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XmlArrow</span>-<a name="line-179"></a> <span class='varid'>contentValidation</span> <span class='varid'>typ</span> <span class='varid'>dn</span>-<a name="line-180"></a> <span class='keyglyph'>|</span> <span class='varid'>typ</span> <span class='varop'>==</span> <span class='varid'>k_pcdata</span> <span class='keyglyph'>=</span> <span class='varid'>contentValidationPcdata</span>-<a name="line-181"></a> <span class='keyglyph'>|</span> <span class='varid'>typ</span> <span class='varop'>==</span> <span class='varid'>k_empty</span> <span class='keyglyph'>=</span> <span class='varid'>contentValidationEmpty</span>-<a name="line-182"></a> <span class='keyglyph'>|</span> <span class='varid'>typ</span> <span class='varop'>==</span> <span class='varid'>k_any</span> <span class='keyglyph'>=</span> <span class='varid'>contentValidationAny</span>-<a name="line-183"></a> <span class='keyglyph'>|</span> <span class='varid'>typ</span> <span class='varop'>==</span> <span class='varid'>v_children</span> <span class='keyglyph'>=</span> <span class='varid'>contentValidationChildren</span> <span class='varid'>cs</span>-<a name="line-184"></a> <span class='keyglyph'>|</span> <span class='varid'>typ</span> <span class='varop'>==</span> <span class='varid'>v_mixed</span> <span class='keyglyph'>=</span> <span class='varid'>contentValidationMixed</span> <span class='varid'>cs</span>-<a name="line-185"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>none</span>-<a name="line-186"></a> <span class='keyword'>where</span>-<a name="line-187"></a> <span class='varid'>cs</span> <span class='keyglyph'>=</span> <span class='varid'>runLA</span> <span class='varid'>getChildren</span> <span class='varid'>dn</span>-<a name="line-188"></a>-<a name="line-189"></a> <span class='comment'>-- Checks #PCDATA content models</span>-<a name="line-190"></a> <span class='varid'>contentValidationPcdata</span> <span class='keyglyph'>::</span> <span class='conid'>XmlArrow</span>-<a name="line-191"></a> <span class='varid'>contentValidationPcdata</span>-<a name="line-192"></a> <span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>`guards`</span> <span class='layout'>(</span><span class='varid'>contentVal</span> <span class='varop'>$<</span> <span class='varid'>getQName</span><span class='layout'>)</span>-<a name="line-193"></a> <span class='keyword'>where</span>-<a name="line-194"></a> <span class='varid'>contentVal</span> <span class='varid'>name</span>-<a name="line-195"></a> <span class='keyglyph'>=</span> <span class='varid'>checkRegex</span> <span class='layout'>(</span><span class='varid'>re_rep</span> <span class='layout'>(</span><span class='varid'>re_sym</span> <span class='varid'>k_pcdata</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-196"></a> <span class='varop'>>>></span>-<a name="line-197"></a> <span class='varid'>msgToErr</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='str'>"The content of element "</span> <span class='varop'>++</span>-<a name="line-198"></a> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>qualifiedName</span> <span class='varid'>name</span><span class='layout'>)</span> <span class='varop'>++</span>-<a name="line-199"></a> <span class='str'>" must match (#PCDATA). "</span>-<a name="line-200"></a> <span class='layout'>)</span> <span class='varop'>++</span>-<a name="line-201"></a> <span class='layout'>)</span>-<a name="line-202"></a>-<a name="line-203"></a> <span class='comment'>-- Checks EMPTY content models</span>-<a name="line-204"></a> <span class='varid'>contentValidationEmpty</span> <span class='keyglyph'>::</span> <span class='conid'>XmlArrow</span>-<a name="line-205"></a> <span class='varid'>contentValidationEmpty</span>-<a name="line-206"></a> <span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>`guards`</span> <span class='layout'>(</span><span class='varid'>contentVal</span> <span class='varop'>$<</span> <span class='varid'>getQName</span><span class='layout'>)</span>-<a name="line-207"></a> <span class='keyword'>where</span>-<a name="line-208"></a> <span class='varid'>contentVal</span> <span class='varid'>name</span>-<a name="line-209"></a> <span class='keyglyph'>=</span> <span class='varid'>checkRegex</span> <span class='varid'>re_unit</span>-<a name="line-210"></a> <span class='varop'>>>></span>-<a name="line-211"></a> <span class='varid'>msgToErr</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='str'>"The content of element "</span> <span class='varop'>++</span>-<a name="line-212"></a> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>qualifiedName</span> <span class='varid'>name</span><span class='layout'>)</span> <span class='varop'>++</span>-<a name="line-213"></a> <span class='str'>" must match EMPTY. "</span>-<a name="line-214"></a> <span class='layout'>)</span> <span class='varop'>++</span>-<a name="line-215"></a> <span class='layout'>)</span>-<a name="line-216"></a>-<a name="line-217"></a> <span class='comment'>-- Checks ANY content models</span>-<a name="line-218"></a> <span class='varid'>contentValidationAny</span> <span class='keyglyph'>::</span> <span class='conid'>XmlArrow</span>-<a name="line-219"></a> <span class='varid'>contentValidationAny</span>-<a name="line-220"></a> <span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>`guards`</span> <span class='layout'>(</span><span class='varid'>contentVal</span> <span class='varop'>$<</span> <span class='varid'>getName</span><span class='layout'>)</span>-<a name="line-221"></a> <span class='keyword'>where</span>-<a name="line-222"></a> <span class='varid'>contentVal</span> <span class='varid'>name</span>-<a name="line-223"></a> <span class='keyglyph'>=</span> <span class='varid'>checkRegex</span> <span class='layout'>(</span><span class='varid'>re_rep</span> <span class='layout'>(</span><span class='varid'>re_dot</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-224"></a> <span class='varop'>>>></span>-<a name="line-225"></a> <span class='varid'>msgToErr</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='str'>"The content of element "</span> <span class='varop'>++</span>-<a name="line-226"></a> <span class='varid'>show</span> <span class='varid'>name</span> <span class='varop'>++</span>-<a name="line-227"></a> <span class='str'>" must match ANY. "</span>-<a name="line-228"></a> <span class='layout'>)</span> <span class='varop'>++</span>-<a name="line-229"></a> <span class='layout'>)</span>-<a name="line-230"></a>-<a name="line-231"></a> <span class='comment'>-- Checks "children" content models</span>-<a name="line-232"></a> <span class='varid'>contentValidationChildren</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>XmlArrow</span>-<a name="line-233"></a> <span class='varid'>contentValidationChildren</span> <span class='varid'>cm</span>-<a name="line-234"></a> <span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>`guards`</span> <span class='layout'>(</span><span class='varid'>contentVal</span> <span class='varop'>$<</span> <span class='varid'>getName</span><span class='layout'>)</span>-<a name="line-235"></a> <span class='keyword'>where</span>-<a name="line-236"></a> <span class='varid'>contentVal</span> <span class='varid'>name</span>-<a name="line-237"></a> <span class='keyglyph'>=</span> <span class='varid'>checkRegex</span> <span class='varid'>re</span>-<a name="line-238"></a> <span class='varop'>>>></span>-<a name="line-239"></a> <span class='varid'>msgToErr</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='str'>"The content of element "</span> <span class='varop'>++</span>-<a name="line-240"></a> <span class='varid'>show</span> <span class='varid'>name</span> <span class='varop'>++</span>-<a name="line-241"></a> <span class='str'>" must match "</span> <span class='varop'>++</span> <span class='varid'>printRE</span> <span class='varid'>re</span> <span class='varop'>++</span> <span class='str'>". "</span>-<a name="line-242"></a> <span class='layout'>)</span> <span class='varop'>++</span>-<a name="line-243"></a> <span class='layout'>)</span>-<a name="line-244"></a> <span class='varid'>re</span> <span class='keyglyph'>=</span> <span class='varid'>createRE</span> <span class='layout'>(</span><span class='varid'>head</span> <span class='varid'>cm</span><span class='layout'>)</span>-<a name="line-245"></a>-<a name="line-246"></a> <span class='comment'>-- Checks "mixed content" content models</span>-<a name="line-247"></a> <span class='varid'>contentValidationMixed</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>XmlArrow</span>-<a name="line-248"></a> <span class='varid'>contentValidationMixed</span> <span class='varid'>cm</span>-<a name="line-249"></a> <span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>`guards`</span> <span class='layout'>(</span><span class='varid'>contentVal</span> <span class='varop'>$<</span> <span class='varid'>getName</span><span class='layout'>)</span>-<a name="line-250"></a> <span class='keyword'>where</span>-<a name="line-251"></a> <span class='varid'>contentVal</span> <span class='varid'>name</span>-<a name="line-252"></a> <span class='keyglyph'>=</span> <span class='varid'>checkRegex</span> <span class='varid'>re</span>-<a name="line-253"></a> <span class='varop'>>>></span>-<a name="line-254"></a> <span class='varid'>msgToErr</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='str'>"The content of element "</span> <span class='varop'>++</span>-<a name="line-255"></a> <span class='varid'>show</span> <span class='varid'>name</span> <span class='varop'>++</span>-<a name="line-256"></a> <span class='str'>" must match "</span> <span class='varop'>++</span> <span class='varid'>printRE</span> <span class='varid'>re</span> <span class='varop'>++</span> <span class='str'>". "</span>-<a name="line-257"></a> <span class='layout'>)</span> <span class='varop'>++</span>-<a name="line-258"></a> <span class='layout'>)</span>-<a name="line-259"></a> <span class='varid'>re</span> <span class='keyglyph'>=</span> <span class='varid'>re_rep</span> <span class='layout'>(</span><span class='varid'>re_alt</span> <span class='layout'>(</span><span class='varid'>re_sym</span> <span class='varid'>k_pcdata</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>createRE</span> <span class='layout'>(</span><span class='varid'>head</span> <span class='varid'>cm</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-260"></a>-<a name="line-261"></a><span class='comment'>-- |</span>-<a name="line-262"></a><span class='comment'>-- Build a regular expression from the content model. The regular expression</span>-<a name="line-263"></a><span class='comment'>-- is provided by the module XmlRE.</span>-<a name="line-264"></a><span class='comment'>--</span>-<a name="line-265"></a><span class='comment'>-- * 1.parameter nd : node of the content model. Expected: @CONTENT@ or</span>-<a name="line-266"></a><span class='comment'>-- @NAME@</span>-<a name="line-267"></a><span class='comment'>--</span>-<a name="line-268"></a><span class='comment'>-- - returns : regular expression of the content model</span>-<a name="line-269"></a>-<a name="line-270"></a><a name="createRE"></a><span class='definition'>createRE</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>RE</span> <span class='conid'>String</span>-<a name="line-271"></a><span class='definition'>createRE</span> <span class='varid'>dn</span>-<a name="line-272"></a> <span class='keyglyph'>|</span> <span class='varid'>isDTDContentNode</span> <span class='varid'>dn</span>-<a name="line-273"></a> <span class='keyglyph'>=</span> <span class='varid'>processModifier</span> <span class='varid'>modifier</span>-<a name="line-274"></a> <span class='keyglyph'>|</span> <span class='varid'>isDTDNameNode</span> <span class='varid'>dn</span>-<a name="line-275"></a> <span class='keyglyph'>=</span> <span class='varid'>re_sym</span> <span class='varid'>name</span>-<a name="line-276"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-277"></a> <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"createRE: illegeal parameter:\n"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>dn</span><span class='layout'>)</span>-<a name="line-278"></a> <span class='keyword'>where</span>-<a name="line-279"></a> <span class='varid'>al</span> <span class='keyglyph'>=</span> <span class='varid'>getDTDAttributes</span> <span class='varid'>dn</span>-<a name="line-280"></a> <span class='varid'>name</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_name</span> <span class='varid'>al</span>-<a name="line-281"></a> <span class='varid'>modifier</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_modifier</span> <span class='varid'>al</span>-<a name="line-282"></a> <span class='varid'>kind</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_kind</span> <span class='varid'>al</span>-<a name="line-283"></a> <span class='varid'>cs</span> <span class='keyglyph'>=</span> <span class='varid'>runLA</span> <span class='varid'>getChildren</span> <span class='varid'>dn</span>-<a name="line-284"></a>-<a name="line-285"></a> <span class='varid'>processModifier</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>RE</span> <span class='conid'>String</span>-<a name="line-286"></a> <span class='varid'>processModifier</span> <span class='varid'>m</span>-<a name="line-287"></a> <span class='keyglyph'>|</span> <span class='varid'>m</span> <span class='varop'>==</span> <span class='varid'>v_plus</span> <span class='keyglyph'>=</span> <span class='varid'>re_plus</span> <span class='layout'>(</span><span class='varid'>processKind</span> <span class='varid'>kind</span><span class='layout'>)</span>-<a name="line-288"></a> <span class='keyglyph'>|</span> <span class='varid'>m</span> <span class='varop'>==</span> <span class='varid'>v_star</span> <span class='keyglyph'>=</span> <span class='varid'>re_rep</span> <span class='layout'>(</span><span class='varid'>processKind</span> <span class='varid'>kind</span><span class='layout'>)</span>-<a name="line-289"></a> <span class='keyglyph'>|</span> <span class='varid'>m</span> <span class='varop'>==</span> <span class='varid'>v_option</span> <span class='keyglyph'>=</span> <span class='varid'>re_opt</span> <span class='layout'>(</span><span class='varid'>processKind</span> <span class='varid'>kind</span><span class='layout'>)</span>-<a name="line-290"></a> <span class='keyglyph'>|</span> <span class='varid'>m</span> <span class='varop'>==</span> <span class='varid'>v_null</span> <span class='keyglyph'>=</span> <span class='varid'>processKind</span> <span class='varid'>kind</span>-<a name="line-291"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"Unknown modifier: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>m</span><span class='layout'>)</span>-<a name="line-292"></a>-<a name="line-293"></a> <span class='varid'>processKind</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>RE</span> <span class='conid'>String</span>-<a name="line-294"></a> <span class='varid'>processKind</span> <span class='varid'>k</span>-<a name="line-295"></a> <span class='keyglyph'>|</span> <span class='varid'>k</span> <span class='varop'>==</span> <span class='varid'>v_seq</span> <span class='keyglyph'>=</span> <span class='varid'>makeSequence</span> <span class='varid'>cs</span>-<a name="line-296"></a> <span class='keyglyph'>|</span> <span class='varid'>k</span> <span class='varop'>==</span> <span class='varid'>v_choice</span> <span class='keyglyph'>=</span> <span class='varid'>makeChoice</span> <span class='varid'>cs</span>-<a name="line-297"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"Unknown kind: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>k</span><span class='layout'>)</span>-<a name="line-298"></a>-<a name="line-299"></a> <span class='varid'>makeSequence</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>RE</span> <span class='conid'>String</span>-<a name="line-300"></a> <span class='varid'>makeSequence</span> <span class='conid'>[]</span> <span class='keyglyph'>=</span> <span class='varid'>re_unit</span>-<a name="line-301"></a> <span class='varid'>makeSequence</span> <span class='layout'>(</span><span class='varid'>x</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>re_seq</span> <span class='layout'>(</span><span class='varid'>createRE</span> <span class='varid'>x</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>makeSequence</span> <span class='varid'>xs</span><span class='layout'>)</span>-<a name="line-302"></a>-<a name="line-303"></a> <span class='varid'>makeChoice</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>RE</span> <span class='conid'>String</span>-<a name="line-304"></a> <span class='varid'>makeChoice</span> <span class='conid'>[]</span> <span class='keyglyph'>=</span> <span class='varid'>re_zero</span> <span class='str'>""</span>-<a name="line-305"></a> <span class='varid'>makeChoice</span> <span class='layout'>(</span><span class='varid'>x</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>re_alt</span> <span class='layout'>(</span><span class='varid'>createRE</span> <span class='varid'>x</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>makeChoice</span> <span class='varid'>xs</span><span class='layout'>)</span>-<a name="line-306"></a>-<a name="line-307"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-308"></a>-<a name="line-309"></a><span class='comment'>-- |</span>-<a name="line-310"></a><span class='comment'>-- Build validation functions for the attributes of an element.</span>-<a name="line-311"></a><span class='comment'>--</span>-<a name="line-312"></a><span class='comment'>-- * 1.parameter dtdPart : the children of the @DOCTYPE@ node</span>-<a name="line-313"></a><span class='comment'>--</span>-<a name="line-314"></a><span class='comment'>-- - 2.parameter nd : element declaration for which the attribute validation functions</span>-<a name="line-315"></a><span class='comment'>-- are created</span>-<a name="line-316"></a><span class='comment'>--</span>-<a name="line-317"></a><span class='comment'>-- - returns : a function which takes an element (XTag), checks if its</span>-<a name="line-318"></a><span class='comment'>-- attributes are valid and returns a list of errors</span>-<a name="line-319"></a>-<a name="line-320"></a><a name="buildAttributeValidation"></a><span class='definition'>buildAttributeValidation</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XmlArrow</span>-<a name="line-321"></a><span class='definition'>buildAttributeValidation</span> <span class='varid'>dtdPart</span> <span class='varid'>nd</span> <span class='keyglyph'>=</span>-<a name="line-322"></a> <span class='varid'>noDoublicateAttributes</span>-<a name="line-323"></a> <span class='varop'><+></span>-<a name="line-324"></a> <span class='varid'>checkNotDeclardAttributes</span> <span class='varid'>attrDecls</span> <span class='varid'>nd</span>-<a name="line-325"></a> <span class='varop'><+></span>-<a name="line-326"></a> <span class='varid'>checkRequiredAttributes</span> <span class='varid'>attrDecls</span> <span class='varid'>nd</span>-<a name="line-327"></a> <span class='varop'><+></span>-<a name="line-328"></a> <span class='varid'>checkFixedAttributes</span> <span class='varid'>attrDecls</span> <span class='varid'>nd</span>-<a name="line-329"></a> <span class='varop'><+></span>-<a name="line-330"></a> <span class='varid'>checkValuesOfAttributes</span> <span class='varid'>attrDecls</span> <span class='varid'>dtdPart</span> <span class='varid'>nd</span>-<a name="line-331"></a> <span class='keyword'>where</span>-<a name="line-332"></a> <span class='varid'>attrDecls</span> <span class='keyglyph'>=</span> <span class='varid'>isDTDAttlist</span> <span class='varop'>$$</span> <span class='varid'>dtdPart</span>-<a name="line-333"></a>-<a name="line-334"></a>-<a name="line-335"></a><span class='comment'>-- |</span>-<a name="line-336"></a><span class='comment'>-- Validate that all attributes of an element are unique.</span>-<a name="line-337"></a><span class='comment'>-- Well-formdness constraint: Unique AttSpec (3.1 \/ p.19 in Spec)</span>-<a name="line-338"></a><span class='comment'>--</span>-<a name="line-339"></a><span class='comment'>-- - returns : a function which takes an element (XTag), checks if its</span>-<a name="line-340"></a><span class='comment'>-- attributes are unique and returns a list of errors</span>-<a name="line-341"></a>-<a name="line-342"></a><a name="noDoublicateAttributes"></a><span class='definition'>noDoublicateAttributes</span> <span class='keyglyph'>::</span> <span class='conid'>XmlArrow</span>-<a name="line-343"></a><span class='definition'>noDoublicateAttributes</span>-<a name="line-344"></a> <span class='keyglyph'>=</span> <span class='varid'>isElem</span>-<a name="line-345"></a> <span class='varop'>`guards`</span>-<a name="line-346"></a> <span class='layout'>(</span> <span class='varid'>noDoubles'</span> <span class='varop'>$<</span> <span class='varid'>getName</span> <span class='layout'>)</span>-<a name="line-347"></a> <span class='keyword'>where</span>-<a name="line-348"></a> <span class='varid'>noDoubles'</span> <span class='varid'>elemName</span>-<a name="line-349"></a> <span class='keyglyph'>=</span> <span class='varid'>listA</span> <span class='layout'>(</span><span class='varid'>getAttrl</span> <span class='varop'>>>></span> <span class='varid'>getName</span><span class='layout'>)</span>-<a name="line-350"></a> <span class='varop'>>>></span> <span class='varid'>applyA</span> <span class='layout'>(</span><span class='varid'>arr</span> <span class='layout'>(</span><span class='varid'>catA</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='varid'>toErr</span> <span class='varop'>.</span> <span class='varid'>doubles</span> <span class='varop'>.</span> <span class='varid'>reverse</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-351"></a> <span class='keyword'>where</span>-<a name="line-352"></a> <span class='varid'>toErr</span> <span class='varid'>n1</span> <span class='keyglyph'>=</span> <span class='varid'>err</span> <span class='layout'>(</span> <span class='str'>"Attribute "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n1</span> <span class='varop'>++</span>-<a name="line-353"></a> <span class='str'>" was already specified for element "</span> <span class='varop'>++</span>-<a name="line-354"></a> <span class='varid'>show</span> <span class='varid'>elemName</span> <span class='varop'>++</span> <span class='str'>"."</span>-<a name="line-355"></a> <span class='layout'>)</span>-<a name="line-356"></a>-<a name="line-357"></a><span class='comment'>-- |</span>-<a name="line-358"></a><span class='comment'>-- Validate that all \#REQUIRED attributes are provided.</span>-<a name="line-359"></a><span class='comment'>-- Validity constraint: Required Attributes (3.3.2 \/ p.28 in Spec)</span>-<a name="line-360"></a><span class='comment'>--</span>-<a name="line-361"></a><span class='comment'>-- * 1.parameter dtdPart : the children of the @DOCTYPE@ node</span>-<a name="line-362"></a><span class='comment'>--</span>-<a name="line-363"></a><span class='comment'>-- - 2.parameter nd : element declaration which attributes have to be checked</span>-<a name="line-364"></a><span class='comment'>--</span>-<a name="line-365"></a><span class='comment'>-- - returns : a function which takes an element (XTag), checks if all</span>-<a name="line-366"></a><span class='comment'>-- required attributes are provided and returns a list of errors</span>-<a name="line-367"></a>-<a name="line-368"></a><a name="checkRequiredAttributes"></a><span class='definition'>checkRequiredAttributes</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XmlArrow</span>-<a name="line-369"></a><span class='definition'>checkRequiredAttributes</span> <span class='varid'>attrDecls</span> <span class='varid'>dn</span>-<a name="line-370"></a> <span class='keyglyph'>|</span> <span class='varid'>isDTDElementNode</span> <span class='varid'>dn</span>-<a name="line-371"></a> <span class='keyglyph'>=</span> <span class='varid'>isElem</span>-<a name="line-372"></a> <span class='varop'>`guards`</span>-<a name="line-373"></a> <span class='layout'>(</span> <span class='varid'>checkRequired</span> <span class='varop'>$<</span> <span class='varid'>getName</span> <span class='layout'>)</span>-<a name="line-374"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-375"></a> <span class='keyglyph'>=</span> <span class='varid'>none</span>-<a name="line-376"></a> <span class='keyword'>where</span>-<a name="line-377"></a> <span class='varid'>elemName</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_name</span> <span class='varop'>.</span> <span class='varid'>getDTDAttributes</span> <span class='varop'>$</span> <span class='varid'>dn</span>-<a name="line-378"></a> <span class='varid'>requiredAtts</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>isAttlistOfElement</span> <span class='varid'>elemName</span> <span class='varop'>>>></span> <span class='varid'>isRequiredAttrKind</span><span class='layout'>)</span> <span class='varop'>$$</span> <span class='varid'>attrDecls</span>-<a name="line-379"></a>-<a name="line-380"></a> <span class='varid'>checkRequired</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>XmlArrow</span>-<a name="line-381"></a> <span class='varid'>checkRequired</span> <span class='varid'>name</span>-<a name="line-382"></a> <span class='keyglyph'>=</span> <span class='varid'>catA</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='varid'>checkReq</span> <span class='varop'>$</span> <span class='varid'>requiredAtts</span>-<a name="line-383"></a> <span class='keyword'>where</span>-<a name="line-384"></a> <span class='varid'>checkReq</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XmlArrow</span>-<a name="line-385"></a> <span class='varid'>checkReq</span> <span class='varid'>attrDecl</span>-<a name="line-386"></a> <span class='keyglyph'>=</span> <span class='varid'>neg</span> <span class='layout'>(</span><span class='varid'>hasAttr</span> <span class='varid'>attName</span><span class='layout'>)</span>-<a name="line-387"></a> <span class='varop'>`guards`</span>-<a name="line-388"></a> <span class='varid'>err</span> <span class='layout'>(</span> <span class='str'>"Attribute "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>attName</span> <span class='varop'>++</span> <span class='str'>" must be declared for element type "</span> <span class='varop'>++</span>-<a name="line-389"></a> <span class='varid'>show</span> <span class='varid'>name</span> <span class='varop'>++</span> <span class='str'>"."</span> <span class='layout'>)</span>-<a name="line-390"></a> <span class='keyword'>where</span>-<a name="line-391"></a> <span class='varid'>attName</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_value</span> <span class='varop'>.</span> <span class='varid'>getDTDAttributes</span> <span class='varop'>$</span> <span class='varid'>attrDecl</span>-<a name="line-392"></a>-<a name="line-393"></a><span class='comment'>-- |</span>-<a name="line-394"></a><span class='comment'>-- Validate that \#FIXED attributes match the default value.</span>-<a name="line-395"></a><span class='comment'>-- Validity constraint: Fixed Attribute Default (3.3.2 \/ p.28 in Spec)</span>-<a name="line-396"></a><span class='comment'>--</span>-<a name="line-397"></a><span class='comment'>-- * 1.parameter dtdPart : the children of the @DOCTYPE@ node</span>-<a name="line-398"></a><span class='comment'>--</span>-<a name="line-399"></a><span class='comment'>-- - 2.parameter nd : element declaration which attributes have to be checked</span>-<a name="line-400"></a><span class='comment'>--</span>-<a name="line-401"></a><span class='comment'>-- - returns : a function which takes an element (XTag), checks if all</span>-<a name="line-402"></a><span class='comment'>-- fixed attributes match the default value and returns a list of errors</span>-<a name="line-403"></a>-<a name="line-404"></a><a name="checkFixedAttributes"></a><span class='definition'>checkFixedAttributes</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XmlArrow</span>-<a name="line-405"></a><span class='definition'>checkFixedAttributes</span> <span class='varid'>attrDecls</span> <span class='varid'>dn</span>-<a name="line-406"></a> <span class='keyglyph'>|</span> <span class='varid'>isDTDElementNode</span> <span class='varid'>dn</span>-<a name="line-407"></a> <span class='keyglyph'>=</span> <span class='varid'>isElem</span>-<a name="line-408"></a> <span class='varop'>`guards`</span>-<a name="line-409"></a> <span class='layout'>(</span> <span class='varid'>checkFixed</span> <span class='varop'>$<</span> <span class='varid'>getName</span> <span class='layout'>)</span>-<a name="line-410"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-411"></a> <span class='keyglyph'>=</span> <span class='varid'>none</span>-<a name="line-412"></a> <span class='keyword'>where</span>-<a name="line-413"></a> <span class='varid'>elemName</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_name</span> <span class='varop'>.</span> <span class='varid'>getDTDAttributes</span> <span class='varop'>$</span> <span class='varid'>dn</span>-<a name="line-414"></a> <span class='varid'>fixedAtts</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>isAttlistOfElement</span> <span class='varid'>elemName</span> <span class='varop'>>>></span> <span class='varid'>isFixedAttrKind</span><span class='layout'>)</span> <span class='varop'>$$</span> <span class='varid'>attrDecls</span>-<a name="line-415"></a>-<a name="line-416"></a> <span class='varid'>checkFixed</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>XmlArrow</span>-<a name="line-417"></a> <span class='varid'>checkFixed</span> <span class='varid'>name</span>-<a name="line-418"></a> <span class='keyglyph'>=</span> <span class='varid'>catA</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='varid'>checkFix</span> <span class='varop'>$</span> <span class='varid'>fixedAtts</span>-<a name="line-419"></a> <span class='keyword'>where</span>-<a name="line-420"></a> <span class='varid'>checkFix</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XmlArrow</span>-<a name="line-421"></a> <span class='varid'>checkFix</span> <span class='varid'>an</span>-<a name="line-422"></a> <span class='keyglyph'>|</span> <span class='varid'>isDTDAttlistNode</span> <span class='varid'>an</span>-<a name="line-423"></a> <span class='keyglyph'>=</span> <span class='varid'>checkFixedVal</span> <span class='varop'>$<</span> <span class='varid'>getAttrValue</span> <span class='varid'>attName</span>-<a name="line-424"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-425"></a> <span class='keyglyph'>=</span> <span class='varid'>none</span>-<a name="line-426"></a> <span class='keyword'>where</span>-<a name="line-427"></a> <span class='varid'>al'</span> <span class='keyglyph'>=</span> <span class='varid'>getDTDAttributes</span> <span class='varid'>an</span>-<a name="line-428"></a> <span class='varid'>attName</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_value</span> <span class='varid'>al'</span>-<a name="line-429"></a> <span class='varid'>defa</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_default</span> <span class='varid'>al'</span>-<a name="line-430"></a> <span class='varid'>fixedValue</span> <span class='keyglyph'>=</span> <span class='varid'>normalizeAttributeValue</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>an</span><span class='layout'>)</span> <span class='varid'>defa</span>-<a name="line-431"></a>-<a name="line-432"></a> <span class='varid'>checkFixedVal</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>XmlArrow</span>-<a name="line-433"></a> <span class='varid'>checkFixedVal</span> <span class='varid'>val</span>-<a name="line-434"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>hasAttr</span> <span class='varid'>attName</span>-<a name="line-435"></a> <span class='varop'>>>></span>-<a name="line-436"></a> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='layout'>(</span><span class='varid'>attValue</span> <span class='varop'>/=</span> <span class='varid'>fixedValue</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-437"></a> <span class='layout'>)</span>-<a name="line-438"></a> <span class='varop'>`guards`</span>-<a name="line-439"></a> <span class='varid'>err</span> <span class='layout'>(</span> <span class='str'>"Attribute "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>attName</span> <span class='varop'>++</span> <span class='str'>" of element "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>name</span> <span class='varop'>++</span>-<a name="line-440"></a> <span class='str'>" with value "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>attValue</span> <span class='varop'>++</span> <span class='str'>" must have a value of "</span> <span class='varop'>++</span>-<a name="line-441"></a> <span class='varid'>show</span> <span class='varid'>fixedValue</span> <span class='varop'>++</span> <span class='str'>"."</span> <span class='layout'>)</span>-<a name="line-442"></a> <span class='layout'>)</span>-<a name="line-443"></a> <span class='keyword'>where</span>-<a name="line-444"></a> <span class='varid'>attValue</span> <span class='keyglyph'>=</span> <span class='varid'>normalizeAttributeValue</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>an</span><span class='layout'>)</span> <span class='varid'>val</span>-<a name="line-445"></a>-<a name="line-446"></a><span class='comment'>-- |</span>-<a name="line-447"></a><span class='comment'>-- Validate that an element has no attributes which are not declared.</span>-<a name="line-448"></a><span class='comment'>-- Validity constraint: Attribute Value Type (3.1 \/ p.19 in Spec)</span>-<a name="line-449"></a><span class='comment'>--</span>-<a name="line-450"></a><span class='comment'>-- * 1.parameter dtdPart : the children of the @DOCTYPE@ node</span>-<a name="line-451"></a><span class='comment'>--</span>-<a name="line-452"></a><span class='comment'>-- - 2.parameter nd : element declaration which attributes have to be checked</span>-<a name="line-453"></a><span class='comment'>--</span>-<a name="line-454"></a><span class='comment'>-- - returns : a function which takes an element (XTag), checks if all</span>-<a name="line-455"></a><span class='comment'>-- attributes are declared and returns a list of errors</span>-<a name="line-456"></a>-<a name="line-457"></a><a name="checkNotDeclardAttributes"></a><span class='definition'>checkNotDeclardAttributes</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XmlArrow</span>-<a name="line-458"></a><span class='definition'>checkNotDeclardAttributes</span> <span class='varid'>attrDecls</span> <span class='varid'>elemDescr</span>-<a name="line-459"></a> <span class='keyglyph'>=</span> <span class='varid'>checkNotDeclared</span>-<a name="line-460"></a> <span class='keyword'>where</span>-<a name="line-461"></a> <span class='varid'>elemName</span> <span class='keyglyph'>=</span> <span class='varid'>valueOfDTD</span> <span class='varid'>a_name</span> <span class='varid'>elemDescr</span>-<a name="line-462"></a> <span class='varid'>decls</span> <span class='keyglyph'>=</span> <span class='varid'>isAttlistOfElement</span> <span class='varid'>elemName</span> <span class='varop'>$$</span> <span class='varid'>attrDecls</span>-<a name="line-463"></a>-<a name="line-464"></a> <span class='varid'>checkNotDeclared</span> <span class='keyglyph'>::</span> <span class='conid'>XmlArrow</span>-<a name="line-465"></a> <span class='varid'>checkNotDeclared</span>-<a name="line-466"></a> <span class='keyglyph'>=</span> <span class='varid'>isElem</span>-<a name="line-467"></a> <span class='varop'>`guards`</span>-<a name="line-468"></a> <span class='layout'>(</span> <span class='varid'>getAttrl</span> <span class='varop'>>>></span> <span class='varid'>searchForDeclaredAtt</span> <span class='varid'>elemName</span> <span class='varid'>decls</span> <span class='layout'>)</span>-<a name="line-469"></a>-<a name="line-470"></a> <span class='varid'>searchForDeclaredAtt</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>XmlArrow</span>-<a name="line-471"></a> <span class='varid'>searchForDeclaredAtt</span> <span class='varid'>name</span> <span class='layout'>(</span><span class='varid'>dn</span> <span class='conop'>:</span> <span class='varid'>xs</span><span class='layout'>)</span>-<a name="line-472"></a> <span class='keyglyph'>|</span> <span class='varid'>isDTDAttlistNode</span> <span class='varid'>dn</span>-<a name="line-473"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>getName</span> <span class='varop'>>>></span> <span class='varid'>isA</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>dtd_value</span> <span class='varop'>.</span> <span class='varid'>getDTDAttributes</span> <span class='varop'>$</span> <span class='varid'>dn</span><span class='layout'>)</span> <span class='varop'>/=</span> <span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-474"></a> <span class='varop'>`guards`</span>-<a name="line-475"></a> <span class='varid'>searchForDeclaredAtt</span> <span class='varid'>name</span> <span class='varid'>xs</span>-<a name="line-476"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-477"></a> <span class='keyglyph'>=</span> <span class='varid'>searchForDeclaredAtt</span> <span class='varid'>name</span> <span class='varid'>xs</span>-<a name="line-478"></a>-<a name="line-479"></a> <span class='varid'>searchForDeclaredAtt</span> <span class='varid'>name</span> <span class='conid'>[]</span>-<a name="line-480"></a> <span class='keyglyph'>=</span> <span class='varid'>mkErr</span> <span class='varop'>$<</span> <span class='varid'>getName</span>-<a name="line-481"></a> <span class='keyword'>where</span>-<a name="line-482"></a> <span class='varid'>mkErr</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='varid'>err</span> <span class='layout'>(</span> <span class='str'>"Attribute "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span> <span class='varop'>++</span> <span class='str'>" of element "</span> <span class='varop'>++</span>-<a name="line-483"></a> <span class='varid'>show</span> <span class='varid'>name</span> <span class='varop'>++</span> <span class='str'>" is not declared in DTD."</span> <span class='layout'>)</span>-<a name="line-484"></a>-<a name="line-485"></a><span class='comment'>-- |</span>-<a name="line-486"></a><span class='comment'>-- Validate that the attribute value meets the lexical constraints of its type.</span>-<a name="line-487"></a><span class='comment'>-- Validity constaint: Attribute Value Type (3.1 \/ p.19 in Spec)</span>-<a name="line-488"></a><span class='comment'>--</span>-<a name="line-489"></a><span class='comment'>-- * 1.parameter dtdPart : the children of the @DOCTYPE@ node</span>-<a name="line-490"></a><span class='comment'>--</span>-<a name="line-491"></a><span class='comment'>-- - 2.parameter nd : element declaration which attributes have to be checked</span>-<a name="line-492"></a><span class='comment'>--</span>-<a name="line-493"></a><span class='comment'>-- - returns : a function which takes an element (XTag), checks if all</span>-<a name="line-494"></a><span class='comment'>-- attributes meet the lexical constraints and returns a list of errors</span>-<a name="line-495"></a>-<a name="line-496"></a><a name="checkValuesOfAttributes"></a><span class='definition'>checkValuesOfAttributes</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XmlArrow</span>-<a name="line-497"></a><span class='definition'>checkValuesOfAttributes</span> <span class='varid'>attrDecls</span> <span class='varid'>dtdPart</span> <span class='varid'>elemDescr</span>-<a name="line-498"></a> <span class='keyglyph'>=</span> <span class='varid'>checkValues</span>-<a name="line-499"></a> <span class='keyword'>where</span>-<a name="line-500"></a> <span class='varid'>elemName</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_name</span> <span class='varop'>.</span> <span class='varid'>getDTDAttributes</span> <span class='varop'>$</span> <span class='varid'>elemDescr</span>-<a name="line-501"></a> <span class='varid'>decls</span> <span class='keyglyph'>=</span> <span class='varid'>isAttlistOfElement</span> <span class='varid'>elemName</span> <span class='varop'>$$</span> <span class='varid'>attrDecls</span>-<a name="line-502"></a>-<a name="line-503"></a> <span class='varid'>checkValues</span> <span class='keyglyph'>::</span> <span class='conid'>XmlArrow</span>-<a name="line-504"></a> <span class='varid'>checkValues</span>-<a name="line-505"></a> <span class='keyglyph'>=</span> <span class='varid'>isElem</span>-<a name="line-506"></a> <span class='varop'>`guards`</span>-<a name="line-507"></a> <span class='layout'>(</span> <span class='varid'>checkValue</span> <span class='varop'>$<</span> <span class='varid'>getAttrl</span> <span class='layout'>)</span>-<a name="line-508"></a>-<a name="line-509"></a> <span class='varid'>checkValue</span> <span class='varid'>att</span>-<a name="line-510"></a> <span class='keyglyph'>=</span> <span class='varid'>catA</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='varid'>checkVal</span> <span class='varop'>$</span> <span class='varid'>decls</span>-<a name="line-511"></a> <span class='keyword'>where</span>-<a name="line-512"></a> <span class='varid'>checkVal</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XmlArrow</span>-<a name="line-513"></a> <span class='varid'>checkVal</span> <span class='varid'>attrDecl</span>-<a name="line-514"></a> <span class='keyglyph'>|</span> <span class='varid'>isDTDAttlistNode</span> <span class='varid'>attrDecl</span>-<a name="line-515"></a> <span class='varop'>&&</span>-<a name="line-516"></a> <span class='varid'>nameOfAttr</span> <span class='varid'>att</span> <span class='varop'>==</span> <span class='varid'>dtd_value</span> <span class='varid'>al'</span>-<a name="line-517"></a> <span class='keyglyph'>=</span> <span class='varid'>checkAttributeValue</span> <span class='varid'>dtdPart</span> <span class='varid'>attrDecl</span>-<a name="line-518"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-519"></a> <span class='keyglyph'>=</span> <span class='varid'>none</span>-<a name="line-520"></a> <span class='keyword'>where</span>-<a name="line-521"></a> <span class='varid'>al'</span> <span class='keyglyph'>=</span> <span class='varid'>getDTDAttributes</span> <span class='varid'>attrDecl</span>-<a name="line-522"></a>-<a name="line-523"></a><span class='comment'>-- ------------------------------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-DTDValidation-IdValidation.html
@@ -1,276 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Text.XML.HXT.DTDValidation.IdValidation-<a name="line-5"></a> Copyright : Copyright (C) 2008 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe@fh-wedel.de)-<a name="line-9"></a> Stability : experimental-<a name="line-10"></a> Portability: portable-<a name="line-11"></a>-<a name="line-12"></a> This module provides functions for checking special ID/IDREF/IDREFS constraints.-<a name="line-13"></a>-<a name="line-14"></a> Checking special ID\/IDREF\/IDREFS constraints means:-<a name="line-15"></a>-<a name="line-16"></a> - checking that all ID values are unique.-<a name="line-17"></a>-<a name="line-18"></a> - checking that all IDREF\/IDREFS values match the value of some ID attribute-<a name="line-19"></a>-<a name="line-20"></a> ID-Validation should be started before or after validating the document.-<a name="line-21"></a>-<a name="line-22"></a> First all nodes with ID attributes are collected from the document, then-<a name="line-23"></a> it is validated that values of ID attributes do not occure more than once.-<a name="line-24"></a> During a second iteration over the document it is validated that there exists-<a name="line-25"></a> an ID attribute value for IDREF\/IDREFS attribute values.-<a name="line-26"></a>-<a name="line-27"></a>-}</span>-<a name="line-28"></a>-<a name="line-29"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-30"></a>-<a name="line-31"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DTDValidation</span><span class='varop'>.</span><span class='conid'>IdValidation</span>-<a name="line-32"></a> <span class='layout'>(</span> <span class='varid'>validateIds</span>-<a name="line-33"></a> <span class='layout'>)</span>-<a name="line-34"></a><span class='keyword'>where</span>-<a name="line-35"></a>-<a name="line-36"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>-<a name="line-37"></a>-<a name="line-38"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DTDValidation</span><span class='varop'>.</span><span class='conid'>TypeDefs</span>-<a name="line-39"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DTDValidation</span><span class='varop'>.</span><span class='conid'>AttributeValueValidation</span>-<a name="line-40"></a>-<a name="line-41"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-42"></a>-<a name="line-43"></a><span class='comment'>-- |</span>-<a name="line-44"></a><span class='comment'>-- Lookup-table which maps element names to their validation functions. The</span>-<a name="line-45"></a><span class='comment'>-- validation functions are XmlFilters.</span>-<a name="line-46"></a>-<a name="line-47"></a><a name="IdEnvTable"></a><span class='keyword'>type</span> <span class='conid'>IdEnvTable</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>IdEnv</span><span class='keyglyph'>]</span>-<a name="line-48"></a><a name="IdEnv"></a><span class='keyword'>type</span> <span class='conid'>IdEnv</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>ElemName</span><span class='layout'>,</span> <span class='conid'>IdFct</span><span class='layout'>)</span>-<a name="line-49"></a><a name="ElemName"></a><span class='keyword'>type</span> <span class='conid'>ElemName</span> <span class='keyglyph'>=</span> <span class='conid'>String</span>-<a name="line-50"></a><a name="IdFct"></a><span class='keyword'>type</span> <span class='conid'>IdFct</span> <span class='keyglyph'>=</span> <span class='conid'>XmlArrow</span>-<a name="line-51"></a>-<a name="line-52"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-53"></a>-<a name="line-54"></a><span class='comment'>-- |</span>-<a name="line-55"></a><span class='comment'>-- Perform the validation of the ID/IDREF/IDREFS constraints.</span>-<a name="line-56"></a><span class='comment'>--</span>-<a name="line-57"></a><span class='comment'>-- * 1.parameter dtdPart : the DTD subset (Node @DOCTYPE@) of the XmlTree</span>-<a name="line-58"></a><span class='comment'>--</span>-<a name="line-59"></a><span class='comment'>-- - 2.parameter doc : the document subset of the XmlTree</span>-<a name="line-60"></a><span class='comment'>--</span>-<a name="line-61"></a><span class='comment'>-- - returns : a list of errors</span>-<a name="line-62"></a>-<a name="line-63"></a><a name="validateIds"></a><span class='definition'>validateIds</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XmlArrow</span>-<a name="line-64"></a><span class='definition'>validateIds</span> <span class='varid'>dtdPart</span>-<a name="line-65"></a> <span class='keyglyph'>=</span> <span class='varid'>validateIds'</span> <span class='varop'>$<</span> <span class='varid'>listA</span> <span class='layout'>(</span><span class='varid'>traverseTree</span> <span class='varid'>idEnv</span><span class='layout'>)</span>-<a name="line-66"></a> <span class='keyword'>where</span>-<a name="line-67"></a> <span class='varid'>idAttrTypes</span> <span class='keyglyph'>=</span> <span class='varid'>runLA</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>>>></span> <span class='varid'>isIdAttrType</span><span class='layout'>)</span> <span class='varid'>dtdPart</span>-<a name="line-68"></a> <span class='varid'>elements</span> <span class='keyglyph'>=</span> <span class='varid'>runLA</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>>>></span> <span class='varid'>isDTDElement</span><span class='layout'>)</span> <span class='varid'>dtdPart</span>-<a name="line-69"></a> <span class='varid'>atts</span> <span class='keyglyph'>=</span> <span class='varid'>runLA</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>>>></span> <span class='varid'>isDTDAttlist</span><span class='layout'>)</span> <span class='varid'>dtdPart</span>-<a name="line-70"></a> <span class='varid'>idEnv</span> <span class='keyglyph'>=</span> <span class='varid'>buildIdCollectorFcts</span> <span class='varid'>idAttrTypes</span>-<a name="line-71"></a>-<a name="line-72"></a> <span class='varid'>validateIds'</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>XmlArrow</span>-<a name="line-73"></a> <span class='varid'>validateIds'</span> <span class='varid'>idNodeList</span>-<a name="line-74"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>constA</span> <span class='varid'>idNodeList</span> <span class='varop'>>>></span> <span class='varid'>checkForUniqueIds</span> <span class='varid'>idAttrTypes</span> <span class='layout'>)</span>-<a name="line-75"></a> <span class='varop'><+></span>-<a name="line-76"></a> <span class='varid'>checkIdReferences</span> <span class='varid'>idRefEnv</span>-<a name="line-77"></a> <span class='keyword'>where</span>-<a name="line-78"></a> <span class='varid'>idRefEnv</span> <span class='keyglyph'>=</span> <span class='varid'>buildIdrefValidationFcts</span> <span class='varid'>idAttrTypes</span> <span class='varid'>elements</span> <span class='varid'>atts</span> <span class='varid'>idNodeList</span>-<a name="line-79"></a>-<a name="line-80"></a>-<a name="line-81"></a>-<a name="line-82"></a><span class='comment'>-- |</span>-<a name="line-83"></a><span class='comment'>-- Traverse the XmlTree in preorder.</span>-<a name="line-84"></a><span class='comment'>--</span>-<a name="line-85"></a><span class='comment'>-- * 1.parameter idEnv : lookup-table which maps element names to their validation functions</span>-<a name="line-86"></a><span class='comment'>--</span>-<a name="line-87"></a><span class='comment'>-- - returns : list of errors</span>-<a name="line-88"></a>-<a name="line-89"></a><a name="traverseTree"></a><span class='definition'>traverseTree</span> <span class='keyglyph'>::</span> <span class='conid'>IdEnvTable</span> <span class='keyglyph'>-></span> <span class='conid'>XmlArrow</span>-<a name="line-90"></a><span class='definition'>traverseTree</span> <span class='varid'>idEnv</span>-<a name="line-91"></a> <span class='keyglyph'>=</span> <span class='varid'>multi</span> <span class='layout'>(</span><span class='varid'>isElem</span> <span class='varop'>`guards`</span> <span class='layout'>(</span><span class='varid'>idFct</span> <span class='varop'>$<</span> <span class='varid'>getName</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-92"></a> <span class='keyword'>where</span>-<a name="line-93"></a> <span class='varid'>idFct</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>XmlArrow</span>-<a name="line-94"></a> <span class='varid'>idFct</span> <span class='varid'>name</span> <span class='keyglyph'>=</span> <span class='varid'>fromMaybe</span> <span class='varid'>none</span> <span class='varop'>.</span> <span class='varid'>lookup</span> <span class='varid'>name</span> <span class='varop'>$</span> <span class='varid'>idEnv</span>-<a name="line-95"></a>-<a name="line-96"></a><span class='comment'>-- |</span>-<a name="line-97"></a><span class='comment'>-- Returns the value of an element's ID attribute. The attribute name has to be</span>-<a name="line-98"></a><span class='comment'>-- retrieved first from the DTD.</span>-<a name="line-99"></a><span class='comment'>--</span>-<a name="line-100"></a><span class='comment'>-- * 1.parameter dtdPart : list of ID attribute definitions from the DTD</span>-<a name="line-101"></a><span class='comment'>--</span>-<a name="line-102"></a><span class='comment'>-- - 2.parameter n : element which ID attribute value should be returned</span>-<a name="line-103"></a><span class='comment'>--</span>-<a name="line-104"></a><span class='comment'>-- - returns : normalized value of the ID attribute</span>-<a name="line-105"></a>-<a name="line-106"></a><a name="getIdValue"></a><span class='definition'>getIdValue</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-107"></a><span class='definition'>getIdValue</span> <span class='varid'>dns</span>-<a name="line-108"></a> <span class='keyglyph'>=</span> <span class='varid'>concat</span> <span class='varop'>.</span> <span class='varid'>runLA</span> <span class='layout'>(</span><span class='varid'>single</span> <span class='varid'>getIdValue'</span><span class='layout'>)</span>-<a name="line-109"></a> <span class='keyword'>where</span>-<a name="line-110"></a> <span class='varid'>getIdValue'</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>-<a name="line-111"></a> <span class='varid'>getIdValue'</span>-<a name="line-112"></a> <span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>`guards`</span> <span class='varid'>catA</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>getIdVal</span> <span class='varid'>dns</span><span class='layout'>)</span>-<a name="line-113"></a> <span class='keyword'>where</span>-<a name="line-114"></a> <span class='varid'>getIdVal</span> <span class='varid'>dn</span>-<a name="line-115"></a> <span class='keyglyph'>|</span> <span class='varid'>isDTDAttlistNode</span> <span class='varid'>dn</span> <span class='keyglyph'>=</span> <span class='varid'>hasName</span> <span class='varid'>elemName</span>-<a name="line-116"></a> <span class='varop'>`guards`</span>-<a name="line-117"></a> <span class='layout'>(</span> <span class='varid'>getAttrValue0</span> <span class='varid'>attrName</span>-<a name="line-118"></a> <span class='varop'>>>></span>-<a name="line-119"></a> <span class='varid'>arr</span> <span class='layout'>(</span><span class='varid'>normalizeAttributeValue</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>dn</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-120"></a> <span class='layout'>)</span>-<a name="line-121"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>none</span>-<a name="line-122"></a> <span class='keyword'>where</span>-<a name="line-123"></a> <span class='varid'>al</span> <span class='keyglyph'>=</span> <span class='varid'>getDTDAttributes</span> <span class='varid'>dn</span>-<a name="line-124"></a> <span class='varid'>elemName</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_name</span> <span class='varid'>al</span>-<a name="line-125"></a> <span class='varid'>attrName</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_value</span> <span class='varid'>al</span>-<a name="line-126"></a>-<a name="line-127"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-128"></a>-<a name="line-129"></a>-<a name="line-130"></a><span class='comment'>-- |</span>-<a name="line-131"></a><span class='comment'>-- Build collector functions which return XTag nodes with ID attributes from</span>-<a name="line-132"></a><span class='comment'>-- a document.</span>-<a name="line-133"></a><span class='comment'>--</span>-<a name="line-134"></a><span class='comment'>-- * 1.parameter dtdPart : the children of the @DOCTYPE@ node</span>-<a name="line-135"></a><span class='comment'>--</span>-<a name="line-136"></a><span class='comment'>-- - returns : lookup-table which maps element names to their collector function</span>-<a name="line-137"></a>-<a name="line-138"></a><a name="buildIdCollectorFcts"></a><span class='definition'>buildIdCollectorFcts</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>IdEnvTable</span>-<a name="line-139"></a><span class='definition'>buildIdCollectorFcts</span> <span class='varid'>idAttrTypes</span>-<a name="line-140"></a> <span class='keyglyph'>=</span> <span class='varid'>concatMap</span> <span class='varid'>buildIdCollectorFct</span> <span class='varid'>idAttrTypes</span>-<a name="line-141"></a> <span class='keyword'>where</span>-<a name="line-142"></a> <span class='varid'>buildIdCollectorFct</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>IdEnv</span><span class='keyglyph'>]</span>-<a name="line-143"></a> <span class='varid'>buildIdCollectorFct</span> <span class='varid'>dn</span>-<a name="line-144"></a> <span class='keyglyph'>|</span> <span class='varid'>isDTDAttlistNode</span> <span class='varid'>dn</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>elemName</span><span class='layout'>,</span> <span class='varid'>hasAttr</span> <span class='varid'>attrName</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-145"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-146"></a> <span class='keyword'>where</span>-<a name="line-147"></a> <span class='varid'>al</span> <span class='keyglyph'>=</span> <span class='varid'>getDTDAttributes</span> <span class='varid'>dn</span>-<a name="line-148"></a> <span class='varid'>elemName</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_name</span> <span class='varid'>al</span>-<a name="line-149"></a> <span class='varid'>attrName</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_value</span> <span class='varid'>al</span>-<a name="line-150"></a>-<a name="line-151"></a><span class='comment'>-- |</span>-<a name="line-152"></a><span class='comment'>-- Build validation functions for checking if IDREF\/IDREFS values match a value</span>-<a name="line-153"></a><span class='comment'>-- of some ID attributes.</span>-<a name="line-154"></a><span class='comment'>--</span>-<a name="line-155"></a><span class='comment'>-- * 1.parameter dtdPart : the children of the @DOCTYPE@ node</span>-<a name="line-156"></a><span class='comment'>--</span>-<a name="line-157"></a><span class='comment'>-- - 2.parameter idNodeList : list of all XTag nodes with ID attributes</span>-<a name="line-158"></a><span class='comment'>--</span>-<a name="line-159"></a><span class='comment'>-- - returns : lookup-table which maps element names to their validation function</span>-<a name="line-160"></a>-<a name="line-161"></a><a name="buildIdrefValidationFcts"></a><span class='definition'>buildIdrefValidationFcts</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>IdEnvTable</span>-<a name="line-162"></a><span class='definition'>buildIdrefValidationFcts</span> <span class='varid'>idAttrTypes</span> <span class='varid'>elements</span> <span class='varid'>atts</span> <span class='varid'>idNodeList</span>-<a name="line-163"></a> <span class='keyglyph'>=</span> <span class='varid'>concatMap</span> <span class='varid'>buildElemValidationFct</span> <span class='varid'>elements</span>-<a name="line-164"></a> <span class='keyword'>where</span>-<a name="line-165"></a> <span class='varid'>idValueList</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>getIdValue</span> <span class='varid'>idAttrTypes</span><span class='layout'>)</span> <span class='varid'>idNodeList</span>-<a name="line-166"></a>-<a name="line-167"></a> <span class='varid'>buildElemValidationFct</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>IdEnv</span><span class='keyglyph'>]</span>-<a name="line-168"></a> <span class='varid'>buildElemValidationFct</span> <span class='varid'>dn</span>-<a name="line-169"></a> <span class='keyglyph'>|</span> <span class='varid'>isDTDElementNode</span> <span class='varid'>dn</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>elemName</span><span class='layout'>,</span> <span class='varid'>buildIdrefValidationFct</span> <span class='varid'>idRefAttrTypes</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-170"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-171"></a> <span class='keyword'>where</span>-<a name="line-172"></a> <span class='varid'>al</span> <span class='keyglyph'>=</span> <span class='varid'>getDTDAttributes</span> <span class='varid'>dn</span>-<a name="line-173"></a> <span class='varid'>elemName</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_name</span> <span class='varid'>al</span>-<a name="line-174"></a> <span class='varid'>idRefAttrTypes</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>isAttlistOfElement</span> <span class='varid'>elemName</span> <span class='varop'>>>></span> <span class='varid'>isIdRefAttrType</span><span class='layout'>)</span> <span class='varop'>$$</span> <span class='varid'>atts</span>-<a name="line-175"></a>-<a name="line-176"></a> <span class='varid'>buildIdrefValidationFct</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>XmlArrow</span>-<a name="line-177"></a> <span class='varid'>buildIdrefValidationFct</span>-<a name="line-178"></a> <span class='keyglyph'>=</span> <span class='varid'>catA</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='varid'>buildIdref</span>-<a name="line-179"></a>-<a name="line-180"></a> <span class='varid'>buildIdref</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XmlArrow</span>-<a name="line-181"></a> <span class='varid'>buildIdref</span> <span class='varid'>dn</span>-<a name="line-182"></a> <span class='keyglyph'>|</span> <span class='varid'>isDTDAttlistNode</span> <span class='varid'>dn</span> <span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>>>></span> <span class='layout'>(</span><span class='varid'>checkIdref</span> <span class='varop'>$<</span> <span class='varid'>getName</span><span class='layout'>)</span>-<a name="line-183"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>none</span>-<a name="line-184"></a> <span class='keyword'>where</span>-<a name="line-185"></a> <span class='varid'>al</span> <span class='keyglyph'>=</span> <span class='varid'>getDTDAttributes</span> <span class='varid'>dn</span>-<a name="line-186"></a> <span class='varid'>attrName</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_value</span> <span class='varid'>al</span>-<a name="line-187"></a> <span class='varid'>attrType</span> <span class='keyglyph'>=</span> <span class='varid'>dtd_type</span> <span class='varid'>al</span>-<a name="line-188"></a>-<a name="line-189"></a> <span class='varid'>checkIdref</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>XmlArrow</span>-<a name="line-190"></a> <span class='varid'>checkIdref</span> <span class='varid'>name</span>-<a name="line-191"></a> <span class='keyglyph'>=</span> <span class='varid'>hasAttr</span> <span class='varid'>attrName</span>-<a name="line-192"></a> <span class='varop'>`guards`</span>-<a name="line-193"></a> <span class='layout'>(</span> <span class='varid'>checkIdVal</span> <span class='varop'>$<</span> <span class='varid'>getAttrValue</span> <span class='varid'>attrName</span> <span class='layout'>)</span>-<a name="line-194"></a> <span class='keyword'>where</span>-<a name="line-195"></a> <span class='varid'>checkIdVal</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>XmlArrow</span>-<a name="line-196"></a> <span class='varid'>checkIdVal</span> <span class='varid'>av</span>-<a name="line-197"></a> <span class='keyglyph'>|</span> <span class='varid'>attrType</span> <span class='varop'>==</span> <span class='varid'>k_idref</span>-<a name="line-198"></a> <span class='keyglyph'>=</span> <span class='varid'>checkValueDeclared</span> <span class='varid'>attrValue</span>-<a name="line-199"></a> <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>valueList</span>-<a name="line-200"></a> <span class='keyglyph'>=</span> <span class='varid'>err</span> <span class='layout'>(</span> <span class='str'>"Attribute "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>attrName</span> <span class='varop'>++</span>-<a name="line-201"></a> <span class='str'>" of Element "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>name</span> <span class='varop'>++</span>-<a name="line-202"></a> <span class='str'>" must have at least one name."</span>-<a name="line-203"></a> <span class='layout'>)</span>-<a name="line-204"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-205"></a> <span class='keyglyph'>=</span> <span class='varid'>catA</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='varid'>checkValueDeclared</span> <span class='varop'>$</span> <span class='varid'>valueList</span>-<a name="line-206"></a> <span class='keyword'>where</span>-<a name="line-207"></a> <span class='varid'>valueList</span> <span class='keyglyph'>=</span> <span class='varid'>words</span> <span class='varid'>attrValue</span>-<a name="line-208"></a> <span class='varid'>attrValue</span> <span class='keyglyph'>=</span> <span class='varid'>normalizeAttributeValue</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>dn</span><span class='layout'>)</span> <span class='varid'>av</span>-<a name="line-209"></a>-<a name="line-210"></a> <span class='varid'>checkValueDeclared</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>XmlArrow</span>-<a name="line-211"></a> <span class='varid'>checkValueDeclared</span> <span class='varid'>attrValue</span>-<a name="line-212"></a> <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>attrValue</span> <span class='varop'>`elem`</span> <span class='varid'>idValueList</span>-<a name="line-213"></a> <span class='keyword'>then</span> <span class='varid'>none</span>-<a name="line-214"></a> <span class='keyword'>else</span> <span class='varid'>err</span> <span class='layout'>(</span> <span class='str'>"An Element with identifier "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>attrValue</span> <span class='varop'>++</span>-<a name="line-215"></a> <span class='str'>" must appear in the document."</span>-<a name="line-216"></a> <span class='layout'>)</span>-<a name="line-217"></a>-<a name="line-218"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-219"></a>-<a name="line-220"></a>-<a name="line-221"></a><span class='comment'>-- |</span>-<a name="line-222"></a><span class='comment'>-- Validate that all ID values are unique within a document.</span>-<a name="line-223"></a><span class='comment'>-- Validity constraint: ID (3.3.1 \/p. 25 in Spec)</span>-<a name="line-224"></a><span class='comment'>--</span>-<a name="line-225"></a><span class='comment'>-- * 1.parameter idNodeList : list of all XTag nodes with ID attributes</span>-<a name="line-226"></a><span class='comment'>--</span>-<a name="line-227"></a><span class='comment'>-- - 2.parameter dtdPart : the children of the @DOCTYPE@ node</span>-<a name="line-228"></a><span class='comment'>--</span>-<a name="line-229"></a><span class='comment'>-- - returns : a list of errors</span>-<a name="line-230"></a>-<a name="line-231"></a><a name="checkForUniqueIds"></a><span class='definition'>checkForUniqueIds</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>LA</span> <span class='conid'>XmlTrees</span> <span class='conid'>XmlTree</span>-<a name="line-232"></a><span class='definition'>checkForUniqueIds</span> <span class='varid'>idAttrTypes</span> <span class='comment'>-- idNodeList</span>-<a name="line-233"></a> <span class='keyglyph'>=</span> <span class='varid'>fromSLA</span> <span class='conid'>[]</span> <span class='layout'>(</span> <span class='varid'>unlistA</span>-<a name="line-234"></a> <span class='varop'>>>></span>-<a name="line-235"></a> <span class='varid'>isElem</span>-<a name="line-236"></a> <span class='varop'>>>></span>-<a name="line-237"></a> <span class='layout'>(</span><span class='varid'>checkForUniqueId</span> <span class='varop'>$<<</span> <span class='varid'>getName</span> <span class='varop'>&&&</span> <span class='varid'>this</span><span class='layout'>)</span>-<a name="line-238"></a> <span class='layout'>)</span>-<a name="line-239"></a> <span class='keyword'>where</span>-<a name="line-240"></a> <span class='varid'>checkForUniqueId</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>SLA</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-241"></a> <span class='varid'>checkForUniqueId</span> <span class='varid'>name</span> <span class='varid'>x</span>-<a name="line-242"></a> <span class='keyglyph'>=</span> <span class='varid'>ifA</span> <span class='layout'>(</span> <span class='varid'>getState</span>-<a name="line-243"></a> <span class='varop'>>>></span>-<a name="line-244"></a> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>attrValue</span> <span class='varop'>`elem`</span><span class='layout'>)</span>-<a name="line-245"></a> <span class='layout'>)</span>-<a name="line-246"></a> <span class='layout'>(</span><span class='varid'>err</span> <span class='layout'>(</span> <span class='str'>"Attribute value "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>attrValue</span> <span class='varop'>++</span> <span class='str'>" of type ID for element "</span> <span class='varop'>++</span>-<a name="line-247"></a> <span class='varid'>show</span> <span class='varid'>name</span> <span class='varop'>++</span> <span class='str'>" must be unique within the document."</span> <span class='layout'>)</span><span class='layout'>)</span>-<a name="line-248"></a> <span class='layout'>(</span><span class='varid'>nextState</span> <span class='layout'>(</span><span class='varid'>attrValue</span><span class='conop'>:</span><span class='layout'>)</span> <span class='varop'>>>></span> <span class='varid'>none</span><span class='layout'>)</span>-<a name="line-249"></a> <span class='keyword'>where</span>-<a name="line-250"></a> <span class='varid'>attrValue</span> <span class='keyglyph'>=</span> <span class='varid'>getIdValue</span> <span class='layout'>(</span><span class='varid'>isAttlistOfElement</span> <span class='varid'>name</span> <span class='varop'>$$</span> <span class='varid'>idAttrTypes</span><span class='layout'>)</span> <span class='varid'>x</span>-<a name="line-251"></a>-<a name="line-252"></a><span class='comment'>-- |</span>-<a name="line-253"></a><span class='comment'>-- Validate that all IDREF\/IDREFS values match the value of some ID attribute.</span>-<a name="line-254"></a><span class='comment'>-- Validity constraint: IDREF (3.3.1 \/ p.26 in Spec)</span>-<a name="line-255"></a><span class='comment'>--</span>-<a name="line-256"></a><span class='comment'>-- * 1.parameter idRefEnv : lookup-table which maps element names to their validation function</span>-<a name="line-257"></a><span class='comment'>--</span>-<a name="line-258"></a><span class='comment'>-- - 2.parameter doc : the document to validate</span>-<a name="line-259"></a><span class='comment'>--</span>-<a name="line-260"></a><span class='comment'>-- - returns : a list of errors</span>-<a name="line-261"></a>-<a name="line-262"></a><a name="checkIdReferences"></a><span class='definition'>checkIdReferences</span> <span class='keyglyph'>::</span> <span class='conid'>IdEnvTable</span> <span class='keyglyph'>-></span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-263"></a><span class='definition'>checkIdReferences</span> <span class='varid'>idRefEnv</span>-<a name="line-264"></a> <span class='keyglyph'>=</span> <span class='varid'>traverseTree</span> <span class='varid'>idRefEnv</span>-<a name="line-265"></a>-<a name="line-266"></a><span class='comment'>-- ------------------------------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-DTDValidation-RE.html
@@ -1,351 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Text.XML.HXT.DTDValidation.RE-<a name="line-5"></a> Copyright : Copyright (C) 2008 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe@fh-wedel.de)-<a name="line-9"></a> Stability : experimental-<a name="line-10"></a> Portability: portable-<a name="line-11"></a>-<a name="line-12"></a> A module for regular expression matching based on derivatives of regular expressions.-<a name="line-13"></a>-<a name="line-14"></a> 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>>).-<a name="line-15"></a> Tested and extended by Martin Schmidt.-<a name="line-16"></a>-<a name="line-17"></a> Further references for the algorithm:-<a name="line-18"></a>-<a name="line-19"></a> Janusz A. Brzozowski.-<a name="line-20"></a>-<a name="line-21"></a> Derivatives of Regular Expressions. Journal of the ACM, Volume 11, Issue 4, 1964. -<a name="line-22"></a>-<a name="line-23"></a> Mark Hopkins.-<a name="line-24"></a>-<a name="line-25"></a> Regular Expression Package. Posted to comp.compilers, 1994.-<a name="line-26"></a> Available per FTP at <ftp://iecc.com/pub/file/regex.tar.gz>.-<a name="line-27"></a>-}</span>-<a name="line-28"></a>-<a name="line-29"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-30"></a>-<a name="line-31"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DTDValidation</span><span class='varop'>.</span><span class='conid'>RE</span>-<a name="line-32"></a> <span class='layout'>(</span> <span class='conid'>RE</span><span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span>-<a name="line-33"></a>-<a name="line-34"></a> <span class='layout'>,</span> <span class='varid'>re_unit</span>-<a name="line-35"></a> <span class='layout'>,</span> <span class='varid'>re_zero</span>-<a name="line-36"></a> <span class='layout'>,</span> <span class='varid'>re_sym</span>-<a name="line-37"></a> <span class='layout'>,</span> <span class='varid'>re_rep</span>-<a name="line-38"></a> <span class='layout'>,</span> <span class='varid'>re_plus</span>-<a name="line-39"></a> <span class='layout'>,</span> <span class='varid'>re_opt</span>-<a name="line-40"></a> <span class='layout'>,</span> <span class='varid'>re_seq</span>-<a name="line-41"></a> <span class='layout'>,</span> <span class='varid'>re_alt</span>-<a name="line-42"></a> <span class='layout'>,</span> <span class='varid'>re_dot</span>-<a name="line-43"></a>-<a name="line-44"></a> <span class='layout'>,</span> <span class='varid'>checkRE</span>-<a name="line-45"></a> <span class='layout'>,</span> <span class='varid'>matches</span>-<a name="line-46"></a> <span class='layout'>,</span> <span class='varid'>nullable</span>-<a name="line-47"></a> <span class='layout'>,</span> <span class='varid'>printRE</span>-<a name="line-48"></a> <span class='layout'>)</span>-<a name="line-49"></a><span class='keyword'>where</span>-<a name="line-50"></a>-<a name="line-51"></a><span class='comment'>-- |</span>-<a name="line-52"></a><span class='comment'>-- Data type for regular expressions.</span>-<a name="line-53"></a>-<a name="line-54"></a><a name="RE"></a><span class='keyword'>data</span> <span class='conid'>RE</span> <span class='varid'>a</span> <span class='keyglyph'>=</span>-<a name="line-55"></a> <span class='conid'>RE_ZERO</span> <span class='conid'>String</span> <span class='comment'>--' L(0) = {} (empty set)</span>-<a name="line-56"></a> <span class='keyglyph'>|</span> <span class='conid'>RE_UNIT</span> <span class='comment'>--' L(1) = { [] } (empty sequence)</span>-<a name="line-57"></a> <span class='keyglyph'>|</span> <span class='conid'>RE_SYM</span> <span class='varid'>a</span> <span class='comment'>--' L(x) = { [x] }</span>-<a name="line-58"></a> <span class='keyglyph'>|</span> <span class='conid'>RE_DOT</span> <span class='comment'>--' accept any single symbol</span>-<a name="line-59"></a> <span class='keyglyph'>|</span> <span class='conid'>RE_REP</span> <span class='layout'>(</span><span class='conid'>RE</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='comment'>--' L(e*) = { [] } `union` L(e+)</span>-<a name="line-60"></a> <span class='keyglyph'>|</span> <span class='conid'>RE_PLUS</span> <span class='layout'>(</span><span class='conid'>RE</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='comment'>--' L(e+) = { x ++ y | x <- L(e), y <- L(e*) }</span>-<a name="line-61"></a> <span class='keyglyph'>|</span> <span class='conid'>RE_OPT</span> <span class='layout'>(</span><span class='conid'>RE</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='comment'>--' L(e?) = L(e) `union` { [] }</span>-<a name="line-62"></a> <span class='keyglyph'>|</span> <span class='conid'>RE_SEQ</span> <span class='layout'>(</span><span class='conid'>RE</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>RE</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='comment'>--' L(e,f) = { x ++ y | x <- L(e), y <- L(f) }</span>-<a name="line-63"></a> <span class='keyglyph'>|</span> <span class='conid'>RE_ALT</span> <span class='layout'>(</span><span class='conid'>RE</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>RE</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='comment'>--' L(e|f) = L(e) `union` L(f)</span>-<a name="line-64"></a> <span class='keyword'>deriving</span> <span class='layout'>(</span><span class='conid'>Show</span><span class='layout'>,</span> <span class='conid'>Eq</span><span class='layout'>)</span>-<a name="line-65"></a>-<a name="line-66"></a>-<a name="line-67"></a>-<a name="line-68"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-69"></a><span class='comment'>-- Constructor functions to simplify regular expressions when constructing them.</span>-<a name="line-70"></a>-<a name="line-71"></a><span class='comment'>-- |</span>-<a name="line-72"></a><span class='comment'>-- Constructs a regular expression for an empty set.</span>-<a name="line-73"></a><span class='comment'>--</span>-<a name="line-74"></a><span class='comment'>-- * 1.parameter errMsg : error message</span>-<a name="line-75"></a><span class='comment'>--</span>-<a name="line-76"></a><span class='comment'>-- - returns : regular expression for an empty set</span>-<a name="line-77"></a>-<a name="line-78"></a><a name="re_zero"></a><span class='definition'>re_zero</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>RE</span> <span class='varid'>a</span>-<a name="line-79"></a><span class='definition'>re_zero</span> <span class='varid'>m</span> <span class='keyglyph'>=</span> <span class='conid'>RE_ZERO</span> <span class='varid'>m</span>-<a name="line-80"></a>-<a name="line-81"></a>-<a name="line-82"></a><span class='comment'>-- |</span>-<a name="line-83"></a><span class='comment'>-- Constructs a regular expression for an empty sequence.</span>-<a name="line-84"></a><span class='comment'>--</span>-<a name="line-85"></a><span class='comment'>-- - returns : regular expression for an empty sequence</span>-<a name="line-86"></a>-<a name="line-87"></a><a name="re_unit"></a><span class='definition'>re_unit</span> <span class='keyglyph'>::</span> <span class='conid'>RE</span> <span class='varid'>a</span>-<a name="line-88"></a><span class='definition'>re_unit</span> <span class='keyglyph'>=</span> <span class='conid'>RE_UNIT</span>-<a name="line-89"></a>-<a name="line-90"></a>-<a name="line-91"></a><span class='comment'>-- |</span>-<a name="line-92"></a><span class='comment'>-- Constructs a regular expression for accepting a symbol</span>-<a name="line-93"></a><span class='comment'>--</span>-<a name="line-94"></a><span class='comment'>-- * 1.parameter sym : the symbol to be accepted</span>-<a name="line-95"></a><span class='comment'>--</span>-<a name="line-96"></a><span class='comment'>-- - returns : regular expression for accepting a symbol</span>-<a name="line-97"></a>-<a name="line-98"></a><a name="re_sym"></a><span class='definition'>re_sym</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>RE</span> <span class='varid'>a</span>-<a name="line-99"></a><span class='definition'>re_sym</span> <span class='varid'>x</span> <span class='keyglyph'>=</span> <span class='conid'>RE_SYM</span> <span class='varid'>x</span>-<a name="line-100"></a>-<a name="line-101"></a>-<a name="line-102"></a><span class='comment'>-- |</span>-<a name="line-103"></a><span class='comment'>-- Constructs a regular expression for accepting any singel symbol</span>-<a name="line-104"></a><span class='comment'>--</span>-<a name="line-105"></a><span class='comment'>-- - returns : regular expression for accepting any singel symbol</span>-<a name="line-106"></a>-<a name="line-107"></a><a name="re_dot"></a><span class='definition'>re_dot</span> <span class='keyglyph'>::</span> <span class='conid'>RE</span> <span class='varid'>a</span>-<a name="line-108"></a><span class='definition'>re_dot</span> <span class='keyglyph'>=</span> <span class='conid'>RE_DOT</span>-<a name="line-109"></a>-<a name="line-110"></a>-<a name="line-111"></a><span class='comment'>-- |</span>-<a name="line-112"></a><span class='comment'>-- Constructs an optional repetition (*) of a regular expression</span>-<a name="line-113"></a><span class='comment'>--</span>-<a name="line-114"></a><span class='comment'>-- * 1.parameter re_a : regular expression to be repeted</span>-<a name="line-115"></a><span class='comment'>--</span>-<a name="line-116"></a><span class='comment'>-- - returns : new regular expression</span>-<a name="line-117"></a>-<a name="line-118"></a><a name="re_rep"></a><span class='definition'>re_rep</span> <span class='keyglyph'>::</span> <span class='conid'>RE</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>RE</span> <span class='varid'>a</span>-<a name="line-119"></a><span class='definition'>re_rep</span> <span class='conid'>RE_UNIT</span> <span class='keyglyph'>=</span> <span class='conid'>RE_UNIT</span>-<a name="line-120"></a><span class='definition'>re_rep</span> <span class='layout'>(</span><span class='conid'>RE_ZERO</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>RE_UNIT</span>-<a name="line-121"></a><span class='definition'>re_rep</span> <span class='varid'>e</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>RE_REP</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>RE_REP</span> <span class='layout'>(</span><span class='varid'>rem_rep</span> <span class='varid'>e</span><span class='layout'>)</span> <span class='comment'>-- remove nested reps</span>-<a name="line-122"></a><span class='definition'>re_rep</span> <span class='varid'>e</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>RE_ALT</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>RE_REP</span> <span class='layout'>(</span><span class='varid'>rem_rep</span> <span class='varid'>e</span><span class='layout'>)</span> <span class='comment'>-- remove nested reps in alternatives</span>-<a name="line-123"></a><span class='definition'>re_rep</span> <span class='varid'>e</span> <span class='keyglyph'>=</span> <span class='conid'>RE_REP</span> <span class='varid'>e</span>-<a name="line-124"></a>-<a name="line-125"></a><span class='comment'>-- |</span>-<a name="line-126"></a><span class='comment'>-- remove redundant nested *'s in RE</span>-<a name="line-127"></a><span class='comment'>-- theoretically this is unneccessary,</span>-<a name="line-128"></a><span class='comment'>-- but without this simplification the runtime can increase exponentally</span>-<a name="line-129"></a><span class='comment'>-- when computing deltas, e.g. for a** or (a|b*)* which is the same as (a|b)*</span>-<a name="line-130"></a>-<a name="line-131"></a><a name="rem_rep"></a><span class='definition'>rem_rep</span> <span class='keyglyph'>::</span> <span class='conid'>RE</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>RE</span> <span class='varid'>a</span>-<a name="line-132"></a><span class='definition'>rem_rep</span> <span class='layout'>(</span><span class='conid'>RE_ALT</span> <span class='varid'>e1</span> <span class='varid'>e2</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>RE_ALT</span> <span class='layout'>(</span><span class='varid'>rem_rep</span> <span class='varid'>e1</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>rem_rep</span> <span class='varid'>e2</span><span class='layout'>)</span>-<a name="line-133"></a><span class='definition'>rem_rep</span> <span class='layout'>(</span><span class='conid'>RE_REP</span> <span class='varid'>e1</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>rem_rep</span> <span class='varid'>e1</span>-<a name="line-134"></a><span class='definition'>rem_rep</span> <span class='varid'>e1</span> <span class='keyglyph'>=</span> <span class='varid'>e1</span>-<a name="line-135"></a>-<a name="line-136"></a>-<a name="line-137"></a><span class='comment'>-- |</span>-<a name="line-138"></a><span class='comment'>-- Constructs a repetition (+) of a regular expression</span>-<a name="line-139"></a><span class='comment'>--</span>-<a name="line-140"></a><span class='comment'>-- * 1.parameter re_a : regular expression to be repeted</span>-<a name="line-141"></a><span class='comment'>--</span>-<a name="line-142"></a><span class='comment'>-- - returns : new regular expression</span>-<a name="line-143"></a>-<a name="line-144"></a><a name="re_plus"></a><span class='definition'>re_plus</span> <span class='keyglyph'>::</span> <span class='conid'>RE</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>RE</span> <span class='varid'>a</span>-<a name="line-145"></a><span class='definition'>re_plus</span> <span class='conid'>RE_UNIT</span> <span class='keyglyph'>=</span> <span class='conid'>RE_UNIT</span>-<a name="line-146"></a><span class='definition'>re_plus</span> <span class='layout'>(</span><span class='conid'>RE_ZERO</span> <span class='varid'>m</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>RE_ZERO</span> <span class='varid'>m</span>-<a name="line-147"></a><span class='definition'>re_plus</span> <span class='varid'>e</span> <span class='keyglyph'>=</span> <span class='conid'>RE_PLUS</span> <span class='varid'>e</span>-<a name="line-148"></a>-<a name="line-149"></a>-<a name="line-150"></a><span class='comment'>-- |</span>-<a name="line-151"></a><span class='comment'>-- Constructs an option (?) of a regular expression</span>-<a name="line-152"></a><span class='comment'>--</span>-<a name="line-153"></a><span class='comment'>-- * 1.parameter re_a : regular expression to be optional</span>-<a name="line-154"></a><span class='comment'>--</span>-<a name="line-155"></a><span class='comment'>-- - returns : new regular expression</span>-<a name="line-156"></a>-<a name="line-157"></a><a name="re_opt"></a><span class='definition'>re_opt</span> <span class='keyglyph'>::</span> <span class='conid'>RE</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>RE</span> <span class='varid'>a</span>-<a name="line-158"></a><span class='definition'>re_opt</span> <span class='conid'>RE_UNIT</span> <span class='keyglyph'>=</span> <span class='conid'>RE_UNIT</span>-<a name="line-159"></a><span class='definition'>re_opt</span> <span class='layout'>(</span><span class='conid'>RE_ZERO</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>RE_UNIT</span>-<a name="line-160"></a><span class='definition'>re_opt</span> <span class='varid'>e</span> <span class='keyglyph'>=</span> <span class='conid'>RE_OPT</span> <span class='varid'>e</span>-<a name="line-161"></a>-<a name="line-162"></a>-<a name="line-163"></a><span class='comment'>-- |</span>-<a name="line-164"></a><span class='comment'>-- Constructs a sequence (,) of two regular expressions</span>-<a name="line-165"></a><span class='comment'>--</span>-<a name="line-166"></a><span class='comment'>-- * 1.parameter re_a : first regular expression in sequence</span>-<a name="line-167"></a><span class='comment'>--</span>-<a name="line-168"></a><span class='comment'>-- - 2.parameter re_b : second regular expression in sequence</span>-<a name="line-169"></a><span class='comment'>--</span>-<a name="line-170"></a><span class='comment'>-- - returns : new regular expression</span>-<a name="line-171"></a>-<a name="line-172"></a><a name="re_seq"></a><span class='definition'>re_seq</span> <span class='keyglyph'>::</span> <span class='conid'>RE</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>RE</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>RE</span> <span class='varid'>a</span>-<a name="line-173"></a><span class='definition'>re_seq</span> <span class='layout'>(</span><span class='conid'>RE_ZERO</span> <span class='varid'>m</span><span class='layout'>)</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>RE_ZERO</span> <span class='varid'>m</span>-<a name="line-174"></a><span class='definition'>re_seq</span> <span class='conid'>RE_UNIT</span> <span class='varid'>f</span> <span class='keyglyph'>=</span> <span class='varid'>f</span>-<a name="line-175"></a><span class='definition'>re_seq</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>RE_ZERO</span> <span class='varid'>m</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>RE_ZERO</span> <span class='varid'>m</span>-<a name="line-176"></a><span class='definition'>re_seq</span> <span class='varid'>e</span> <span class='conid'>RE_UNIT</span> <span class='keyglyph'>=</span> <span class='varid'>e</span>-<a name="line-177"></a><span class='definition'>re_seq</span> <span class='varid'>e</span> <span class='varid'>f</span> <span class='keyglyph'>=</span> <span class='conid'>RE_SEQ</span> <span class='varid'>e</span> <span class='varid'>f</span>-<a name="line-178"></a>-<a name="line-179"></a>-<a name="line-180"></a><span class='comment'>-- |</span>-<a name="line-181"></a><span class='comment'>-- Constructs an alternative (|) of two regular expressions</span>-<a name="line-182"></a><span class='comment'>--</span>-<a name="line-183"></a><span class='comment'>-- * 1.parameter re_a : first regular expression of alternative</span>-<a name="line-184"></a><span class='comment'>--</span>-<a name="line-185"></a><span class='comment'>-- - 2.parameter re_b : second regular expression of alternative</span>-<a name="line-186"></a><span class='comment'>--</span>-<a name="line-187"></a><span class='comment'>-- - returns : new regular expression</span>-<a name="line-188"></a>-<a name="line-189"></a><a name="re_alt"></a><span class='definition'>re_alt</span> <span class='keyglyph'>::</span> <span class='conid'>RE</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>RE</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>RE</span> <span class='varid'>a</span>-<a name="line-190"></a><span class='definition'>re_alt</span> <span class='layout'>(</span><span class='conid'>RE_ZERO</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='varid'>f</span> <span class='keyglyph'>=</span> <span class='varid'>f</span>-<a name="line-191"></a><span class='definition'>re_alt</span> <span class='varid'>e</span> <span class='layout'>(</span><span class='conid'>RE_ZERO</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>e</span>-<a name="line-192"></a><span class='definition'>re_alt</span> <span class='varid'>e</span> <span class='varid'>f</span> <span class='keyglyph'>=</span> <span class='conid'>RE_ALT</span> <span class='varid'>e</span> <span class='varid'>f</span>-<a name="line-193"></a>-<a name="line-194"></a>-<a name="line-195"></a>-<a name="line-196"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-197"></a>-<a name="line-198"></a>-<a name="line-199"></a><span class='comment'>-- |</span>-<a name="line-200"></a><span class='comment'>-- Checks if a regular expression matches the empty sequence.</span>-<a name="line-201"></a><span class='comment'>--</span>-<a name="line-202"></a><span class='comment'>-- nullable e == [] `in` L(e)</span>-<a name="line-203"></a><span class='comment'>--</span>-<a name="line-204"></a><span class='comment'>-- This check indicates if a regular expression fits to a sentence or not.</span>-<a name="line-205"></a><span class='comment'>--</span>-<a name="line-206"></a><span class='comment'>-- * 1.parameter re : regular expression to be checked</span>-<a name="line-207"></a><span class='comment'>--</span>-<a name="line-208"></a><span class='comment'>-- - returns : true if regular expression matches the empty sequence,</span>-<a name="line-209"></a><span class='comment'>-- otherwise false</span>-<a name="line-210"></a>-<a name="line-211"></a><a name="nullable"></a><span class='definition'>nullable</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Show</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>=></span> <span class='conid'>RE</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-212"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>RE_ZERO</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-213"></a><span class='definition'>nullable</span> <span class='conid'>RE_UNIT</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-214"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>RE_SYM</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-215"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>RE_REP</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-216"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>RE_PLUS</span> <span class='varid'>e</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>nullable</span> <span class='varid'>e</span>-<a name="line-217"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>RE_OPT</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-218"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>RE_SEQ</span> <span class='varid'>e</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>nullable</span> <span class='varid'>e</span> <span class='varop'>&&</span> <span class='varid'>nullable</span> <span class='varid'>f</span>-<a name="line-219"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>RE_ALT</span> <span class='varid'>e</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>nullable</span> <span class='varid'>e</span> <span class='varop'>||</span> <span class='varid'>nullable</span> <span class='varid'>f</span>-<a name="line-220"></a><span class='definition'>nullable</span> <span class='conid'>RE_DOT</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-221"></a>-<a name="line-222"></a>-<a name="line-223"></a><span class='comment'>-- |</span>-<a name="line-224"></a><span class='comment'>-- Derives a regular expression with respect to one symbol.</span>-<a name="line-225"></a><span class='comment'>--</span>-<a name="line-226"></a><span class='comment'>-- L(delta e x) = x \ L(e)</span>-<a name="line-227"></a><span class='comment'>--</span>-<a name="line-228"></a><span class='comment'>-- * 1.parameter re : regular expression to be derived</span>-<a name="line-229"></a><span class='comment'>--</span>-<a name="line-230"></a><span class='comment'>-- - 2.parameter sym : the symbol on which the regular expression is applied</span>-<a name="line-231"></a><span class='comment'>--</span>-<a name="line-232"></a><span class='comment'>-- - returns : the derived regular expression</span>-<a name="line-233"></a>-<a name="line-234"></a><a name="delta"></a><span class='definition'>delta</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Eq</span> <span class='varid'>a</span><span class='layout'>,</span> <span class='conid'>Show</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>=></span> <span class='conid'>RE</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>RE</span> <span class='varid'>a</span>-<a name="line-235"></a><span class='definition'>delta</span> <span class='varid'>re</span> <span class='varid'>x</span> <span class='keyglyph'>=</span> <span class='keyword'>case</span> <span class='varid'>re</span> <span class='keyword'>of</span>-<a name="line-236"></a> <span class='conid'>RE_ZERO</span> <span class='keyword'>_</span> <span class='keyglyph'>-></span> <span class='varid'>re</span> <span class='comment'>-- re_zero m</span>-<a name="line-237"></a> <span class='conid'>RE_UNIT</span> <span class='keyglyph'>-></span> <span class='varid'>re_zero</span> <span class='layout'>(</span><span class='str'>"Symbol "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>x</span> <span class='varop'>++</span> <span class='str'>" unexpected."</span><span class='layout'>)</span>-<a name="line-238"></a> <span class='conid'>RE_SYM</span> <span class='varid'>sym</span>-<a name="line-239"></a> <span class='keyglyph'>|</span> <span class='varid'>x</span> <span class='varop'>==</span> <span class='varid'>sym</span> <span class='keyglyph'>-></span> <span class='varid'>re_unit</span>-<a name="line-240"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>-></span> <span class='varid'>re_zero</span> <span class='layout'>(</span><span class='str'>"Symbol "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>sym</span> <span class='varop'>++</span> <span class='str'>" expected, but symbol "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>x</span> <span class='varop'>++</span> <span class='str'>" found."</span><span class='layout'>)</span>-<a name="line-241"></a> <span class='conid'>RE_REP</span> <span class='varid'>e</span> <span class='keyglyph'>-></span> <span class='varid'>re_seq</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>e</span> <span class='varid'>x</span><span class='layout'>)</span> <span class='varid'>re</span> <span class='comment'>-- (re_rep e)</span>-<a name="line-242"></a> <span class='conid'>RE_PLUS</span> <span class='varid'>e</span> <span class='keyglyph'>-></span> <span class='varid'>re_seq</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>e</span> <span class='varid'>x</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>re_rep</span> <span class='varid'>e</span><span class='layout'>)</span>-<a name="line-243"></a> <span class='conid'>RE_OPT</span> <span class='varid'>e</span> <span class='keyglyph'>-></span> <span class='varid'>delta</span> <span class='varid'>e</span> <span class='varid'>x</span>-<a name="line-244"></a> <span class='conid'>RE_SEQ</span> <span class='varid'>e</span> <span class='varid'>f</span>-<a name="line-245"></a> <span class='keyglyph'>|</span> <span class='varid'>nullable</span> <span class='varid'>e</span> <span class='keyglyph'>-></span> <span class='varid'>re_alt</span> <span class='layout'>(</span><span class='varid'>re_seq</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>e</span> <span class='varid'>x</span><span class='layout'>)</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>f</span> <span class='varid'>x</span><span class='layout'>)</span>-<a name="line-246"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>-></span> <span class='varid'>re_seq</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>e</span> <span class='varid'>x</span><span class='layout'>)</span> <span class='varid'>f</span>-<a name="line-247"></a> <span class='conid'>RE_ALT</span> <span class='varid'>e</span> <span class='varid'>f</span> <span class='keyglyph'>-></span> <span class='varid'>re_alt</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>e</span> <span class='varid'>x</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>f</span> <span class='varid'>x</span><span class='layout'>)</span>-<a name="line-248"></a> <span class='conid'>RE_DOT</span> <span class='keyglyph'>-></span> <span class='varid'>re_unit</span>-<a name="line-249"></a>-<a name="line-250"></a>-<a name="line-251"></a><span class='comment'>-- |</span>-<a name="line-252"></a><span class='comment'>-- Derives a regular expression with respect to a sentence.</span>-<a name="line-253"></a><span class='comment'>--</span>-<a name="line-254"></a><span class='comment'>-- * 1.parameter re : regular expression</span>-<a name="line-255"></a><span class='comment'>--</span>-<a name="line-256"></a><span class='comment'>-- - 2.parameter s : sentence to which the regular expression is applied</span>-<a name="line-257"></a><span class='comment'>--</span>-<a name="line-258"></a><span class='comment'>-- - returns : the derived regular expression</span>-<a name="line-259"></a>-<a name="line-260"></a><a name="matches"></a><span class='definition'>matches</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Eq</span> <span class='varid'>a</span><span class='layout'>,</span> <span class='conid'>Show</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>=></span> <span class='conid'>RE</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>RE</span> <span class='varid'>a</span>-<a name="line-261"></a><span class='definition'>matches</span> <span class='varid'>e</span> <span class='keyglyph'>=</span> <span class='varid'>foldl</span> <span class='varid'>delta</span> <span class='varid'>e</span>-<a name="line-262"></a>-<a name="line-263"></a>-<a name="line-264"></a><span class='comment'>-- |</span>-<a name="line-265"></a><span class='comment'>-- Checks if an input matched a regular expression. The function should be</span>-<a name="line-266"></a><span class='comment'>-- called after matches.</span>-<a name="line-267"></a><span class='comment'>--</span>-<a name="line-268"></a><span class='comment'>-- Was the sentence used in @matches@ in the language of the regular expression?</span>-<a name="line-269"></a><span class='comment'>-- -> matches e s == s `in` L(e)?</span>-<a name="line-270"></a><span class='comment'>--</span>-<a name="line-271"></a><span class='comment'>-- * 1.parameter re : the derived regular expression</span>-<a name="line-272"></a><span class='comment'>--</span>-<a name="line-273"></a><span class='comment'>-- - returns : empty String if input matched the regular expression, otherwise</span>-<a name="line-274"></a><span class='comment'>-- an error message is returned</span>-<a name="line-275"></a>-<a name="line-276"></a><a name="checkRE"></a><span class='definition'>checkRE</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Show</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>=></span> <span class='conid'>RE</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-277"></a><span class='definition'>checkRE</span> <span class='layout'>(</span><span class='conid'>RE_UNIT</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>""</span>-<a name="line-278"></a><span class='definition'>checkRE</span> <span class='layout'>(</span><span class='conid'>RE_ZERO</span> <span class='varid'>m</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>m</span>-<a name="line-279"></a><span class='definition'>checkRE</span> <span class='varid'>re</span>-<a name="line-280"></a> <span class='keyglyph'>|</span> <span class='varid'>nullable</span> <span class='varid'>re</span> <span class='keyglyph'>=</span> <span class='str'>""</span>-<a name="line-281"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='str'>"Input must match "</span> <span class='varop'>++</span> <span class='varid'>printRE</span> <span class='varid'>re</span>-<a name="line-282"></a>-<a name="line-283"></a>-<a name="line-284"></a>-<a name="line-285"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-286"></a>-<a name="line-287"></a>-<a name="line-288"></a>-<a name="line-289"></a><span class='comment'>-- |</span>-<a name="line-290"></a><span class='comment'>-- Constructs a string representation of a regular expression.</span>-<a name="line-291"></a><span class='comment'>--</span>-<a name="line-292"></a><span class='comment'>-- * 1.parameter re : a regular expression</span>-<a name="line-293"></a><span class='comment'>--</span>-<a name="line-294"></a><span class='comment'>-- - returns : the string representation of the regular expression</span>-<a name="line-295"></a>-<a name="line-296"></a><a name="printRE"></a><span class='definition'>printRE</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Show</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>=></span> <span class='conid'>RE</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-297"></a><span class='definition'>printRE</span> <span class='varid'>re'</span>-<a name="line-298"></a> <span class='keyglyph'>=</span> <span class='str'>"( "</span> <span class='varop'>++</span> <span class='varid'>printRE1</span> <span class='varid'>re'</span> <span class='varop'>++</span> <span class='str'>" )"</span>-<a name="line-299"></a> <span class='keyword'>where</span>-<a name="line-300"></a> <span class='varid'>printRE1</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Show</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>=></span> <span class='conid'>RE</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-301"></a> <span class='varid'>printRE1</span> <span class='varid'>re</span> <span class='keyglyph'>=</span> <span class='keyword'>case</span> <span class='varid'>re</span> <span class='keyword'>of</span>-<a name="line-302"></a> <span class='conid'>RE_ZERO</span> <span class='varid'>m</span> <span class='keyglyph'>-></span> <span class='str'>"ERROR: "</span> <span class='varop'>++</span> <span class='varid'>m</span>-<a name="line-303"></a> <span class='conid'>RE_UNIT</span> <span class='keyglyph'>-></span> <span class='str'>""</span>-<a name="line-304"></a> <span class='conid'>RE_SYM</span> <span class='varid'>sym</span> <span class='keyglyph'>-></span> <span class='varid'>show</span> <span class='varid'>sym</span>-<a name="line-305"></a> <span class='conid'>RE_DOT</span> <span class='keyglyph'>-></span> <span class='str'>"."</span>-<a name="line-306"></a> <span class='conid'>RE_REP</span> <span class='varid'>e</span>-<a name="line-307"></a> <span class='keyglyph'>|</span> <span class='varid'>isSingle</span> <span class='varid'>e</span> <span class='keyglyph'>-></span> <span class='varid'>printRE1</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>"*"</span>-<a name="line-308"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>-></span> <span class='str'>"("</span> <span class='varop'>++</span> <span class='varid'>printRE1</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>")*"</span>-<a name="line-309"></a> <span class='conid'>RE_PLUS</span> <span class='varid'>e</span>-<a name="line-310"></a> <span class='keyglyph'>|</span> <span class='varid'>isSingle</span> <span class='varid'>e</span> <span class='keyglyph'>-></span> <span class='varid'>printRE1</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>"+"</span>-<a name="line-311"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>-></span> <span class='str'>"("</span> <span class='varop'>++</span> <span class='varid'>printRE1</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>")+"</span>-<a name="line-312"></a> <span class='conid'>RE_OPT</span> <span class='varid'>e</span>-<a name="line-313"></a> <span class='keyglyph'>|</span> <span class='varid'>isSingle</span> <span class='varid'>e</span> <span class='keyglyph'>-></span> <span class='varid'>printRE1</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>"?"</span>-<a name="line-314"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>-></span> <span class='str'>"("</span> <span class='varop'>++</span> <span class='varid'>printRE1</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>")?"</span>-<a name="line-315"></a> <span class='conid'>RE_SEQ</span> <span class='varid'>e</span> <span class='varid'>f</span>-<a name="line-316"></a> <span class='keyglyph'>|</span> <span class='varid'>isAlt</span> <span class='varid'>e</span> <span class='varop'>&&</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>isAlt</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='str'>"("</span> <span class='varop'>++</span> <span class='varid'>printRE1</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>") , "</span> <span class='varop'>++</span> <span class='varid'>printRE1</span> <span class='varid'>f</span>-<a name="line-317"></a> <span class='keyglyph'>|</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>isAlt</span> <span class='varid'>e</span><span class='layout'>)</span> <span class='varop'>&&</span> <span class='varid'>isAlt</span> <span class='varid'>f</span> <span class='keyglyph'>-></span> <span class='varid'>printRE1</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>" , ("</span> <span class='varop'>++</span> <span class='varid'>printRE1</span> <span class='varid'>f</span> <span class='varop'>++</span> <span class='str'>")"</span>-<a name="line-318"></a> <span class='keyglyph'>|</span> <span class='varid'>isAlt</span> <span class='varid'>e</span> <span class='varop'>&&</span> <span class='varid'>isAlt</span> <span class='varid'>f</span> <span class='keyglyph'>-></span> <span class='str'>"("</span> <span class='varop'>++</span> <span class='varid'>printRE1</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>") , ("</span> <span class='varop'>++</span> <span class='varid'>printRE1</span> <span class='varid'>f</span> <span class='varop'>++</span> <span class='str'>")"</span>-<a name="line-319"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>-></span> <span class='varid'>printRE1</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>" , "</span> <span class='varop'>++</span> <span class='varid'>printRE1</span> <span class='varid'>f</span>-<a name="line-320"></a> <span class='conid'>RE_ALT</span> <span class='varid'>e</span> <span class='varid'>f</span>-<a name="line-321"></a> <span class='keyglyph'>|</span> <span class='varid'>isSeq</span> <span class='varid'>e</span> <span class='varop'>&&</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>isSeq</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='str'>"("</span> <span class='varop'>++</span> <span class='varid'>printRE1</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>") | "</span> <span class='varop'>++</span> <span class='varid'>printRE1</span> <span class='varid'>f</span>-<a name="line-322"></a> <span class='keyglyph'>|</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>isSeq</span> <span class='varid'>e</span><span class='layout'>)</span> <span class='varop'>&&</span> <span class='varid'>isSeq</span> <span class='varid'>f</span> <span class='keyglyph'>-></span> <span class='varid'>printRE1</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>" | ("</span> <span class='varop'>++</span> <span class='varid'>printRE1</span> <span class='varid'>f</span> <span class='varop'>++</span> <span class='str'>")"</span>-<a name="line-323"></a> <span class='keyglyph'>|</span> <span class='varid'>isSeq</span> <span class='varid'>e</span> <span class='varop'>&&</span> <span class='varid'>isSeq</span> <span class='varid'>f</span> <span class='keyglyph'>-></span> <span class='str'>"("</span> <span class='varop'>++</span> <span class='varid'>printRE1</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>") | ("</span> <span class='varop'>++</span> <span class='varid'>printRE1</span> <span class='varid'>f</span> <span class='varop'>++</span> <span class='str'>")"</span>-<a name="line-324"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>-></span> <span class='varid'>printRE1</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>" | "</span> <span class='varop'>++</span> <span class='varid'>printRE1</span> <span class='varid'>f</span>-<a name="line-325"></a>-<a name="line-326"></a>-<a name="line-327"></a> <span class='varid'>isSingle</span> <span class='keyglyph'>::</span> <span class='conid'>RE</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-328"></a> <span class='varid'>isSingle</span> <span class='layout'>(</span><span class='conid'>RE_ZERO</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-329"></a> <span class='varid'>isSingle</span> <span class='conid'>RE_UNIT</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-330"></a> <span class='varid'>isSingle</span> <span class='layout'>(</span><span class='conid'>RE_SYM</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-331"></a> <span class='varid'>isSingle</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-332"></a>-<a name="line-333"></a>-<a name="line-334"></a> <span class='varid'>isSeq</span> <span class='keyglyph'>::</span> <span class='conid'>RE</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-335"></a> <span class='varid'>isSeq</span> <span class='layout'>(</span><span class='conid'>RE_SEQ</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-336"></a> <span class='varid'>isSeq</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-337"></a>-<a name="line-338"></a>-<a name="line-339"></a> <span class='varid'>isAlt</span> <span class='keyglyph'>::</span> <span class='conid'>RE</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-340"></a> <span class='varid'>isAlt</span> <span class='layout'>(</span><span class='conid'>RE_ALT</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-341"></a> <span class='varid'>isAlt</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-DTDValidation-TypeDefs.html
@@ -1,175 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Text.XML.HXT.DTDValidation.TypeDefs-<a name="line-5"></a> Copyright : Copyright (C) 2008 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe@fh-wedel.de)-<a name="line-9"></a> Stability : experimental-<a name="line-10"></a> Portability: portable-<a name="line-11"></a>-<a name="line-12"></a> This module provides all datatypes for DTD validation-<a name="line-13"></a>-<a name="line-14"></a>-}</span>-<a name="line-15"></a>-<a name="line-16"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-17"></a>-<a name="line-18"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DTDValidation</span><span class='varop'>.</span><span class='conid'>TypeDefs</span>-<a name="line-19"></a> <span class='layout'>(</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DTDValidation</span><span class='varop'>.</span><span class='conid'>TypeDefs</span>-<a name="line-20"></a> <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>-<a name="line-21"></a> <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlArrow</span>-<a name="line-22"></a> <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span>-<a name="line-23"></a> <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowList</span>-<a name="line-24"></a> <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowIf</span>-<a name="line-25"></a> <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowState</span>-<a name="line-26"></a> <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowTree</span>-<a name="line-27"></a> <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ListArrow</span>-<a name="line-28"></a> <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>StateListArrow</span>-<a name="line-29"></a> <span class='layout'>)</span>-<a name="line-30"></a><span class='keyword'>where</span>-<a name="line-31"></a>-<a name="line-32"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span> <span class='comment'>-- classes</span>-<a name="line-33"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowList</span>-<a name="line-34"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowIf</span>-<a name="line-35"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowState</span>-<a name="line-36"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowTree</span>-<a name="line-37"></a>-<a name="line-38"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ListArrow</span> <span class='comment'>-- arrow types</span>-<a name="line-39"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>StateListArrow</span>-<a name="line-40"></a>-<a name="line-41"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlArrow</span>-<a name="line-42"></a>-<a name="line-43"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>-<a name="line-44"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlNode</span> <span class='keyword'>as</span> <span class='conid'>XN</span>-<a name="line-45"></a>-<a name="line-46"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-47"></a>-<a name="line-48"></a><span class='keyword'>infixr</span> <span class='num'>0</span> <span class='varop'>$$</span>-<a name="line-49"></a>-<a name="line-50"></a><a name="XmlArrow"></a><span class='keyword'>type</span> <span class='conid'>XmlArrow</span> <span class='keyglyph'>=</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-51"></a><a name="XmlArrowS"></a><span class='keyword'>type</span> <span class='conid'>XmlArrowS</span> <span class='keyglyph'>=</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTrees</span>-<a name="line-52"></a>-<a name="line-53"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-54"></a>-<a name="line-55"></a><a name="dtd_name"></a><span class='definition'>dtd_name</span>-<a name="line-56"></a> <span class='layout'>,</span> <span class='varid'>dtd_value</span>-<a name="line-57"></a> <span class='layout'>,</span> <span class='varid'>dtd_type</span>-<a name="line-58"></a> <span class='layout'>,</span> <span class='varid'>dtd_kind</span>-<a name="line-59"></a> <span class='layout'>,</span> <span class='varid'>dtd_modifier</span>-<a name="line-60"></a> <span class='layout'>,</span> <span class='varid'>dtd_default</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-61"></a>-<a name="line-62"></a><span class='definition'>dtd_name</span> <span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>a_name</span>-<a name="line-63"></a><a name="dtd_value"></a><span class='definition'>dtd_value</span> <span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>a_value</span>-<a name="line-64"></a><a name="dtd_type"></a><span class='definition'>dtd_type</span> <span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>a_type</span>-<a name="line-65"></a><a name="dtd_kind"></a><span class='definition'>dtd_kind</span> <span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>a_kind</span>-<a name="line-66"></a><a name="dtd_modifier"></a><span class='definition'>dtd_modifier</span> <span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>a_modifier</span>-<a name="line-67"></a><a name="dtd_default"></a><span class='definition'>dtd_default</span> <span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>a_default</span>-<a name="line-68"></a>-<a name="line-69"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-70"></a>-<a name="line-71"></a><a name="isUnparsedEntity"></a><span class='definition'>isUnparsedEntity</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowDTD</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-72"></a><span class='definition'>isUnparsedEntity</span> <span class='keyglyph'>=</span> <span class='varid'>filterA</span> <span class='varop'>$</span>-<a name="line-73"></a> <span class='varid'>getDTDAttrl</span> <span class='varop'>>>></span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>hasEntry</span> <span class='varid'>k_ndata</span><span class='layout'>)</span>-<a name="line-74"></a>-<a name="line-75"></a><a name="hasDTDAttrValue"></a><span class='definition'>hasDTDAttrValue</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowDTD</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-76"></a><span class='definition'>hasDTDAttrValue</span> <span class='varid'>an</span> <span class='varid'>p</span> <span class='keyglyph'>=</span> <span class='varid'>filterA</span> <span class='varop'>$</span>-<a name="line-77"></a> <span class='varid'>getDTDAttrl</span> <span class='varop'>>>></span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>p</span> <span class='varop'>.</span> <span class='varid'>lookup1</span> <span class='varid'>an</span><span class='layout'>)</span>-<a name="line-78"></a>-<a name="line-79"></a><a name="isRequiredAttrKind"></a><span class='definition'>isRequiredAttrKind</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowDTD</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-80"></a><span class='definition'>isRequiredAttrKind</span> <span class='keyglyph'>=</span> <span class='varid'>hasDTDAttrValue</span> <span class='varid'>a_kind</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='varid'>k_required</span><span class='layout'>)</span>-<a name="line-81"></a>-<a name="line-82"></a><a name="isDefaultAttrKind"></a><span class='definition'>isDefaultAttrKind</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowDTD</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-83"></a><span class='definition'>isDefaultAttrKind</span> <span class='keyglyph'>=</span> <span class='varid'>hasDTDAttrValue</span> <span class='varid'>a_kind</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='varid'>k_default</span><span class='layout'>)</span>-<a name="line-84"></a>-<a name="line-85"></a><a name="isFixedAttrKind"></a><span class='definition'>isFixedAttrKind</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowDTD</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-86"></a><span class='definition'>isFixedAttrKind</span> <span class='keyglyph'>=</span> <span class='varid'>hasDTDAttrValue</span> <span class='varid'>a_kind</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='varid'>k_fixed</span><span class='layout'>)</span>-<a name="line-87"></a>-<a name="line-88"></a><a name="isMixedContentElement"></a><span class='definition'>isMixedContentElement</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowDTD</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-89"></a><span class='definition'>isMixedContentElement</span> <span class='keyglyph'>=</span> <span class='varid'>hasDTDAttrValue</span> <span class='varid'>a_type</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='varid'>v_mixed</span><span class='layout'>)</span>-<a name="line-90"></a>-<a name="line-91"></a><a name="isEmptyElement"></a><span class='definition'>isEmptyElement</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowDTD</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-92"></a><span class='definition'>isEmptyElement</span> <span class='keyglyph'>=</span> <span class='varid'>hasDTDAttrValue</span> <span class='varid'>a_type</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='varid'>k_empty</span><span class='layout'>)</span>-<a name="line-93"></a>-<a name="line-94"></a><a name="isEnumAttrType"></a><span class='definition'>isEnumAttrType</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowDTD</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-95"></a><span class='definition'>isEnumAttrType</span> <span class='keyglyph'>=</span> <span class='varid'>hasDTDAttrValue</span> <span class='varid'>a_type</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='varid'>k_enumeration</span><span class='layout'>)</span>-<a name="line-96"></a>-<a name="line-97"></a><a name="isIdAttrType"></a><span class='definition'>isIdAttrType</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowDTD</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-98"></a><span class='definition'>isIdAttrType</span> <span class='keyglyph'>=</span> <span class='varid'>hasDTDAttrValue</span> <span class='varid'>a_type</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='varid'>k_id</span><span class='layout'>)</span>-<a name="line-99"></a>-<a name="line-100"></a><a name="isIdRefAttrType"></a><span class='definition'>isIdRefAttrType</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowDTD</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-101"></a><span class='definition'>isIdRefAttrType</span> <span class='keyglyph'>=</span> <span class='varid'>hasDTDAttrValue</span> <span class='varid'>a_type</span> <span class='layout'>(</span><span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='varid'>k_idref</span><span class='layout'>,</span> <span class='varid'>k_idrefs</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-102"></a>-<a name="line-103"></a><a name="isNotationAttrType"></a><span class='definition'>isNotationAttrType</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowDTD</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-104"></a><span class='definition'>isNotationAttrType</span> <span class='keyglyph'>=</span> <span class='varid'>hasDTDAttrValue</span> <span class='varid'>a_type</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='varid'>k_notation</span><span class='layout'>)</span>-<a name="line-105"></a>-<a name="line-106"></a><a name="isAttlistOfElement"></a><span class='definition'>isAttlistOfElement</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowDTD</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-107"></a><span class='definition'>isAttlistOfElement</span> <span class='varid'>el</span> <span class='keyglyph'>=</span> <span class='varid'>isDTDAttlist</span>-<a name="line-108"></a> <span class='varop'>>>></span>-<a name="line-109"></a> <span class='varid'>hasDTDAttrValue</span> <span class='varid'>a_name</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='varid'>el</span><span class='layout'>)</span>-<a name="line-110"></a>-<a name="line-111"></a><a name="valueOfDTD"></a><span class='definition'>valueOfDTD</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-112"></a><span class='definition'>valueOfDTD</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='varid'>concat</span> <span class='varop'>.</span> <span class='varid'>runLA</span> <span class='layout'>(</span> <span class='varid'>getDTDAttrl</span> <span class='varop'>>>^</span> <span class='varid'>lookup1</span> <span class='varid'>n</span> <span class='layout'>)</span>-<a name="line-113"></a>-<a name="line-114"></a><a name="valueOf"></a><span class='definition'>valueOf</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-115"></a><span class='definition'>valueOf</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='varid'>concat</span> <span class='varop'>.</span> <span class='varid'>runLA</span> <span class='layout'>(</span> <span class='varid'>getAttrValue</span> <span class='varid'>n</span> <span class='layout'>)</span>-<a name="line-116"></a>-<a name="line-117"></a><a name="getDTDAttributes"></a><span class='definition'>getDTDAttributes</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>Attributes</span>-<a name="line-118"></a><span class='definition'>getDTDAttributes</span> <span class='keyglyph'>=</span> <span class='varid'>concat</span> <span class='varop'>.</span> <span class='varid'>runLA</span> <span class='varid'>getDTDAttrl</span>-<a name="line-119"></a>-<a name="line-120"></a><a name="isDTDDoctypeNode"></a><span class='definition'>isDTDDoctypeNode</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-121"></a><span class='definition'>isDTDDoctypeNode</span> <span class='keyglyph'>=</span> <span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>null</span> <span class='varop'>.</span> <span class='varid'>runLA</span> <span class='varid'>isDTDDoctype</span>-<a name="line-122"></a>-<a name="line-123"></a><a name="isDTDElementNode"></a><span class='definition'>isDTDElementNode</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-124"></a><span class='definition'>isDTDElementNode</span> <span class='keyglyph'>=</span> <span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>null</span> <span class='varop'>.</span> <span class='varid'>runLA</span> <span class='varid'>isDTDElement</span>-<a name="line-125"></a>-<a name="line-126"></a><a name="isDTDAttlistNode"></a><span class='definition'>isDTDAttlistNode</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-127"></a><span class='definition'>isDTDAttlistNode</span> <span class='keyglyph'>=</span> <span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>null</span> <span class='varop'>.</span> <span class='varid'>runLA</span> <span class='varid'>isDTDAttlist</span>-<a name="line-128"></a>-<a name="line-129"></a><a name="isDTDContentNode"></a><span class='definition'>isDTDContentNode</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-130"></a><span class='definition'>isDTDContentNode</span> <span class='keyglyph'>=</span> <span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>null</span> <span class='varop'>.</span> <span class='varid'>runLA</span> <span class='varid'>isDTDContent</span>-<a name="line-131"></a>-<a name="line-132"></a><a name="isDTDNameNode"></a><span class='definition'>isDTDNameNode</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-133"></a><span class='definition'>isDTDNameNode</span> <span class='keyglyph'>=</span> <span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>null</span> <span class='varop'>.</span> <span class='varid'>runLA</span> <span class='varid'>isDTDName</span>-<a name="line-134"></a>-<a name="line-135"></a><a name="isElemNode"></a><span class='definition'>isElemNode</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-136"></a><span class='definition'>isElemNode</span> <span class='keyglyph'>=</span> <span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>null</span> <span class='varop'>.</span> <span class='varid'>runLA</span> <span class='varid'>isElem</span>-<a name="line-137"></a>-<a name="line-138"></a><a name="nameOfAttr"></a><span class='definition'>nameOfAttr</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-139"></a><span class='definition'>nameOfAttr</span> <span class='keyglyph'>=</span> <span class='varid'>concat</span> <span class='varop'>.</span> <span class='varid'>runLA</span> <span class='layout'>(</span><span class='varid'>getAttrName</span> <span class='varop'>>>^</span> <span class='varid'>qualifiedName</span><span class='layout'>)</span>-<a name="line-140"></a>-<a name="line-141"></a><a name="nameOfElem"></a><span class='definition'>nameOfElem</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-142"></a><span class='definition'>nameOfElem</span> <span class='keyglyph'>=</span> <span class='varid'>concat</span> <span class='varop'>.</span> <span class='varid'>runLA</span> <span class='layout'>(</span><span class='varid'>getElemName</span> <span class='varop'>>>^</span> <span class='varid'>qualifiedName</span><span class='layout'>)</span>-<a name="line-143"></a>-<a name="line-144"></a><span class='comment'>-- |</span>-<a name="line-145"></a><span class='comment'>-- infix operator for applying an arrow to a list of trees</span>-<a name="line-146"></a><span class='comment'>--</span>-<a name="line-147"></a><span class='comment'>-- * 1.parameter f : the arrow</span>-<a name="line-148"></a><span class='comment'>--</span>-<a name="line-149"></a><span class='comment'>-- - 2.parameter ts : the list of trees</span>-<a name="line-150"></a><span class='comment'>--</span>-<a name="line-151"></a><span class='comment'>-- - returns : list of results</span>-<a name="line-152"></a>-<a name="line-153"></a><a name="$$"></a><span class='layout'>(</span><span class='varop'>$$</span><span class='layout'>)</span> <span class='keyglyph'>::</span> <span class='conid'>XmlArrow</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span>-<a name="line-154"></a><a name="f"></a><span class='definition'>f</span> <span class='varop'>$$</span> <span class='varid'>l</span> <span class='keyglyph'>=</span> <span class='varid'>runLA</span> <span class='layout'>(</span><span class='varid'>unlistA</span> <span class='varop'>>>></span> <span class='varid'>f</span><span class='layout'>)</span> <span class='varid'>l</span>-<a name="line-155"></a>-<a name="line-156"></a><span class='comment'>-- | create an error message</span>-<a name="line-157"></a>-<a name="line-158"></a><a name="msgToErr"></a><span class='definition'>msgToErr</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>LA</span> <span class='conid'>String</span> <span class='conid'>XmlTree</span>-<a name="line-159"></a><span class='definition'>msgToErr</span> <span class='varid'>f</span> <span class='keyglyph'>=</span> <span class='varid'>mkErr</span> <span class='varop'>$<</span> <span class='varid'>this</span>-<a name="line-160"></a> <span class='keyword'>where</span>-<a name="line-161"></a> <span class='varid'>mkErr</span> <span class='str'>""</span> <span class='keyglyph'>=</span> <span class='varid'>none</span>-<a name="line-162"></a> <span class='varid'>mkErr</span> <span class='varid'>s</span> <span class='keyglyph'>=</span> <span class='varid'>err</span> <span class='layout'>(</span><span class='varid'>f</span> <span class='varid'>s</span><span class='layout'>)</span>-<a name="line-163"></a>-<a name="line-164"></a>-<a name="line-165"></a><span class='comment'>-- ------------------------------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-DTDValidation-Validation.html
@@ -1,140 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Text.XML.HXT.DTDValidation.Validation-<a name="line-5"></a> Copyright : Copyright (C) 2008 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe@fh-wedel.de)-<a name="line-9"></a> Stability : experimental-<a name="line-10"></a> Portability: portable-<a name="line-11"></a>-<a name="line-12"></a> This module provides functions for validating XML documents represented as-<a name="line-13"></a> XmlTree.-<a name="line-14"></a>-<a name="line-15"></a> Unlike other popular XML validation tools the validation functions return-<a name="line-16"></a> a list of errors instead of aborting after the first error was found.-<a name="line-17"></a>-<a name="line-18"></a> Note: The validation process has been split into validation and transformation!-<a name="line-19"></a> If @validate@ did not report any errors, @transform@-<a name="line-20"></a> should be called, to change the document the way a validating parser-<a name="line-21"></a> is expected to do.-<a name="line-22"></a>-<a name="line-23"></a>-}</span>-<a name="line-24"></a>-<a name="line-25"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-26"></a>-<a name="line-27"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DTDValidation</span><span class='varop'>.</span><span class='conid'>Validation</span>-<a name="line-28"></a> <span class='layout'>(</span> <span class='varid'>getDTDSubset</span>-<a name="line-29"></a> <span class='layout'>,</span> <span class='varid'>validate</span>-<a name="line-30"></a> <span class='layout'>,</span> <span class='varid'>validateDTD</span>-<a name="line-31"></a> <span class='layout'>,</span> <span class='varid'>validateDoc</span>-<a name="line-32"></a> <span class='layout'>,</span> <span class='varid'>removeDoublicateDefs</span>-<a name="line-33"></a> <span class='layout'>,</span> <span class='varid'>transform</span>-<a name="line-34"></a> <span class='layout'>)</span>-<a name="line-35"></a>-<a name="line-36"></a><span class='keyword'>where</span>-<a name="line-37"></a>-<a name="line-38"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DTDValidation</span><span class='varop'>.</span><span class='conid'>TypeDefs</span>-<a name="line-39"></a>-<a name="line-40"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DTDValidation</span><span class='varop'>.</span><span class='conid'>DTDValidation</span> <span class='keyword'>as</span> <span class='conid'>DTDValidation</span>-<a name="line-41"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DTDValidation</span><span class='varop'>.</span><span class='conid'>DocValidation</span> <span class='keyword'>as</span> <span class='conid'>DocValidation</span>-<a name="line-42"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DTDValidation</span><span class='varop'>.</span><span class='conid'>IdValidation</span> <span class='keyword'>as</span> <span class='conid'>IdValidation</span>-<a name="line-43"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DTDValidation</span><span class='varop'>.</span><span class='conid'>DocTransformation</span> <span class='keyword'>as</span> <span class='conid'>DocTransformation</span>-<a name="line-44"></a>-<a name="line-45"></a><span class='comment'>-- |</span>-<a name="line-46"></a><span class='comment'>-- Main validation filter. Check if the DTD and the document are valid.</span>-<a name="line-47"></a><span class='comment'>--</span>-<a name="line-48"></a><span class='comment'>--</span>-<a name="line-49"></a><span class='comment'>-- - returns : a function which expects a complete document as XmlTree input</span>-<a name="line-50"></a><span class='comment'>-- and returns a list of all errors found.</span>-<a name="line-51"></a>-<a name="line-52"></a><a name="validate"></a><span class='definition'>validate</span> <span class='keyglyph'>::</span> <span class='conid'>XmlArrow</span>-<a name="line-53"></a><span class='definition'>validate</span> <span class='keyglyph'>=</span> <span class='varid'>validateDTD</span> <span class='varop'><+></span> <span class='varid'>validateDoc</span>-<a name="line-54"></a>-<a name="line-55"></a><span class='comment'>-- |</span>-<a name="line-56"></a><span class='comment'>-- Check if the DTD is valid.</span>-<a name="line-57"></a><span class='comment'>--</span>-<a name="line-58"></a><span class='comment'>--</span>-<a name="line-59"></a><span class='comment'>-- - returns : a function which expects an XmlTree from the parser as input</span>-<a name="line-60"></a><span class='comment'>-- and returns a list of all errors found in the DTD.</span>-<a name="line-61"></a>-<a name="line-62"></a><a name="validateDTD"></a><span class='definition'>validateDTD</span> <span class='keyglyph'>::</span> <span class='conid'>XmlArrow</span>-<a name="line-63"></a><span class='definition'>validateDTD</span> <span class='keyglyph'>=</span> <span class='varid'>choiceA</span>-<a name="line-64"></a> <span class='keyglyph'>[</span> <span class='varid'>getDTDSubset</span> <span class='conop'>:-></span> <span class='conid'>DTDValidation</span><span class='varop'>.</span><span class='varid'>validateDTD</span>-<a name="line-65"></a> <span class='layout'>,</span> <span class='varid'>this</span> <span class='conop'>:-></span> <span class='varid'>err</span> <span class='str'>"Can't validate DTD: There is no DOCTYPE declaration in the document."</span>-<a name="line-66"></a> <span class='keyglyph'>]</span>-<a name="line-67"></a><span class='comment'>-- |</span>-<a name="line-68"></a><span class='comment'>-- Check if the document corresponds to the given DTD.</span>-<a name="line-69"></a><span class='comment'>--</span>-<a name="line-70"></a><span class='comment'>--</span>-<a name="line-71"></a><span class='comment'>-- - returns : a function which expects a complete document as XmlTree input</span>-<a name="line-72"></a><span class='comment'>-- and returns a list of all errors found in the content part.</span>-<a name="line-73"></a>-<a name="line-74"></a><a name="validateDoc"></a><span class='definition'>validateDoc</span> <span class='keyglyph'>::</span> <span class='conid'>XmlArrow</span>-<a name="line-75"></a><span class='definition'>validateDoc</span>-<a name="line-76"></a> <span class='keyglyph'>=</span> <span class='varid'>validateDoc'</span> <span class='varop'>$<</span> <span class='varid'>getDTD</span>-<a name="line-77"></a> <span class='keyword'>where</span>-<a name="line-78"></a> <span class='varid'>validateDoc'</span> <span class='conid'>[]</span> <span class='keyglyph'>=</span> <span class='varid'>err</span> <span class='str'>"Can't validate document: There is no DOCTYPE declaration in the document."</span>-<a name="line-79"></a> <span class='varid'>validateDoc'</span> <span class='layout'>(</span><span class='varid'>dtdPart</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>DocValidation</span><span class='varop'>.</span><span class='varid'>validateDoc</span> <span class='varid'>dtdPart</span>-<a name="line-80"></a> <span class='varop'><+></span>-<a name="line-81"></a> <span class='conid'>IdValidation</span><span class='varop'>.</span><span class='varid'>validateIds</span> <span class='varid'>dtdPart</span>-<a name="line-82"></a>-<a name="line-83"></a><a name="getDTD"></a><span class='definition'>getDTD</span> <span class='keyglyph'>::</span> <span class='conid'>XmlArrowS</span>-<a name="line-84"></a><span class='definition'>getDTD</span> <span class='keyglyph'>=</span> <span class='varid'>listA</span> <span class='layout'>(</span> <span class='varid'>getDTDSubset</span>-<a name="line-85"></a> <span class='varop'>>>></span>-<a name="line-86"></a> <span class='varid'>removeDoublicateDefs</span>-<a name="line-87"></a> <span class='layout'>)</span>-<a name="line-88"></a>-<a name="line-89"></a><span class='comment'>-- |</span>-<a name="line-90"></a><span class='comment'>-- filter for transforming a document with respect to the given DTD.</span>-<a name="line-91"></a><span class='comment'>--</span>-<a name="line-92"></a><span class='comment'>-- Validating parsers</span>-<a name="line-93"></a><span class='comment'>-- are expected to normalize attribute values and add default values.</span>-<a name="line-94"></a><span class='comment'>-- This function should be called after a successful validation.</span>-<a name="line-95"></a><span class='comment'>--</span>-<a name="line-96"></a><span class='comment'>--</span>-<a name="line-97"></a><span class='comment'>-- - returns : a function which expects a complete XML document tree</span>-<a name="line-98"></a><span class='comment'>-- and returns the transformed XmlTree</span>-<a name="line-99"></a>-<a name="line-100"></a><a name="transform"></a><span class='definition'>transform</span> <span class='keyglyph'>::</span> <span class='conid'>XmlArrow</span>-<a name="line-101"></a><span class='definition'>transform</span> <span class='keyglyph'>=</span> <span class='varid'>choiceA</span>-<a name="line-102"></a> <span class='keyglyph'>[</span> <span class='varid'>isRoot</span> <span class='conop'>:-></span> <span class='layout'>(</span><span class='varid'>transformDoc</span> <span class='varop'>$<</span> <span class='varid'>getDTD</span><span class='layout'>)</span>-<a name="line-103"></a> <span class='layout'>,</span> <span class='varid'>this</span> <span class='conop'>:-></span> <span class='varid'>fatal</span> <span class='str'>"Can't transform document: No document root given"</span>-<a name="line-104"></a> <span class='keyglyph'>]</span>-<a name="line-105"></a> <span class='keyword'>where</span>-<a name="line-106"></a> <span class='varid'>transformDoc</span> <span class='conid'>[]</span> <span class='keyglyph'>=</span> <span class='varid'>this</span>-<a name="line-107"></a> <span class='varid'>transformDoc</span> <span class='varid'>dtd</span> <span class='keyglyph'>=</span> <span class='conid'>DocTransformation</span><span class='varop'>.</span><span class='varid'>transform</span> <span class='layout'>(</span><span class='varid'>head</span> <span class='varid'>dtd</span><span class='layout'>)</span>-<a name="line-108"></a>-<a name="line-109"></a><span class='comment'>-- |</span>-<a name="line-110"></a><span class='comment'>-- Removes doublicate declarations from the DTD which first declaration is</span>-<a name="line-111"></a><span class='comment'>-- binding. This is the case for ATTLIST and ENTITY declarations.</span>-<a name="line-112"></a><span class='comment'>--</span>-<a name="line-113"></a><span class='comment'>--</span>-<a name="line-114"></a><span class='comment'>-- - returns : A function that replaces the children of DOCTYPE nodes by a list</span>-<a name="line-115"></a><span class='comment'>-- where all multiple declarations are removed.</span>-<a name="line-116"></a>-<a name="line-117"></a><a name="removeDoublicateDefs"></a><span class='definition'>removeDoublicateDefs</span> <span class='keyglyph'>::</span> <span class='conid'>XmlArrow</span>-<a name="line-118"></a><span class='definition'>removeDoublicateDefs</span> <span class='keyglyph'>=</span> <span class='conid'>DTDValidation</span><span class='varop'>.</span><span class='varid'>removeDoublicateDefs</span>-<a name="line-119"></a>-<a name="line-120"></a><span class='comment'>--</span>-<a name="line-121"></a><span class='comment'>-- selects the DTD part of a document</span>-<a name="line-122"></a><span class='comment'>-- but only, if there is more than the internal part for the 4 predefined XML entities</span>-<a name="line-123"></a>-<a name="line-124"></a><a name="getDTDSubset"></a><span class='definition'>getDTDSubset</span> <span class='keyglyph'>::</span> <span class='conid'>XmlArrow</span>-<a name="line-125"></a><span class='definition'>getDTDSubset</span> <span class='keyglyph'>=</span> <span class='varid'>getChildren</span>-<a name="line-126"></a> <span class='varop'>>>></span>-<a name="line-127"></a> <span class='layout'>(</span> <span class='varid'>filterA</span> <span class='varop'>$</span> <span class='varid'>isDTDDoctype</span> <span class='varop'>>>></span> <span class='varid'>getDTDAttrl</span> <span class='varop'>>>></span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>hasEntry</span> <span class='varid'>a_name</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-128"></a>-<a name="line-129"></a>-<a name="line-130"></a><span class='comment'>-- ------------------------------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-DTDValidation-XmlRE.html
@@ -1,126 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Text.XML.HXT.DTDValidation.XmlRE-<a name="line-5"></a> Copyright : Copyright (C) 2008 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe@fh-wedel.de)-<a name="line-9"></a> Stability : experimental-<a name="line-10"></a> Portability: portable-<a name="line-11"></a>-<a name="line-12"></a> A module for regular expression matching, adapted for XML DTDs.-<a name="line-13"></a>-<a name="line-14"></a> This module is based on the module RE.-<a name="line-15"></a>-<a name="line-16"></a>-}</span>-<a name="line-17"></a>-<a name="line-18"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-19"></a>-<a name="line-20"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DTDValidation</span><span class='varop'>.</span><span class='conid'>XmlRE</span>-<a name="line-21"></a> <span class='layout'>(</span> <span class='conid'>RE</span>-<a name="line-22"></a>-<a name="line-23"></a> <span class='layout'>,</span> <span class='varid'>checkRE</span>-<a name="line-24"></a> <span class='layout'>,</span> <span class='varid'>matches</span>-<a name="line-25"></a> <span class='layout'>,</span> <span class='varid'>printRE</span>-<a name="line-26"></a>-<a name="line-27"></a> <span class='layout'>,</span> <span class='varid'>re_unit</span>-<a name="line-28"></a> <span class='layout'>,</span> <span class='varid'>re_zero</span>-<a name="line-29"></a> <span class='layout'>,</span> <span class='varid'>re_sym</span>-<a name="line-30"></a> <span class='layout'>,</span> <span class='varid'>re_rep</span>-<a name="line-31"></a> <span class='layout'>,</span> <span class='varid'>re_plus</span>-<a name="line-32"></a> <span class='layout'>,</span> <span class='varid'>re_opt</span>-<a name="line-33"></a> <span class='layout'>,</span> <span class='varid'>re_seq</span>-<a name="line-34"></a> <span class='layout'>,</span> <span class='varid'>re_alt</span>-<a name="line-35"></a> <span class='layout'>,</span> <span class='varid'>re_dot</span>-<a name="line-36"></a> <span class='layout'>)</span>-<a name="line-37"></a><span class='keyword'>where</span>-<a name="line-38"></a>-<a name="line-39"></a><span class='comment'>-- import Debug.Trace(trace)</span>-<a name="line-40"></a>-<a name="line-41"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DTDValidation</span><span class='varop'>.</span><span class='conid'>RE</span> <span class='varid'>hiding</span> <span class='layout'>(</span><span class='varid'>matches</span><span class='layout'>)</span>-<a name="line-42"></a>-<a name="line-43"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DTDValidation</span><span class='varop'>.</span><span class='conid'>TypeDefs</span>-<a name="line-44"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>Edit</span>-<a name="line-45"></a> <span class='layout'>(</span> <span class='varid'>removeComment</span>-<a name="line-46"></a> <span class='layout'>,</span> <span class='varid'>removeWhiteSpace</span>-<a name="line-47"></a> <span class='layout'>)</span>-<a name="line-48"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlNode</span> <span class='keyword'>as</span> <span class='conid'>XN</span>-<a name="line-49"></a>-<a name="line-50"></a><span class='comment'>-- |</span>-<a name="line-51"></a><span class='comment'>-- Derives a regular expression with respect to a list of elements.</span>-<a name="line-52"></a><span class='comment'>--</span>-<a name="line-53"></a><span class='comment'>-- * 1.parameter re : regular expression</span>-<a name="line-54"></a><span class='comment'>--</span>-<a name="line-55"></a><span class='comment'>-- - 2.parameter list : list of elements to which the regular expression is applied</span>-<a name="line-56"></a><span class='comment'>--</span>-<a name="line-57"></a><span class='comment'>-- - returns : the derived regular expression</span>-<a name="line-58"></a>-<a name="line-59"></a><a name="matches"></a><span class='definition'>matches</span> <span class='keyglyph'>::</span> <span class='conid'>RE</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>RE</span> <span class='conid'>String</span>-<a name="line-60"></a><span class='definition'>matches</span> <span class='varid'>re</span> <span class='varid'>list</span>-<a name="line-61"></a> <span class='keyglyph'>=</span> <span class='varid'>foldl</span> <span class='varid'>delta</span> <span class='varid'>re</span> <span class='layout'>(</span><span class='varid'>removeUnimportantStuff</span> <span class='varop'>$$</span> <span class='varid'>list</span><span class='layout'>)</span>-<a name="line-62"></a> <span class='keyword'>where</span>-<a name="line-63"></a> <span class='varid'>removeUnimportantStuff</span> <span class='keyglyph'>::</span> <span class='conid'>XmlArrow</span>-<a name="line-64"></a> <span class='varid'>removeUnimportantStuff</span> <span class='keyglyph'>=</span> <span class='varid'>processBottomUp</span> <span class='layout'>(</span><span class='varid'>removeWhiteSpace</span> <span class='varop'>>>></span> <span class='varid'>removeComment</span><span class='layout'>)</span>-<a name="line-65"></a>-<a name="line-66"></a> <span class='comment'>-- trace of growth of REs</span>-<a name="line-67"></a> <span class='comment'>-- delta' re el = delta (trace (("RE : " ++) . (++ "\n" ) . show $ re) re) el</span>-<a name="line-68"></a>-<a name="line-69"></a>-<a name="line-70"></a><span class='comment'>-- |</span>-<a name="line-71"></a><span class='comment'>-- Derives a regular expression with respect to one element.</span>-<a name="line-72"></a><span class='comment'>--</span>-<a name="line-73"></a><span class='comment'>-- L(delta e x) = x \ L(e)</span>-<a name="line-74"></a><span class='comment'>--</span>-<a name="line-75"></a><span class='comment'>-- * 1.parameter re : regular expression to be derived</span>-<a name="line-76"></a><span class='comment'>--</span>-<a name="line-77"></a><span class='comment'>-- - 2.parameter el : the element on which the regular expression is applied</span>-<a name="line-78"></a><span class='comment'>--</span>-<a name="line-79"></a><span class='comment'>-- - returns : the derived regular expression</span>-<a name="line-80"></a>-<a name="line-81"></a><a name="delta"></a><span class='definition'>delta</span> <span class='keyglyph'>::</span> <span class='conid'>RE</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>RE</span> <span class='conid'>String</span>-<a name="line-82"></a><span class='definition'>delta</span> <span class='varid'>re</span> <span class='varid'>el</span>-<a name="line-83"></a> <span class='keyglyph'>|</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>allowed</span> <span class='varid'>el</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>re</span>-<a name="line-84"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='keyword'>case</span> <span class='varid'>re</span> <span class='keyword'>of</span>-<a name="line-85"></a> <span class='conid'>RE_ZERO</span> <span class='varid'>m</span> <span class='keyglyph'>-></span> <span class='varid'>re_zero</span> <span class='varid'>m</span>-<a name="line-86"></a> <span class='conid'>RE_UNIT</span> <span class='keyglyph'>-></span> <span class='varid'>re_zero</span> <span class='layout'>(</span><span class='varid'>elemName</span> <span class='varid'>el</span> <span class='varop'>++</span><span class='str'>" unexpected."</span><span class='layout'>)</span>-<a name="line-87"></a> <span class='conid'>RE_SYM</span> <span class='varid'>sym</span>-<a name="line-88"></a> <span class='keyglyph'>|</span> <span class='varid'>sym</span> <span class='varop'>==</span> <span class='varid'>k_pcdata</span> <span class='keyglyph'>-></span> <span class='keyword'>if</span> <span class='layout'>(</span><span class='layout'>(</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isText</span> <span class='varid'>el</span><span class='layout'>)</span> <span class='varop'>||</span> <span class='layout'>(</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isCdata</span> <span class='varid'>el</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-89"></a> <span class='keyword'>then</span> <span class='varid'>re_unit</span>-<a name="line-90"></a> <span class='keyword'>else</span> <span class='varid'>re_zero</span> <span class='layout'>(</span><span class='str'>"Character data expected, but "</span><span class='varop'>++</span> <span class='varid'>elemName</span> <span class='varid'>el</span> <span class='varop'>++</span><span class='str'>" found."</span><span class='layout'>)</span>-<a name="line-91"></a> <span class='keyglyph'>|</span> <span class='varid'>expectedNode</span> <span class='varid'>el</span> <span class='varid'>sym</span> <span class='keyglyph'>-></span> <span class='varid'>re_unit</span>-<a name="line-92"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>-></span> <span class='varid'>re_zero</span> <span class='layout'>(</span><span class='str'>"Element "</span><span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>sym</span> <span class='varop'>++</span><span class='str'>" expected, but "</span><span class='varop'>++</span> <span class='varid'>elemName</span> <span class='varid'>el</span> <span class='varop'>++</span><span class='str'>" found."</span><span class='layout'>)</span>-<a name="line-93"></a> <span class='conid'>RE_REP</span> <span class='varid'>e</span> <span class='keyglyph'>-></span> <span class='varid'>re_seq</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>e</span> <span class='varid'>el</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>re_rep</span> <span class='varid'>e</span><span class='layout'>)</span>-<a name="line-94"></a> <span class='conid'>RE_PLUS</span> <span class='varid'>e</span> <span class='keyglyph'>-></span> <span class='varid'>re_seq</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>e</span> <span class='varid'>el</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>re_rep</span> <span class='varid'>e</span><span class='layout'>)</span>-<a name="line-95"></a> <span class='conid'>RE_OPT</span> <span class='varid'>e</span> <span class='keyglyph'>-></span> <span class='varid'>delta</span> <span class='varid'>e</span> <span class='varid'>el</span>-<a name="line-96"></a> <span class='conid'>RE_SEQ</span> <span class='varid'>e</span> <span class='varid'>f</span>-<a name="line-97"></a> <span class='keyglyph'>|</span> <span class='varid'>nullable</span> <span class='varid'>e</span> <span class='keyglyph'>-></span> <span class='varid'>re_alt</span> <span class='layout'>(</span><span class='varid'>re_seq</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>e</span> <span class='varid'>el</span><span class='layout'>)</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>f</span> <span class='varid'>el</span><span class='layout'>)</span>-<a name="line-98"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>-></span> <span class='varid'>re_seq</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>e</span> <span class='varid'>el</span><span class='layout'>)</span> <span class='varid'>f</span>-<a name="line-99"></a> <span class='conid'>RE_ALT</span> <span class='varid'>e</span> <span class='varid'>f</span> <span class='keyglyph'>-></span> <span class='varid'>re_alt</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>e</span> <span class='varid'>el</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>f</span> <span class='varid'>el</span><span class='layout'>)</span>-<a name="line-100"></a> <span class='conid'>RE_DOT</span> <span class='keyglyph'>-></span> <span class='varid'>re_unit</span>-<a name="line-101"></a>-<a name="line-102"></a> <span class='keyword'>where</span>-<a name="line-103"></a> <span class='varid'>expectedNode</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-104"></a> <span class='varid'>expectedNode</span> <span class='varid'>n</span> <span class='varid'>sym</span>-<a name="line-105"></a> <span class='keyglyph'>|</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isElem</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='varid'>nameOfElem</span> <span class='varid'>n</span> <span class='varop'>==</span> <span class='varid'>sym</span>-<a name="line-106"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-107"></a>-<a name="line-108"></a> <span class='varid'>elemName</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-109"></a> <span class='varid'>elemName</span> <span class='varid'>n</span>-<a name="line-110"></a> <span class='keyglyph'>|</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isElem</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='str'>"element "</span><span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>nameOfElem</span> <span class='varid'>n</span><span class='layout'>)</span>-<a name="line-111"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='str'>"character data"</span>-<a name="line-112"></a>-<a name="line-113"></a> <span class='varid'>allowed</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-114"></a> <span class='varid'>allowed</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isElem</span> <span class='varid'>n</span> <span class='varop'>||</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isText</span> <span class='varid'>n</span> <span class='varop'>||</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isCdata</span> <span class='varid'>n</span>-<a name="line-115"></a>-<a name="line-116"></a><span class='comment'>-- ------------------------------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-IO-GetFILE.html
@@ -1,110 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Text.XML.HXT.IO.GetFILE-<a name="line-5"></a> Copyright : Copyright (C) 2008 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe@fh-wedel.de)-<a name="line-9"></a> Stability : stable-<a name="line-10"></a> Portability: portable-<a name="line-11"></a>-<a name="line-12"></a> The GET method for file protocol-<a name="line-13"></a>-<a name="line-14"></a>-}</span>-<a name="line-15"></a>-<a name="line-16"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-17"></a>-<a name="line-18"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>IO</span><span class='varop'>.</span><span class='conid'>GetFILE</span>-<a name="line-19"></a> <span class='layout'>(</span> <span class='varid'>getStdinCont</span>-<a name="line-20"></a> <span class='layout'>,</span> <span class='varid'>getCont</span>-<a name="line-21"></a> <span class='layout'>)</span>-<a name="line-22"></a>-<a name="line-23"></a><span class='keyword'>where</span>-<a name="line-24"></a>-<a name="line-25"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>ByteString</span> <span class='keyword'>as</span> <span class='conid'>B</span>-<a name="line-26"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>ByteString</span><span class='varop'>.</span><span class='conid'>Char8</span> <span class='keyword'>as</span> <span class='conid'>C</span>-<a name="line-27"></a>-<a name="line-28"></a><span class='keyword'>import</span> <span class='conid'>System</span><span class='varop'>.</span><span class='conid'>IO</span> <span class='layout'>(</span> <span class='conid'>IOMode</span><span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span>-<a name="line-29"></a> <span class='layout'>,</span> <span class='varid'>openFile</span>-<a name="line-30"></a> <span class='comment'>-- , getContents is defined in the prelude</span>-<a name="line-31"></a> <span class='layout'>,</span> <span class='varid'>hGetContents</span>-<a name="line-32"></a> <span class='layout'>)</span>-<a name="line-33"></a>-<a name="line-34"></a><span class='keyword'>import</span> <span class='conid'>System</span><span class='varop'>.</span><span class='conid'>IO</span><span class='varop'>.</span><span class='conid'>Error</span> <span class='layout'>(</span> <span class='varid'>ioeGetErrorString</span>-<a name="line-35"></a> <span class='layout'>,</span> <span class='varid'>try</span>-<a name="line-36"></a> <span class='layout'>)</span>-<a name="line-37"></a>-<a name="line-38"></a><span class='keyword'>import</span> <span class='conid'>System</span><span class='varop'>.</span><span class='conid'>Directory</span> <span class='layout'>(</span> <span class='varid'>doesFileExist</span>-<a name="line-39"></a> <span class='layout'>,</span> <span class='varid'>getPermissions</span>-<a name="line-40"></a> <span class='layout'>,</span> <span class='varid'>readable</span>-<a name="line-41"></a> <span class='layout'>)</span>-<a name="line-42"></a>-<a name="line-43"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-44"></a>-<a name="line-45"></a><a name="getStdinCont"></a><span class='definition'>getStdinCont</span> <span class='keyglyph'>::</span> <span class='conid'>Bool</span> <span class='keyglyph'>-></span> <span class='conid'>IO</span> <span class='layout'>(</span><span class='conid'>Either</span> <span class='conid'>String</span> <span class='conid'>String</span><span class='layout'>)</span>-<a name="line-46"></a><span class='definition'>getStdinCont</span> <span class='varid'>strictInput</span>-<a name="line-47"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-48"></a> <span class='varid'>c</span> <span class='keyglyph'><-</span> <span class='varid'>try</span> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>strictInput</span>-<a name="line-49"></a> <span class='keyword'>then</span> <span class='keyword'>do</span>-<a name="line-50"></a> <span class='varid'>cb</span> <span class='keyglyph'><-</span> <span class='conid'>B</span><span class='varop'>.</span><span class='varid'>getContents</span>-<a name="line-51"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>C</span><span class='varop'>.</span><span class='varid'>unpack</span> <span class='varid'>cb</span><span class='layout'>)</span>-<a name="line-52"></a> <span class='keyword'>else</span> <span class='varid'>getContents</span>-<a name="line-53"></a> <span class='layout'>)</span>-<a name="line-54"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>either</span> <span class='varid'>readErr</span> <span class='conid'>Right</span> <span class='varid'>c</span><span class='layout'>)</span>-<a name="line-55"></a> <span class='keyword'>where</span>-<a name="line-56"></a> <span class='varid'>readErr</span> <span class='varid'>e</span>-<a name="line-57"></a> <span class='keyglyph'>=</span> <span class='conid'>Left</span> <span class='layout'>(</span> <span class='str'>"system error when reading from stdin: "</span>-<a name="line-58"></a> <span class='varop'>++</span> <span class='varid'>ioeGetErrorString</span> <span class='varid'>e</span>-<a name="line-59"></a> <span class='layout'>)</span>-<a name="line-60"></a>-<a name="line-61"></a><a name="getCont"></a><span class='definition'>getCont</span> <span class='keyglyph'>::</span> <span class='conid'>Bool</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>IO</span> <span class='layout'>(</span><span class='conid'>Either</span> <span class='conid'>String</span> <span class='conid'>String</span><span class='layout'>)</span>-<a name="line-62"></a><span class='definition'>getCont</span> <span class='varid'>strictInput</span> <span class='varid'>source</span>-<a name="line-63"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span> <span class='comment'>-- preliminary</span>-<a name="line-64"></a> <span class='varid'>exists</span> <span class='keyglyph'><-</span> <span class='varid'>doesFileExist</span> <span class='varid'>source'</span>-<a name="line-65"></a> <span class='keyword'>if</span> <span class='varid'>not</span> <span class='varid'>exists</span>-<a name="line-66"></a> <span class='keyword'>then</span> <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>Left</span> <span class='layout'>(</span><span class='str'>"file "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>source'</span> <span class='varop'>++</span> <span class='str'>" not found"</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-67"></a> <span class='keyword'>else</span> <span class='keyword'>do</span>-<a name="line-68"></a> <span class='varid'>perm</span> <span class='keyglyph'><-</span> <span class='varid'>getPermissions</span> <span class='varid'>source'</span>-<a name="line-69"></a> <span class='keyword'>if</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>readable</span> <span class='varid'>perm</span><span class='layout'>)</span>-<a name="line-70"></a> <span class='keyword'>then</span> <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>Left</span> <span class='layout'>(</span><span class='str'>"file "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>source'</span> <span class='varop'>++</span> <span class='str'>" not readable"</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-71"></a> <span class='keyword'>else</span> <span class='keyword'>do</span>-<a name="line-72"></a> <span class='varid'>c</span> <span class='keyglyph'><-</span> <span class='varid'>try</span> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>strictInput</span>-<a name="line-73"></a> <span class='keyword'>then</span> <span class='keyword'>do</span>-<a name="line-74"></a> <span class='varid'>cb</span> <span class='keyglyph'><-</span> <span class='conid'>B</span><span class='varop'>.</span><span class='varid'>readFile</span> <span class='varid'>source</span>-<a name="line-75"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>C</span><span class='varop'>.</span><span class='varid'>unpack</span> <span class='varid'>cb</span><span class='layout'>)</span>-<a name="line-76"></a> <span class='keyword'>else</span> <span class='keyword'>do</span>-<a name="line-77"></a> <span class='varid'>h</span> <span class='keyglyph'><-</span> <span class='varid'>openFile</span> <span class='varid'>source'</span> <span class='conid'>ReadMode</span>-<a name="line-78"></a> <span class='varid'>hGetContents</span> <span class='varid'>h</span>-<a name="line-79"></a> <span class='layout'>)</span>-<a name="line-80"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>either</span> <span class='varid'>readErr</span> <span class='conid'>Right</span> <span class='varid'>c</span><span class='layout'>)</span>-<a name="line-81"></a> <span class='keyword'>where</span>-<a name="line-82"></a>-<a name="line-83"></a> <span class='comment'>-- please NO call of unEscapeString for file names, NOT: source' = drivePath . unEscapeString $ source</span>-<a name="line-84"></a> <span class='varid'>source'</span> <span class='keyglyph'>=</span> <span class='varid'>drivePath</span> <span class='varop'>$</span> <span class='varid'>source</span>-<a name="line-85"></a> <span class='varid'>readErr</span> <span class='varid'>e</span>-<a name="line-86"></a> <span class='keyglyph'>=</span> <span class='conid'>Left</span> <span class='layout'>(</span> <span class='str'>"system error when reading file "</span>-<a name="line-87"></a> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>source</span>-<a name="line-88"></a> <span class='varop'>++</span> <span class='str'>": "</span>-<a name="line-89"></a> <span class='varop'>++</span> <span class='varid'>ioeGetErrorString</span> <span class='varid'>e</span>-<a name="line-90"></a> <span class='layout'>)</span>-<a name="line-91"></a>-<a name="line-92"></a> <span class='comment'>-- remove leading / if file starts with windows drive letter, e.g. /c:/windows -> c:/windows</span>-<a name="line-93"></a> <span class='varid'>drivePath</span> <span class='layout'>(</span><span class='chr'>'/'</span> <span class='conop'>:</span> <span class='varid'>file</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='varid'>d</span> <span class='conop'>:</span> <span class='chr'>':'</span> <span class='conop'>:</span> <span class='sel'>_more</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-94"></a> <span class='keyglyph'>|</span> <span class='varid'>d</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='chr'>'A'</span><span class='keyglyph'>..</span><span class='chr'>'Z'</span><span class='keyglyph'>]</span> <span class='varop'>||</span> <span class='varid'>d</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='chr'>'a'</span><span class='keyglyph'>..</span><span class='chr'>'z'</span><span class='keyglyph'>]</span>-<a name="line-95"></a> <span class='keyglyph'>=</span> <span class='varid'>file</span>-<a name="line-96"></a> <span class='varid'>drivePath</span> <span class='varid'>file</span>-<a name="line-97"></a> <span class='keyglyph'>=</span> <span class='varid'>file</span>-<a name="line-98"></a>-<a name="line-99"></a>-<a name="line-100"></a><span class='comment'>-- ------------------------------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-IO-GetHTTPLibCurl.html
@@ -1,252 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a><span class='comment'>--</span>-<a name="line-3"></a><span class='comment'>-- GET for http access with curl</span>-<a name="line-4"></a><span class='comment'>--</span>-<a name="line-5"></a><span class='comment'>-- Version : $Id: GetHTTPCurl.hs,v 1.3 2005/04/14 12:52:52 hxml Exp $</span>-<a name="line-6"></a>-<a name="line-7"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>IO</span><span class='varop'>.</span><span class='conid'>GetHTTPLibCurl</span>-<a name="line-8"></a> <span class='layout'>(</span> <span class='varid'>getCont</span>-<a name="line-9"></a> <span class='layout'>)</span>-<a name="line-10"></a>-<a name="line-11"></a><span class='keyword'>where</span>-<a name="line-12"></a>-<a name="line-13"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span>-<a name="line-14"></a> <span class='layout'>(</span> <span class='varid'>first</span> <span class='layout'>)</span>-<a name="line-15"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Concurrent</span><span class='varop'>.</span><span class='conid'>MVar</span>-<a name="line-16"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Monad</span>-<a name="line-17"></a> <span class='layout'>(</span> <span class='varid'>when</span> <span class='layout'>)</span>-<a name="line-18"></a>-<a name="line-19"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Char</span>-<a name="line-20"></a> <span class='layout'>(</span> <span class='varid'>isDigit</span>-<a name="line-21"></a> <span class='layout'>,</span> <span class='varid'>toLower</span>-<a name="line-22"></a> <span class='layout'>)</span>-<a name="line-23"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>List</span>-<a name="line-24"></a> <span class='layout'>(</span> <span class='varid'>isPrefixOf</span>-<a name="line-25"></a> <span class='layout'>)</span>-<a name="line-26"></a>-<a name="line-27"></a><span class='keyword'>import</span> <span class='conid'>Network</span><span class='varop'>.</span><span class='conid'>Curl</span>-<a name="line-28"></a>-<a name="line-29"></a><span class='keyword'>import</span> <span class='conid'>System</span><span class='varop'>.</span><span class='conid'>IO</span>-<a name="line-30"></a><span class='keyword'>import</span> <span class='conid'>System</span><span class='varop'>.</span><span class='conid'>IO</span><span class='varop'>.</span><span class='conid'>Unsafe</span>-<a name="line-31"></a> <span class='layout'>(</span> <span class='varid'>unsafePerformIO</span>-<a name="line-32"></a> <span class='layout'>)</span>-<a name="line-33"></a>-<a name="line-34"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>ParserCombinators</span><span class='varop'>.</span><span class='conid'>Parsec</span>-<a name="line-35"></a> <span class='layout'>(</span> <span class='varid'>parse</span>-<a name="line-36"></a> <span class='layout'>)</span>-<a name="line-37"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlKeywords</span>-<a name="line-38"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlOptions</span>-<a name="line-39"></a> <span class='layout'>(</span> <span class='varid'>isTrueValue</span>-<a name="line-40"></a> <span class='layout'>)</span>-<a name="line-41"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Parser</span><span class='varop'>.</span><span class='conid'>ProtocolHandlerUtil</span>-<a name="line-42"></a> <span class='layout'>(</span> <span class='varid'>parseContentType</span>-<a name="line-43"></a> <span class='layout'>)</span>-<a name="line-44"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Version</span>-<a name="line-45"></a>-<a name="line-46"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-47"></a><span class='comment'>--</span>-<a name="line-48"></a><span class='comment'>-- the global flag for initializing curl in the 1. call</span>-<a name="line-49"></a>-<a name="line-50"></a><a name="isInitCurl"></a><span class='definition'>isInitCurl</span> <span class='keyglyph'>::</span> <span class='conid'>MVar</span> <span class='conid'>Bool</span>-<a name="line-51"></a><span class='definition'>isInitCurl</span> <span class='keyglyph'>=</span> <span class='varid'>unsafePerformIO</span> <span class='varop'>$</span> <span class='varid'>newMVar</span> <span class='conid'>False</span>-<a name="line-52"></a>-<a name="line-53"></a><a name="initCurl"></a><span class='definition'>initCurl</span> <span class='keyglyph'>::</span> <span class='conid'>IO</span> <span class='conid'>()</span>-<a name="line-54"></a><span class='definition'>initCurl</span>-<a name="line-55"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-56"></a> <span class='varid'>i</span> <span class='keyglyph'><-</span> <span class='varid'>takeMVar</span> <span class='varid'>isInitCurl</span>-<a name="line-57"></a> <span class='varid'>when</span> <span class='layout'>(</span><span class='varid'>not</span> <span class='varid'>i</span><span class='layout'>)</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-58"></a> <span class='varid'>curl_global_init</span> <span class='num'>3</span>-<a name="line-59"></a> <span class='varid'>return</span> <span class='conid'>()</span>-<a name="line-60"></a> <span class='layout'>)</span>-<a name="line-61"></a> <span class='varid'>putMVar</span> <span class='varid'>isInitCurl</span> <span class='conid'>True</span>-<a name="line-62"></a>-<a name="line-63"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-64"></a><span class='comment'>--</span>-<a name="line-65"></a><span class='comment'>-- the http protocol handler implemented by calling libcurl</span>-<a name="line-66"></a><span class='comment'>-- (<<a href="http://curl.haxx.se/">http://curl.haxx.se/</a>>)</span>-<a name="line-67"></a><span class='comment'>-- via the curl binding</span>-<a name="line-68"></a><span class='comment'>-- <<a href="http://hackage.haskell.org/cgi-bin/hackage-scripts/package/curl">http://hackage.haskell.org/cgi-bin/hackage-scripts/package/curl</a>></span>-<a name="line-69"></a><span class='comment'>-- This function tries to support mostly all curl options concerning HTTP requests.</span>-<a name="line-70"></a><span class='comment'>-- The naming convetion is as follows: A curl option must be prefixed by the string</span>-<a name="line-71"></a><span class='comment'>-- \"curl\" and then written exactly as described in the curl man page</span>-<a name="line-72"></a><span class='comment'>-- (<<a href="http://curl.haxx.se/docs/manpage.html">http://curl.haxx.se/docs/manpage.html</a>>).</span>-<a name="line-73"></a><span class='comment'>-- Example:</span>-<a name="line-74"></a><span class='comment'>--</span>-<a name="line-75"></a><span class='comment'>-- > getCont [("curl--user-agent","My first HXT app"),("curl-e","<a href="http://the.referer.url/">http://the.referer.url/</a>")] "<a href="http://...">http://...</a>"</span>-<a name="line-76"></a><span class='comment'>--</span>-<a name="line-77"></a><span class='comment'>-- will set the user agent and the referer URL for this request.</span>-<a name="line-78"></a>-<a name="line-79"></a><a name="getCont"></a><span class='definition'>getCont</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>IO</span> <span class='layout'>(</span><span class='conid'>Either</span> <span class='conid'>String</span> <span class='layout'>(</span><span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span><span class='keyglyph'>]</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-80"></a><span class='definition'>getCont</span> <span class='varid'>options</span> <span class='varid'>uri</span>-<a name="line-81"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-82"></a> <span class='varid'>initCurl</span>-<a name="line-83"></a> <span class='varid'>resp</span> <span class='keyglyph'><-</span> <span class='varid'>curlGetResponse</span> <span class='varid'>uri</span> <span class='varid'>curlOptions</span>-<a name="line-84"></a> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>evalResponse</span> <span class='varid'>resp</span>-<a name="line-85"></a> <span class='keyword'>where</span>-<a name="line-86"></a> <span class='varid'>curlOptions</span>-<a name="line-87"></a> <span class='keyglyph'>=</span> <span class='varid'>defaultOptions</span> <span class='varop'>++</span> <span class='varid'>concatMap</span> <span class='layout'>(</span><span class='varid'>uncurry</span> <span class='varid'>copt</span><span class='layout'>)</span> <span class='varid'>options</span> <span class='varop'>++</span> <span class='varid'>standardOptions</span>-<a name="line-88"></a> <span class='varid'>defaultOptions</span>-<a name="line-89"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='conid'>CurlUserAgent</span> <span class='layout'>(</span><span class='str'>"hxt/"</span> <span class='varop'>++</span> <span class='varid'>hxt_version</span> <span class='varop'>++</span> <span class='str'>" via libcurl"</span><span class='layout'>)</span>-<a name="line-90"></a> <span class='keyglyph'>]</span>-<a name="line-91"></a> <span class='varid'>standardOptions</span>-<a name="line-92"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='conid'>CurlFailOnError</span> <span class='conid'>False</span>-<a name="line-93"></a> <span class='layout'>,</span> <span class='conid'>CurlHeader</span> <span class='conid'>True</span>-<a name="line-94"></a> <span class='layout'>,</span> <span class='conid'>CurlNoProgress</span> <span class='conid'>True</span>-<a name="line-95"></a> <span class='layout'>,</span> <span class='conid'>CurlFollowLocation</span> <span class='conid'>True</span>-<a name="line-96"></a> <span class='keyglyph'>]</span>-<a name="line-97"></a> <span class='varid'>evalResponse</span> <span class='varid'>r</span>-<a name="line-98"></a> <span class='keyglyph'>|</span> <span class='varid'>rc</span> <span class='varop'>/=</span> <span class='conid'>CurlOK</span>-<a name="line-99"></a> <span class='keyglyph'>=</span> <span class='conid'>Left</span> <span class='layout'>(</span> <span class='str'>"http error when requesting URI "</span>-<a name="line-100"></a> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>uri</span>-<a name="line-101"></a> <span class='varop'>++</span> <span class='str'>": (curl return code="</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>rc</span> <span class='varop'>++</span> <span class='str'>") "</span>-<a name="line-102"></a> <span class='layout'>)</span>-<a name="line-103"></a> <span class='keyglyph'>|</span> <span class='varid'>rs</span> <span class='varop'><</span> <span class='num'>200</span> <span class='varop'>&&</span> <span class='varid'>rs</span> <span class='varop'>>=</span> <span class='num'>300</span>-<a name="line-104"></a> <span class='keyglyph'>=</span> <span class='conid'>Left</span> <span class='layout'>(</span> <span class='str'>"http error when accessing URI "</span>-<a name="line-105"></a> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>uri</span>-<a name="line-106"></a> <span class='varop'>++</span> <span class='str'>": "</span>-<a name="line-107"></a> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>rsl</span>-<a name="line-108"></a> <span class='layout'>)</span>-<a name="line-109"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-110"></a> <span class='keyglyph'>=</span> <span class='conid'>Right</span> <span class='layout'>(</span> <span class='varid'>contentT</span> <span class='varop'>++</span> <span class='varid'>headers</span><span class='layout'>,</span> <span class='varid'>respBody</span> <span class='varid'>r</span>-<a name="line-111"></a> <span class='layout'>)</span>-<a name="line-112"></a> <span class='keyword'>where</span>-<a name="line-113"></a> <span class='varid'>headers</span>-<a name="line-114"></a> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='layout'>(</span><span class='varid'>k</span><span class='layout'>,</span> <span class='varid'>v</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='varid'>httpPrefix</span> <span class='varop'>++</span> <span class='varid'>k</span><span class='layout'>,</span> <span class='varid'>v</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varid'>rsh</span>-<a name="line-115"></a> <span class='varop'>++</span> <span class='varid'>statusLine</span> <span class='layout'>(</span><span class='varid'>words</span> <span class='varid'>rsl</span><span class='layout'>)</span>-<a name="line-116"></a>-<a name="line-117"></a> <span class='varid'>contentT</span>-<a name="line-118"></a> <span class='keyglyph'>=</span> <span class='varid'>concat</span>-<a name="line-119"></a> <span class='varop'>.</span> <span class='varid'>map</span> <span class='layout'>(</span> <span class='varid'>either</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='conid'>[]</span><span class='layout'>)</span> <span class='varid'>id</span>-<a name="line-120"></a> <span class='varop'>.</span> <span class='varid'>parse</span> <span class='varid'>parseContentType</span> <span class='str'>""</span>-<a name="line-121"></a> <span class='layout'>)</span>-<a name="line-122"></a> <span class='varop'>.</span> <span class='varid'>map</span> <span class='varid'>snd</span>-<a name="line-123"></a> <span class='varop'>.</span> <span class='varid'>take</span> <span class='num'>1</span>-<a name="line-124"></a> <span class='varop'>.</span> <span class='varid'>filter</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varop'>==</span> <span class='str'>"content-type"</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>fst</span><span class='layout'>)</span>-<a name="line-125"></a> <span class='varop'>.</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>first</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>toLower</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-126"></a> <span class='varop'>$</span> <span class='varid'>rsh</span>-<a name="line-127"></a>-<a name="line-128"></a> <span class='varid'>statusLine</span> <span class='layout'>(</span><span class='varid'>vers</span> <span class='conop'>:</span> <span class='varid'>code</span> <span class='conop'>:</span> <span class='varid'>msg</span><span class='layout'>)</span>-<a name="line-129"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>transferVersion</span><span class='layout'>,</span> <span class='varid'>vers</span><span class='layout'>)</span>-<a name="line-130"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>transferMessage</span><span class='layout'>,</span> <span class='varid'>unwords</span> <span class='varid'>msg</span><span class='layout'>)</span>-<a name="line-131"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>transferStatus</span><span class='layout'>,</span> <span class='varid'>code</span><span class='layout'>)</span>-<a name="line-132"></a> <span class='keyglyph'>]</span>-<a name="line-133"></a> <span class='varid'>statusLine</span> <span class='keyword'>_</span>-<a name="line-134"></a> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-135"></a>-<a name="line-136"></a> <span class='varid'>rc</span> <span class='keyglyph'>=</span> <span class='varid'>respCurlCode</span> <span class='varid'>r</span>-<a name="line-137"></a> <span class='varid'>rs</span> <span class='keyglyph'>=</span> <span class='varid'>respStatus</span> <span class='varid'>r</span>-<a name="line-138"></a> <span class='varid'>rsl</span> <span class='keyglyph'>=</span> <span class='varid'>respStatusLine</span> <span class='varid'>r</span>-<a name="line-139"></a> <span class='varid'>rsh</span> <span class='keyglyph'>=</span> <span class='varid'>respHeaders</span> <span class='varid'>r</span>-<a name="line-140"></a>-<a name="line-141"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-142"></a>-<a name="line-143"></a><a name="copt"></a><span class='definition'>copt</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>CurlOption</span><span class='keyglyph'>]</span>-<a name="line-144"></a><span class='definition'>copt</span> <span class='varid'>k</span> <span class='varid'>v</span>-<a name="line-145"></a> <span class='keyglyph'>|</span> <span class='str'>"curl"</span> <span class='varop'>`isPrefixOf`</span> <span class='varid'>k</span>-<a name="line-146"></a> <span class='keyglyph'>=</span> <span class='varid'>opt2copt</span> <span class='layout'>(</span><span class='varid'>drop</span> <span class='num'>4</span> <span class='varid'>k</span><span class='layout'>)</span> <span class='varid'>v</span>-<a name="line-147"></a>-<a name="line-148"></a> <span class='keyglyph'>|</span> <span class='varid'>k</span> <span class='varop'>==</span> <span class='varid'>a_proxy</span>-<a name="line-149"></a> <span class='keyglyph'>=</span> <span class='varid'>opt2copt</span> <span class='varid'>k</span> <span class='varid'>v</span>-<a name="line-150"></a>-<a name="line-151"></a> <span class='keyglyph'>|</span> <span class='varid'>k</span> <span class='varop'>==</span> <span class='varid'>a_options_curl</span>-<a name="line-152"></a> <span class='keyglyph'>=</span> <span class='varid'>curlOptionString</span> <span class='varid'>v</span>-<a name="line-153"></a>-<a name="line-154"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-155"></a> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-156"></a>-<a name="line-157"></a><a name="opt2copt"></a><span class='definition'>opt2copt</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>CurlOption</span><span class='keyglyph'>]</span>-<a name="line-158"></a><span class='definition'>opt2copt</span> <span class='varid'>k</span> <span class='varid'>v</span>-<a name="line-159"></a> <span class='keyglyph'>|</span> <span class='varid'>k</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='str'>"-A"</span><span class='layout'>,</span> <span class='str'>"--user-agent"</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>CurlUserAgent</span> <span class='varid'>v</span><span class='keyglyph'>]</span>-<a name="line-160"></a> <span class='keyglyph'>|</span> <span class='varid'>k</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='str'>"-b"</span><span class='layout'>,</span> <span class='str'>"--cookie"</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>CurlCookie</span> <span class='varid'>v</span><span class='keyglyph'>]</span>-<a name="line-161"></a> <span class='keyglyph'>|</span> <span class='varid'>k</span> <span class='varop'>==</span> <span class='str'>"--connect-timeout"</span>-<a name="line-162"></a> <span class='varop'>&&</span>-<a name="line-163"></a> <span class='varid'>isIntArg</span> <span class='varid'>v</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>CurlConnectTimeout</span> <span class='varop'>$</span> <span class='varid'>read</span> <span class='varid'>v</span><span class='keyglyph'>]</span>-<a name="line-164"></a> <span class='keyglyph'>|</span> <span class='varid'>k</span> <span class='varop'>==</span> <span class='str'>"--crlf"</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>CurlCRLF</span> <span class='varop'>$</span> <span class='varid'>isTrue</span> <span class='varid'>v</span><span class='keyglyph'>]</span>-<a name="line-165"></a> <span class='keyglyph'>|</span> <span class='varid'>k</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='str'>"-d"</span><span class='layout'>,</span> <span class='str'>"--data"</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>CurlPostFields</span> <span class='varop'>$</span> <span class='varid'>lines</span> <span class='varid'>v</span><span class='keyglyph'>]</span>-<a name="line-166"></a> <span class='keyglyph'>|</span> <span class='varid'>k</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='str'>"-e"</span><span class='layout'>,</span> <span class='str'>"--referer"</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>CurlReferer</span> <span class='varid'>v</span><span class='keyglyph'>]</span>-<a name="line-167"></a> <span class='keyglyph'>|</span> <span class='varid'>k</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='str'>"-H"</span><span class='layout'>,</span> <span class='str'>"--header"</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>CurlHttpHeaders</span> <span class='varop'>$</span> <span class='varid'>lines</span> <span class='varid'>v</span><span class='keyglyph'>]</span>-<a name="line-168"></a> <span class='keyglyph'>|</span> <span class='varid'>k</span> <span class='varop'>==</span> <span class='str'>"--ignore-content-length"</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>CurlIgnoreContentLength</span> <span class='varop'>$</span> <span class='varid'>isTrue</span> <span class='varid'>v</span><span class='keyglyph'>]</span>-<a name="line-169"></a> <span class='keyglyph'>|</span> <span class='varid'>k</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='str'>"-I"</span><span class='layout'>,</span> <span class='str'>"--head"</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>CurlNoBody</span> <span class='varop'>$</span> <span class='varid'>isTrue</span> <span class='varid'>v</span><span class='keyglyph'>]</span>-<a name="line-170"></a> <span class='keyglyph'>|</span> <span class='varid'>k</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='str'>"-L"</span><span class='layout'>,</span> <span class='str'>"--location"</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>CurlFollowLocation</span> <span class='varop'>$</span> <span class='varid'>isTrue</span> <span class='varid'>v</span><span class='keyglyph'>]</span>-<a name="line-171"></a> <span class='keyglyph'>|</span> <span class='varid'>k</span> <span class='varop'>==</span> <span class='str'>"--max-filesize"</span>-<a name="line-172"></a> <span class='varop'>&&</span>-<a name="line-173"></a> <span class='varid'>isIntArg</span> <span class='varid'>v</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>CurlMaxFileSizeLarge</span> <span class='varop'>$</span> <span class='varid'>read</span> <span class='varid'>v</span><span class='keyglyph'>]</span>-<a name="line-174"></a> <span class='keyglyph'>|</span> <span class='varid'>k</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='str'>"-m"</span><span class='layout'>,</span> <span class='str'>"--max-time"</span><span class='keyglyph'>]</span>-<a name="line-175"></a> <span class='varop'>&&</span>-<a name="line-176"></a> <span class='varid'>isIntArg</span> <span class='varid'>v</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>CurlTimeoutMS</span> <span class='varop'>$</span> <span class='varid'>read</span> <span class='varid'>v</span><span class='keyglyph'>]</span>-<a name="line-177"></a> <span class='keyglyph'>|</span> <span class='varid'>k</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='str'>"-n"</span><span class='layout'>,</span> <span class='str'>"--netrc"</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>CurlNetrcFile</span> <span class='varid'>v</span><span class='keyglyph'>]</span>-<a name="line-178"></a> <span class='keyglyph'>|</span> <span class='varid'>k</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='str'>"-R"</span><span class='layout'>,</span> <span class='str'>"--remote-time"</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>CurlFiletime</span> <span class='varop'>$</span> <span class='varid'>isTrue</span> <span class='varid'>v</span><span class='keyglyph'>]</span>-<a name="line-179"></a> <span class='keyglyph'>|</span> <span class='varid'>k</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='str'>"-u"</span><span class='layout'>,</span> <span class='str'>"--user"</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>CurlUserPwd</span> <span class='varid'>v</span><span class='keyglyph'>]</span>-<a name="line-180"></a> <span class='keyglyph'>|</span> <span class='varid'>k</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='str'>"-U"</span><span class='layout'>,</span> <span class='str'>"--proxy-user"</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>CurlProxyUserPwd</span> <span class='varid'>v</span><span class='keyglyph'>]</span>-<a name="line-181"></a> <span class='keyglyph'>|</span> <span class='varid'>k</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='str'>"-x"</span><span class='layout'>,</span> <span class='str'>"--proxy"</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='varid'>proxyOptions</span>-<a name="line-182"></a> <span class='keyglyph'>|</span> <span class='varid'>k</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='str'>"-X"</span><span class='layout'>,</span> <span class='str'>"--request"</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>CurlCustomRequest</span> <span class='varid'>v</span><span class='keyglyph'>]</span>-<a name="line-183"></a> <span class='keyglyph'>|</span> <span class='varid'>k</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='str'>"-y"</span><span class='layout'>,</span> <span class='str'>"--speed-time"</span><span class='keyglyph'>]</span>-<a name="line-184"></a> <span class='varop'>&&</span>-<a name="line-185"></a> <span class='varid'>isIntArg</span> <span class='varid'>v</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>CurlLowSpeedTime</span> <span class='varop'>$</span> <span class='varid'>read</span> <span class='varid'>v</span><span class='keyglyph'>]</span>-<a name="line-186"></a> <span class='keyglyph'>|</span> <span class='varid'>k</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='str'>"-Y"</span><span class='layout'>,</span> <span class='str'>"--speed-limit"</span><span class='keyglyph'>]</span>-<a name="line-187"></a> <span class='varop'>&&</span>-<a name="line-188"></a> <span class='varid'>isIntArg</span> <span class='varid'>v</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>CurlLowSpeed</span> <span class='varop'>$</span> <span class='varid'>read</span> <span class='varid'>v</span><span class='keyglyph'>]</span>-<a name="line-189"></a> <span class='keyglyph'>|</span> <span class='varid'>k</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='str'>"-z"</span><span class='layout'>,</span> <span class='str'>"--time-cond"</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='varid'>ifModifiedOptions</span>-<a name="line-190"></a> <span class='keyglyph'>|</span> <span class='varid'>k</span> <span class='varop'>==</span> <span class='str'>"--max-redirs"</span>-<a name="line-191"></a> <span class='varop'>&&</span>-<a name="line-192"></a> <span class='varid'>isIntArg</span> <span class='varid'>v</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>CurlMaxRedirs</span> <span class='varop'>$</span> <span class='varid'>read</span> <span class='varid'>v</span><span class='keyglyph'>]</span>-<a name="line-193"></a> <span class='keyglyph'>|</span> <span class='varid'>k</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='str'>"-0"</span><span class='layout'>,</span> <span class='str'>"--http1.0"</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>CurlHttpVersion</span> <span class='conid'>HttpVersion10</span><span class='keyglyph'>]</span>-<a name="line-194"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-195"></a> <span class='keyword'>where</span>-<a name="line-196"></a> <span class='varid'>ifModifiedOptions</span>-<a name="line-197"></a> <span class='keyglyph'>|</span> <span class='str'>"-"</span> <span class='varop'>`isPrefixOf`</span> <span class='varid'>v</span>-<a name="line-198"></a> <span class='varop'>&&</span>-<a name="line-199"></a> <span class='varid'>isIntArg</span> <span class='varid'>v'</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>CurlTimeCondition</span> <span class='conid'>TimeCondIfUnmodSince</span>-<a name="line-200"></a> <span class='layout'>,</span><span class='conid'>CurlTimeValue</span> <span class='varop'>$</span> <span class='varid'>read</span> <span class='varid'>v'</span>-<a name="line-201"></a> <span class='keyglyph'>]</span>-<a name="line-202"></a> <span class='keyglyph'>|</span> <span class='varid'>isIntArg</span> <span class='varid'>v</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>CurlTimeCondition</span> <span class='conid'>TimeCondIfModSince</span>-<a name="line-203"></a> <span class='layout'>,</span><span class='conid'>CurlTimeValue</span> <span class='varop'>$</span> <span class='varid'>read</span> <span class='varid'>v'</span>-<a name="line-204"></a> <span class='keyglyph'>]</span>-<a name="line-205"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-206"></a> <span class='keyword'>where</span>-<a name="line-207"></a> <span class='varid'>v'</span> <span class='keyglyph'>=</span> <span class='varid'>tail</span> <span class='varid'>v</span>-<a name="line-208"></a>-<a name="line-209"></a> <span class='varid'>proxyOptions</span>-<a name="line-210"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='conid'>CurlProxyPort</span> <span class='varid'>pport</span>-<a name="line-211"></a> <span class='layout'>,</span> <span class='conid'>CurlProxy</span> <span class='varid'>phost</span>-<a name="line-212"></a> <span class='keyglyph'>]</span>-<a name="line-213"></a> <span class='keyword'>where</span>-<a name="line-214"></a> <span class='varid'>pport</span>-<a name="line-215"></a> <span class='keyglyph'>|</span> <span class='varid'>isIntArg</span> <span class='varid'>ppp</span> <span class='keyglyph'>=</span> <span class='varid'>read</span> <span class='varid'>v</span>-<a name="line-216"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='num'>1080</span>-<a name="line-217"></a> <span class='layout'>(</span><span class='varid'>phost</span><span class='layout'>,</span> <span class='varid'>pp</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>span</span> <span class='layout'>(</span><span class='varop'>/=</span><span class='chr'>':'</span><span class='layout'>)</span> <span class='varid'>v</span>-<a name="line-218"></a> <span class='varid'>ppp</span> <span class='keyglyph'>=</span> <span class='varid'>drop</span> <span class='num'>1</span> <span class='varid'>pp</span>-<a name="line-219"></a>-<a name="line-220"></a>-<a name="line-221"></a>-<a name="line-222"></a><a name="isTrue"></a><span class='definition'>isTrue</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-223"></a><span class='definition'>isTrue</span> <span class='varid'>s</span> <span class='keyglyph'>=</span> <span class='varid'>null</span> <span class='varid'>s</span> <span class='varop'>||</span> <span class='varid'>isTrueValue</span> <span class='varid'>s</span>-<a name="line-224"></a>-<a name="line-225"></a><a name="isIntArg"></a><span class='definition'>isIntArg</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-226"></a><span class='definition'>isIntArg</span> <span class='varid'>s</span> <span class='keyglyph'>=</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>null</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='varop'>&&</span> <span class='varid'>all</span> <span class='varid'>isDigit</span> <span class='varid'>s</span>-<a name="line-227"></a>-<a name="line-228"></a><a name="curlOptionString"></a><span class='definition'>curlOptionString</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>CurlOption</span><span class='keyglyph'>]</span>-<a name="line-229"></a><span class='definition'>curlOptionString</span>-<a name="line-230"></a> <span class='keyglyph'>=</span> <span class='varid'>concatMap</span> <span class='layout'>(</span><span class='varid'>uncurry</span> <span class='varid'>copt</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>opts</span> <span class='varop'>.</span> <span class='varid'>words</span>-<a name="line-231"></a> <span class='keyword'>where</span>-<a name="line-232"></a> <span class='varid'>opts</span> <span class='varid'>l</span>-<a name="line-233"></a> <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>l</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-234"></a> <span class='keyglyph'>|</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='str'>"-"</span> <span class='varop'>`isPrefixOf`</span> <span class='varid'>k</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>opts</span> <span class='varid'>l1</span> <span class='comment'>-- k not an option: ignore</span>-<a name="line-235"></a> <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>l1</span> <span class='keyglyph'>=</span> <span class='varid'>opts</span> <span class='layout'>(</span><span class='varid'>k</span><span class='conop'>:</span><span class='str'>""</span><span class='conop'>:</span><span class='varid'>l1</span><span class='layout'>)</span> <span class='comment'>-- last option</span>-<a name="line-236"></a> <span class='keyglyph'>|</span> <span class='str'>"-"</span> <span class='varop'>`isPrefixOf`</span> <span class='varid'>v</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>k</span><span class='layout'>,</span> <span class='str'>""</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>opts</span> <span class='layout'>(</span><span class='varid'>v</span><span class='conop'>:</span><span class='varid'>l</span><span class='layout'>)</span> <span class='comment'>-- k option without arg</span>-<a name="line-237"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>k</span><span class='layout'>,</span> <span class='varid'>v</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>opts</span> <span class='varid'>l2</span> <span class='comment'>-- k with value</span>-<a name="line-238"></a> <span class='keyword'>where</span>-<a name="line-239"></a> <span class='layout'>(</span><span class='varid'>k</span><span class='conop'>:</span><span class='varid'>l1</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>l</span>-<a name="line-240"></a> <span class='layout'>(</span><span class='varid'>v</span><span class='conop'>:</span><span class='varid'>l2</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>l1</span>-<a name="line-241"></a>-<a name="line-242"></a><span class='comment'>-- ------------------------------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-Parser-HtmlParsec.html
@@ -1,547 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Text.XML.HXT.Parser.HtmlParsec-<a name="line-5"></a> Copyright : Copyright (C) 2005 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe@fh-wedel.de)-<a name="line-9"></a> Stability : stable-<a name="line-10"></a> Portability: portable-<a name="line-11"></a>-<a name="line-12"></a> This parser tries to interprete everything as HTML-<a name="line-13"></a> no errors are emitted during parsing. If something looks-<a name="line-14"></a> weired, warning messages are inserted in the document tree.-<a name="line-15"></a> -<a name="line-16"></a> All filter are pure XmlFilter,-<a name="line-17"></a> errror handling and IO is done in 'Text.XML.HXT.Parser.HtmlParser'-<a name="line-18"></a> or other modules-<a name="line-19"></a>-<a name="line-20"></a>-}</span>-<a name="line-21"></a>-<a name="line-22"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-23"></a>-<a name="line-24"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Parser</span><span class='varop'>.</span><span class='conid'>HtmlParsec</span>-<a name="line-25"></a> <span class='layout'>(</span> <span class='varid'>parseHtmlText</span>-<a name="line-26"></a> <span class='layout'>,</span> <span class='varid'>parseHtmlDocument</span>-<a name="line-27"></a> <span class='layout'>,</span> <span class='varid'>parseHtmlContent</span>-<a name="line-28"></a> <span class='layout'>,</span> <span class='varid'>isEmptyHtmlTag</span>-<a name="line-29"></a> <span class='layout'>,</span> <span class='varid'>isInnerHtmlTagOf</span>-<a name="line-30"></a> <span class='layout'>,</span> <span class='varid'>closesHtmlTag</span>-<a name="line-31"></a> <span class='layout'>,</span> <span class='varid'>emptyHtmlTags</span>-<a name="line-32"></a> <span class='layout'>)</span>-<a name="line-33"></a>-<a name="line-34"></a><span class='keyword'>where</span>-<a name="line-35"></a>-<a name="line-36"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>-<a name="line-37"></a>-<a name="line-38"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlNode</span>-<a name="line-39"></a> <span class='layout'>(</span> <span class='varid'>mkText</span>-<a name="line-40"></a> <span class='layout'>,</span> <span class='varid'>mkError</span>-<a name="line-41"></a> <span class='layout'>,</span> <span class='varid'>mkCmt</span>-<a name="line-42"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span>-<a name="line-43"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span>-<a name="line-44"></a> <span class='layout'>,</span> <span class='varid'>mkDTDElem</span>-<a name="line-45"></a> <span class='layout'>)</span>-<a name="line-46"></a>-<a name="line-47"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>ParserCombinators</span><span class='varop'>.</span><span class='conid'>Parsec</span>-<a name="line-48"></a> <span class='layout'>(</span> <span class='conid'>Parser</span>-<a name="line-49"></a> <span class='layout'>,</span> <span class='conid'>SourcePos</span>-<a name="line-50"></a> <span class='layout'>,</span> <span class='varid'>anyChar</span>-<a name="line-51"></a> <span class='layout'>,</span> <span class='varid'>between</span>-<a name="line-52"></a> <span class='layout'>,</span> <span class='varid'>char</span>-<a name="line-53"></a> <span class='layout'>,</span> <span class='varid'>eof</span>-<a name="line-54"></a> <span class='layout'>,</span> <span class='varid'>getPosition</span>-<a name="line-55"></a> <span class='layout'>,</span> <span class='varid'>many</span>-<a name="line-56"></a> <span class='layout'>,</span> <span class='varid'>noneOf</span>-<a name="line-57"></a> <span class='layout'>,</span> <span class='varid'>option</span>-<a name="line-58"></a> <span class='layout'>,</span> <span class='varid'>parse</span>-<a name="line-59"></a> <span class='layout'>,</span> <span class='varid'>satisfy</span>-<a name="line-60"></a> <span class='layout'>,</span> <span class='varid'>string</span>-<a name="line-61"></a> <span class='layout'>,</span> <span class='varid'>try</span>-<a name="line-62"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varop'><|></span><span class='layout'>)</span>-<a name="line-63"></a> <span class='layout'>)</span>-<a name="line-64"></a>-<a name="line-65"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Parser</span><span class='varop'>.</span><span class='conid'>XmlTokenParser</span>-<a name="line-66"></a> <span class='layout'>(</span> <span class='varid'>allBut</span>-<a name="line-67"></a> <span class='layout'>,</span> <span class='varid'>dq</span>-<a name="line-68"></a> <span class='layout'>,</span> <span class='varid'>eq</span>-<a name="line-69"></a> <span class='layout'>,</span> <span class='varid'>gt</span>-<a name="line-70"></a> <span class='layout'>,</span> <span class='varid'>name</span>-<a name="line-71"></a> <span class='layout'>,</span> <span class='varid'>pubidLiteral</span>-<a name="line-72"></a> <span class='layout'>,</span> <span class='varid'>skipS</span>-<a name="line-73"></a> <span class='layout'>,</span> <span class='varid'>skipS0</span>-<a name="line-74"></a> <span class='layout'>,</span> <span class='varid'>sq</span>-<a name="line-75"></a> <span class='layout'>,</span> <span class='varid'>systemLiteral</span>-<a name="line-76"></a>-<a name="line-77"></a> <span class='layout'>,</span> <span class='varid'>singleCharsT</span>-<a name="line-78"></a> <span class='layout'>,</span> <span class='varid'>referenceT</span>-<a name="line-79"></a> <span class='layout'>)</span>-<a name="line-80"></a>-<a name="line-81"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Parser</span><span class='varop'>.</span><span class='conid'>XmlParsec</span>-<a name="line-82"></a> <span class='layout'>(</span> <span class='varid'>cDSect</span>-<a name="line-83"></a> <span class='layout'>,</span> <span class='varid'>charData'</span>-<a name="line-84"></a> <span class='layout'>,</span> <span class='varid'>misc</span>-<a name="line-85"></a> <span class='layout'>,</span> <span class='varid'>parseXmlText</span>-<a name="line-86"></a> <span class='layout'>,</span> <span class='varid'>pI</span>-<a name="line-87"></a> <span class='layout'>,</span> <span class='varid'>xMLDecl'</span>-<a name="line-88"></a> <span class='layout'>)</span>-<a name="line-89"></a>-<a name="line-90"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Parser</span><span class='varop'>.</span><span class='conid'>XmlCharParser</span>-<a name="line-91"></a> <span class='layout'>(</span> <span class='varid'>xmlChar</span>-<a name="line-92"></a> <span class='layout'>)</span>-<a name="line-93"></a>-<a name="line-94"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>-<a name="line-95"></a> <span class='layout'>(</span> <span class='varid'>fromMaybe</span>-<a name="line-96"></a> <span class='layout'>)</span>-<a name="line-97"></a>-<a name="line-98"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Char</span>-<a name="line-99"></a> <span class='layout'>(</span> <span class='varid'>toLower</span>-<a name="line-100"></a> <span class='layout'>,</span> <span class='varid'>toUpper</span>-<a name="line-101"></a> <span class='layout'>)</span>-<a name="line-102"></a>-<a name="line-103"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-104"></a>-<a name="line-105"></a><a name="parseHtmlText"></a><span class='definition'>parseHtmlText</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span>-<a name="line-106"></a><span class='definition'>parseHtmlText</span> <span class='varid'>loc</span> <span class='varid'>t</span>-<a name="line-107"></a> <span class='keyglyph'>=</span> <span class='varid'>parseXmlText</span> <span class='varid'>htmlDocument</span> <span class='varid'>loc</span> <span class='varop'>$</span> <span class='varid'>t</span>-<a name="line-108"></a>-<a name="line-109"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-110"></a>-<a name="line-111"></a><a name="parseHtmlFromString"></a><span class='definition'>parseHtmlFromString</span> <span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span>-<a name="line-112"></a><span class='definition'>parseHtmlFromString</span> <span class='varid'>parser</span> <span class='varid'>loc</span>-<a name="line-113"></a> <span class='keyglyph'>=</span> <span class='varid'>either</span> <span class='layout'>(</span><span class='layout'>(</span><span class='conop'>:</span><span class='conid'>[]</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>mkError</span> <span class='varid'>c_err</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='varop'>++</span> <span class='str'>"\n"</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>show</span><span class='layout'>)</span> <span class='varid'>id</span> <span class='varop'>.</span> <span class='varid'>parse</span> <span class='varid'>parser</span> <span class='varid'>loc</span>-<a name="line-114"></a>-<a name="line-115"></a><a name="parseHtmlDocument"></a><span class='definition'>parseHtmlDocument</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span>-<a name="line-116"></a><span class='definition'>parseHtmlDocument</span> <span class='keyglyph'>=</span> <span class='varid'>parseHtmlFromString</span> <span class='varid'>htmlDocument</span>-<a name="line-117"></a>-<a name="line-118"></a><a name="parseHtmlContent"></a><span class='definition'>parseHtmlContent</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span>-<a name="line-119"></a><span class='definition'>parseHtmlContent</span> <span class='keyglyph'>=</span> <span class='varid'>parseHtmlFromString</span> <span class='varid'>htmlContent</span> <span class='str'>"text"</span>-<a name="line-120"></a>-<a name="line-121"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-122"></a>-<a name="line-123"></a><a name="htmlDocument"></a><span class='definition'>htmlDocument</span> <span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>XmlTrees</span>-<a name="line-124"></a><span class='definition'>htmlDocument</span>-<a name="line-125"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-126"></a> <span class='varid'>pl</span> <span class='keyglyph'><-</span> <span class='varid'>htmlProlog</span>-<a name="line-127"></a> <span class='varid'>el</span> <span class='keyglyph'><-</span> <span class='varid'>htmlContent</span>-<a name="line-128"></a> <span class='varid'>eof</span>-<a name="line-129"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>pl</span> <span class='varop'>++</span> <span class='varid'>el</span><span class='layout'>)</span>-<a name="line-130"></a>-<a name="line-131"></a><a name="htmlProlog"></a><span class='definition'>htmlProlog</span> <span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>XmlTrees</span>-<a name="line-132"></a><span class='definition'>htmlProlog</span>-<a name="line-133"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-134"></a> <span class='varid'>xml</span> <span class='keyglyph'><-</span> <span class='varid'>option</span> <span class='conid'>[]</span>-<a name="line-135"></a> <span class='layout'>(</span> <span class='varid'>try</span> <span class='varid'>xMLDecl'</span>-<a name="line-136"></a> <span class='varop'><|></span>-<a name="line-137"></a> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-138"></a> <span class='varid'>pos</span> <span class='keyglyph'><-</span> <span class='varid'>getPosition</span>-<a name="line-139"></a> <span class='varid'>try</span> <span class='layout'>(</span><span class='varid'>string</span> <span class='str'>"<?"</span><span class='layout'>)</span>-<a name="line-140"></a> <span class='varid'>return</span> <span class='varop'>$</span> <span class='keyglyph'>[</span><span class='varid'>mkError</span> <span class='varid'>c_warn</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>pos</span> <span class='varop'>++</span> <span class='str'>" wrong XML declaration"</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-141"></a> <span class='layout'>)</span>-<a name="line-142"></a> <span class='layout'>)</span>-<a name="line-143"></a> <span class='varid'>misc1</span> <span class='keyglyph'><-</span> <span class='varid'>many</span> <span class='varid'>misc</span>-<a name="line-144"></a> <span class='varid'>dtdPart</span> <span class='keyglyph'><-</span> <span class='varid'>option</span> <span class='conid'>[]</span>-<a name="line-145"></a> <span class='layout'>(</span> <span class='varid'>try</span> <span class='varid'>doctypedecl</span>-<a name="line-146"></a> <span class='varop'><|></span>-<a name="line-147"></a> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-148"></a> <span class='varid'>pos</span> <span class='keyglyph'><-</span> <span class='varid'>getPosition</span>-<a name="line-149"></a> <span class='varid'>try</span> <span class='layout'>(</span><span class='varid'>upperCaseString</span> <span class='str'>"<!DOCTYPE"</span><span class='layout'>)</span>-<a name="line-150"></a> <span class='varid'>return</span> <span class='varop'>$</span> <span class='keyglyph'>[</span><span class='varid'>mkError</span> <span class='varid'>c_warn</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>pos</span> <span class='varop'>++</span> <span class='str'>" HTML DOCTYPE declaration ignored"</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-151"></a> <span class='layout'>)</span>-<a name="line-152"></a> <span class='layout'>)</span>-<a name="line-153"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>xml</span> <span class='varop'>++</span> <span class='varid'>misc1</span> <span class='varop'>++</span> <span class='varid'>dtdPart</span><span class='layout'>)</span>-<a name="line-154"></a>-<a name="line-155"></a><a name="doctypedecl"></a><span class='definition'>doctypedecl</span> <span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>XmlTrees</span>-<a name="line-156"></a><span class='definition'>doctypedecl</span>-<a name="line-157"></a> <span class='keyglyph'>=</span> <span class='varid'>between</span> <span class='layout'>(</span><span class='varid'>try</span> <span class='varop'>$</span> <span class='varid'>upperCaseString</span> <span class='str'>"<!DOCTYPE"</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>char</span> <span class='chr'>'>'</span><span class='layout'>)</span>-<a name="line-158"></a> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-159"></a> <span class='varid'>skipS</span>-<a name="line-160"></a> <span class='varid'>n</span> <span class='keyglyph'><-</span> <span class='varid'>name</span>-<a name="line-161"></a> <span class='varid'>exId</span> <span class='keyglyph'><-</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-162"></a> <span class='varid'>skipS</span>-<a name="line-163"></a> <span class='varid'>option</span> <span class='conid'>[]</span> <span class='varid'>externalID</span>-<a name="line-164"></a> <span class='layout'>)</span>-<a name="line-165"></a> <span class='varid'>skipS0</span>-<a name="line-166"></a> <span class='varid'>return</span> <span class='keyglyph'>[</span><span class='varid'>mkDTDElem</span> <span class='conid'>DOCTYPE</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>a_name</span><span class='layout'>,</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>exId</span><span class='layout'>)</span> <span class='conid'>[]</span><span class='keyglyph'>]</span>-<a name="line-167"></a> <span class='layout'>)</span>-<a name="line-168"></a>-<a name="line-169"></a><a name="externalID"></a><span class='definition'>externalID</span> <span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Attributes</span>-<a name="line-170"></a><span class='definition'>externalID</span>-<a name="line-171"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-172"></a> <span class='varid'>try</span> <span class='layout'>(</span><span class='varid'>upperCaseString</span> <span class='varid'>k_public</span><span class='layout'>)</span>-<a name="line-173"></a> <span class='varid'>skipS</span>-<a name="line-174"></a> <span class='varid'>pl</span> <span class='keyglyph'><-</span> <span class='varid'>pubidLiteral</span>-<a name="line-175"></a> <span class='varid'>sl</span> <span class='keyglyph'><-</span> <span class='varid'>option</span> <span class='str'>""</span> <span class='varop'>$</span> <span class='varid'>try</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-176"></a> <span class='varid'>skipS</span>-<a name="line-177"></a> <span class='varid'>systemLiteral</span>-<a name="line-178"></a> <span class='layout'>)</span>-<a name="line-179"></a> <span class='varid'>return</span> <span class='varop'>$</span> <span class='layout'>(</span><span class='varid'>k_public</span><span class='layout'>,</span> <span class='varid'>pl</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>sl</span> <span class='keyword'>then</span> <span class='conid'>[]</span> <span class='keyword'>else</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>k_system</span><span class='layout'>,</span> <span class='varid'>sl</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-180"></a>-<a name="line-181"></a><a name="htmlContent"></a><span class='definition'>htmlContent</span> <span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>XmlTrees</span>-<a name="line-182"></a><span class='definition'>htmlContent</span>-<a name="line-183"></a> <span class='keyglyph'>=</span> <span class='varid'>option</span> <span class='conid'>[]</span>-<a name="line-184"></a> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-185"></a> <span class='varid'>context</span> <span class='keyglyph'><-</span> <span class='varid'>hContent</span> <span class='layout'>(</span><span class='conid'>[]</span><span class='layout'>,</span> <span class='conid'>[]</span><span class='layout'>)</span>-<a name="line-186"></a> <span class='varid'>pos</span> <span class='keyglyph'><-</span> <span class='varid'>getPosition</span>-<a name="line-187"></a> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>closeTags</span> <span class='varid'>pos</span> <span class='varid'>context</span>-<a name="line-188"></a> <span class='layout'>)</span>-<a name="line-189"></a> <span class='keyword'>where</span>-<a name="line-190"></a> <span class='varid'>closeTags</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='varid'>body</span><span class='layout'>,</span> <span class='conid'>[]</span><span class='layout'>)</span>-<a name="line-191"></a> <span class='keyglyph'>=</span> <span class='varid'>reverse</span> <span class='varid'>body</span>-<a name="line-192"></a> <span class='varid'>closeTags</span> <span class='varid'>pos'</span> <span class='layout'>(</span><span class='varid'>body</span><span class='layout'>,</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>tn</span><span class='layout'>,</span> <span class='varid'>al</span><span class='layout'>,</span> <span class='varid'>body1</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>restOpen</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-193"></a> <span class='keyglyph'>=</span> <span class='varid'>closeTags</span> <span class='varid'>pos'</span> <span class='layout'>(</span><span class='varid'>addHtmlWarn</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>pos'</span> <span class='varop'>++</span> <span class='str'>": no closing tag found for \"<"</span> <span class='varop'>++</span> <span class='varid'>tn</span> <span class='varop'>++</span> <span class='str'>" ...>\""</span><span class='layout'>)</span>-<a name="line-194"></a> <span class='varop'>.</span>-<a name="line-195"></a> <span class='varid'>addHtmlTag</span> <span class='varid'>tn</span> <span class='varid'>al</span> <span class='varid'>body</span>-<a name="line-196"></a> <span class='varop'>$</span>-<a name="line-197"></a> <span class='layout'>(</span><span class='varid'>body1</span><span class='layout'>,</span> <span class='varid'>restOpen</span><span class='layout'>)</span>-<a name="line-198"></a> <span class='layout'>)</span>-<a name="line-199"></a>-<a name="line-200"></a><a name="OpenTags"></a><span class='keyword'>type</span> <span class='conid'>OpenTags</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>XmlTrees</span><span class='layout'>,</span> <span class='conid'>XmlTrees</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-201"></a><a name="Context"></a><span class='keyword'>type</span> <span class='conid'>Context</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>XmlTrees</span><span class='layout'>,</span> <span class='conid'>OpenTags</span><span class='layout'>)</span>-<a name="line-202"></a>-<a name="line-203"></a><a name="hElement"></a><span class='definition'>hElement</span> <span class='keyglyph'>::</span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='conid'>Parser</span> <span class='conid'>Context</span>-<a name="line-204"></a><span class='definition'>hElement</span> <span class='varid'>context</span>-<a name="line-205"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-206"></a> <span class='varid'>t</span> <span class='keyglyph'><-</span> <span class='varid'>hSimpleData</span>-<a name="line-207"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>addHtmlElems</span> <span class='keyglyph'>[</span><span class='varid'>t</span><span class='keyglyph'>]</span> <span class='varid'>context</span><span class='layout'>)</span>-<a name="line-208"></a> <span class='layout'>)</span>-<a name="line-209"></a> <span class='varop'><|></span>-<a name="line-210"></a> <span class='varid'>hOpenTag</span> <span class='varid'>context</span>-<a name="line-211"></a> <span class='varop'><|></span>-<a name="line-212"></a> <span class='varid'>hCloseTag</span> <span class='varid'>context</span>-<a name="line-213"></a> <span class='varop'><|></span>-<a name="line-214"></a> <span class='layout'>(</span> <span class='keyword'>do</span> <span class='comment'>-- wrong tag, take it as text</span>-<a name="line-215"></a> <span class='varid'>pos</span> <span class='keyglyph'><-</span> <span class='varid'>getPosition</span>-<a name="line-216"></a> <span class='varid'>c</span> <span class='keyglyph'><-</span> <span class='varid'>xmlChar</span>-<a name="line-217"></a> <span class='varid'>return</span> <span class='layout'>(</span> <span class='varid'>addHtmlWarn</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>pos</span> <span class='varop'>++</span> <span class='str'>" markup char "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>c</span> <span class='varop'>++</span> <span class='str'>" not allowed in this context"</span><span class='layout'>)</span>-<a name="line-218"></a> <span class='varop'>.</span>-<a name="line-219"></a> <span class='varid'>addHtmlElems</span> <span class='keyglyph'>[</span><span class='varid'>mkText</span> <span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span><span class='keyglyph'>]</span>-<a name="line-220"></a> <span class='varop'>$</span>-<a name="line-221"></a> <span class='varid'>context</span>-<a name="line-222"></a> <span class='layout'>)</span>-<a name="line-223"></a> <span class='layout'>)</span>-<a name="line-224"></a> <span class='varop'><|></span>-<a name="line-225"></a> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-226"></a> <span class='varid'>pos</span> <span class='keyglyph'><-</span> <span class='varid'>getPosition</span>-<a name="line-227"></a> <span class='varid'>c</span> <span class='keyglyph'><-</span> <span class='varid'>anyChar</span>-<a name="line-228"></a> <span class='varid'>return</span> <span class='layout'>(</span> <span class='varid'>addHtmlWarn</span> <span class='layout'>(</span> <span class='varid'>show</span> <span class='varid'>pos</span>-<a name="line-229"></a> <span class='varop'>++</span> <span class='str'>" illegal data in input or illegal XML char "</span>-<a name="line-230"></a> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>c</span>-<a name="line-231"></a> <span class='varop'>++</span> <span class='str'>" found and ignored, possibly wrong encoding scheme used"</span><span class='layout'>)</span>-<a name="line-232"></a> <span class='varop'>$</span>-<a name="line-233"></a> <span class='varid'>context</span>-<a name="line-234"></a> <span class='layout'>)</span>-<a name="line-235"></a> <span class='layout'>)</span>-<a name="line-236"></a>-<a name="line-237"></a>-<a name="line-238"></a><a name="hSimpleData"></a><span class='definition'>hSimpleData</span> <span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>XmlTree</span>-<a name="line-239"></a><span class='definition'>hSimpleData</span>-<a name="line-240"></a> <span class='keyglyph'>=</span> <span class='varid'>charData'</span>-<a name="line-241"></a> <span class='varop'><|></span>-<a name="line-242"></a> <span class='varid'>try</span> <span class='varid'>referenceT</span>-<a name="line-243"></a> <span class='varop'><|></span>-<a name="line-244"></a> <span class='varid'>try</span> <span class='varid'>hComment</span>-<a name="line-245"></a> <span class='varop'><|></span>-<a name="line-246"></a> <span class='varid'>try</span> <span class='varid'>pI</span>-<a name="line-247"></a> <span class='varop'><|></span>-<a name="line-248"></a> <span class='varid'>try</span> <span class='varid'>cDSect</span>-<a name="line-249"></a>-<a name="line-250"></a><a name="hCloseTag"></a><span class='definition'>hCloseTag</span> <span class='keyglyph'>::</span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='conid'>Parser</span> <span class='conid'>Context</span>-<a name="line-251"></a><span class='definition'>hCloseTag</span> <span class='varid'>context</span>-<a name="line-252"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-253"></a> <span class='varid'>n</span> <span class='keyglyph'><-</span> <span class='varid'>try</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-254"></a> <span class='varid'>string</span> <span class='str'>"</"</span>-<a name="line-255"></a> <span class='varid'>lowerCaseName</span>-<a name="line-256"></a> <span class='layout'>)</span>-<a name="line-257"></a> <span class='varid'>skipS0</span>-<a name="line-258"></a> <span class='varid'>pos</span> <span class='keyglyph'><-</span> <span class='varid'>getPosition</span>-<a name="line-259"></a> <span class='varid'>checkSymbol</span> <span class='varid'>gt</span> <span class='layout'>(</span><span class='str'>"closing > in tag \"</"</span> <span class='varop'>++</span> <span class='varid'>n</span> <span class='varop'>++</span> <span class='str'>"\" expected"</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>closeTag</span> <span class='varid'>pos</span> <span class='varid'>n</span> <span class='varid'>context</span><span class='layout'>)</span>-<a name="line-260"></a>-<a name="line-261"></a><a name="hOpenTag"></a><span class='definition'>hOpenTag</span> <span class='keyglyph'>::</span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='conid'>Parser</span> <span class='conid'>Context</span>-<a name="line-262"></a><span class='definition'>hOpenTag</span> <span class='varid'>context</span>-<a name="line-263"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-264"></a> <span class='varid'>pos</span> <span class='keyglyph'><-</span> <span class='varid'>getPosition</span>-<a name="line-265"></a> <span class='varid'>e</span> <span class='keyglyph'><-</span> <span class='varid'>hOpenTagStart</span>-<a name="line-266"></a> <span class='varid'>hOpenTagRest</span> <span class='varid'>pos</span> <span class='varid'>e</span> <span class='varid'>context</span>-<a name="line-267"></a> <span class='layout'>)</span>-<a name="line-268"></a>-<a name="line-269"></a><a name="hOpenTagStart"></a><span class='definition'>hOpenTagStart</span> <span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>XmlTrees</span><span class='layout'>)</span>-<a name="line-270"></a><span class='definition'>hOpenTagStart</span>-<a name="line-271"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-272"></a> <span class='varid'>n</span> <span class='keyglyph'><-</span> <span class='varid'>try</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-273"></a> <span class='varid'>char</span> <span class='chr'>'<'</span>-<a name="line-274"></a> <span class='varid'>n</span> <span class='keyglyph'><-</span> <span class='varid'>lowerCaseName</span>-<a name="line-275"></a> <span class='varid'>return</span> <span class='varid'>n</span>-<a name="line-276"></a> <span class='layout'>)</span>-<a name="line-277"></a> <span class='varid'>skipS0</span>-<a name="line-278"></a> <span class='keyword'>as</span> <span class='keyglyph'><-</span> <span class='varid'>hAttrList</span>-<a name="line-279"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>n</span><span class='layout'>,</span> <span class='keyword'>as</span><span class='layout'>)</span>-<a name="line-280"></a>-<a name="line-281"></a><a name="hOpenTagRest"></a><span class='definition'>hOpenTagRest</span> <span class='keyglyph'>::</span> <span class='conid'>SourcePos</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>XmlTrees</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='conid'>Parser</span> <span class='conid'>Context</span>-<a name="line-282"></a><span class='definition'>hOpenTagRest</span> <span class='varid'>pos</span> <span class='layout'>(</span><span class='varid'>tn</span><span class='layout'>,</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varid'>context</span>-<a name="line-283"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-284"></a> <span class='varid'>try</span> <span class='varop'>$</span> <span class='varid'>string</span> <span class='str'>"/>"</span>-<a name="line-285"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>addHtmlTag</span> <span class='varid'>tn</span> <span class='varid'>al</span> <span class='conid'>[]</span> <span class='varid'>context</span><span class='layout'>)</span>-<a name="line-286"></a> <span class='layout'>)</span>-<a name="line-287"></a> <span class='varop'><|></span>-<a name="line-288"></a> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-289"></a> <span class='varid'>context1</span> <span class='keyglyph'><-</span> <span class='varid'>checkSymbol</span> <span class='varid'>gt</span> <span class='layout'>(</span><span class='str'>"closing > in tag \"<"</span> <span class='varop'>++</span> <span class='varid'>tn</span> <span class='varop'>++</span> <span class='str'>"...\" expected"</span><span class='layout'>)</span> <span class='varid'>context</span>-<a name="line-290"></a> <span class='varid'>return</span> <span class='layout'>(</span> <span class='keyword'>let</span> <span class='varid'>context2</span> <span class='keyglyph'>=</span> <span class='varid'>closePrevTag</span> <span class='varid'>pos</span> <span class='varid'>tn</span> <span class='varid'>context1</span>-<a name="line-291"></a> <span class='keyword'>in</span>-<a name="line-292"></a> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>isEmptyHtmlTag</span> <span class='varid'>tn</span>-<a name="line-293"></a> <span class='keyword'>then</span> <span class='varid'>addHtmlTag</span> <span class='varid'>tn</span> <span class='varid'>al</span> <span class='conid'>[]</span>-<a name="line-294"></a> <span class='keyword'>else</span> <span class='varid'>openTag</span> <span class='varid'>tn</span> <span class='varid'>al</span>-<a name="line-295"></a> <span class='layout'>)</span> <span class='varid'>context2</span>-<a name="line-296"></a> <span class='layout'>)</span>-<a name="line-297"></a> <span class='layout'>)</span>-<a name="line-298"></a>-<a name="line-299"></a><a name="hAttrList"></a><span class='definition'>hAttrList</span> <span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>XmlTrees</span>-<a name="line-300"></a><span class='definition'>hAttrList</span>-<a name="line-301"></a> <span class='keyglyph'>=</span> <span class='varid'>many</span> <span class='layout'>(</span><span class='varid'>try</span> <span class='varid'>hAttribute</span><span class='layout'>)</span>-<a name="line-302"></a> <span class='keyword'>where</span>-<a name="line-303"></a> <span class='varid'>hAttribute</span>-<a name="line-304"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-305"></a> <span class='varid'>n</span> <span class='keyglyph'><-</span> <span class='varid'>lowerCaseName</span>-<a name="line-306"></a> <span class='varid'>v</span> <span class='keyglyph'><-</span> <span class='varid'>hAttrValue</span>-<a name="line-307"></a> <span class='varid'>skipS0</span>-<a name="line-308"></a> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mkAttr</span> <span class='layout'>(</span><span class='varid'>mkName</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='varid'>v</span>-<a name="line-309"></a>-<a name="line-310"></a><a name="hAttrValue"></a><span class='definition'>hAttrValue</span> <span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>XmlTrees</span>-<a name="line-311"></a><span class='definition'>hAttrValue</span>-<a name="line-312"></a> <span class='keyglyph'>=</span> <span class='varid'>option</span> <span class='conid'>[]</span>-<a name="line-313"></a> <span class='layout'>(</span> <span class='varid'>try</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-314"></a> <span class='varid'>eq</span>-<a name="line-315"></a> <span class='varid'>hAttrValue'</span>-<a name="line-316"></a> <span class='layout'>)</span>-<a name="line-317"></a> <span class='layout'>)</span>-<a name="line-318"></a>-<a name="line-319"></a><a name="hAttrValue'"></a><span class='definition'>hAttrValue'</span> <span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>XmlTrees</span>-<a name="line-320"></a><span class='definition'>hAttrValue'</span>-<a name="line-321"></a> <span class='keyglyph'>=</span> <span class='varid'>try</span> <span class='layout'>(</span> <span class='varid'>between</span> <span class='varid'>dq</span> <span class='varid'>dq</span> <span class='layout'>(</span><span class='varid'>hAttrValue''</span> <span class='str'>"&\""</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-322"></a> <span class='varop'><|></span>-<a name="line-323"></a> <span class='varid'>try</span> <span class='layout'>(</span> <span class='varid'>between</span> <span class='varid'>sq</span> <span class='varid'>sq</span> <span class='layout'>(</span><span class='varid'>hAttrValue''</span> <span class='str'>"&\'"</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-324"></a> <span class='varop'><|></span>-<a name="line-325"></a> <span class='layout'>(</span> <span class='keyword'>do</span> <span class='comment'>-- HTML allows unquoted attribute values</span>-<a name="line-326"></a> <span class='varid'>cs</span> <span class='keyglyph'><-</span> <span class='varid'>many</span> <span class='layout'>(</span><span class='varid'>noneOf</span> <span class='str'>" \r\t\n>\"\'"</span><span class='layout'>)</span>-<a name="line-327"></a> <span class='varid'>return</span> <span class='keyglyph'>[</span><span class='varid'>mkText</span> <span class='varid'>cs</span><span class='keyglyph'>]</span>-<a name="line-328"></a> <span class='layout'>)</span>-<a name="line-329"></a>-<a name="line-330"></a><a name="hAttrValue''"></a><span class='definition'>hAttrValue''</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Parser</span> <span class='conid'>XmlTrees</span>-<a name="line-331"></a><span class='definition'>hAttrValue''</span> <span class='varid'>notAllowed</span>-<a name="line-332"></a> <span class='keyglyph'>=</span> <span class='varid'>many</span> <span class='layout'>(</span> <span class='varid'>hReference'</span> <span class='varop'><|></span> <span class='varid'>singleCharsT</span> <span class='varid'>notAllowed</span><span class='layout'>)</span>-<a name="line-333"></a>-<a name="line-334"></a><a name="hReference'"></a><span class='definition'>hReference'</span> <span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>XmlTree</span>-<a name="line-335"></a><span class='definition'>hReference'</span>-<a name="line-336"></a> <span class='keyglyph'>=</span> <span class='varid'>try</span> <span class='varid'>referenceT</span>-<a name="line-337"></a> <span class='varop'><|></span>-<a name="line-338"></a> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-339"></a> <span class='varid'>char</span> <span class='chr'>'&'</span>-<a name="line-340"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>mkText</span> <span class='str'>"&"</span><span class='layout'>)</span>-<a name="line-341"></a> <span class='layout'>)</span>-<a name="line-342"></a>-<a name="line-343"></a><a name="hContent"></a><span class='definition'>hContent</span> <span class='keyglyph'>::</span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='conid'>Parser</span> <span class='conid'>Context</span>-<a name="line-344"></a><span class='definition'>hContent</span> <span class='varid'>context</span>-<a name="line-345"></a> <span class='keyglyph'>=</span> <span class='varid'>option</span> <span class='varid'>context</span>-<a name="line-346"></a> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-347"></a> <span class='varid'>context1</span> <span class='keyglyph'><-</span> <span class='varid'>hElement</span> <span class='varid'>context</span>-<a name="line-348"></a> <span class='varid'>hContent</span> <span class='varid'>context1</span>-<a name="line-349"></a> <span class='layout'>)</span>-<a name="line-350"></a>-<a name="line-351"></a><span class='comment'>-- hComment allows "--" in comments</span>-<a name="line-352"></a><span class='comment'>-- comment from XML spec does not</span>-<a name="line-353"></a>-<a name="line-354"></a><a name="hComment"></a><span class='definition'>hComment</span> <span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>XmlTree</span>-<a name="line-355"></a><span class='definition'>hComment</span>-<a name="line-356"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-357"></a> <span class='varid'>c</span> <span class='keyglyph'><-</span> <span class='varid'>between</span> <span class='layout'>(</span><span class='varid'>try</span> <span class='varop'>$</span> <span class='varid'>string</span> <span class='str'>"<!--"</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>string</span> <span class='str'>"-->"</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>allBut</span> <span class='varid'>many</span> <span class='str'>"-->"</span><span class='layout'>)</span>-<a name="line-358"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>mkCmt</span> <span class='varid'>c</span><span class='layout'>)</span>-<a name="line-359"></a>-<a name="line-360"></a><a name="checkSymbol"></a><span class='definition'>checkSymbol</span> <span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='conid'>Parser</span> <span class='conid'>Context</span>-<a name="line-361"></a><span class='definition'>checkSymbol</span> <span class='varid'>p</span> <span class='varid'>msg</span> <span class='varid'>context</span>-<a name="line-362"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-363"></a> <span class='varid'>pos</span> <span class='keyglyph'><-</span> <span class='varid'>getPosition</span>-<a name="line-364"></a> <span class='varid'>option</span> <span class='layout'>(</span><span class='varid'>addHtmlWarn</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>pos</span> <span class='varop'>++</span> <span class='str'>" "</span> <span class='varop'>++</span> <span class='varid'>msg</span><span class='layout'>)</span> <span class='varid'>context</span><span class='layout'>)</span>-<a name="line-365"></a> <span class='layout'>(</span> <span class='keyword'>do</span> -<a name="line-366"></a> <span class='varid'>try</span> <span class='varid'>p</span>-<a name="line-367"></a> <span class='varid'>return</span> <span class='varid'>context</span>-<a name="line-368"></a> <span class='layout'>)</span>-<a name="line-369"></a>-<a name="line-370"></a><a name="lowerCaseName"></a><span class='definition'>lowerCaseName</span> <span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>String</span>-<a name="line-371"></a><span class='definition'>lowerCaseName</span>-<a name="line-372"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-373"></a> <span class='varid'>n</span> <span class='keyglyph'><-</span> <span class='varid'>name</span>-<a name="line-374"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>toLower</span> <span class='varid'>n</span><span class='layout'>)</span>-<a name="line-375"></a>-<a name="line-376"></a><a name="upperCaseString"></a><span class='definition'>upperCaseString</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Parser</span> <span class='conid'>String</span>-<a name="line-377"></a><span class='definition'>upperCaseString</span>-<a name="line-378"></a> <span class='keyglyph'>=</span> <span class='varid'>sequence</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>c</span> <span class='keyglyph'>-></span> <span class='varid'>satisfy</span> <span class='layout'>(</span><span class='layout'>(</span> <span class='varop'>==</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>toUpper</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-379"></a>-<a name="line-380"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-381"></a>-<a name="line-382"></a><a name="addHtmlTag"></a><span class='definition'>addHtmlTag</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span>-<a name="line-383"></a><span class='definition'>addHtmlTag</span> <span class='varid'>tn</span> <span class='varid'>al</span> <span class='varid'>body</span> <span class='layout'>(</span><span class='varid'>body1</span><span class='layout'>,</span> <span class='varid'>openTags</span><span class='layout'>)</span>-<a name="line-384"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='keyglyph'>[</span><span class='varid'>mkElement</span> <span class='layout'>(</span><span class='varid'>mkName</span> <span class='varid'>tn</span><span class='layout'>)</span> <span class='varid'>al</span> <span class='layout'>(</span><span class='varid'>reverse</span> <span class='varid'>body</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='varop'>++</span> <span class='varid'>body1</span><span class='layout'>,</span> <span class='varid'>openTags</span><span class='layout'>)</span>-<a name="line-385"></a>-<a name="line-386"></a><a name="addHtmlWarn"></a><span class='definition'>addHtmlWarn</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span>-<a name="line-387"></a><span class='definition'>addHtmlWarn</span> <span class='varid'>msg</span>-<a name="line-388"></a> <span class='keyglyph'>=</span> <span class='varid'>addHtmlElems</span> <span class='keyglyph'>[</span><span class='varid'>mkError</span> <span class='varid'>c_warn</span> <span class='varid'>msg</span><span class='keyglyph'>]</span>-<a name="line-389"></a>-<a name="line-390"></a><a name="addHtmlElems"></a><span class='definition'>addHtmlElems</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span>-<a name="line-391"></a><span class='definition'>addHtmlElems</span> <span class='varid'>elems</span> <span class='layout'>(</span><span class='varid'>body</span><span class='layout'>,</span> <span class='varid'>openTags</span><span class='layout'>)</span>-<a name="line-392"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>reverse</span> <span class='varid'>elems</span> <span class='varop'>++</span> <span class='varid'>body</span><span class='layout'>,</span> <span class='varid'>openTags</span><span class='layout'>)</span>-<a name="line-393"></a>-<a name="line-394"></a><a name="openTag"></a><span class='definition'>openTag</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span>-<a name="line-395"></a><span class='definition'>openTag</span> <span class='varid'>tn</span> <span class='varid'>al</span> <span class='layout'>(</span><span class='varid'>body</span><span class='layout'>,</span> <span class='varid'>openTags</span><span class='layout'>)</span>-<a name="line-396"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>[]</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>tn</span><span class='layout'>,</span> <span class='varid'>al</span><span class='layout'>,</span> <span class='varid'>body</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>openTags</span><span class='layout'>)</span>-<a name="line-397"></a>-<a name="line-398"></a><a name="closeTag"></a><span class='definition'>closeTag</span> <span class='keyglyph'>::</span> <span class='conid'>SourcePos</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span>-<a name="line-399"></a><span class='definition'>closeTag</span> <span class='varid'>pos</span> <span class='varid'>n</span> <span class='varid'>context</span>-<a name="line-400"></a> <span class='keyglyph'>|</span> <span class='varid'>n</span> <span class='varop'>`elem`</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='layout'>(</span> <span class='keyglyph'>\</span> <span class='layout'>(</span><span class='varid'>n1</span><span class='layout'>,</span> <span class='keyword'>_</span><span class='layout'>,</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>n1</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>snd</span> <span class='varid'>context</span><span class='layout'>)</span>-<a name="line-401"></a> <span class='keyglyph'>=</span> <span class='varid'>closeTag'</span> <span class='varid'>n</span> <span class='varid'>context</span>-<a name="line-402"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-403"></a> <span class='keyglyph'>=</span> <span class='varid'>addHtmlWarn</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>pos</span> <span class='varop'>++</span> <span class='str'>" no opening tag found for </"</span> <span class='varop'>++</span> <span class='varid'>n</span> <span class='varop'>++</span> <span class='str'>">"</span><span class='layout'>)</span>-<a name="line-404"></a> <span class='varop'>.</span>-<a name="line-405"></a> <span class='varid'>addHtmlTag</span> <span class='varid'>n</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-406"></a> <span class='varop'>$</span>-<a name="line-407"></a> <span class='varid'>context</span>-<a name="line-408"></a> <span class='keyword'>where</span>-<a name="line-409"></a> <span class='varid'>closeTag'</span> <span class='varid'>n'</span> <span class='layout'>(</span><span class='varid'>body'</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>n1</span><span class='layout'>,</span> <span class='varid'>al1</span><span class='layout'>,</span> <span class='varid'>body1</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>restOpen</span><span class='layout'>)</span>-<a name="line-410"></a> <span class='keyglyph'>=</span> <span class='varid'>close</span> <span class='varid'>context1</span>-<a name="line-411"></a> <span class='keyword'>where</span>-<a name="line-412"></a> <span class='varid'>context1</span>-<a name="line-413"></a> <span class='keyglyph'>=</span> <span class='varid'>addHtmlTag</span> <span class='varid'>n1</span> <span class='varid'>al1</span> <span class='varid'>body'</span> <span class='layout'>(</span><span class='varid'>body1</span><span class='layout'>,</span> <span class='varid'>restOpen</span><span class='layout'>)</span>-<a name="line-414"></a> <span class='varid'>close</span>-<a name="line-415"></a> <span class='keyglyph'>|</span> <span class='varid'>n'</span> <span class='varop'>==</span> <span class='varid'>n1</span>-<a name="line-416"></a> <span class='keyglyph'>=</span> <span class='varid'>id</span>-<a name="line-417"></a> <span class='keyglyph'>|</span> <span class='varid'>n1</span> <span class='varop'>`isInnerHtmlTagOf`</span> <span class='varid'>n'</span>-<a name="line-418"></a> <span class='keyglyph'>=</span> <span class='varid'>closeTag</span> <span class='varid'>pos</span> <span class='varid'>n'</span>-<a name="line-419"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-420"></a> <span class='keyglyph'>=</span> <span class='varid'>addHtmlWarn</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>pos</span> <span class='varop'>++</span> <span class='str'>" no closing tag found for \"<"</span> <span class='varop'>++</span> <span class='varid'>n1</span> <span class='varop'>++</span> <span class='str'>" ...>\""</span><span class='layout'>)</span>-<a name="line-421"></a> <span class='varop'>.</span>-<a name="line-422"></a> <span class='varid'>closeTag'</span> <span class='varid'>n'</span>-<a name="line-423"></a> <span class='varid'>closeTag'</span> <span class='keyword'>_</span> <span class='keyword'>_</span>-<a name="line-424"></a> <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='str'>"illegal argument for closeTag'"</span>-<a name="line-425"></a>-<a name="line-426"></a><a name="closePrevTag"></a><span class='definition'>closePrevTag</span> <span class='keyglyph'>::</span> <span class='conid'>SourcePos</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span>-<a name="line-427"></a><span class='definition'>closePrevTag</span> <span class='sel'>_pos</span> <span class='sel'>_n</span> <span class='varid'>context</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='sel'>_body</span><span class='layout'>,</span> <span class='conid'>[]</span><span class='layout'>)</span>-<a name="line-428"></a> <span class='keyglyph'>=</span> <span class='varid'>context</span>-<a name="line-429"></a><span class='definition'>closePrevTag</span> <span class='varid'>pos</span> <span class='varid'>n</span> <span class='varid'>context</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='varid'>body</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>n1</span><span class='layout'>,</span> <span class='varid'>al1</span><span class='layout'>,</span> <span class='varid'>body1</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>restOpen</span><span class='layout'>)</span>-<a name="line-430"></a> <span class='keyglyph'>|</span> <span class='varid'>n</span> <span class='varop'>`closes`</span> <span class='varid'>n1</span>-<a name="line-431"></a> <span class='keyglyph'>=</span> <span class='varid'>closePrevTag</span> <span class='varid'>pos</span> <span class='varid'>n</span>-<a name="line-432"></a> <span class='layout'>(</span> <span class='varid'>addHtmlWarn</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>pos</span> <span class='varop'>++</span> <span class='str'>" tag \"<"</span> <span class='varop'>++</span> <span class='varid'>n1</span> <span class='varop'>++</span> <span class='str'>" ...>\" implicitly closed by opening tag \"<"</span> <span class='varop'>++</span> <span class='varid'>n</span> <span class='varop'>++</span> <span class='str'>" ...>\""</span><span class='layout'>)</span>-<a name="line-433"></a> <span class='varop'>.</span>-<a name="line-434"></a> <span class='varid'>addHtmlTag</span> <span class='varid'>n1</span> <span class='varid'>al1</span> <span class='varid'>body</span>-<a name="line-435"></a> <span class='varop'>$</span>-<a name="line-436"></a> <span class='layout'>(</span><span class='varid'>body1</span><span class='layout'>,</span> <span class='varid'>restOpen</span><span class='layout'>)</span>-<a name="line-437"></a> <span class='layout'>)</span>-<a name="line-438"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-439"></a> <span class='keyglyph'>=</span> <span class='varid'>context</span>-<a name="line-440"></a>-<a name="line-441"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-442"></a><span class='comment'>--</span>-<a name="line-443"></a><span class='comment'>-- taken from HaXml and extended</span>-<a name="line-444"></a>-<a name="line-445"></a><a name="isEmptyHtmlTag"></a><span class='definition'>isEmptyHtmlTag</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-446"></a><span class='definition'>isEmptyHtmlTag</span> <span class='varid'>n</span>-<a name="line-447"></a> <span class='keyglyph'>=</span> <span class='varid'>n</span> <span class='varop'>`elem`</span>-<a name="line-448"></a> <span class='varid'>emptyHtmlTags</span>-<a name="line-449"></a>-<a name="line-450"></a><a name="emptyHtmlTags"></a><span class='definition'>emptyHtmlTags</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span>-<a name="line-451"></a><span class='definition'>emptyHtmlTags</span>-<a name="line-452"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='str'>"area"</span>-<a name="line-453"></a> <span class='layout'>,</span> <span class='str'>"base"</span>-<a name="line-454"></a> <span class='layout'>,</span> <span class='str'>"br"</span>-<a name="line-455"></a> <span class='layout'>,</span> <span class='str'>"col"</span>-<a name="line-456"></a> <span class='layout'>,</span> <span class='str'>"frame"</span>-<a name="line-457"></a> <span class='layout'>,</span> <span class='str'>"hr"</span>-<a name="line-458"></a> <span class='layout'>,</span> <span class='str'>"img"</span>-<a name="line-459"></a> <span class='layout'>,</span> <span class='str'>"input"</span>-<a name="line-460"></a> <span class='layout'>,</span> <span class='str'>"link"</span>-<a name="line-461"></a> <span class='layout'>,</span> <span class='str'>"meta"</span>-<a name="line-462"></a> <span class='layout'>,</span> <span class='str'>"param"</span>-<a name="line-463"></a> <span class='keyglyph'>]</span>-<a name="line-464"></a>-<a name="line-465"></a><a name="isInnerHtmlTagOf"></a><span class='definition'>isInnerHtmlTagOf</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-466"></a><a name="isInnerHtmlTagOf"></a><span class='definition'>n</span> <span class='varop'>`isInnerHtmlTagOf`</span> <span class='varid'>tn</span>-<a name="line-467"></a> <span class='keyglyph'>=</span> <span class='varid'>n</span> <span class='varop'>`elem`</span>-<a name="line-468"></a> <span class='layout'>(</span> <span class='varid'>fromMaybe</span> <span class='conid'>[]</span> <span class='varop'>.</span> <span class='varid'>lookup</span> <span class='varid'>tn</span>-<a name="line-469"></a> <span class='varop'>$</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='str'>"body"</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='str'>"p"</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-470"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"caption"</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='str'>"p"</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-471"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"dd"</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='str'>"p"</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-472"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"div"</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='str'>"p"</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-473"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"dl"</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='str'>"dt"</span><span class='layout'>,</span><span class='str'>"dd"</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-474"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"dt"</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='str'>"p"</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-475"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"li"</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='str'>"p"</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-476"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"map"</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='str'>"p"</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-477"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"object"</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='str'>"p"</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-478"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ol"</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='str'>"li"</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-479"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"table"</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='str'>"th"</span><span class='layout'>,</span><span class='str'>"tr"</span><span class='layout'>,</span><span class='str'>"td"</span><span class='layout'>,</span><span class='str'>"thead"</span><span class='layout'>,</span><span class='str'>"tfoot"</span><span class='layout'>,</span><span class='str'>"tbody"</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-480"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"tbody"</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='str'>"th"</span><span class='layout'>,</span><span class='str'>"tr"</span><span class='layout'>,</span><span class='str'>"td"</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-481"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"td"</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='str'>"p"</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-482"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"tfoot"</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='str'>"th"</span><span class='layout'>,</span><span class='str'>"tr"</span><span class='layout'>,</span><span class='str'>"td"</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-483"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"th"</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='str'>"p"</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-484"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"thead"</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='str'>"th"</span><span class='layout'>,</span><span class='str'>"tr"</span><span class='layout'>,</span><span class='str'>"td"</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-485"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"tr"</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='str'>"th"</span><span class='layout'>,</span><span class='str'>"td"</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-486"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ul"</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='str'>"li"</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-487"></a> <span class='keyglyph'>]</span>-<a name="line-488"></a> <span class='layout'>)</span>-<a name="line-489"></a>-<a name="line-490"></a><a name="closesHtmlTag"></a><span class='definition'>closesHtmlTag</span>-<a name="line-491"></a> <span class='layout'>,</span> <span class='varid'>closes</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-492"></a>-<a name="line-493"></a><span class='definition'>closesHtmlTag</span> <span class='keyglyph'>=</span> <span class='varid'>closes</span>-<a name="line-494"></a>-<a name="line-495"></a><span class='str'>"a"</span> <span class='varop'>`closes`</span> <span class='str'>"a"</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-496"></a><span class='str'>"li"</span> <span class='varop'>`closes`</span> <span class='str'>"li"</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-497"></a><span class='str'>"th"</span> <span class='varop'>`closes`</span> <span class='varid'>t</span> <span class='keyglyph'>|</span> <span class='varid'>t</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='str'>"th"</span><span class='layout'>,</span><span class='str'>"td"</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-498"></a><span class='str'>"td"</span> <span class='varop'>`closes`</span> <span class='varid'>t</span> <span class='keyglyph'>|</span> <span class='varid'>t</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='str'>"th"</span><span class='layout'>,</span><span class='str'>"td"</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-499"></a><span class='str'>"tr"</span> <span class='varop'>`closes`</span> <span class='varid'>t</span> <span class='keyglyph'>|</span> <span class='varid'>t</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='str'>"th"</span><span class='layout'>,</span><span class='str'>"td"</span><span class='layout'>,</span><span class='str'>"tr"</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-500"></a><span class='str'>"dt"</span> <span class='varop'>`closes`</span> <span class='varid'>t</span> <span class='keyglyph'>|</span> <span class='varid'>t</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='str'>"dt"</span><span class='layout'>,</span><span class='str'>"dd"</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-501"></a><span class='str'>"dd"</span> <span class='varop'>`closes`</span> <span class='varid'>t</span> <span class='keyglyph'>|</span> <span class='varid'>t</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='str'>"dt"</span><span class='layout'>,</span><span class='str'>"dd"</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-502"></a><span class='str'>"hr"</span> <span class='varop'>`closes`</span> <span class='str'>"p"</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-503"></a><span class='str'>"colgroup"</span> -<a name="line-504"></a> <span class='varop'>`closes`</span> <span class='str'>"colgroup"</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-505"></a><span class='str'>"form"</span> <span class='varop'>`closes`</span> <span class='str'>"form"</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-506"></a><span class='str'>"label"</span> <span class='varop'>`closes`</span> <span class='str'>"label"</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-507"></a><span class='str'>"map"</span> <span class='varop'>`closes`</span> <span class='str'>"map"</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-508"></a><span class='str'>"object"</span>-<a name="line-509"></a> <span class='varop'>`closes`</span> <span class='str'>"object"</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-510"></a><span class='keyword'>_</span> <span class='varop'>`closes`</span> <span class='varid'>t</span> <span class='keyglyph'>|</span> <span class='varid'>t</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='str'>"option"</span>-<a name="line-511"></a> <span class='layout'>,</span><span class='str'>"script"</span>-<a name="line-512"></a> <span class='layout'>,</span><span class='str'>"style"</span>-<a name="line-513"></a> <span class='layout'>,</span><span class='str'>"textarea"</span>-<a name="line-514"></a> <span class='layout'>,</span><span class='str'>"title"</span>-<a name="line-515"></a> <span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-516"></a><a name="closes"></a><span class='definition'>t</span> <span class='varop'>`closes`</span> <span class='str'>"select"</span> <span class='keyglyph'>|</span> <span class='varid'>t</span> <span class='varop'>/=</span> <span class='str'>"option"</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-517"></a><span class='str'>"thead"</span> <span class='varop'>`closes`</span> <span class='varid'>t</span> <span class='keyglyph'>|</span> <span class='varid'>t</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='str'>"colgroup"</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-518"></a><span class='str'>"tfoot"</span> <span class='varop'>`closes`</span> <span class='varid'>t</span> <span class='keyglyph'>|</span> <span class='varid'>t</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='str'>"thead"</span>-<a name="line-519"></a> <span class='layout'>,</span><span class='str'>"colgroup"</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-520"></a><span class='str'>"tbody"</span> <span class='varop'>`closes`</span> <span class='varid'>t</span> <span class='keyglyph'>|</span> <span class='varid'>t</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='str'>"tbody"</span>-<a name="line-521"></a> <span class='layout'>,</span><span class='str'>"tfoot"</span>-<a name="line-522"></a> <span class='layout'>,</span><span class='str'>"thead"</span>-<a name="line-523"></a> <span class='layout'>,</span><span class='str'>"colgroup"</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-524"></a><a name="closes"></a><span class='definition'>t</span> <span class='varop'>`closes`</span> <span class='varid'>t2</span> <span class='keyglyph'>|</span> <span class='varid'>t</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='str'>"h1"</span><span class='layout'>,</span><span class='str'>"h2"</span><span class='layout'>,</span><span class='str'>"h3"</span>-<a name="line-525"></a> <span class='layout'>,</span><span class='str'>"h4"</span><span class='layout'>,</span><span class='str'>"h5"</span><span class='layout'>,</span><span class='str'>"h6"</span>-<a name="line-526"></a> <span class='layout'>,</span><span class='str'>"dl"</span><span class='layout'>,</span><span class='str'>"ol"</span><span class='layout'>,</span><span class='str'>"ul"</span>-<a name="line-527"></a> <span class='layout'>,</span><span class='str'>"table"</span>-<a name="line-528"></a> <span class='layout'>,</span><span class='str'>"div"</span><span class='layout'>,</span><span class='str'>"p"</span>-<a name="line-529"></a> <span class='keyglyph'>]</span>-<a name="line-530"></a> <span class='varop'>&&</span>-<a name="line-531"></a> <span class='varid'>t2</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='str'>"h1"</span><span class='layout'>,</span><span class='str'>"h2"</span><span class='layout'>,</span><span class='str'>"h3"</span>-<a name="line-532"></a> <span class='layout'>,</span><span class='str'>"h4"</span><span class='layout'>,</span><span class='str'>"h5"</span><span class='layout'>,</span><span class='str'>"h6"</span>-<a name="line-533"></a> <span class='layout'>,</span><span class='str'>"p"</span> <span class='comment'>-- not "div"</span>-<a name="line-534"></a> <span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-535"></a><span class='keyword'>_</span> <span class='varop'>`closes`</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-536"></a>-<a name="line-537"></a><span class='comment'>-- ------------------------------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-Parser-ProtocolHandlerUtil.html
@@ -1,63 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a><span class='comment'>--</span>-<a name="line-3"></a><span class='comment'>-- protocol handler utility functions</span>-<a name="line-4"></a><span class='comment'>--</span>-<a name="line-5"></a><span class='comment'>-- Version : $Id: ProtocolHandlerUtil.hs,v 1.4 2005/04/14 12:52:53 hxml Exp $</span>-<a name="line-6"></a>-<a name="line-7"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Parser</span><span class='varop'>.</span><span class='conid'>ProtocolHandlerUtil</span>-<a name="line-8"></a> <span class='layout'>(</span> <span class='varid'>parseContentType</span>-<a name="line-9"></a> <span class='layout'>)</span>-<a name="line-10"></a>-<a name="line-11"></a><span class='keyword'>where</span>-<a name="line-12"></a>-<a name="line-13"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlKeywords</span>-<a name="line-14"></a>-<a name="line-15"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Util</span>-<a name="line-16"></a> <span class='layout'>(</span> <span class='varid'>stringToUpper</span>-<a name="line-17"></a> <span class='layout'>)</span>-<a name="line-18"></a>-<a name="line-19"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>ParserCombinators</span><span class='varop'>.</span><span class='conid'>Parsec</span> <span class='keyword'>as</span> <span class='conid'>P</span>-<a name="line-20"></a>-<a name="line-21"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-22"></a><span class='comment'>--</span>-<a name="line-23"></a><span class='comment'>-- try to extract charset spec from Content-Type header</span>-<a name="line-24"></a><span class='comment'>-- e.g. "text/html; charset=ISO-8859-1"</span>-<a name="line-25"></a>-<a name="line-26"></a><span class='comment'>-- sometimes the server deliver the charset spec in quotes</span>-<a name="line-27"></a><span class='comment'>-- these are removed</span>-<a name="line-28"></a>-<a name="line-29"></a><a name="parseContentType"></a><span class='definition'>parseContentType</span> <span class='keyglyph'>::</span> <span class='conid'>P</span><span class='varop'>.</span><span class='conid'>Parser</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-30"></a><span class='definition'>parseContentType</span>-<a name="line-31"></a> <span class='keyglyph'>=</span> <span class='conid'>P</span><span class='varop'>.</span><span class='varid'>try</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-32"></a> <span class='varid'>mimeType</span> <span class='keyglyph'><-</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-33"></a> <span class='varid'>mt</span> <span class='keyglyph'><-</span> <span class='conid'>P</span><span class='varop'>.</span><span class='varid'>many</span> <span class='layout'>(</span><span class='conid'>P</span><span class='varop'>.</span><span class='varid'>noneOf</span> <span class='str'>";"</span><span class='layout'>)</span>-<a name="line-34"></a> <span class='varid'>return</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>transferMimeType</span><span class='layout'>,</span> <span class='varid'>mt</span><span class='layout'>)</span> <span class='keyglyph'>]</span>-<a name="line-35"></a> <span class='layout'>)</span>-<a name="line-36"></a> <span class='varid'>charset</span> <span class='keyglyph'><-</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-37"></a> <span class='conid'>P</span><span class='varop'>.</span><span class='varid'>char</span> <span class='chr'>';'</span>-<a name="line-38"></a> <span class='conid'>P</span><span class='varop'>.</span><span class='varid'>many</span> <span class='layout'>(</span><span class='conid'>P</span><span class='varop'>.</span><span class='varid'>oneOf</span> <span class='str'>" \t'"</span><span class='layout'>)</span>-<a name="line-39"></a> <span class='conid'>P</span><span class='varop'>.</span><span class='varid'>string</span> <span class='str'>"charset="</span>-<a name="line-40"></a> <span class='conid'>P</span><span class='varop'>.</span><span class='varid'>option</span> <span class='chr'>'"'</span> <span class='layout'>(</span><span class='conid'>P</span><span class='varop'>.</span><span class='varid'>oneOf</span> <span class='str'>"\"'"</span><span class='layout'>)</span>-<a name="line-41"></a> <span class='varid'>cs</span> <span class='keyglyph'><-</span> <span class='conid'>P</span><span class='varop'>.</span><span class='varid'>many1</span> <span class='layout'>(</span><span class='conid'>P</span><span class='varop'>.</span><span class='varid'>noneOf</span> <span class='str'>"\"'"</span><span class='layout'>)</span>-<a name="line-42"></a> <span class='varid'>return</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>transferEncoding</span><span class='layout'>,</span> <span class='varid'>stringToUpper</span> <span class='varid'>cs</span><span class='layout'>)</span> <span class='keyglyph'>]</span>-<a name="line-43"></a> <span class='layout'>)</span>-<a name="line-44"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>mimeType</span> <span class='varop'>++</span> <span class='varid'>charset</span><span class='layout'>)</span>-<a name="line-45"></a> <span class='layout'>)</span>-<a name="line-46"></a> <span class='conid'>P</span><span class='varop'>.<|></span>-<a name="line-47"></a> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-48"></a> <span class='varid'>mimeType</span> <span class='keyglyph'><-</span> <span class='conid'>P</span><span class='varop'>.</span><span class='varid'>many</span> <span class='layout'>(</span><span class='conid'>P</span><span class='varop'>.</span><span class='varid'>noneOf</span> <span class='str'>";"</span><span class='layout'>)</span>-<a name="line-49"></a> <span class='varid'>return</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>transferMimeType</span><span class='layout'>,</span> <span class='varid'>mimeType</span><span class='layout'>)</span> <span class='keyglyph'>]</span>-<a name="line-50"></a> <span class='layout'>)</span>-<a name="line-51"></a>-<a name="line-52"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-53"></a>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-Parser-TagSoup.html
@@ -1,459 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Text.XML.HXT.Parser.TagSoup-<a name="line-5"></a> Copyright : Copyright (C) 2005-2008 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe@fh-wedel.de)-<a name="line-9"></a> Stability : experimental-<a name="line-10"></a> Portability: portable-<a name="line-11"></a>-<a name="line-12"></a> lasy HTML and simpe XML parser implemented with tagsoup-<a name="line-13"></a> parsing is done with a very simple monadic top down parser-<a name="line-14"></a>-<a name="line-15"></a>-}</span>-<a name="line-16"></a>-<a name="line-17"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-18"></a>-<a name="line-19"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Parser</span><span class='varop'>.</span><span class='conid'>TagSoup</span>-<a name="line-20"></a> <span class='layout'>(</span> <span class='varid'>parseHtmlTagSoup</span>-<a name="line-21"></a> <span class='layout'>)</span>-<a name="line-22"></a><span class='keyword'>where</span>-<a name="line-23"></a>-<a name="line-24"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-25"></a>-<a name="line-26"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Char</span> <span class='layout'>(</span><span class='varid'>toLower</span><span class='layout'>)</span>-<a name="line-27"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>-<a name="line-28"></a>-<a name="line-29"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>HTML</span><span class='varop'>.</span><span class='conid'>TagSoup</span>-<a name="line-30"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>HTML</span><span class='varop'>.</span><span class='conid'>TagSoup</span><span class='varop'>.</span><span class='conid'>Entity</span> <span class='layout'>(</span> <span class='varid'>lookupNumericEntity</span>-<a name="line-31"></a> <span class='layout'>)</span>-<a name="line-32"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Unicode</span> <span class='layout'>(</span> <span class='varid'>isXmlSpaceChar</span>-<a name="line-33"></a> <span class='layout'>)</span>-<a name="line-34"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Parser</span><span class='varop'>.</span><span class='conid'>HtmlParsec</span> <span class='layout'>(</span> <span class='varid'>isEmptyHtmlTag</span>-<a name="line-35"></a> <span class='layout'>,</span> <span class='varid'>isInnerHtmlTagOf</span>-<a name="line-36"></a> <span class='layout'>,</span> <span class='varid'>closesHtmlTag</span>-<a name="line-37"></a> <span class='layout'>)</span>-<a name="line-38"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Parser</span><span class='varop'>.</span><span class='conid'>XhtmlEntities</span>-<a name="line-39"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span> <span class='layout'>(</span> <span class='conid'>XmlTrees</span>-<a name="line-40"></a> <span class='layout'>,</span> <span class='conid'>QName</span>-<a name="line-41"></a> <span class='layout'>,</span> <span class='conid'>NsEnv</span>-<a name="line-42"></a> <span class='layout'>,</span> <span class='varid'>toNsEnv</span>-<a name="line-43"></a> <span class='layout'>,</span> <span class='varid'>newXName</span>-<a name="line-44"></a> <span class='layout'>,</span> <span class='varid'>nullXName</span>-<a name="line-45"></a> <span class='layout'>,</span> <span class='varid'>mkQName'</span>-<a name="line-46"></a> <span class='layout'>,</span> <span class='varid'>mkName</span>-<a name="line-47"></a> <span class='layout'>,</span> <span class='varid'>isWellformedQualifiedName</span>-<a name="line-48"></a> <span class='layout'>,</span> <span class='varid'>c_warn</span>-<a name="line-49"></a> <span class='layout'>,</span> <span class='varid'>a_xml</span>-<a name="line-50"></a> <span class='layout'>,</span> <span class='varid'>a_xmlns</span>-<a name="line-51"></a> <span class='layout'>,</span> <span class='varid'>xmlNamespace</span>-<a name="line-52"></a> <span class='layout'>,</span> <span class='varid'>xmlnsNamespace</span>-<a name="line-53"></a> <span class='layout'>)</span>-<a name="line-54"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlNode</span> <span class='layout'>(</span> <span class='varid'>isElem</span>-<a name="line-55"></a> <span class='layout'>,</span> <span class='varid'>mkError</span>-<a name="line-56"></a> <span class='layout'>,</span> <span class='varid'>mkCmt</span>-<a name="line-57"></a> <span class='layout'>,</span> <span class='varid'>mkText</span>-<a name="line-58"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span>-<a name="line-59"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span>-<a name="line-60"></a> <span class='layout'>)</span>-<a name="line-61"></a>-<a name="line-62"></a><span class='comment'>-- ---------------------------------------- </span>-<a name="line-63"></a>-<a name="line-64"></a><span class='comment'>-- The name table contains the id map. All element and attribute names are stored</span>-<a name="line-65"></a><span class='comment'>-- the first time they are ecountered, and later always this name is used,</span>-<a name="line-66"></a><span class='comment'>-- not a string built by the parser.</span>-<a name="line-67"></a>-<a name="line-68"></a><a name="Tags"></a><span class='keyword'>type</span> <span class='conid'>Tags</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>Tag</span><span class='keyglyph'>]</span>-<a name="line-69"></a>-<a name="line-70"></a><a name="Context"></a><span class='keyword'>type</span> <span class='conid'>Context</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span><span class='layout'>,</span> <span class='conid'>NsEnv</span><span class='layout'>)</span>-<a name="line-71"></a>-<a name="line-72"></a><a name="State"></a><span class='keyword'>type</span> <span class='conid'>State</span> <span class='keyglyph'>=</span> <span class='conid'>Tags</span>-<a name="line-73"></a>-<a name="line-74"></a><a name="Parser"></a><span class='keyword'>newtype</span> <span class='conid'>Parser</span> <span class='varid'>a</span> <span class='keyglyph'>=</span> <span class='conid'>P</span> <span class='layout'>{</span> <span class='varid'>parse</span> <span class='keyglyph'>::</span> <span class='conid'>State</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='conid'>State</span><span class='layout'>)</span><span class='layout'>}</span>-<a name="line-75"></a>-<a name="line-76"></a><span class='keyword'>instance</span> <span class='conid'>Monad</span> <span class='conid'>Parser</span> <span class='keyword'>where</span>-<a name="line-77"></a> <span class='varid'>return</span> <span class='varid'>x</span> <span class='keyglyph'>=</span> <span class='conid'>P</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>ts</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='varid'>x</span><span class='layout'>,</span> <span class='varid'>ts</span><span class='layout'>)</span>-<a name="line-78"></a> <span class='varid'>p</span> <span class='varop'>>>=</span> <span class='varid'>f</span> <span class='keyglyph'>=</span> <span class='conid'>P</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>ts</span> <span class='keyglyph'>-></span> <span class='keyword'>let</span>-<a name="line-79"></a> <span class='layout'>(</span><span class='varid'>res</span><span class='layout'>,</span> <span class='varid'>ts'</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>parse</span> <span class='varid'>p</span> <span class='varid'>ts</span>-<a name="line-80"></a> <span class='keyword'>in</span>-<a name="line-81"></a> <span class='varid'>parse</span> <span class='layout'>(</span><span class='varid'>f</span> <span class='varid'>res</span><span class='layout'>)</span> <span class='varid'>ts'</span>-<a name="line-82"></a>-<a name="line-83"></a><a name="runParser"></a><span class='definition'>runParser</span> <span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>Tags</span> <span class='keyglyph'>-></span> <span class='varid'>a</span>-<a name="line-84"></a><span class='definition'>runParser</span> <span class='varid'>p</span> <span class='varid'>ts</span> <span class='keyglyph'>=</span> <span class='varid'>fst</span> <span class='varop'>.</span> <span class='varid'>parse</span> <span class='varid'>p</span> <span class='varop'>$</span> <span class='varid'>ts</span>-<a name="line-85"></a>-<a name="line-86"></a><span class='comment'>-- ----------------------------------------</span>-<a name="line-87"></a>-<a name="line-88"></a><a name="cond"></a><span class='definition'>cond</span> <span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Bool</span> <span class='keyglyph'>-></span> <span class='conid'>Parser</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>Parser</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>Parser</span> <span class='varid'>a</span>-<a name="line-89"></a><span class='definition'>cond</span> <span class='varid'>c</span> <span class='varid'>t</span> <span class='varid'>e</span> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-90"></a> <span class='varid'>p</span> <span class='keyglyph'><-</span> <span class='varid'>c</span>-<a name="line-91"></a> <span class='keyword'>if</span> <span class='varid'>p</span> <span class='keyword'>then</span> <span class='varid'>t</span> <span class='keyword'>else</span> <span class='varid'>e</span>-<a name="line-92"></a>-<a name="line-93"></a><a name="lookAhead"></a><span class='definition'>lookAhead</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Tag</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>Parser</span> <span class='conid'>Bool</span>-<a name="line-94"></a><span class='definition'>lookAhead</span> <span class='varid'>p</span> <span class='keyglyph'>=</span> <span class='conid'>P</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>null</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='varop'>&&</span> <span class='varid'>p</span> <span class='layout'>(</span><span class='varid'>head</span> <span class='varid'>s</span><span class='layout'>)</span><span class='layout'>,</span> <span class='varid'>s</span><span class='layout'>)</span>-<a name="line-95"></a>-<a name="line-96"></a><span class='comment'>-- ----------------------------------------</span>-<a name="line-97"></a><span class='comment'>-- primitive look ahead tests</span>-<a name="line-98"></a>-<a name="line-99"></a><a name="isEof"></a><span class='definition'>isEof</span> <span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Bool</span>-<a name="line-100"></a><span class='definition'>isEof</span> <span class='keyglyph'>=</span> <span class='conid'>P</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='varid'>null</span> <span class='varid'>s</span><span class='layout'>,</span> <span class='varid'>s</span><span class='layout'>)</span>-<a name="line-101"></a>-<a name="line-102"></a><a name="isText"></a><span class='definition'>isText</span> <span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Bool</span>-<a name="line-103"></a><span class='definition'>isText</span> <span class='keyglyph'>=</span> <span class='varid'>lookAhead</span> <span class='varid'>is</span>-<a name="line-104"></a> <span class='keyword'>where</span>-<a name="line-105"></a> <span class='varid'>is</span> <span class='layout'>(</span><span class='conid'>TagText</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-106"></a> <span class='varid'>is</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-107"></a>-<a name="line-108"></a><a name="isCmt"></a><span class='definition'>isCmt</span> <span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Bool</span>-<a name="line-109"></a><span class='definition'>isCmt</span> <span class='keyglyph'>=</span> <span class='varid'>lookAhead</span> <span class='varid'>is</span>-<a name="line-110"></a> <span class='keyword'>where</span>-<a name="line-111"></a> <span class='varid'>is</span> <span class='layout'>(</span><span class='conid'>TagComment</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-112"></a> <span class='varid'>is</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-113"></a>-<a name="line-114"></a><a name="isWarn"></a><span class='definition'>isWarn</span> <span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Bool</span>-<a name="line-115"></a><span class='definition'>isWarn</span> <span class='keyglyph'>=</span> <span class='varid'>lookAhead</span> <span class='varid'>is</span>-<a name="line-116"></a> <span class='keyword'>where</span>-<a name="line-117"></a> <span class='varid'>is</span> <span class='layout'>(</span><span class='conid'>TagWarning</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-118"></a> <span class='varid'>is</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-119"></a>-<a name="line-120"></a><a name="isPos"></a><span class='definition'>isPos</span> <span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Bool</span>-<a name="line-121"></a><span class='definition'>isPos</span> <span class='keyglyph'>=</span> <span class='varid'>lookAhead</span> <span class='varid'>is</span>-<a name="line-122"></a> <span class='keyword'>where</span>-<a name="line-123"></a> <span class='varid'>is</span> <span class='layout'>(</span><span class='conid'>TagPosition</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-124"></a> <span class='varid'>is</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-125"></a>-<a name="line-126"></a><a name="isCls"></a><span class='definition'>isCls</span> <span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Bool</span>-<a name="line-127"></a><span class='definition'>isCls</span> <span class='keyglyph'>=</span> <span class='varid'>lookAhead</span> <span class='varid'>is</span>-<a name="line-128"></a> <span class='keyword'>where</span>-<a name="line-129"></a> <span class='varid'>is</span> <span class='layout'>(</span><span class='conid'>TagClose</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-130"></a> <span class='varid'>is</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-131"></a>-<a name="line-132"></a><a name="isOpn"></a><span class='definition'>isOpn</span> <span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Bool</span>-<a name="line-133"></a><span class='definition'>isOpn</span> <span class='keyglyph'>=</span> <span class='varid'>lookAhead</span> <span class='varid'>is</span>-<a name="line-134"></a> <span class='keyword'>where</span>-<a name="line-135"></a> <span class='varid'>is</span> <span class='layout'>(</span><span class='conid'>TagOpen</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-136"></a> <span class='varid'>is</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-137"></a>-<a name="line-138"></a><span class='comment'>-- ----------------------------------------</span>-<a name="line-139"></a><span class='comment'>-- primitive symbol parsers</span>-<a name="line-140"></a>-<a name="line-141"></a><a name="getTag"></a><span class='definition'>getTag</span> <span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Tag</span>-<a name="line-142"></a><span class='definition'>getTag</span> <span class='keyglyph'>=</span> <span class='conid'>P</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='layout'>(</span><span class='varid'>t1</span><span class='conop'>:</span><span class='varid'>ts1</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='varid'>t1</span><span class='layout'>,</span> <span class='varid'>ts1</span><span class='layout'>)</span>-<a name="line-143"></a>-<a name="line-144"></a><a name="getSym"></a><span class='definition'>getSym</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Tag</span> <span class='keyglyph'>-></span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>Parser</span> <span class='varid'>a</span>-<a name="line-145"></a><span class='definition'>getSym</span> <span class='varid'>f</span> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-146"></a> <span class='varid'>t</span> <span class='keyglyph'><-</span> <span class='varid'>getTag</span>-<a name="line-147"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>f</span> <span class='varid'>t</span><span class='layout'>)</span>-<a name="line-148"></a>-<a name="line-149"></a><a name="getText"></a><span class='definition'>getText</span> <span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>String</span>-<a name="line-150"></a><span class='definition'>getText</span> <span class='keyglyph'>=</span> <span class='varid'>getSym</span> <span class='varid'>sym</span>-<a name="line-151"></a> <span class='keyword'>where</span>-<a name="line-152"></a> <span class='varid'>sym</span> <span class='layout'>(</span><span class='conid'>TagText</span> <span class='varid'>t</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>t</span>-<a name="line-153"></a> <span class='varid'>sym</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='varid'>undefined</span>-<a name="line-154"></a>-<a name="line-155"></a><a name="getCmt"></a><span class='definition'>getCmt</span> <span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>String</span>-<a name="line-156"></a><span class='definition'>getCmt</span> <span class='keyglyph'>=</span> <span class='varid'>getSym</span> <span class='varid'>sym</span>-<a name="line-157"></a> <span class='keyword'>where</span>-<a name="line-158"></a> <span class='varid'>sym</span> <span class='layout'>(</span><span class='conid'>TagComment</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>c</span>-<a name="line-159"></a> <span class='varid'>sym</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='varid'>undefined</span>-<a name="line-160"></a>-<a name="line-161"></a><a name="getWarn"></a><span class='definition'>getWarn</span> <span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>String</span>-<a name="line-162"></a><span class='definition'>getWarn</span> <span class='keyglyph'>=</span> <span class='varid'>getSym</span> <span class='varid'>sym</span>-<a name="line-163"></a> <span class='keyword'>where</span>-<a name="line-164"></a> <span class='varid'>sym</span> <span class='layout'>(</span><span class='conid'>TagWarning</span> <span class='varid'>w</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>w</span>-<a name="line-165"></a> <span class='varid'>sym</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='varid'>undefined</span>-<a name="line-166"></a>-<a name="line-167"></a><a name="getPos"></a><span class='definition'>getPos</span> <span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='layout'>(</span><span class='conid'>Int</span><span class='layout'>,</span> <span class='conid'>Int</span><span class='layout'>)</span>-<a name="line-168"></a><span class='definition'>getPos</span> <span class='keyglyph'>=</span> <span class='varid'>getSym</span> <span class='varid'>sym</span>-<a name="line-169"></a> <span class='keyword'>where</span>-<a name="line-170"></a> <span class='varid'>sym</span> <span class='layout'>(</span><span class='conid'>TagPosition</span> <span class='varid'>l</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>l</span><span class='layout'>,</span> <span class='varid'>c</span><span class='layout'>)</span>-<a name="line-171"></a> <span class='varid'>sym</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='varid'>undefined</span>-<a name="line-172"></a>-<a name="line-173"></a><a name="getCls"></a><span class='definition'>getCls</span> <span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>String</span>-<a name="line-174"></a><span class='definition'>getCls</span> <span class='keyglyph'>=</span> <span class='varid'>getSym</span> <span class='varid'>sym</span>-<a name="line-175"></a> <span class='keyword'>where</span>-<a name="line-176"></a> <span class='varid'>sym</span> <span class='layout'>(</span><span class='conid'>TagClose</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>n</span>-<a name="line-177"></a> <span class='varid'>sym</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='varid'>undefined</span>-<a name="line-178"></a>-<a name="line-179"></a><a name="getOpn"></a><span class='definition'>getOpn</span> <span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span><span class='conid'>String</span><span class='layout'>)</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-180"></a><span class='definition'>getOpn</span> <span class='keyglyph'>=</span> <span class='varid'>getSym</span> <span class='varid'>sym</span>-<a name="line-181"></a> <span class='keyword'>where</span>-<a name="line-182"></a> <span class='varid'>sym</span> <span class='layout'>(</span><span class='conid'>TagOpen</span> <span class='varid'>n</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>n</span><span class='layout'>,</span> <span class='varid'>al</span><span class='layout'>)</span>-<a name="line-183"></a> <span class='varid'>sym</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='varid'>undefined</span>-<a name="line-184"></a>-<a name="line-185"></a><span class='comment'>-- ----------------------------------------</span>-<a name="line-186"></a><span class='comment'>-- pushback parsers for inserting missing tags</span>-<a name="line-187"></a>-<a name="line-188"></a><a name="pushBack"></a><span class='definition'>pushBack</span> <span class='keyglyph'>::</span> <span class='conid'>Tag</span> <span class='keyglyph'>-></span> <span class='conid'>Parser</span> <span class='conid'>()</span>-<a name="line-189"></a><span class='definition'>pushBack</span> <span class='varid'>t</span> <span class='keyglyph'>=</span> <span class='conid'>P</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>ts</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='conid'>()</span><span class='layout'>,</span> <span class='varid'>t</span><span class='conop'>:</span><span class='varid'>ts</span><span class='layout'>)</span>-<a name="line-190"></a>-<a name="line-191"></a><a name="insCls"></a><span class='definition'>insCls</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Parser</span> <span class='conid'>()</span>-<a name="line-192"></a><span class='definition'>insCls</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='varid'>pushBack</span> <span class='layout'>(</span><span class='conid'>TagClose</span> <span class='varid'>n</span><span class='layout'>)</span>-<a name="line-193"></a>-<a name="line-194"></a><a name="insOpn"></a><span class='definition'>insOpn</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>Parser</span> <span class='conid'>()</span>-<a name="line-195"></a><span class='definition'>insOpn</span> <span class='varid'>n</span> <span class='varid'>al</span> <span class='keyglyph'>=</span> <span class='varid'>pushBack</span> <span class='layout'>(</span><span class='conid'>TagOpen</span> <span class='varid'>n</span> <span class='varid'>al</span><span class='layout'>)</span>-<a name="line-196"></a>-<a name="line-197"></a><span class='comment'>-- ----------------------------------------</span>-<a name="line-198"></a>-<a name="line-199"></a><a name="mkQN"></a><span class='definition'>mkQN</span> <span class='keyglyph'>::</span> <span class='conid'>Bool</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span> <span class='keyglyph'>-></span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Parser</span> <span class='conid'>QName</span>-<a name="line-200"></a><span class='definition'>mkQN</span> <span class='varid'>withNamespaces</span> <span class='varid'>isAttr</span> <span class='varid'>env</span> <span class='varid'>s</span>-<a name="line-201"></a> <span class='keyglyph'>|</span> <span class='varid'>withNamespaces</span>-<a name="line-202"></a> <span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varid'>qn1</span>-<a name="line-203"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-204"></a> <span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varid'>qn0</span>-<a name="line-205"></a> <span class='keyword'>where</span>-<a name="line-206"></a> <span class='varid'>qn1</span>-<a name="line-207"></a> <span class='keyglyph'>|</span> <span class='varid'>isAttr</span> <span class='varop'>&&</span> <span class='varid'>isSimpleName</span> <span class='keyglyph'>=</span> <span class='varid'>s'</span>-<a name="line-208"></a> <span class='keyglyph'>|</span> <span class='varid'>isSimpleName</span> <span class='keyglyph'>=</span> <span class='varid'>mkQName'</span> <span class='varid'>nullXName</span> <span class='layout'>(</span><span class='varid'>newXName</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>nsUri</span> <span class='varid'>nullXName</span><span class='layout'>)</span>-<a name="line-209"></a> <span class='keyglyph'>|</span> <span class='varid'>isWellformedQualifiedName</span> <span class='varid'>s</span> <span class='keyglyph'>=</span> <span class='varid'>mkQName'</span> <span class='varid'>px'</span> <span class='varid'>lp'</span> <span class='layout'>(</span><span class='varid'>nsUri</span> <span class='varid'>px'</span><span class='layout'>)</span>-<a name="line-210"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>s'</span>-<a name="line-211"></a> <span class='varid'>qn0</span> <span class='keyglyph'>=</span> <span class='varid'>s'</span>-<a name="line-212"></a>-<a name="line-213"></a> <span class='varid'>nsUri</span> <span class='varid'>x</span> <span class='keyglyph'>=</span> <span class='varid'>fromMaybe</span> <span class='varid'>nullXName</span> <span class='varop'>.</span> <span class='varid'>lookup</span> <span class='varid'>x</span> <span class='varop'>$</span> <span class='varid'>env</span>-<a name="line-214"></a> <span class='varid'>isSimpleName</span> <span class='keyglyph'>=</span> <span class='varid'>all</span> <span class='layout'>(</span><span class='varop'>/=</span> <span class='chr'>':'</span><span class='layout'>)</span> <span class='varid'>s</span>-<a name="line-215"></a> <span class='layout'>(</span><span class='varid'>px</span><span class='layout'>,</span> <span class='layout'>(</span><span class='keyword'>_</span> <span class='conop'>:</span> <span class='varid'>lp</span><span class='layout'>)</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>span</span><span class='layout'>(</span><span class='varop'>/=</span> <span class='chr'>':'</span><span class='layout'>)</span> <span class='varid'>s</span>-<a name="line-216"></a> <span class='varid'>px'</span> <span class='keyglyph'>=</span> <span class='varid'>newXName</span> <span class='varid'>px</span>-<a name="line-217"></a> <span class='varid'>lp'</span> <span class='keyglyph'>=</span> <span class='varid'>newXName</span> <span class='varid'>lp</span>-<a name="line-218"></a> <span class='varid'>s'</span> <span class='keyglyph'>=</span> <span class='varid'>mkName</span> <span class='varid'>s</span>-<a name="line-219"></a>-<a name="line-220"></a><a name="extendNsEnv"></a><span class='definition'>extendNsEnv</span> <span class='keyglyph'>::</span> <span class='conid'>Bool</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-></span> <span class='conid'>NsEnv</span>-<a name="line-221"></a><span class='definition'>extendNsEnv</span> <span class='varid'>withNamespaces</span> <span class='varid'>al1</span> <span class='varid'>env</span>-<a name="line-222"></a> <span class='keyglyph'>|</span> <span class='varid'>withNamespaces</span>-<a name="line-223"></a> <span class='keyglyph'>=</span> <span class='varid'>toNsEnv</span> <span class='layout'>(</span><span class='varid'>concatMap</span> <span class='layout'>(</span><span class='varid'>uncurry</span> <span class='varid'>addNs</span><span class='layout'>)</span> <span class='varid'>al1</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='varid'>env</span>-<a name="line-224"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-225"></a> <span class='keyglyph'>=</span> <span class='varid'>env</span>-<a name="line-226"></a> <span class='keyword'>where</span>-<a name="line-227"></a> <span class='varid'>addNs</span> <span class='varid'>n</span> <span class='varid'>v</span>-<a name="line-228"></a> <span class='keyglyph'>|</span> <span class='varid'>px</span> <span class='varop'>==</span> <span class='varid'>a_xmlns</span>-<a name="line-229"></a> <span class='varop'>&&</span>-<a name="line-230"></a> <span class='layout'>(</span><span class='varid'>null</span> <span class='varid'>lp</span> <span class='varop'>||</span> <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>null</span> <span class='varop'>.</span> <span class='varid'>tail</span> <span class='varop'>$</span> <span class='varid'>lp</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-231"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>drop</span> <span class='num'>1</span> <span class='varid'>lp</span><span class='layout'>,</span> <span class='varid'>v</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-232"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-233"></a> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-234"></a> <span class='keyword'>where</span>-<a name="line-235"></a> <span class='layout'>(</span><span class='varid'>px</span><span class='layout'>,</span> <span class='varid'>lp</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>span</span> <span class='layout'>(</span><span class='varop'>/=</span> <span class='chr'>':'</span><span class='layout'>)</span> <span class='varid'>n</span>-<a name="line-236"></a>-<a name="line-237"></a><span class='comment'>-- ----------------------------------------</span>-<a name="line-238"></a>-<a name="line-239"></a><span class='comment'>-- own entity lookup to prevent problems with &amp; and tagsoup hack for IE</span>-<a name="line-240"></a>-<a name="line-241"></a><a name="lookupEntity"></a><span class='definition'>lookupEntity</span> <span class='keyglyph'>::</span> <span class='conid'>Bool</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>Tag</span><span class='keyglyph'>]</span>-<a name="line-242"></a><span class='definition'>lookupEntity</span> <span class='varid'>withWarnings</span> <span class='sel'>_asHtml</span> <span class='varid'>e0</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='chr'>'#'</span><span class='conop'>:</span><span class='varid'>e</span><span class='layout'>)</span>-<a name="line-243"></a> <span class='keyglyph'>=</span> <span class='keyword'>case</span> <span class='varid'>lookupNumericEntity</span> <span class='varid'>e</span> <span class='keyword'>of</span>-<a name="line-244"></a> <span class='conid'>Just</span> <span class='varid'>c</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span> <span class='conid'>TagText</span> <span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span> <span class='keyglyph'>]</span>-<a name="line-245"></a> <span class='conid'>Nothing</span> <span class='keyglyph'>-></span> <span class='layout'>(</span> <span class='conid'>TagText</span> <span class='varop'>$</span> <span class='str'>"&"</span> <span class='varop'>++</span> <span class='varid'>e0</span> <span class='varop'>++</span> <span class='str'>";"</span><span class='layout'>)</span> <span class='conop'>:</span>-<a name="line-246"></a> <span class='keyword'>if</span> <span class='varid'>withWarnings</span>-<a name="line-247"></a> <span class='keyword'>then</span> <span class='keyglyph'>[</span><span class='conid'>TagWarning</span> <span class='varop'>$</span> <span class='str'>"illegal char reference: &"</span> <span class='varop'>++</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>";"</span><span class='keyglyph'>]</span>-<a name="line-248"></a> <span class='keyword'>else</span> <span class='conid'>[]</span>-<a name="line-249"></a>-<a name="line-250"></a><span class='definition'>lookupEntity</span> <span class='varid'>withWarnings</span> <span class='varid'>asHtml</span> <span class='varid'>e</span>-<a name="line-251"></a> <span class='keyglyph'>=</span> <span class='keyword'>case</span> <span class='layout'>(</span><span class='varid'>lookup</span> <span class='varid'>e</span> <span class='varid'>entities</span><span class='layout'>)</span> <span class='keyword'>of</span>-<a name="line-252"></a> <span class='conid'>Just</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span> <span class='conid'>TagText</span> <span class='keyglyph'>[</span><span class='varid'>toEnum</span> <span class='varid'>x</span><span class='keyglyph'>]</span><span class='keyglyph'>]</span>-<a name="line-253"></a> <span class='conid'>Nothing</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='conid'>TagText</span> <span class='varop'>$</span> <span class='str'>"&"</span> <span class='varop'>++</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>";"</span><span class='layout'>)</span> <span class='conop'>:</span>-<a name="line-254"></a> <span class='keyword'>if</span> <span class='varid'>withWarnings</span>-<a name="line-255"></a> <span class='keyword'>then</span> <span class='keyglyph'>[</span><span class='conid'>TagWarning</span> <span class='varop'>$</span> <span class='str'>"Unknown entity reference: &"</span> <span class='varop'>++</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>";"</span><span class='keyglyph'>]</span>-<a name="line-256"></a> <span class='keyword'>else</span> <span class='conid'>[]</span>-<a name="line-257"></a> <span class='keyword'>where</span>-<a name="line-258"></a> <span class='varid'>entities</span>-<a name="line-259"></a> <span class='keyglyph'>|</span> <span class='varid'>asHtml</span> <span class='keyglyph'>=</span> <span class='varid'>xhtmlEntities</span>-<a name="line-260"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>xhtmlEntities</span> <span class='comment'>-- xmlEntities (TODO: xhtml is xml and html)</span>-<a name="line-261"></a>-<a name="line-262"></a><span class='comment'>-- ----------------------------------------</span>-<a name="line-263"></a>-<a name="line-264"></a><span class='comment'>-- |</span>-<a name="line-265"></a><span class='comment'>-- Turns all element and attribute names to lower case</span>-<a name="line-266"></a><span class='comment'>-- even !DOCTYPE stuff. But this is discarded when parsing the tagsoup</span>-<a name="line-267"></a>-<a name="line-268"></a><a name="lowerCaseNames"></a><span class='definition'>lowerCaseNames</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>Tag</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>Tag</span><span class='keyglyph'>]</span>-<a name="line-269"></a><span class='definition'>lowerCaseNames</span>-<a name="line-270"></a> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>f</span>-<a name="line-271"></a> <span class='keyword'>where</span>-<a name="line-272"></a> <span class='varid'>f</span> <span class='layout'>(</span><span class='conid'>TagOpen</span> <span class='varid'>name</span> <span class='varid'>attrs</span><span class='layout'>)</span>-<a name="line-273"></a> <span class='keyglyph'>=</span> <span class='conid'>TagOpen</span> <span class='layout'>(</span><span class='varid'>nameToLower</span> <span class='varid'>name</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>attrToLower</span> <span class='varid'>attrs</span><span class='layout'>)</span>-<a name="line-274"></a> <span class='varid'>f</span> <span class='layout'>(</span><span class='conid'>TagClose</span> <span class='varid'>name</span><span class='layout'>)</span>-<a name="line-275"></a> <span class='keyglyph'>=</span> <span class='conid'>TagClose</span> <span class='layout'>(</span><span class='varid'>nameToLower</span> <span class='varid'>name</span><span class='layout'>)</span>-<a name="line-276"></a> <span class='varid'>f</span> <span class='varid'>a</span> <span class='keyglyph'>=</span> <span class='varid'>a</span>-<a name="line-277"></a> <span class='varid'>nameToLower</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>toLower</span>-<a name="line-278"></a> <span class='varid'>attrToLower</span> <span class='layout'>(</span><span class='varid'>an</span><span class='layout'>,</span> <span class='varid'>av</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>nameToLower</span> <span class='varid'>an</span><span class='layout'>,</span> <span class='varid'>av</span><span class='layout'>)</span>-<a name="line-279"></a>-<a name="line-280"></a><span class='comment'>-- ----------------------------------------</span>-<a name="line-281"></a><span class='comment'>-- the main parser</span>-<a name="line-282"></a>-<a name="line-283"></a><a name="parseHtmlTagSoup"></a><span class='definition'>parseHtmlTagSoup</span> <span class='keyglyph'>::</span> <span class='conid'>Bool</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span>-<a name="line-284"></a><span class='definition'>parseHtmlTagSoup</span> <span class='varid'>withNamespaces</span> <span class='varid'>withWarnings</span> <span class='varid'>withComment</span> <span class='varid'>removeWhiteSpace</span> <span class='varid'>asHtml</span> <span class='varid'>doc</span>-<a name="line-285"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>docRootElem</span>-<a name="line-286"></a> <span class='varop'>.</span> <span class='varid'>runParser</span> <span class='layout'>(</span><span class='varid'>buildCont</span> <span class='varid'>initContext</span><span class='layout'>)</span>-<a name="line-287"></a> <span class='varop'>.</span> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>asHtml</span>-<a name="line-288"></a> <span class='keyword'>then</span> <span class='varid'>lowerCaseNames</span>-<a name="line-289"></a> <span class='keyword'>else</span> <span class='varid'>id</span>-<a name="line-290"></a> <span class='layout'>)</span>-<a name="line-291"></a> <span class='varop'>.</span> <span class='varid'>parseTagsOptions</span> <span class='layout'>(</span><span class='varid'>parseOptions</span> <span class='layout'>{</span> <span class='varid'>optTagWarning</span> <span class='keyglyph'>=</span> <span class='varid'>withWarnings</span>-<a name="line-292"></a> <span class='layout'>,</span> <span class='varid'>optLookupEntity</span> <span class='keyglyph'>=</span> <span class='varid'>lookupEntity</span> <span class='varid'>withWarnings</span> <span class='varid'>asHtml</span>-<a name="line-293"></a> <span class='layout'>}</span>-<a name="line-294"></a> <span class='layout'>)</span>-<a name="line-295"></a> <span class='layout'>)</span>-<a name="line-296"></a> <span class='keyword'>where</span>-<a name="line-297"></a> <span class='comment'>-- This is essential for lasy parsing:</span>-<a name="line-298"></a> <span class='comment'>-- the call of "take 1" stops parsing, when the first element is detected</span>-<a name="line-299"></a> <span class='comment'>-- no check on end of input sequence is required to build this (0- or 1-element list)</span>-<a name="line-300"></a> <span class='comment'>-- so eof is never checked unneccessarily</span>-<a name="line-301"></a>-<a name="line-302"></a> <span class='varid'>docRootElem</span>-<a name="line-303"></a> <span class='keyglyph'>=</span> <span class='varid'>take</span> <span class='num'>1</span> <span class='varop'>.</span> <span class='varid'>filter</span> <span class='varid'>isElem</span>-<a name="line-304"></a>-<a name="line-305"></a> <span class='varid'>initContext</span> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='conid'>[]</span>-<a name="line-306"></a> <span class='layout'>,</span> <span class='varid'>toNsEnv</span> <span class='varop'>$</span>-<a name="line-307"></a> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>a_xml</span><span class='layout'>,</span> <span class='varid'>xmlNamespace</span><span class='layout'>)</span>-<a name="line-308"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>a_xmlns</span><span class='layout'>,</span> <span class='varid'>xmlnsNamespace</span><span class='layout'>)</span>-<a name="line-309"></a> <span class='keyglyph'>]</span>-<a name="line-310"></a> <span class='layout'>)</span>-<a name="line-311"></a>-<a name="line-312"></a> <span class='varid'>wrap</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conop'>:</span><span class='conid'>[]</span><span class='layout'>)</span>-<a name="line-313"></a>-<a name="line-314"></a> <span class='varid'>warn</span>-<a name="line-315"></a> <span class='keyglyph'>|</span> <span class='varid'>withWarnings</span> <span class='keyglyph'>=</span> <span class='varid'>wrap</span> <span class='varop'>.</span> <span class='varid'>mkError</span> <span class='varid'>c_warn</span> <span class='varop'>.</span> <span class='varid'>show</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='varid'>doc</span> <span class='varop'>++</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='str'>" "</span> <span class='varop'>++</span><span class='layout'>)</span>-<a name="line-316"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>const</span> <span class='conid'>[]</span>-<a name="line-317"></a> <span class='varid'>cmt</span>-<a name="line-318"></a> <span class='keyglyph'>|</span> <span class='varid'>withComment</span> <span class='keyglyph'>=</span> <span class='varid'>wrap</span> <span class='varop'>.</span> <span class='varid'>mkCmt</span>-<a name="line-319"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>const</span> <span class='conid'>[]</span>-<a name="line-320"></a> <span class='varid'>txt</span>-<a name="line-321"></a> <span class='keyglyph'>|</span> <span class='varid'>removeWhiteSpace</span>-<a name="line-322"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>\</span> <span class='varid'>t</span> <span class='keyglyph'>-></span>-<a name="line-323"></a> <span class='keyword'>if</span> <span class='varid'>all</span> <span class='varid'>isXmlSpaceChar</span> <span class='varid'>t</span>-<a name="line-324"></a> <span class='keyword'>then</span> <span class='conid'>[]</span>-<a name="line-325"></a> <span class='keyword'>else</span> <span class='varid'>wrap</span> <span class='varop'>.</span> <span class='varid'>mkText</span> <span class='varop'>$</span> <span class='varid'>t</span>-<a name="line-326"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>wrap</span> <span class='varop'>.</span> <span class='varid'>mkText</span>-<a name="line-327"></a>-<a name="line-328"></a> <span class='varid'>isEmptyElem</span>-<a name="line-329"></a> <span class='keyglyph'>|</span> <span class='varid'>asHtml</span> <span class='keyglyph'>=</span> <span class='varid'>isEmptyHtmlTag</span>-<a name="line-330"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>const</span> <span class='conid'>False</span>-<a name="line-331"></a>-<a name="line-332"></a> <span class='varid'>isInnerElem</span>-<a name="line-333"></a> <span class='keyglyph'>|</span> <span class='varid'>asHtml</span> <span class='keyglyph'>=</span> <span class='varid'>isInnerHtmlTagOf</span>-<a name="line-334"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>const</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='conid'>False</span><span class='layout'>)</span>-<a name="line-335"></a>-<a name="line-336"></a> <span class='varid'>closesElem</span>-<a name="line-337"></a> <span class='keyglyph'>|</span> <span class='varid'>asHtml</span> <span class='keyglyph'>=</span> <span class='keyglyph'>\</span> <span class='varid'>ns</span> <span class='varid'>n1</span> <span class='keyglyph'>-></span>-<a name="line-338"></a> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>null</span> <span class='varid'>ns</span><span class='layout'>)</span>-<a name="line-339"></a> <span class='varop'>&&</span>-<a name="line-340"></a> <span class='varid'>n1</span> <span class='varop'>`closesHtmlTag`</span> <span class='layout'>(</span><span class='varid'>head</span> <span class='varid'>ns</span><span class='layout'>)</span>-<a name="line-341"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>const</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='conid'>False</span><span class='layout'>)</span>-<a name="line-342"></a>-<a name="line-343"></a> <span class='varid'>buildCont</span> <span class='keyglyph'>::</span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='conid'>Parser</span> <span class='conid'>XmlTrees</span>-<a name="line-344"></a> <span class='varid'>buildCont</span> <span class='varid'>ns</span>-<a name="line-345"></a> <span class='keyglyph'>=</span> <span class='varid'>cond</span> <span class='varid'>isText</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-346"></a> <span class='varid'>t</span> <span class='keyglyph'><-</span> <span class='varid'>getText</span>-<a name="line-347"></a> <span class='varid'>rl</span> <span class='keyglyph'><-</span> <span class='varid'>buildCont</span> <span class='varid'>ns</span>-<a name="line-348"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>txt</span> <span class='varid'>t</span> <span class='varop'>++</span> <span class='varid'>rl</span><span class='layout'>)</span>-<a name="line-349"></a> <span class='layout'>)</span>-<a name="line-350"></a> <span class='layout'>(</span> <span class='varid'>cond</span> <span class='varid'>isOpn</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-351"></a> <span class='layout'>(</span><span class='varid'>n</span><span class='layout'>,</span><span class='varid'>al</span><span class='layout'>)</span> <span class='keyglyph'><-</span> <span class='varid'>getOpn</span>-<a name="line-352"></a> <span class='varid'>openTag</span> <span class='varid'>ns</span> <span class='varid'>n</span> <span class='varid'>al</span>-<a name="line-353"></a> <span class='layout'>)</span>-<a name="line-354"></a> <span class='layout'>(</span> <span class='varid'>cond</span> <span class='varid'>isCls</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-355"></a> <span class='varid'>n</span> <span class='keyglyph'><-</span> <span class='varid'>getCls</span>-<a name="line-356"></a> <span class='varid'>closeTag</span> <span class='varid'>ns</span> <span class='varid'>n</span>-<a name="line-357"></a> <span class='layout'>)</span>-<a name="line-358"></a> <span class='layout'>(</span> <span class='varid'>cond</span> <span class='varid'>isCmt</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-359"></a> <span class='varid'>c</span> <span class='keyglyph'><-</span> <span class='varid'>getCmt</span>-<a name="line-360"></a> <span class='varid'>rl</span> <span class='keyglyph'><-</span> <span class='varid'>buildCont</span> <span class='varid'>ns</span>-<a name="line-361"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>cmt</span> <span class='varid'>c</span> <span class='varop'>++</span> <span class='varid'>rl</span><span class='layout'>)</span>-<a name="line-362"></a> <span class='layout'>)</span>-<a name="line-363"></a> <span class='layout'>(</span> <span class='varid'>cond</span> <span class='varid'>isWarn</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-364"></a> <span class='varid'>w</span> <span class='keyglyph'><-</span> <span class='varid'>getWarn</span>-<a name="line-365"></a> <span class='varid'>rl</span> <span class='keyglyph'><-</span> <span class='varid'>buildCont</span> <span class='varid'>ns</span>-<a name="line-366"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>warn</span> <span class='varid'>w</span> <span class='varop'>++</span> <span class='varid'>rl</span><span class='layout'>)</span>-<a name="line-367"></a> <span class='layout'>)</span>-<a name="line-368"></a> <span class='layout'>(</span> <span class='varid'>cond</span> <span class='varid'>isPos</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-369"></a> <span class='varid'>getPos</span>-<a name="line-370"></a> <span class='varid'>buildCont</span> <span class='varid'>ns</span>-<a name="line-371"></a> <span class='layout'>)</span>-<a name="line-372"></a> <span class='layout'>(</span> <span class='varid'>cond</span> <span class='varid'>isEof</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-373"></a> <span class='varid'>isEof</span>-<a name="line-374"></a> <span class='varid'>closeAll</span> <span class='varid'>ns</span>-<a name="line-375"></a> <span class='layout'>)</span>-<a name="line-376"></a> <span class='layout'>(</span> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>warn</span> <span class='str'>"parse error in tagsoup tree construction"</span><span class='layout'>)</span>-<a name="line-377"></a> <span class='layout'>)</span>-<a name="line-378"></a> <span class='layout'>)</span>-<a name="line-379"></a> <span class='layout'>)</span>-<a name="line-380"></a> <span class='layout'>)</span>-<a name="line-381"></a> <span class='layout'>)</span>-<a name="line-382"></a> <span class='layout'>)</span>-<a name="line-383"></a> <span class='layout'>)</span>-<a name="line-384"></a> <span class='keyword'>where</span>-<a name="line-385"></a> <span class='varid'>closeTag</span> <span class='keyglyph'>::</span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Parser</span> <span class='conid'>XmlTrees</span>-<a name="line-386"></a> <span class='varid'>closeTag</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>n'</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span><span class='layout'>,</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='varid'>n1</span>-<a name="line-387"></a> <span class='keyglyph'>|</span> <span class='varid'>n'</span> <span class='varop'>==</span> <span class='varid'>n1</span> <span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='conid'>[]</span> <span class='comment'>-- a normal closing tag</span>-<a name="line-388"></a> <span class='comment'>-- all other cases try to repair wrong html</span>-<a name="line-389"></a> <span class='varid'>closeTag</span> <span class='varid'>ns'</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='layout'>(</span><span class='varid'>n'</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span><span class='layout'>,</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='varid'>n1</span> <span class='comment'>-- n1 closes n implicitly</span>-<a name="line-390"></a> <span class='keyglyph'>|</span> <span class='varid'>n'</span> <span class='varop'>`isInnerElem`</span> <span class='varid'>n1</span> <span class='comment'>-- e.g. <td>...</tr></span>-<a name="line-391"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-392"></a> <span class='varid'>insCls</span> <span class='varid'>n1</span> <span class='comment'>-- pushback </n1></span>-<a name="line-393"></a> <span class='varid'>insCls</span> <span class='varid'>n'</span> <span class='comment'>-- insert a </n'></span>-<a name="line-394"></a> <span class='varid'>buildCont</span> <span class='varid'>ns'</span> <span class='comment'>-- try again</span>-<a name="line-395"></a> <span class='varid'>closeTag</span> <span class='varid'>ns'</span> <span class='varid'>n1</span>-<a name="line-396"></a> <span class='keyglyph'>|</span> <span class='varid'>isEmptyElem</span> <span class='varid'>n1</span> <span class='keyglyph'>=</span> <span class='varid'>buildCont</span> <span class='varid'>ns'</span> <span class='comment'>-- ignore a redundant closing tag for empty element</span>-<a name="line-397"></a> <span class='varid'>closeTag</span> <span class='varid'>ns'</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='layout'>(</span><span class='varid'>n'</span><span class='conop'>:</span><span class='varid'>ns1'</span><span class='layout'>)</span><span class='layout'>,</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='varid'>n1</span> <span class='comment'>-- insert a missing closing tag</span>-<a name="line-398"></a> <span class='keyglyph'>|</span> <span class='varid'>n1</span> <span class='varop'>`elem`</span> <span class='varid'>ns1'</span> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-399"></a> <span class='varid'>insCls</span> <span class='varid'>n1</span>-<a name="line-400"></a> <span class='varid'>insCls</span> <span class='varid'>n'</span>-<a name="line-401"></a> <span class='varid'>rl</span> <span class='keyglyph'><-</span> <span class='varid'>buildCont</span> <span class='varid'>ns'</span>-<a name="line-402"></a> <span class='varid'>return</span> <span class='layout'>(</span> <span class='varid'>warn</span> <span class='layout'>(</span><span class='str'>"closing tag "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n'</span> <span class='varop'>++</span>-<a name="line-403"></a> <span class='str'>" expected, but "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n1</span> <span class='varop'>++</span> <span class='str'>" found"</span><span class='layout'>)</span>-<a name="line-404"></a> <span class='varop'>++</span> <span class='varid'>rl</span>-<a name="line-405"></a> <span class='layout'>)</span>-<a name="line-406"></a> <span class='varid'>closeTag</span> <span class='varid'>ns'</span> <span class='varid'>n1</span> <span class='comment'>-- ignore a wrong closing tag</span>-<a name="line-407"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-408"></a> <span class='varid'>rl</span> <span class='keyglyph'><-</span> <span class='varid'>buildCont</span> <span class='varid'>ns'</span>-<a name="line-409"></a> <span class='varid'>return</span> <span class='layout'>(</span> <span class='varid'>warn</span> <span class='layout'>(</span><span class='str'>"no opening tag for closing tag "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n1</span><span class='layout'>)</span>-<a name="line-410"></a> <span class='varop'>++</span> <span class='varid'>rl</span>-<a name="line-411"></a> <span class='layout'>)</span>-<a name="line-412"></a>-<a name="line-413"></a> <span class='varid'>openTag</span> <span class='keyglyph'>::</span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>Parser</span> <span class='conid'>XmlTrees</span>-<a name="line-414"></a> <span class='varid'>openTag</span> <span class='varid'>cx'</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='varid'>ns'</span><span class='layout'>,</span><span class='varid'>env'</span><span class='layout'>)</span> <span class='varid'>n1</span> <span class='varid'>al1</span>-<a name="line-415"></a> <span class='keyglyph'>|</span> <span class='varid'>isPiDT</span> <span class='varid'>n1</span> <span class='keyglyph'>=</span> <span class='varid'>buildCont</span> <span class='varid'>cx'</span>-<a name="line-416"></a> <span class='keyglyph'>|</span> <span class='varid'>isEmptyElem</span> <span class='varid'>n1</span>-<a name="line-417"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-418"></a> <span class='varid'>qn</span> <span class='keyglyph'><-</span> <span class='varid'>mkElemQN</span> <span class='varid'>nenv</span> <span class='varid'>n1</span>-<a name="line-419"></a> <span class='varid'>al</span> <span class='keyglyph'><-</span> <span class='varid'>mkAttrs</span> <span class='varid'>al1</span>-<a name="line-420"></a> <span class='varid'>rl</span> <span class='keyglyph'><-</span> <span class='varid'>buildCont</span> <span class='varid'>cx'</span>-<a name="line-421"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>mkElement</span> <span class='varid'>qn</span> <span class='varid'>al</span> <span class='conid'>[]</span> <span class='conop'>:</span> <span class='varid'>rl</span><span class='layout'>)</span>-<a name="line-422"></a> <span class='keyglyph'>|</span> <span class='varid'>closesElem</span> <span class='varid'>ns'</span> <span class='varid'>n1</span> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-423"></a> <span class='varid'>insOpn</span> <span class='varid'>n1</span> <span class='varid'>al1</span>-<a name="line-424"></a> <span class='varid'>insCls</span> <span class='layout'>(</span><span class='varid'>head</span> <span class='varid'>ns'</span><span class='layout'>)</span>-<a name="line-425"></a> <span class='varid'>buildCont</span> <span class='varid'>cx'</span>-<a name="line-426"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-427"></a> <span class='varid'>qn</span> <span class='keyglyph'><-</span> <span class='varid'>mkElemQN</span> <span class='varid'>nenv</span> <span class='varid'>n1</span>-<a name="line-428"></a> <span class='varid'>al</span> <span class='keyglyph'><-</span> <span class='varid'>mkAttrs</span> <span class='varid'>al1</span>-<a name="line-429"></a> <span class='varid'>cs</span> <span class='keyglyph'><-</span> <span class='varid'>buildCont</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>n1</span> <span class='conop'>:</span> <span class='varid'>ns'</span><span class='layout'>)</span><span class='layout'>,</span> <span class='varid'>nenv</span><span class='layout'>)</span>-<a name="line-430"></a> <span class='varid'>rl</span> <span class='keyglyph'><-</span> <span class='varid'>buildCont</span> <span class='varid'>cx'</span>-<a name="line-431"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>mkElement</span> <span class='varid'>qn</span> <span class='varid'>al</span> <span class='varid'>cs</span> <span class='conop'>:</span> <span class='varid'>rl</span><span class='layout'>)</span>-<a name="line-432"></a> <span class='keyword'>where</span>-<a name="line-433"></a> <span class='varid'>nenv</span> <span class='keyglyph'>=</span> <span class='varid'>extendNsEnv</span> <span class='varid'>withNamespaces</span> <span class='varid'>al1</span> <span class='varid'>env'</span>-<a name="line-434"></a> <span class='varid'>mkElemQN</span> <span class='keyglyph'>=</span> <span class='varid'>mkQN</span> <span class='varid'>withNamespaces</span> <span class='conid'>False</span>-<a name="line-435"></a> <span class='varid'>mkAttrQN</span> <span class='keyglyph'>=</span> <span class='varid'>mkQN</span> <span class='varid'>withNamespaces</span> <span class='conid'>True</span>-<a name="line-436"></a> <span class='varid'>isPiDT</span> <span class='layout'>(</span><span class='chr'>'?'</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-437"></a> <span class='varid'>isPiDT</span> <span class='layout'>(</span><span class='chr'>'!'</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-438"></a> <span class='varid'>isPiDT</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-439"></a> <span class='varid'>mkAttrs</span> <span class='keyglyph'>=</span> <span class='varid'>mapM</span> <span class='layout'>(</span><span class='varid'>uncurry</span> <span class='varid'>mkA</span><span class='layout'>)</span>-<a name="line-440"></a> <span class='varid'>mkA</span> <span class='varid'>an</span> <span class='varid'>av</span> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-441"></a> <span class='varid'>qan</span> <span class='keyglyph'><-</span> <span class='varid'>mkAttrQN</span> <span class='varid'>nenv</span> <span class='varid'>an</span>-<a name="line-442"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>mkAttr</span> <span class='varid'>qan</span> <span class='layout'>(</span><span class='varid'>wrap</span> <span class='varop'>.</span> <span class='varid'>mkText</span> <span class='varop'>$</span> <span class='varid'>av</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-443"></a>-<a name="line-444"></a> <span class='varid'>closeAll</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span><span class='layout'>,</span> <span class='conid'>NsEnv</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>Parser</span> <span class='conid'>XmlTrees</span>-<a name="line-445"></a> <span class='varid'>closeAll</span> <span class='layout'>(</span><span class='varid'>ns'</span><span class='layout'>,</span><span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>concatMap</span> <span class='varid'>wrn</span> <span class='varid'>ns'</span><span class='layout'>)</span>-<a name="line-446"></a> <span class='keyword'>where</span>-<a name="line-447"></a> <span class='varid'>wrn</span> <span class='keyglyph'>=</span> <span class='varid'>warn</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='str'>"insert missing closing tag "</span> <span class='varop'>++</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>show</span>-<a name="line-448"></a>-<a name="line-449"></a><span class='comment'>-- ------------------------------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-Parser-XhtmlEntities.html
@@ -1,288 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- |</span>-<a name="line-2"></a><span class='comment'>-- XHTML Entity References</span>-<a name="line-3"></a><span class='comment'>--</span>-<a name="line-4"></a><span class='comment'>-- This module defines a table of all</span>-<a name="line-5"></a><span class='comment'>-- predefined XHTML entity references</span>-<a name="line-6"></a><span class='comment'>-- for special or none ASCII chars including the</span>-<a name="line-7"></a><span class='comment'>-- predefined XML entity refs</span>-<a name="line-8"></a>-<a name="line-9"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Parser</span><span class='varop'>.</span><span class='conid'>XhtmlEntities</span>-<a name="line-10"></a> <span class='layout'>(</span> <span class='varid'>xhtmlEntities</span>-<a name="line-11"></a> <span class='layout'>)</span>-<a name="line-12"></a>-<a name="line-13"></a><span class='keyword'>where</span>-<a name="line-14"></a>-<a name="line-15"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Parser</span><span class='varop'>.</span><span class='conid'>XmlEntities</span>-<a name="line-16"></a> <span class='layout'>(</span> <span class='varid'>xmlEntities</span> <span class='layout'>)</span>-<a name="line-17"></a>-<a name="line-18"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-19"></a>-<a name="line-20"></a><span class='comment'>-- | table with all XHTML entity refs and corresponding unicode values</span>-<a name="line-21"></a>-<a name="line-22"></a><a name="xhtmlEntities"></a><span class='definition'>xhtmlEntities</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>Int</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-23"></a><span class='definition'>xhtmlEntities</span> <span class='keyglyph'>=</span> <span class='varid'>xmlEntities</span>-<a name="line-24"></a> <span class='varop'>++</span>-<a name="line-25"></a> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='str'>"nbsp"</span><span class='layout'>,</span> <span class='num'>160</span><span class='layout'>)</span>-<a name="line-26"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"iexcl"</span><span class='layout'>,</span> <span class='num'>161</span><span class='layout'>)</span>-<a name="line-27"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"cent"</span><span class='layout'>,</span> <span class='num'>162</span><span class='layout'>)</span>-<a name="line-28"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"pound"</span><span class='layout'>,</span> <span class='num'>163</span><span class='layout'>)</span>-<a name="line-29"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"curren"</span><span class='layout'>,</span> <span class='num'>164</span><span class='layout'>)</span>-<a name="line-30"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"yen"</span><span class='layout'>,</span> <span class='num'>165</span><span class='layout'>)</span>-<a name="line-31"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"brvbar"</span><span class='layout'>,</span> <span class='num'>166</span><span class='layout'>)</span>-<a name="line-32"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"sect"</span><span class='layout'>,</span> <span class='num'>167</span><span class='layout'>)</span>-<a name="line-33"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"uml"</span><span class='layout'>,</span> <span class='num'>168</span><span class='layout'>)</span>-<a name="line-34"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"copy"</span><span class='layout'>,</span> <span class='num'>169</span><span class='layout'>)</span>-<a name="line-35"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ordf"</span><span class='layout'>,</span> <span class='num'>170</span><span class='layout'>)</span>-<a name="line-36"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"laquo"</span><span class='layout'>,</span> <span class='num'>171</span><span class='layout'>)</span>-<a name="line-37"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"not"</span><span class='layout'>,</span> <span class='num'>172</span><span class='layout'>)</span>-<a name="line-38"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"shy"</span><span class='layout'>,</span> <span class='num'>173</span><span class='layout'>)</span>-<a name="line-39"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"reg"</span><span class='layout'>,</span> <span class='num'>174</span><span class='layout'>)</span>-<a name="line-40"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"macr"</span><span class='layout'>,</span> <span class='num'>175</span><span class='layout'>)</span>-<a name="line-41"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"deg"</span><span class='layout'>,</span> <span class='num'>176</span><span class='layout'>)</span>-<a name="line-42"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"plusmn"</span><span class='layout'>,</span> <span class='num'>177</span><span class='layout'>)</span>-<a name="line-43"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"sup2"</span><span class='layout'>,</span> <span class='num'>178</span><span class='layout'>)</span>-<a name="line-44"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"sup3"</span><span class='layout'>,</span> <span class='num'>179</span><span class='layout'>)</span>-<a name="line-45"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"acute"</span><span class='layout'>,</span> <span class='num'>180</span><span class='layout'>)</span>-<a name="line-46"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"micro"</span><span class='layout'>,</span> <span class='num'>181</span><span class='layout'>)</span>-<a name="line-47"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"para"</span><span class='layout'>,</span> <span class='num'>182</span><span class='layout'>)</span>-<a name="line-48"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"middot"</span><span class='layout'>,</span> <span class='num'>183</span><span class='layout'>)</span>-<a name="line-49"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"cedil"</span><span class='layout'>,</span> <span class='num'>184</span><span class='layout'>)</span>-<a name="line-50"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"sup1"</span><span class='layout'>,</span> <span class='num'>185</span><span class='layout'>)</span>-<a name="line-51"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ordm"</span><span class='layout'>,</span> <span class='num'>186</span><span class='layout'>)</span>-<a name="line-52"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"raquo"</span><span class='layout'>,</span> <span class='num'>187</span><span class='layout'>)</span>-<a name="line-53"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"frac14"</span><span class='layout'>,</span> <span class='num'>188</span><span class='layout'>)</span>-<a name="line-54"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"frac12"</span><span class='layout'>,</span> <span class='num'>189</span><span class='layout'>)</span>-<a name="line-55"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"frac34"</span><span class='layout'>,</span> <span class='num'>190</span><span class='layout'>)</span>-<a name="line-56"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"iquest"</span><span class='layout'>,</span> <span class='num'>191</span><span class='layout'>)</span>-<a name="line-57"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Agrave"</span><span class='layout'>,</span> <span class='num'>192</span><span class='layout'>)</span>-<a name="line-58"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Aacute"</span><span class='layout'>,</span> <span class='num'>193</span><span class='layout'>)</span>-<a name="line-59"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Acirc"</span><span class='layout'>,</span> <span class='num'>194</span><span class='layout'>)</span>-<a name="line-60"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Atilde"</span><span class='layout'>,</span> <span class='num'>195</span><span class='layout'>)</span>-<a name="line-61"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Auml"</span><span class='layout'>,</span> <span class='num'>196</span><span class='layout'>)</span>-<a name="line-62"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Aring"</span><span class='layout'>,</span> <span class='num'>197</span><span class='layout'>)</span>-<a name="line-63"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"AElig"</span><span class='layout'>,</span> <span class='num'>198</span><span class='layout'>)</span>-<a name="line-64"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Ccedil"</span><span class='layout'>,</span> <span class='num'>199</span><span class='layout'>)</span>-<a name="line-65"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Egrave"</span><span class='layout'>,</span> <span class='num'>200</span><span class='layout'>)</span>-<a name="line-66"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Eacute"</span><span class='layout'>,</span> <span class='num'>201</span><span class='layout'>)</span>-<a name="line-67"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Ecirc"</span><span class='layout'>,</span> <span class='num'>202</span><span class='layout'>)</span>-<a name="line-68"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Euml"</span><span class='layout'>,</span> <span class='num'>203</span><span class='layout'>)</span>-<a name="line-69"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Igrave"</span><span class='layout'>,</span> <span class='num'>204</span><span class='layout'>)</span>-<a name="line-70"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Iacute"</span><span class='layout'>,</span> <span class='num'>205</span><span class='layout'>)</span>-<a name="line-71"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Icirc"</span><span class='layout'>,</span> <span class='num'>206</span><span class='layout'>)</span>-<a name="line-72"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Iuml"</span><span class='layout'>,</span> <span class='num'>207</span><span class='layout'>)</span>-<a name="line-73"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ETH"</span><span class='layout'>,</span> <span class='num'>208</span><span class='layout'>)</span>-<a name="line-74"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Ntilde"</span><span class='layout'>,</span> <span class='num'>209</span><span class='layout'>)</span>-<a name="line-75"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Ograve"</span><span class='layout'>,</span> <span class='num'>210</span><span class='layout'>)</span>-<a name="line-76"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Oacute"</span><span class='layout'>,</span> <span class='num'>211</span><span class='layout'>)</span>-<a name="line-77"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Ocirc"</span><span class='layout'>,</span> <span class='num'>212</span><span class='layout'>)</span>-<a name="line-78"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Otilde"</span><span class='layout'>,</span> <span class='num'>213</span><span class='layout'>)</span>-<a name="line-79"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Ouml"</span><span class='layout'>,</span> <span class='num'>214</span><span class='layout'>)</span>-<a name="line-80"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"times"</span><span class='layout'>,</span> <span class='num'>215</span><span class='layout'>)</span>-<a name="line-81"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Oslash"</span><span class='layout'>,</span> <span class='num'>216</span><span class='layout'>)</span>-<a name="line-82"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Ugrave"</span><span class='layout'>,</span> <span class='num'>217</span><span class='layout'>)</span>-<a name="line-83"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Uacute"</span><span class='layout'>,</span> <span class='num'>218</span><span class='layout'>)</span>-<a name="line-84"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Ucirc"</span><span class='layout'>,</span> <span class='num'>219</span><span class='layout'>)</span>-<a name="line-85"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Uuml"</span><span class='layout'>,</span> <span class='num'>220</span><span class='layout'>)</span>-<a name="line-86"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Yacute"</span><span class='layout'>,</span> <span class='num'>221</span><span class='layout'>)</span>-<a name="line-87"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"THORN"</span><span class='layout'>,</span> <span class='num'>222</span><span class='layout'>)</span>-<a name="line-88"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"szlig"</span><span class='layout'>,</span> <span class='num'>223</span><span class='layout'>)</span>-<a name="line-89"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"agrave"</span><span class='layout'>,</span> <span class='num'>224</span><span class='layout'>)</span>-<a name="line-90"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"aacute"</span><span class='layout'>,</span> <span class='num'>225</span><span class='layout'>)</span>-<a name="line-91"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"acirc"</span><span class='layout'>,</span> <span class='num'>226</span><span class='layout'>)</span>-<a name="line-92"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"atilde"</span><span class='layout'>,</span> <span class='num'>227</span><span class='layout'>)</span>-<a name="line-93"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"auml"</span><span class='layout'>,</span> <span class='num'>228</span><span class='layout'>)</span>-<a name="line-94"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"aring"</span><span class='layout'>,</span> <span class='num'>229</span><span class='layout'>)</span>-<a name="line-95"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"aelig"</span><span class='layout'>,</span> <span class='num'>230</span><span class='layout'>)</span>-<a name="line-96"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ccedil"</span><span class='layout'>,</span> <span class='num'>231</span><span class='layout'>)</span>-<a name="line-97"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"egrave"</span><span class='layout'>,</span> <span class='num'>232</span><span class='layout'>)</span>-<a name="line-98"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"eacute"</span><span class='layout'>,</span> <span class='num'>233</span><span class='layout'>)</span>-<a name="line-99"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ecirc"</span><span class='layout'>,</span> <span class='num'>234</span><span class='layout'>)</span>-<a name="line-100"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"euml"</span><span class='layout'>,</span> <span class='num'>235</span><span class='layout'>)</span>-<a name="line-101"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"igrave"</span><span class='layout'>,</span> <span class='num'>236</span><span class='layout'>)</span>-<a name="line-102"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"iacute"</span><span class='layout'>,</span> <span class='num'>237</span><span class='layout'>)</span>-<a name="line-103"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"icirc"</span><span class='layout'>,</span> <span class='num'>238</span><span class='layout'>)</span>-<a name="line-104"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"iuml"</span><span class='layout'>,</span> <span class='num'>239</span><span class='layout'>)</span>-<a name="line-105"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"eth"</span><span class='layout'>,</span> <span class='num'>240</span><span class='layout'>)</span>-<a name="line-106"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ntilde"</span><span class='layout'>,</span> <span class='num'>241</span><span class='layout'>)</span>-<a name="line-107"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ograve"</span><span class='layout'>,</span> <span class='num'>242</span><span class='layout'>)</span>-<a name="line-108"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"oacute"</span><span class='layout'>,</span> <span class='num'>243</span><span class='layout'>)</span>-<a name="line-109"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ocirc"</span><span class='layout'>,</span> <span class='num'>244</span><span class='layout'>)</span>-<a name="line-110"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"otilde"</span><span class='layout'>,</span> <span class='num'>245</span><span class='layout'>)</span>-<a name="line-111"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ouml"</span><span class='layout'>,</span> <span class='num'>246</span><span class='layout'>)</span>-<a name="line-112"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"divide"</span><span class='layout'>,</span> <span class='num'>247</span><span class='layout'>)</span>-<a name="line-113"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"oslash"</span><span class='layout'>,</span> <span class='num'>248</span><span class='layout'>)</span>-<a name="line-114"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ugrave"</span><span class='layout'>,</span> <span class='num'>249</span><span class='layout'>)</span>-<a name="line-115"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"uacute"</span><span class='layout'>,</span> <span class='num'>250</span><span class='layout'>)</span>-<a name="line-116"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ucirc"</span><span class='layout'>,</span> <span class='num'>251</span><span class='layout'>)</span>-<a name="line-117"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"uuml"</span><span class='layout'>,</span> <span class='num'>252</span><span class='layout'>)</span>-<a name="line-118"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"yacute"</span><span class='layout'>,</span> <span class='num'>253</span><span class='layout'>)</span>-<a name="line-119"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"thorn"</span><span class='layout'>,</span> <span class='num'>254</span><span class='layout'>)</span>-<a name="line-120"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"yuml"</span><span class='layout'>,</span> <span class='num'>255</span><span class='layout'>)</span>-<a name="line-121"></a>-<a name="line-122"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"OElig"</span><span class='layout'>,</span> <span class='num'>338</span><span class='layout'>)</span>-<a name="line-123"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"oelig"</span><span class='layout'>,</span> <span class='num'>339</span><span class='layout'>)</span>-<a name="line-124"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Scaron"</span><span class='layout'>,</span> <span class='num'>352</span><span class='layout'>)</span>-<a name="line-125"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"scaron"</span><span class='layout'>,</span> <span class='num'>353</span><span class='layout'>)</span>-<a name="line-126"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Yuml"</span><span class='layout'>,</span> <span class='num'>376</span><span class='layout'>)</span>-<a name="line-127"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"circ"</span><span class='layout'>,</span> <span class='num'>710</span><span class='layout'>)</span>-<a name="line-128"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"tilde"</span><span class='layout'>,</span> <span class='num'>732</span><span class='layout'>)</span>-<a name="line-129"></a>-<a name="line-130"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ensp"</span><span class='layout'>,</span> <span class='num'>8194</span><span class='layout'>)</span>-<a name="line-131"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"emsp"</span><span class='layout'>,</span> <span class='num'>8195</span><span class='layout'>)</span>-<a name="line-132"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"thinsp"</span><span class='layout'>,</span> <span class='num'>8201</span><span class='layout'>)</span>-<a name="line-133"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"zwnj"</span><span class='layout'>,</span> <span class='num'>8204</span><span class='layout'>)</span>-<a name="line-134"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"zwj"</span><span class='layout'>,</span> <span class='num'>8205</span><span class='layout'>)</span>-<a name="line-135"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"lrm"</span><span class='layout'>,</span> <span class='num'>8206</span><span class='layout'>)</span>-<a name="line-136"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"rlm"</span><span class='layout'>,</span> <span class='num'>8207</span><span class='layout'>)</span>-<a name="line-137"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ndash"</span><span class='layout'>,</span> <span class='num'>8211</span><span class='layout'>)</span>-<a name="line-138"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"mdash"</span><span class='layout'>,</span> <span class='num'>8212</span><span class='layout'>)</span>-<a name="line-139"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"lsquo"</span><span class='layout'>,</span> <span class='num'>8216</span><span class='layout'>)</span>-<a name="line-140"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"rsquo"</span><span class='layout'>,</span> <span class='num'>8217</span><span class='layout'>)</span>-<a name="line-141"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"sbquo"</span><span class='layout'>,</span> <span class='num'>8218</span><span class='layout'>)</span>-<a name="line-142"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ldquo"</span><span class='layout'>,</span> <span class='num'>8220</span><span class='layout'>)</span>-<a name="line-143"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"rdquo"</span><span class='layout'>,</span> <span class='num'>8221</span><span class='layout'>)</span>-<a name="line-144"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"bdquo"</span><span class='layout'>,</span> <span class='num'>8222</span><span class='layout'>)</span>-<a name="line-145"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"dagger"</span><span class='layout'>,</span> <span class='num'>8224</span><span class='layout'>)</span>-<a name="line-146"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Dagger"</span><span class='layout'>,</span> <span class='num'>8225</span><span class='layout'>)</span>-<a name="line-147"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"permil"</span><span class='layout'>,</span> <span class='num'>8240</span><span class='layout'>)</span>-<a name="line-148"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"lsaquo"</span><span class='layout'>,</span> <span class='num'>8249</span><span class='layout'>)</span>-<a name="line-149"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"rsaquo"</span><span class='layout'>,</span> <span class='num'>8250</span><span class='layout'>)</span>-<a name="line-150"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"euro"</span><span class='layout'>,</span> <span class='num'>8364</span><span class='layout'>)</span>-<a name="line-151"></a>-<a name="line-152"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"fnof"</span><span class='layout'>,</span> <span class='num'>402</span><span class='layout'>)</span>-<a name="line-153"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Alpha"</span><span class='layout'>,</span> <span class='num'>913</span><span class='layout'>)</span>-<a name="line-154"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Beta"</span><span class='layout'>,</span> <span class='num'>914</span><span class='layout'>)</span>-<a name="line-155"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Gamma"</span><span class='layout'>,</span> <span class='num'>915</span><span class='layout'>)</span>-<a name="line-156"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Delta"</span><span class='layout'>,</span> <span class='num'>916</span><span class='layout'>)</span>-<a name="line-157"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Epsilon"</span><span class='layout'>,</span> <span class='num'>917</span><span class='layout'>)</span>-<a name="line-158"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Zeta"</span><span class='layout'>,</span> <span class='num'>918</span><span class='layout'>)</span>-<a name="line-159"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Eta"</span><span class='layout'>,</span> <span class='num'>919</span><span class='layout'>)</span>-<a name="line-160"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Theta"</span><span class='layout'>,</span> <span class='num'>920</span><span class='layout'>)</span>-<a name="line-161"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Iota"</span><span class='layout'>,</span> <span class='num'>921</span><span class='layout'>)</span>-<a name="line-162"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Kappa"</span><span class='layout'>,</span> <span class='num'>922</span><span class='layout'>)</span>-<a name="line-163"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Lambda"</span><span class='layout'>,</span> <span class='num'>923</span><span class='layout'>)</span>-<a name="line-164"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Mu"</span><span class='layout'>,</span> <span class='num'>924</span><span class='layout'>)</span>-<a name="line-165"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Nu"</span><span class='layout'>,</span> <span class='num'>925</span><span class='layout'>)</span>-<a name="line-166"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Xi"</span><span class='layout'>,</span> <span class='num'>926</span><span class='layout'>)</span>-<a name="line-167"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Omicron"</span><span class='layout'>,</span> <span class='num'>927</span><span class='layout'>)</span>-<a name="line-168"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Pi"</span><span class='layout'>,</span> <span class='num'>928</span><span class='layout'>)</span>-<a name="line-169"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Rho"</span><span class='layout'>,</span> <span class='num'>929</span><span class='layout'>)</span>-<a name="line-170"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Sigma"</span><span class='layout'>,</span> <span class='num'>931</span><span class='layout'>)</span>-<a name="line-171"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Tau"</span><span class='layout'>,</span> <span class='num'>932</span><span class='layout'>)</span>-<a name="line-172"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Upsilon"</span><span class='layout'>,</span> <span class='num'>933</span><span class='layout'>)</span>-<a name="line-173"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Phi"</span><span class='layout'>,</span> <span class='num'>934</span><span class='layout'>)</span>-<a name="line-174"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Chi"</span><span class='layout'>,</span> <span class='num'>935</span><span class='layout'>)</span>-<a name="line-175"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Psi"</span><span class='layout'>,</span> <span class='num'>936</span><span class='layout'>)</span>-<a name="line-176"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Omega"</span><span class='layout'>,</span> <span class='num'>937</span><span class='layout'>)</span>-<a name="line-177"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"alpha"</span><span class='layout'>,</span> <span class='num'>945</span><span class='layout'>)</span>-<a name="line-178"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"beta"</span><span class='layout'>,</span> <span class='num'>946</span><span class='layout'>)</span>-<a name="line-179"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"gamma"</span><span class='layout'>,</span> <span class='num'>947</span><span class='layout'>)</span>-<a name="line-180"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"delta"</span><span class='layout'>,</span> <span class='num'>948</span><span class='layout'>)</span>-<a name="line-181"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"epsilon"</span><span class='layout'>,</span> <span class='num'>949</span><span class='layout'>)</span>-<a name="line-182"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"zeta"</span><span class='layout'>,</span> <span class='num'>950</span><span class='layout'>)</span>-<a name="line-183"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"eta"</span><span class='layout'>,</span> <span class='num'>951</span><span class='layout'>)</span>-<a name="line-184"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"theta"</span><span class='layout'>,</span> <span class='num'>952</span><span class='layout'>)</span>-<a name="line-185"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"iota"</span><span class='layout'>,</span> <span class='num'>953</span><span class='layout'>)</span>-<a name="line-186"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"kappa"</span><span class='layout'>,</span> <span class='num'>954</span><span class='layout'>)</span>-<a name="line-187"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"lambda"</span><span class='layout'>,</span> <span class='num'>955</span><span class='layout'>)</span>-<a name="line-188"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"mu"</span><span class='layout'>,</span> <span class='num'>956</span><span class='layout'>)</span>-<a name="line-189"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"nu"</span><span class='layout'>,</span> <span class='num'>957</span><span class='layout'>)</span>-<a name="line-190"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"xi"</span><span class='layout'>,</span> <span class='num'>958</span><span class='layout'>)</span>-<a name="line-191"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"omicron"</span><span class='layout'>,</span> <span class='num'>959</span><span class='layout'>)</span>-<a name="line-192"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"pi"</span><span class='layout'>,</span> <span class='num'>960</span><span class='layout'>)</span>-<a name="line-193"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"rho"</span><span class='layout'>,</span> <span class='num'>961</span><span class='layout'>)</span>-<a name="line-194"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"sigmaf"</span><span class='layout'>,</span> <span class='num'>962</span><span class='layout'>)</span>-<a name="line-195"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"sigma"</span><span class='layout'>,</span> <span class='num'>963</span><span class='layout'>)</span>-<a name="line-196"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"tau"</span><span class='layout'>,</span> <span class='num'>964</span><span class='layout'>)</span>-<a name="line-197"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"upsilon"</span><span class='layout'>,</span> <span class='num'>965</span><span class='layout'>)</span>-<a name="line-198"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"phi"</span><span class='layout'>,</span> <span class='num'>966</span><span class='layout'>)</span>-<a name="line-199"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"chi"</span><span class='layout'>,</span> <span class='num'>967</span><span class='layout'>)</span>-<a name="line-200"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"psi"</span><span class='layout'>,</span> <span class='num'>968</span><span class='layout'>)</span>-<a name="line-201"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"omega"</span><span class='layout'>,</span> <span class='num'>969</span><span class='layout'>)</span>-<a name="line-202"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"thetasym"</span><span class='layout'>,</span> <span class='num'>977</span><span class='layout'>)</span>-<a name="line-203"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"upsih"</span><span class='layout'>,</span> <span class='num'>978</span><span class='layout'>)</span>-<a name="line-204"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"piv"</span><span class='layout'>,</span> <span class='num'>982</span><span class='layout'>)</span>-<a name="line-205"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"bull"</span><span class='layout'>,</span> <span class='num'>8226</span><span class='layout'>)</span>-<a name="line-206"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"hellip"</span><span class='layout'>,</span> <span class='num'>8230</span><span class='layout'>)</span>-<a name="line-207"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"prime"</span><span class='layout'>,</span> <span class='num'>8242</span><span class='layout'>)</span>-<a name="line-208"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Prime"</span><span class='layout'>,</span> <span class='num'>8243</span><span class='layout'>)</span>-<a name="line-209"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"oline"</span><span class='layout'>,</span> <span class='num'>8254</span><span class='layout'>)</span>-<a name="line-210"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"frasl"</span><span class='layout'>,</span> <span class='num'>8260</span><span class='layout'>)</span>-<a name="line-211"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"weierp"</span><span class='layout'>,</span> <span class='num'>8472</span><span class='layout'>)</span>-<a name="line-212"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"image"</span><span class='layout'>,</span> <span class='num'>8465</span><span class='layout'>)</span>-<a name="line-213"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"real"</span><span class='layout'>,</span> <span class='num'>8476</span><span class='layout'>)</span>-<a name="line-214"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"trade"</span><span class='layout'>,</span> <span class='num'>8482</span><span class='layout'>)</span>-<a name="line-215"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"alefsym"</span><span class='layout'>,</span> <span class='num'>8501</span><span class='layout'>)</span>-<a name="line-216"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"larr"</span><span class='layout'>,</span> <span class='num'>8592</span><span class='layout'>)</span>-<a name="line-217"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"uarr"</span><span class='layout'>,</span> <span class='num'>8593</span><span class='layout'>)</span>-<a name="line-218"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"rarr"</span><span class='layout'>,</span> <span class='num'>8594</span><span class='layout'>)</span>-<a name="line-219"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"darr"</span><span class='layout'>,</span> <span class='num'>8595</span><span class='layout'>)</span>-<a name="line-220"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"harr"</span><span class='layout'>,</span> <span class='num'>8596</span><span class='layout'>)</span>-<a name="line-221"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"crarr"</span><span class='layout'>,</span> <span class='num'>8629</span><span class='layout'>)</span>-<a name="line-222"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"lArr"</span><span class='layout'>,</span> <span class='num'>8656</span><span class='layout'>)</span>-<a name="line-223"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"uArr"</span><span class='layout'>,</span> <span class='num'>8657</span><span class='layout'>)</span>-<a name="line-224"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"rArr"</span><span class='layout'>,</span> <span class='num'>8658</span><span class='layout'>)</span>-<a name="line-225"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"dArr"</span><span class='layout'>,</span> <span class='num'>8659</span><span class='layout'>)</span>-<a name="line-226"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"hArr"</span><span class='layout'>,</span> <span class='num'>8660</span><span class='layout'>)</span>-<a name="line-227"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"forall"</span><span class='layout'>,</span> <span class='num'>8704</span><span class='layout'>)</span>-<a name="line-228"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"part"</span><span class='layout'>,</span> <span class='num'>8706</span><span class='layout'>)</span>-<a name="line-229"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"exist"</span><span class='layout'>,</span> <span class='num'>8707</span><span class='layout'>)</span>-<a name="line-230"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"empty"</span><span class='layout'>,</span> <span class='num'>8709</span><span class='layout'>)</span>-<a name="line-231"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"nabla"</span><span class='layout'>,</span> <span class='num'>8711</span><span class='layout'>)</span>-<a name="line-232"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"isin"</span><span class='layout'>,</span> <span class='num'>8712</span><span class='layout'>)</span>-<a name="line-233"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"notin"</span><span class='layout'>,</span> <span class='num'>8713</span><span class='layout'>)</span>-<a name="line-234"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ni"</span><span class='layout'>,</span> <span class='num'>8715</span><span class='layout'>)</span>-<a name="line-235"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"prod"</span><span class='layout'>,</span> <span class='num'>8719</span><span class='layout'>)</span>-<a name="line-236"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"sum"</span><span class='layout'>,</span> <span class='num'>8721</span><span class='layout'>)</span>-<a name="line-237"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"minus"</span><span class='layout'>,</span> <span class='num'>8722</span><span class='layout'>)</span>-<a name="line-238"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"lowast"</span><span class='layout'>,</span> <span class='num'>8727</span><span class='layout'>)</span>-<a name="line-239"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"radic"</span><span class='layout'>,</span> <span class='num'>8730</span><span class='layout'>)</span>-<a name="line-240"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"prop"</span><span class='layout'>,</span> <span class='num'>8733</span><span class='layout'>)</span>-<a name="line-241"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"infin"</span><span class='layout'>,</span> <span class='num'>8734</span><span class='layout'>)</span>-<a name="line-242"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ang"</span><span class='layout'>,</span> <span class='num'>8736</span><span class='layout'>)</span>-<a name="line-243"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"and"</span><span class='layout'>,</span> <span class='num'>8743</span><span class='layout'>)</span>-<a name="line-244"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"or"</span><span class='layout'>,</span> <span class='num'>8744</span><span class='layout'>)</span>-<a name="line-245"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"cap"</span><span class='layout'>,</span> <span class='num'>8745</span><span class='layout'>)</span>-<a name="line-246"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"cup"</span><span class='layout'>,</span> <span class='num'>8746</span><span class='layout'>)</span>-<a name="line-247"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"int"</span><span class='layout'>,</span> <span class='num'>8747</span><span class='layout'>)</span>-<a name="line-248"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"there4"</span><span class='layout'>,</span> <span class='num'>8756</span><span class='layout'>)</span>-<a name="line-249"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"sim"</span><span class='layout'>,</span> <span class='num'>8764</span><span class='layout'>)</span>-<a name="line-250"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"cong"</span><span class='layout'>,</span> <span class='num'>8773</span><span class='layout'>)</span>-<a name="line-251"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"asymp"</span><span class='layout'>,</span> <span class='num'>8776</span><span class='layout'>)</span>-<a name="line-252"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ne"</span><span class='layout'>,</span> <span class='num'>8800</span><span class='layout'>)</span>-<a name="line-253"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"equiv"</span><span class='layout'>,</span> <span class='num'>8801</span><span class='layout'>)</span>-<a name="line-254"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"le"</span><span class='layout'>,</span> <span class='num'>8804</span><span class='layout'>)</span>-<a name="line-255"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ge"</span><span class='layout'>,</span> <span class='num'>8805</span><span class='layout'>)</span>-<a name="line-256"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"sub"</span><span class='layout'>,</span> <span class='num'>8834</span><span class='layout'>)</span>-<a name="line-257"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"sup"</span><span class='layout'>,</span> <span class='num'>8835</span><span class='layout'>)</span>-<a name="line-258"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"nsub"</span><span class='layout'>,</span> <span class='num'>8836</span><span class='layout'>)</span>-<a name="line-259"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"sube"</span><span class='layout'>,</span> <span class='num'>8838</span><span class='layout'>)</span>-<a name="line-260"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"supe"</span><span class='layout'>,</span> <span class='num'>8839</span><span class='layout'>)</span>-<a name="line-261"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"oplus"</span><span class='layout'>,</span> <span class='num'>8853</span><span class='layout'>)</span>-<a name="line-262"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"otimes"</span><span class='layout'>,</span> <span class='num'>8855</span><span class='layout'>)</span>-<a name="line-263"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"perp"</span><span class='layout'>,</span> <span class='num'>8869</span><span class='layout'>)</span>-<a name="line-264"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"sdot"</span><span class='layout'>,</span> <span class='num'>8901</span><span class='layout'>)</span>-<a name="line-265"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"lceil"</span><span class='layout'>,</span> <span class='num'>8968</span><span class='layout'>)</span>-<a name="line-266"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"rceil"</span><span class='layout'>,</span> <span class='num'>8969</span><span class='layout'>)</span>-<a name="line-267"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"lfloor"</span><span class='layout'>,</span> <span class='num'>8970</span><span class='layout'>)</span>-<a name="line-268"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"rfloor"</span><span class='layout'>,</span> <span class='num'>8971</span><span class='layout'>)</span>-<a name="line-269"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"lang"</span><span class='layout'>,</span> <span class='num'>9001</span><span class='layout'>)</span>-<a name="line-270"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"rang"</span><span class='layout'>,</span> <span class='num'>9002</span><span class='layout'>)</span>-<a name="line-271"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"loz"</span><span class='layout'>,</span> <span class='num'>9674</span><span class='layout'>)</span>-<a name="line-272"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"spades"</span><span class='layout'>,</span> <span class='num'>9824</span><span class='layout'>)</span>-<a name="line-273"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"clubs"</span><span class='layout'>,</span> <span class='num'>9827</span><span class='layout'>)</span>-<a name="line-274"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"hearts"</span><span class='layout'>,</span> <span class='num'>9829</span><span class='layout'>)</span>-<a name="line-275"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"diams"</span><span class='layout'>,</span> <span class='num'>9830</span><span class='layout'>)</span>-<a name="line-276"></a> <span class='keyglyph'>]</span>-<a name="line-277"></a>-<a name="line-278"></a><span class='comment'>-- ------------------------------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-Parser-XmlCharParser.html
@@ -1,84 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- |</span>-<a name="line-2"></a><span class='comment'>-- UTF-8 character parser and simple XML token parsers</span>-<a name="line-3"></a><span class='comment'>--</span>-<a name="line-4"></a><span class='comment'>-- Version : $Id: XmlCharParser.hs,v 1.2 2005/05/31 16:01:12 hxml Exp $</span>-<a name="line-5"></a>-<a name="line-6"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Parser</span><span class='varop'>.</span><span class='conid'>XmlCharParser</span>-<a name="line-7"></a> <span class='layout'>(</span> <span class='varid'>xmlChar</span> <span class='comment'>-- xml char parsers</span>-<a name="line-8"></a> <span class='layout'>,</span> <span class='varid'>xmlNameChar</span>-<a name="line-9"></a> <span class='layout'>,</span> <span class='varid'>xmlNameStartChar</span>-<a name="line-10"></a> <span class='layout'>,</span> <span class='varid'>xmlNCNameChar</span>-<a name="line-11"></a> <span class='layout'>,</span> <span class='varid'>xmlNCNameStartChar</span>-<a name="line-12"></a> <span class='layout'>,</span> <span class='varid'>xmlLetter</span>-<a name="line-13"></a> <span class='layout'>,</span> <span class='varid'>xmlSpaceChar</span>-<a name="line-14"></a> <span class='layout'>)</span>-<a name="line-15"></a><span class='keyword'>where</span>-<a name="line-16"></a>-<a name="line-17"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Unicode</span>-<a name="line-18"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>ParserCombinators</span><span class='varop'>.</span><span class='conid'>Parsec</span>-<a name="line-19"></a>-<a name="line-20"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-21"></a><span class='comment'>--</span>-<a name="line-22"></a><span class='comment'>-- Char (2.2)</span>-<a name="line-23"></a><span class='comment'>--</span>-<a name="line-24"></a>-<a name="line-25"></a><span class='comment'>-- |</span>-<a name="line-26"></a><span class='comment'>-- parse a single Unicode character</span>-<a name="line-27"></a>-<a name="line-28"></a><a name="xmlChar"></a><span class='definition'>xmlChar</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>Unicode</span>-<a name="line-29"></a><span class='definition'>xmlChar</span> <span class='keyglyph'>=</span> <span class='varid'>satisfy</span> <span class='varid'>isXmlChar</span> <span class='varop'><?></span> <span class='str'>"legal XML character"</span>-<a name="line-30"></a>-<a name="line-31"></a><span class='comment'>-- |</span>-<a name="line-32"></a><span class='comment'>-- parse a XML name character</span>-<a name="line-33"></a>-<a name="line-34"></a><a name="xmlNameChar"></a><span class='definition'>xmlNameChar</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>Unicode</span>-<a name="line-35"></a><span class='definition'>xmlNameChar</span> <span class='keyglyph'>=</span> <span class='varid'>satisfy</span> <span class='varid'>isXmlNameChar</span> <span class='varop'><?></span> <span class='str'>"legal XML name character"</span>-<a name="line-36"></a> -<a name="line-37"></a><span class='comment'>-- |</span>-<a name="line-38"></a><span class='comment'>-- parse a XML name start character</span>-<a name="line-39"></a>-<a name="line-40"></a><a name="xmlNameStartChar"></a><span class='definition'>xmlNameStartChar</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>Unicode</span>-<a name="line-41"></a><span class='definition'>xmlNameStartChar</span> <span class='keyglyph'>=</span> <span class='varid'>satisfy</span> <span class='varid'>isXmlNameStartChar</span> <span class='varop'><?></span> <span class='str'>"legal XML name start character"</span>-<a name="line-42"></a> -<a name="line-43"></a><span class='comment'>-- |</span>-<a name="line-44"></a><span class='comment'>-- parse a XML NCName character</span>-<a name="line-45"></a>-<a name="line-46"></a><a name="xmlNCNameChar"></a><span class='definition'>xmlNCNameChar</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>Unicode</span>-<a name="line-47"></a><span class='definition'>xmlNCNameChar</span> <span class='keyglyph'>=</span> <span class='varid'>satisfy</span> <span class='varid'>isXmlNCNameChar</span> <span class='varop'><?></span> <span class='str'>"legal XML NCName character"</span>-<a name="line-48"></a> -<a name="line-49"></a><span class='comment'>-- |</span>-<a name="line-50"></a><span class='comment'>-- parse a XML NCName start character</span>-<a name="line-51"></a>-<a name="line-52"></a><a name="xmlNCNameStartChar"></a><span class='definition'>xmlNCNameStartChar</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>Unicode</span>-<a name="line-53"></a><span class='definition'>xmlNCNameStartChar</span> <span class='keyglyph'>=</span> <span class='varid'>satisfy</span> <span class='varid'>isXmlNCNameStartChar</span> <span class='varop'><?></span> <span class='str'>"legal XML NCName start character"</span>-<a name="line-54"></a> -<a name="line-55"></a><span class='comment'>-- |</span>-<a name="line-56"></a><span class='comment'>-- parse a XML letter character</span>-<a name="line-57"></a>-<a name="line-58"></a><a name="xmlLetter"></a><span class='definition'>xmlLetter</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>Unicode</span>-<a name="line-59"></a><span class='definition'>xmlLetter</span> <span class='keyglyph'>=</span> <span class='varid'>satisfy</span> <span class='varid'>isXmlLetter</span> <span class='varop'><?></span> <span class='str'>"legal XML letter"</span>-<a name="line-60"></a>-<a name="line-61"></a><span class='comment'>-- |</span>-<a name="line-62"></a><span class='comment'>-- White Space (2.3)</span>-<a name="line-63"></a><span class='comment'>--</span>-<a name="line-64"></a><span class='comment'>-- end of line handling (2.11)</span>-<a name="line-65"></a><span class='comment'>-- \#x0D and \#x0D\#x0A are mapped to \#x0A</span>-<a name="line-66"></a><span class='comment'>-- is done in XmlInput before parsing</span>-<a name="line-67"></a><span class='comment'>-- otherwise \#x0D in internal parsing, e.g. for entities would normalize,</span>-<a name="line-68"></a><span class='comment'>-- would be transformed</span>-<a name="line-69"></a>-<a name="line-70"></a><a name="xmlSpaceChar"></a><span class='definition'>xmlSpaceChar</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>Char</span>-<a name="line-71"></a><span class='definition'>xmlSpaceChar</span> <span class='keyglyph'>=</span> <span class='varid'>satisfy</span> <span class='varid'>isXmlSpaceChar</span> <span class='varop'><?></span> <span class='str'>"white space"</span>-<a name="line-72"></a>-<a name="line-73"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-74"></a>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-Parser-XmlDTDParser.html
@@ -1,725 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Text.XML.HXT.Parser.XmlDTDParser-<a name="line-5"></a> Copyright : Copyright (C) 2005 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe@fh-wedel.de)-<a name="line-9"></a> Stability : experimental-<a name="line-10"></a> Portability: portable-<a name="line-11"></a>-<a name="line-12"></a> Parsec parser for DTD declarations for ELEMENT, ATTLIST, ENTITY and NOTATION declarations-<a name="line-13"></a>-<a name="line-14"></a>-}</span>-<a name="line-15"></a>-<a name="line-16"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-17"></a>-<a name="line-18"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Parser</span><span class='varop'>.</span><span class='conid'>XmlDTDParser</span>-<a name="line-19"></a> <span class='layout'>(</span> <span class='varid'>parseXmlDTDdecl</span>-<a name="line-20"></a> <span class='layout'>,</span> <span class='varid'>parseXmlDTDdeclPart</span>-<a name="line-21"></a> <span class='layout'>,</span> <span class='varid'>parseXmlDTDEntityValue</span>-<a name="line-22"></a> <span class='layout'>,</span> <span class='varid'>elementDecl</span>-<a name="line-23"></a> <span class='layout'>,</span> <span class='varid'>attlistDecl</span>-<a name="line-24"></a> <span class='layout'>,</span> <span class='varid'>entityDecl</span>-<a name="line-25"></a> <span class='layout'>,</span> <span class='varid'>notationDecl</span>-<a name="line-26"></a> <span class='layout'>)</span>-<a name="line-27"></a><span class='keyword'>where</span>-<a name="line-28"></a>-<a name="line-29"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>-<a name="line-30"></a>-<a name="line-31"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>ParserCombinators</span><span class='varop'>.</span><span class='conid'>Parsec</span>-<a name="line-32"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>ParserCombinators</span><span class='varop'>.</span><span class='conid'>Parsec</span><span class='varop'>.</span><span class='conid'>Pos</span>-<a name="line-33"></a>-<a name="line-34"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span> <span class='comment'>-- XmlTree hiding (choice)</span>-<a name="line-35"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Util</span>-<a name="line-36"></a> <span class='layout'>(</span> <span class='varid'>stringToUpper</span>-<a name="line-37"></a> <span class='layout'>)</span>-<a name="line-38"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>ShowXml</span>-<a name="line-39"></a> <span class='layout'>(</span> <span class='varid'>xshow</span>-<a name="line-40"></a> <span class='layout'>)</span>-<a name="line-41"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlNode</span>-<a name="line-42"></a> <span class='layout'>(</span> <span class='varid'>mkDTDElem</span>-<a name="line-43"></a> <span class='layout'>,</span> <span class='varid'>mkText</span>-<a name="line-44"></a> <span class='layout'>,</span> <span class='varid'>mkError</span>-<a name="line-45"></a> <span class='layout'>,</span> <span class='varid'>isText</span>-<a name="line-46"></a> <span class='layout'>,</span> <span class='varid'>isDTD</span>-<a name="line-47"></a> <span class='layout'>,</span> <span class='varid'>getText</span>-<a name="line-48"></a> <span class='layout'>,</span> <span class='varid'>getDTDPart</span>-<a name="line-49"></a> <span class='layout'>,</span> <span class='varid'>getDTDAttrl</span>-<a name="line-50"></a> <span class='layout'>,</span> <span class='varid'>getChildren</span>-<a name="line-51"></a> <span class='layout'>,</span> <span class='varid'>setChildren</span>-<a name="line-52"></a> <span class='layout'>)</span>-<a name="line-53"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Parser</span><span class='varop'>.</span><span class='conid'>XmlTokenParser</span> <span class='keyword'>as</span> <span class='conid'>XT</span>-<a name="line-54"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Parser</span><span class='varop'>.</span><span class='conid'>XmlCharParser</span> <span class='keyword'>as</span> <span class='conid'>XC</span> <span class='layout'>(</span> <span class='varid'>xmlSpaceChar</span> <span class='layout'>)</span>-<a name="line-55"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Parser</span><span class='varop'>.</span><span class='conid'>XmlDTDTokenParser</span> <span class='keyword'>as</span> <span class='conid'>XD</span> <span class='layout'>(</span> <span class='varid'>dtdToken</span> <span class='layout'>)</span>-<a name="line-56"></a>-<a name="line-57"></a><span class='comment'>-----------------------------------------------------------</span>-<a name="line-58"></a><span class='comment'>--</span>-<a name="line-59"></a><span class='comment'>-- all parsers dealing with whitespace will be redefined</span>-<a name="line-60"></a><span class='comment'>-- to handle parameter entity substitution</span>-<a name="line-61"></a>-<a name="line-62"></a><a name="LocalState"></a><span class='keyword'>type</span> <span class='conid'>LocalState</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>Int</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>Int</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>SourcePos</span><span class='layout'>)</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-63"></a>-<a name="line-64"></a><a name="SParser"></a><span class='keyword'>type</span> <span class='conid'>SParser</span> <span class='varid'>a</span> <span class='keyglyph'>=</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='conid'>LocalState</span> <span class='varid'>a</span>-<a name="line-65"></a>-<a name="line-66"></a><a name="initialLocalState"></a><span class='definition'>initialLocalState</span> <span class='keyglyph'>::</span> <span class='conid'>SourcePos</span> <span class='keyglyph'>-></span> <span class='conid'>LocalState</span>-<a name="line-67"></a><span class='definition'>initialLocalState</span> <span class='varid'>p</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='num'>0</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='num'>0</span><span class='layout'>,</span> <span class='varid'>sourceName</span> <span class='varid'>p</span><span class='layout'>,</span> <span class='varid'>p</span><span class='layout'>)</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-68"></a>-<a name="line-69"></a><a name="pushPar"></a><span class='definition'>pushPar</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>SParser</span> <span class='conid'>()</span>-<a name="line-70"></a><span class='definition'>pushPar</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-71"></a> <span class='varid'>p</span> <span class='keyglyph'><-</span> <span class='varid'>getPosition</span>-<a name="line-72"></a> <span class='varid'>updateState</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='layout'>(</span><span class='varid'>i</span><span class='layout'>,</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='varid'>i</span><span class='varop'>+</span><span class='num'>1</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>i</span><span class='varop'>+</span><span class='num'>1</span><span class='layout'>,</span> <span class='varid'>n</span><span class='layout'>,</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>s</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-73"></a> <span class='varid'>setPosition</span> <span class='layout'>(</span> <span class='varid'>newPos</span> <span class='layout'>(</span><span class='varid'>sourceName</span> <span class='varid'>p</span> <span class='varop'>++</span> <span class='str'>" (line "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>sourceLine</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='str'>", column "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>sourceColumn</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='str'>") in content of parameter entity ref %"</span> <span class='varop'>++</span> <span class='varid'>n</span> <span class='varop'>++</span> <span class='str'>";"</span><span class='layout'>)</span> <span class='num'>1</span> <span class='num'>1</span><span class='layout'>)</span>-<a name="line-74"></a>-<a name="line-75"></a><a name="popPar"></a><span class='definition'>popPar</span> <span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='conid'>()</span>-<a name="line-76"></a><span class='definition'>popPar</span> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-77"></a> <span class='varid'>oldPos</span> <span class='keyglyph'><-</span> <span class='varid'>getPos</span>-<a name="line-78"></a> <span class='varid'>updateState</span> <span class='varid'>pop</span>-<a name="line-79"></a> <span class='varid'>setPosition</span> <span class='varid'>oldPos</span>-<a name="line-80"></a> <span class='keyword'>where</span>-<a name="line-81"></a> <span class='varid'>pop</span> <span class='layout'>(</span><span class='varid'>i</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='keyword'>_</span><span class='layout'>,</span> <span class='varid'>s</span><span class='layout'>,</span> <span class='varid'>p</span><span class='layout'>)</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>i</span><span class='varop'>+</span><span class='num'>1</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>i</span><span class='varop'>+</span><span class='num'>1</span><span class='layout'>,</span> <span class='varid'>s</span><span class='layout'>,</span> <span class='varid'>p</span><span class='layout'>)</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='comment'>-- if param entity substitution is correctly implemented, this case does not occur</span>-<a name="line-82"></a> <span class='varid'>pop</span> <span class='layout'>(</span><span class='varid'>i</span><span class='layout'>,</span> <span class='sel'>_t</span><span class='conop'>:</span><span class='varid'>s</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>i</span><span class='layout'>,</span> <span class='varid'>s</span><span class='layout'>)</span>-<a name="line-83"></a> <span class='varid'>pop</span> <span class='layout'>(</span><span class='sel'>_i</span><span class='layout'>,</span> <span class='conid'>[]</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>undefined</span> <span class='comment'>-- stack is never empty</span>-<a name="line-84"></a>-<a name="line-85"></a><a name="getParNo"></a><span class='definition'>getParNo</span> <span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='conid'>Int</span>-<a name="line-86"></a><span class='definition'>getParNo</span> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-87"></a> <span class='layout'>(</span><span class='sel'>_i</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>top</span><span class='layout'>,</span> <span class='sel'>_n</span><span class='layout'>,</span> <span class='sel'>_p</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='sel'>_s</span><span class='layout'>)</span> <span class='keyglyph'><-</span> <span class='varid'>getState</span>-<a name="line-88"></a> <span class='varid'>return</span> <span class='varid'>top</span>-<a name="line-89"></a>-<a name="line-90"></a><a name="getPos"></a><span class='definition'>getPos</span> <span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='conid'>SourcePos</span>-<a name="line-91"></a><span class='definition'>getPos</span> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-92"></a> <span class='layout'>(</span><span class='sel'>_i</span><span class='layout'>,</span> <span class='layout'>(</span><span class='sel'>_top</span><span class='layout'>,</span> <span class='sel'>_n</span><span class='layout'>,</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='sel'>_s</span><span class='layout'>)</span> <span class='keyglyph'><-</span> <span class='varid'>getState</span>-<a name="line-93"></a> <span class='varid'>return</span> <span class='varid'>p</span>-<a name="line-94"></a>-<a name="line-95"></a><a name="delPE"></a><span class='definition'>delPE</span> <span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='conid'>()</span>-<a name="line-96"></a><span class='definition'>delPE</span> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-97"></a> <span class='varid'>char</span> <span class='chr'>'\0'</span>-<a name="line-98"></a> <span class='varid'>return</span> <span class='conid'>()</span>-<a name="line-99"></a>-<a name="line-100"></a><a name="startPE"></a><span class='definition'>startPE</span> <span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='conid'>()</span>-<a name="line-101"></a><span class='definition'>startPE</span>-<a name="line-102"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-103"></a> <span class='varid'>try</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-104"></a> <span class='varid'>delPE</span>-<a name="line-105"></a> <span class='varid'>n</span> <span class='keyglyph'><-</span> <span class='varid'>many1</span> <span class='layout'>(</span><span class='varid'>satisfy</span> <span class='layout'>(</span><span class='varop'>/=</span> <span class='chr'>'\0'</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-106"></a> <span class='varid'>delPE</span>-<a name="line-107"></a> <span class='varid'>pushPar</span> <span class='varid'>n</span>-<a name="line-108"></a> <span class='layout'>)</span>-<a name="line-109"></a>-<a name="line-110"></a><a name="endPE"></a><span class='definition'>endPE</span> <span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='conid'>()</span>-<a name="line-111"></a><span class='definition'>endPE</span>-<a name="line-112"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-113"></a> <span class='varid'>try</span> <span class='layout'>(</span><span class='keyword'>do</span>-<a name="line-114"></a> <span class='varid'>delPE</span>-<a name="line-115"></a> <span class='varid'>delPE</span>-<a name="line-116"></a> <span class='varid'>popPar</span>-<a name="line-117"></a> <span class='layout'>)</span>-<a name="line-118"></a>-<a name="line-119"></a><a name="inSamePE"></a><span class='definition'>inSamePE</span> <span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>SParser</span> <span class='varid'>a</span>-<a name="line-120"></a><span class='definition'>inSamePE</span> <span class='varid'>p</span>-<a name="line-121"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-122"></a> <span class='varid'>i</span> <span class='keyglyph'><-</span> <span class='varid'>getParNo</span>-<a name="line-123"></a> <span class='varid'>r</span> <span class='keyglyph'><-</span> <span class='varid'>p</span>-<a name="line-124"></a> <span class='varid'>j</span> <span class='keyglyph'><-</span> <span class='varid'>getParNo</span>-<a name="line-125"></a> <span class='keyword'>if</span> <span class='layout'>(</span><span class='varid'>i</span> <span class='varop'>==</span> <span class='varid'>j</span><span class='layout'>)</span>-<a name="line-126"></a> <span class='keyword'>then</span> <span class='varid'>return</span> <span class='varid'>r</span>-<a name="line-127"></a> <span class='keyword'>else</span> <span class='varid'>fail</span> <span class='varop'>$</span> <span class='str'>"parameter entity contents does not fit into the structure of a DTD declarations"</span>-<a name="line-128"></a>-<a name="line-129"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-130"></a>-<a name="line-131"></a><a name="xmlSpaceChar"></a><span class='definition'>xmlSpaceChar</span> <span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='conid'>()</span>-<a name="line-132"></a><span class='definition'>xmlSpaceChar</span> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-133"></a> <span class='conid'>XC</span><span class='varop'>.</span><span class='varid'>xmlSpaceChar</span>-<a name="line-134"></a> <span class='varid'>return</span> <span class='conid'>()</span>-<a name="line-135"></a> <span class='layout'>)</span>-<a name="line-136"></a> <span class='varop'><|></span>-<a name="line-137"></a> <span class='varid'>startPE</span>-<a name="line-138"></a> <span class='varop'><|></span>-<a name="line-139"></a> <span class='varid'>endPE</span>-<a name="line-140"></a> <span class='varop'><?></span> <span class='str'>"white space"</span>-<a name="line-141"></a>-<a name="line-142"></a><a name="skipS"></a><span class='definition'>skipS</span> <span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='conid'>()</span>-<a name="line-143"></a><span class='definition'>skipS</span>-<a name="line-144"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-145"></a> <span class='varid'>skipMany1</span> <span class='varid'>xmlSpaceChar</span>-<a name="line-146"></a> <span class='varid'>return</span> <span class='conid'>()</span>-<a name="line-147"></a>-<a name="line-148"></a><a name="skipS0"></a><span class='definition'>skipS0</span> <span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='conid'>()</span>-<a name="line-149"></a><span class='definition'>skipS0</span>-<a name="line-150"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-151"></a> <span class='varid'>skipMany</span> <span class='varid'>xmlSpaceChar</span>-<a name="line-152"></a> <span class='varid'>return</span> <span class='conid'>()</span>-<a name="line-153"></a>-<a name="line-154"></a><a name="name"></a><span class='definition'>name</span> <span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='conid'>XmlTree</span>-<a name="line-155"></a><span class='definition'>name</span>-<a name="line-156"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-157"></a> <span class='varid'>n</span> <span class='keyglyph'><-</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>name</span>-<a name="line-158"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>mkDTDElem</span> <span class='conid'>NAME</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a_name</span><span class='layout'>,</span> <span class='varid'>n</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='conid'>[]</span><span class='layout'>)</span>-<a name="line-159"></a>-<a name="line-160"></a><a name="nmtoken"></a><span class='definition'>nmtoken</span> <span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='conid'>XmlTree</span>-<a name="line-161"></a><span class='definition'>nmtoken</span>-<a name="line-162"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-163"></a> <span class='varid'>n</span> <span class='keyglyph'><-</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>nmtoken</span>-<a name="line-164"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>mkDTDElem</span> <span class='conid'>NAME</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a_name</span><span class='layout'>,</span> <span class='varid'>n</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='conid'>[]</span><span class='layout'>)</span>-<a name="line-165"></a>-<a name="line-166"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-167"></a><span class='comment'>--</span>-<a name="line-168"></a><span class='comment'>-- Element Type Declarations (3.2)</span>-<a name="line-169"></a>-<a name="line-170"></a><a name="elementDecl"></a><span class='definition'>elementDecl</span> <span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='conid'>XmlTrees</span>-<a name="line-171"></a><span class='definition'>elementDecl</span>-<a name="line-172"></a> <span class='keyglyph'>=</span> <span class='varid'>between</span> <span class='layout'>(</span><span class='varid'>try</span> <span class='varop'>$</span> <span class='varid'>string</span> <span class='str'>"<!ELEMENT"</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>char</span> <span class='chr'>'>'</span><span class='layout'>)</span> <span class='varid'>elementDeclBody</span>-<a name="line-173"></a>-<a name="line-174"></a><a name="elementDeclBody"></a><span class='definition'>elementDeclBody</span> <span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='conid'>XmlTrees</span>-<a name="line-175"></a><span class='definition'>elementDeclBody</span>-<a name="line-176"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-177"></a> <span class='varid'>skipS</span>-<a name="line-178"></a> <span class='varid'>n</span> <span class='keyglyph'><-</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>name</span>-<a name="line-179"></a> <span class='varid'>skipS</span>-<a name="line-180"></a> <span class='layout'>(</span><span class='varid'>al</span><span class='layout'>,</span> <span class='varid'>cl</span><span class='layout'>)</span> <span class='keyglyph'><-</span> <span class='varid'>contentspec</span>-<a name="line-181"></a> <span class='varid'>skipS0</span>-<a name="line-182"></a> <span class='varid'>return</span> <span class='keyglyph'>[</span><span class='varid'>mkDTDElem</span> <span class='conid'>ELEMENT</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>a_name</span><span class='layout'>,</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varid'>cl</span><span class='keyglyph'>]</span>-<a name="line-183"></a>-<a name="line-184"></a><a name="contentspec"></a><span class='definition'>contentspec</span> <span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='layout'>(</span><span class='conid'>Attributes</span><span class='layout'>,</span> <span class='conid'>XmlTrees</span><span class='layout'>)</span>-<a name="line-185"></a><span class='definition'>contentspec</span>-<a name="line-186"></a> <span class='keyglyph'>=</span> <span class='varid'>simplespec</span> <span class='varid'>k_empty</span> <span class='varid'>v_empty</span>-<a name="line-187"></a> <span class='varop'><|></span>-<a name="line-188"></a> <span class='varid'>simplespec</span> <span class='varid'>k_any</span> <span class='varid'>v_any</span>-<a name="line-189"></a> <span class='varop'><|></span>-<a name="line-190"></a> <span class='varid'>inSamePE</span> <span class='varid'>mixed</span>-<a name="line-191"></a> <span class='varop'><|></span>-<a name="line-192"></a> <span class='varid'>inSamePE</span> <span class='varid'>children</span>-<a name="line-193"></a> <span class='varop'><?></span> <span class='str'>"content specification"</span>-<a name="line-194"></a> <span class='keyword'>where</span>-<a name="line-195"></a> <span class='varid'>simplespec</span> <span class='varid'>kw</span> <span class='varid'>v</span>-<a name="line-196"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-197"></a> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>keyword</span> <span class='varid'>kw</span>-<a name="line-198"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a_type</span><span class='layout'>,</span> <span class='varid'>v</span><span class='layout'>)</span><span class='keyglyph'>]</span><span class='layout'>,</span> <span class='conid'>[]</span><span class='layout'>)</span>-<a name="line-199"></a>-<a name="line-200"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-201"></a><span class='comment'>--</span>-<a name="line-202"></a><span class='comment'>-- Element Content (3.2.1)</span>-<a name="line-203"></a>-<a name="line-204"></a><a name="children"></a><span class='definition'>children</span> <span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='layout'>(</span><span class='conid'>Attributes</span><span class='layout'>,</span> <span class='conid'>XmlTrees</span><span class='layout'>)</span>-<a name="line-205"></a><span class='definition'>children</span>-<a name="line-206"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-207"></a> <span class='layout'>(</span><span class='varid'>al</span><span class='layout'>,</span> <span class='varid'>cl</span><span class='layout'>)</span> <span class='keyglyph'><-</span> <span class='varid'>choiceOrSeq</span>-<a name="line-208"></a> <span class='varid'>modifier</span> <span class='keyglyph'><-</span> <span class='varid'>optOrRep</span>-<a name="line-209"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a_type</span><span class='layout'>,</span> <span class='varid'>v_children</span><span class='layout'>)</span><span class='keyglyph'>]</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='varid'>mkDTDElem</span> <span class='conid'>CONTENT</span> <span class='layout'>(</span><span class='varid'>modifier</span> <span class='varop'>++</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varid'>cl</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-210"></a> <span class='layout'>)</span>-<a name="line-211"></a> <span class='varop'><?></span> <span class='str'>"element content"</span>-<a name="line-212"></a>-<a name="line-213"></a><a name="optOrRep"></a><span class='definition'>optOrRep</span> <span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='conid'>Attributes</span>-<a name="line-214"></a><span class='definition'>optOrRep</span>-<a name="line-215"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-216"></a> <span class='varid'>m</span> <span class='keyglyph'><-</span> <span class='varid'>option</span> <span class='str'>""</span> <span class='layout'>(</span><span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>mkList</span> <span class='layout'>(</span><span class='varid'>oneOf</span> <span class='str'>"?*+"</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-217"></a> <span class='varid'>return</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a_modifier</span><span class='layout'>,</span> <span class='varid'>m</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-218"></a>-<a name="line-219"></a><a name="choiceOrSeq"></a><span class='definition'>choiceOrSeq</span> <span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='layout'>(</span><span class='conid'>Attributes</span><span class='layout'>,</span> <span class='conid'>XmlTrees</span><span class='layout'>)</span>-<a name="line-220"></a><span class='definition'>choiceOrSeq</span>-<a name="line-221"></a> <span class='keyglyph'>=</span> <span class='varid'>inSamePE</span> <span class='varop'>$</span>-<a name="line-222"></a> <span class='keyword'>do</span>-<a name="line-223"></a> <span class='varid'>cl</span> <span class='keyglyph'><-</span> <span class='varid'>try</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-224"></a> <span class='varid'>lpar</span>-<a name="line-225"></a> <span class='varid'>choiceOrSeqBody</span>-<a name="line-226"></a> <span class='layout'>)</span>-<a name="line-227"></a> <span class='varid'>rpar</span>-<a name="line-228"></a> <span class='varid'>return</span> <span class='varid'>cl</span>-<a name="line-229"></a>-<a name="line-230"></a><a name="choiceOrSeqBody"></a><span class='definition'>choiceOrSeqBody</span> <span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='layout'>(</span><span class='conid'>Attributes</span><span class='layout'>,</span> <span class='conid'>XmlTrees</span><span class='layout'>)</span>-<a name="line-231"></a><span class='definition'>choiceOrSeqBody</span>-<a name="line-232"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-233"></a> <span class='varid'>cp1</span> <span class='keyglyph'><-</span> <span class='varid'>cp</span>-<a name="line-234"></a> <span class='varid'>choiceOrSeq1</span> <span class='varid'>cp1</span>-<a name="line-235"></a> <span class='keyword'>where</span>-<a name="line-236"></a> <span class='varid'>choiceOrSeq1</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>SParser</span> <span class='layout'>(</span><span class='conid'>Attributes</span><span class='layout'>,</span> <span class='conid'>XmlTrees</span><span class='layout'>)</span>-<a name="line-237"></a> <span class='varid'>choiceOrSeq1</span> <span class='varid'>c1</span>-<a name="line-238"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-239"></a> <span class='varid'>bar</span>-<a name="line-240"></a> <span class='varid'>c2</span> <span class='keyglyph'><-</span> <span class='varid'>cp</span>-<a name="line-241"></a> <span class='varid'>cl</span> <span class='keyglyph'><-</span> <span class='varid'>many</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-242"></a> <span class='varid'>bar</span>-<a name="line-243"></a> <span class='varid'>cp</span>-<a name="line-244"></a> <span class='layout'>)</span>-<a name="line-245"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a_kind</span><span class='layout'>,</span> <span class='varid'>v_choice</span><span class='layout'>)</span><span class='keyglyph'>]</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>c1</span> <span class='conop'>:</span> <span class='varid'>c2</span> <span class='conop'>:</span> <span class='varid'>cl</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-246"></a> <span class='layout'>)</span>-<a name="line-247"></a> <span class='varop'><|></span>-<a name="line-248"></a> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-249"></a> <span class='varid'>cl</span> <span class='keyglyph'><-</span> <span class='varid'>many</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-250"></a> <span class='varid'>comma</span>-<a name="line-251"></a> <span class='varid'>cp</span>-<a name="line-252"></a> <span class='layout'>)</span>-<a name="line-253"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a_kind</span><span class='layout'>,</span> <span class='varid'>v_seq</span><span class='layout'>)</span><span class='keyglyph'>]</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>c1</span> <span class='conop'>:</span> <span class='varid'>cl</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-254"></a> <span class='layout'>)</span>-<a name="line-255"></a> <span class='varop'><?></span> <span class='str'>"sequence or choice"</span>-<a name="line-256"></a>-<a name="line-257"></a><a name="cp"></a><span class='definition'>cp</span> <span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='conid'>XmlTree</span>-<a name="line-258"></a><span class='definition'>cp</span>-<a name="line-259"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-260"></a> <span class='varid'>n</span> <span class='keyglyph'><-</span> <span class='varid'>name</span>-<a name="line-261"></a> <span class='varid'>m</span> <span class='keyglyph'><-</span> <span class='varid'>optOrRep</span>-<a name="line-262"></a> <span class='varid'>return</span> <span class='layout'>(</span> <span class='keyword'>case</span> <span class='varid'>m</span> <span class='keyword'>of</span>-<a name="line-263"></a> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='keyword'>_</span><span class='layout'>,</span> <span class='str'>""</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='varid'>n</span>-<a name="line-264"></a> <span class='keyword'>_</span> <span class='keyglyph'>-></span> <span class='varid'>mkDTDElem</span> <span class='conid'>CONTENT</span> <span class='layout'>(</span><span class='varid'>m</span> <span class='varop'>++</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a_kind</span><span class='layout'>,</span> <span class='varid'>v_seq</span><span class='layout'>)</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>[</span><span class='varid'>n</span><span class='keyglyph'>]</span>-<a name="line-265"></a> <span class='layout'>)</span>-<a name="line-266"></a> <span class='layout'>)</span>-<a name="line-267"></a> <span class='varop'><|></span>-<a name="line-268"></a> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-269"></a> <span class='layout'>(</span><span class='varid'>al</span><span class='layout'>,</span> <span class='varid'>cl</span><span class='layout'>)</span> <span class='keyglyph'><-</span> <span class='varid'>choiceOrSeq</span>-<a name="line-270"></a> <span class='varid'>m</span> <span class='keyglyph'><-</span> <span class='varid'>optOrRep</span>-<a name="line-271"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>mkDTDElem</span> <span class='conid'>CONTENT</span> <span class='layout'>(</span><span class='varid'>m</span> <span class='varop'>++</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varid'>cl</span><span class='layout'>)</span>-<a name="line-272"></a> <span class='layout'>)</span>-<a name="line-273"></a>-<a name="line-274"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-275"></a><span class='comment'>--</span>-<a name="line-276"></a><span class='comment'>-- Mixed Content (3.2.2)</span>-<a name="line-277"></a>-<a name="line-278"></a><a name="mixed"></a><span class='definition'>mixed</span> <span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='layout'>(</span><span class='conid'>Attributes</span><span class='layout'>,</span> <span class='conid'>XmlTrees</span><span class='layout'>)</span>-<a name="line-279"></a><span class='definition'>mixed</span>-<a name="line-280"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-281"></a> <span class='varid'>try</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-282"></a> <span class='varid'>lpar</span>-<a name="line-283"></a> <span class='varid'>string</span> <span class='varid'>k_pcdata</span>-<a name="line-284"></a> <span class='layout'>)</span>-<a name="line-285"></a> <span class='varid'>nl</span> <span class='keyglyph'><-</span> <span class='varid'>many</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-286"></a> <span class='varid'>bar</span>-<a name="line-287"></a> <span class='varid'>name</span>-<a name="line-288"></a> <span class='layout'>)</span>-<a name="line-289"></a> <span class='varid'>rpar</span>-<a name="line-290"></a> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>nl</span>-<a name="line-291"></a> <span class='keyword'>then</span> <span class='keyword'>do</span>-<a name="line-292"></a> <span class='varid'>option</span> <span class='chr'>' '</span> <span class='layout'>(</span><span class='varid'>char</span> <span class='chr'>'*'</span><span class='layout'>)</span> <span class='comment'>-- (#PCDATA) or (#PCDATA)* , both are legal</span>-<a name="line-293"></a> <span class='varid'>return</span> <span class='layout'>(</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>a_type</span><span class='layout'>,</span> <span class='varid'>v_pcdata</span><span class='layout'>)</span> <span class='keyglyph'>]</span>-<a name="line-294"></a> <span class='layout'>,</span> <span class='conid'>[]</span>-<a name="line-295"></a> <span class='layout'>)</span>-<a name="line-296"></a> <span class='keyword'>else</span> <span class='keyword'>do</span>-<a name="line-297"></a> <span class='varid'>char</span> <span class='chr'>'*'</span> <span class='varop'><?></span> <span class='str'>"closing parent for mixed content (\")*\")"</span>-<a name="line-298"></a> <span class='varid'>return</span> <span class='layout'>(</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>a_type</span><span class='layout'>,</span> <span class='varid'>v_mixed</span><span class='layout'>)</span> <span class='keyglyph'>]</span>-<a name="line-299"></a> <span class='layout'>,</span> <span class='keyglyph'>[</span> <span class='varid'>mkDTDElem</span> <span class='conid'>CONTENT</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>a_modifier</span><span class='layout'>,</span> <span class='str'>"*"</span><span class='layout'>)</span>-<a name="line-300"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>a_kind</span><span class='layout'>,</span> <span class='varid'>v_choice</span><span class='layout'>)</span>-<a name="line-301"></a> <span class='keyglyph'>]</span> <span class='varid'>nl</span>-<a name="line-302"></a> <span class='keyglyph'>]</span>-<a name="line-303"></a> <span class='layout'>)</span>-<a name="line-304"></a> <span class='layout'>)</span>-<a name="line-305"></a> <span class='varop'><?></span> <span class='str'>"mixed content"</span>-<a name="line-306"></a>-<a name="line-307"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-308"></a><span class='comment'>--</span>-<a name="line-309"></a><span class='comment'>-- Attribute-List Declarations (3.3)</span>-<a name="line-310"></a>-<a name="line-311"></a><a name="attlistDecl"></a><span class='definition'>attlistDecl</span> <span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='conid'>XmlTrees</span>-<a name="line-312"></a><span class='definition'>attlistDecl</span>-<a name="line-313"></a> <span class='keyglyph'>=</span> <span class='varid'>between</span> <span class='layout'>(</span><span class='varid'>try</span> <span class='varop'>$</span> <span class='varid'>string</span> <span class='str'>"<!ATTLIST"</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>char</span> <span class='chr'>'>'</span><span class='layout'>)</span> <span class='varid'>attlistDeclBody</span>-<a name="line-314"></a>-<a name="line-315"></a><a name="attlistDeclBody"></a><span class='definition'>attlistDeclBody</span> <span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='conid'>XmlTrees</span>-<a name="line-316"></a><span class='definition'>attlistDeclBody</span>-<a name="line-317"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-318"></a> <span class='varid'>skipS</span>-<a name="line-319"></a> <span class='varid'>n</span> <span class='keyglyph'><-</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>name</span>-<a name="line-320"></a> <span class='varid'>al</span> <span class='keyglyph'><-</span> <span class='varid'>many</span> <span class='varid'>attDef</span>-<a name="line-321"></a> <span class='varid'>skipS0</span>-<a name="line-322"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>mkDTree</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='varid'>al</span><span class='layout'>)</span>-<a name="line-323"></a> <span class='keyword'>where</span>-<a name="line-324"></a> <span class='varid'>mkDTree</span> <span class='varid'>n'</span> <span class='layout'>(</span><span class='varid'>al</span><span class='layout'>,</span> <span class='varid'>cl</span><span class='layout'>)</span>-<a name="line-325"></a> <span class='keyglyph'>=</span> <span class='varid'>mkDTDElem</span> <span class='conid'>ATTLIST</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>a_name</span><span class='layout'>,</span> <span class='varid'>n'</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varid'>cl</span>-<a name="line-326"></a> -<a name="line-327"></a><a name="attDef"></a><span class='definition'>attDef</span> <span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='layout'>(</span><span class='conid'>Attributes</span><span class='layout'>,</span> <span class='conid'>XmlTrees</span><span class='layout'>)</span>-<a name="line-328"></a><span class='definition'>attDef</span>-<a name="line-329"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-330"></a> <span class='varid'>n</span> <span class='keyglyph'><-</span> <span class='varid'>try</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-331"></a> <span class='varid'>skipS</span>-<a name="line-332"></a> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>name</span>-<a name="line-333"></a> <span class='layout'>)</span> <span class='varop'><?></span> <span class='str'>"attribute name"</span>-<a name="line-334"></a> <span class='varid'>skipS</span>-<a name="line-335"></a> <span class='layout'>(</span><span class='varid'>t</span><span class='layout'>,</span> <span class='varid'>cl</span><span class='layout'>)</span> <span class='keyglyph'><-</span> <span class='varid'>attType</span>-<a name="line-336"></a> <span class='varid'>skipS</span>-<a name="line-337"></a> <span class='varid'>d</span> <span class='keyglyph'><-</span> <span class='varid'>defaultDecl</span>-<a name="line-338"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='layout'>(</span><span class='layout'>(</span><span class='varid'>a_value</span><span class='layout'>,</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>d</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='varid'>t</span><span class='layout'>,</span> <span class='varid'>cl</span><span class='layout'>)</span>-<a name="line-339"></a>-<a name="line-340"></a><a name="attType"></a><span class='definition'>attType</span> <span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='layout'>(</span><span class='conid'>Attributes</span><span class='layout'>,</span> <span class='conid'>XmlTrees</span><span class='layout'>)</span>-<a name="line-341"></a><span class='definition'>attType</span>-<a name="line-342"></a> <span class='keyglyph'>=</span> <span class='varid'>tokenizedOrStringType</span>-<a name="line-343"></a> <span class='varop'><|></span>-<a name="line-344"></a> <span class='varid'>enumeration</span>-<a name="line-345"></a> <span class='varop'><|></span>-<a name="line-346"></a> <span class='varid'>notationType</span>-<a name="line-347"></a> <span class='varop'><?></span> <span class='str'>"attribute type"</span>-<a name="line-348"></a>-<a name="line-349"></a><a name="tokenizedOrStringType"></a><span class='definition'>tokenizedOrStringType</span> <span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='layout'>(</span><span class='conid'>Attributes</span><span class='layout'>,</span> <span class='conid'>XmlTrees</span><span class='layout'>)</span>-<a name="line-350"></a><span class='definition'>tokenizedOrStringType</span>-<a name="line-351"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-352"></a> <span class='varid'>n</span> <span class='keyglyph'><-</span> <span class='varid'>choice</span> <span class='varop'>$</span> <span class='varid'>map</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>keyword</span> <span class='varid'>typl</span>-<a name="line-353"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a_type</span><span class='layout'>,</span> <span class='varid'>n</span><span class='layout'>)</span><span class='keyglyph'>]</span><span class='layout'>,</span> <span class='conid'>[]</span><span class='layout'>)</span>-<a name="line-354"></a> <span class='keyword'>where</span>-<a name="line-355"></a> <span class='varid'>typl</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='varid'>k_cdata</span>-<a name="line-356"></a> <span class='layout'>,</span> <span class='varid'>k_idrefs</span>-<a name="line-357"></a> <span class='layout'>,</span> <span class='varid'>k_idref</span>-<a name="line-358"></a> <span class='layout'>,</span> <span class='varid'>k_id</span>-<a name="line-359"></a> <span class='layout'>,</span> <span class='varid'>k_entity</span>-<a name="line-360"></a> <span class='layout'>,</span> <span class='varid'>k_entities</span>-<a name="line-361"></a> <span class='layout'>,</span> <span class='varid'>k_nmtokens</span>-<a name="line-362"></a> <span class='layout'>,</span> <span class='varid'>k_nmtoken</span>-<a name="line-363"></a> <span class='keyglyph'>]</span>-<a name="line-364"></a>-<a name="line-365"></a><a name="enumeration"></a><span class='definition'>enumeration</span> <span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='layout'>(</span><span class='conid'>Attributes</span><span class='layout'>,</span> <span class='conid'>XmlTrees</span><span class='layout'>)</span>-<a name="line-366"></a><span class='definition'>enumeration</span>-<a name="line-367"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-368"></a> <span class='varid'>nl</span> <span class='keyglyph'><-</span> <span class='varid'>inSamePE</span> <span class='layout'>(</span><span class='varid'>between</span> <span class='varid'>lpar</span> <span class='varid'>rpar</span> <span class='layout'>(</span><span class='varid'>sepBy1</span> <span class='varid'>nmtoken</span> <span class='varid'>bar</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-369"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a_type</span><span class='layout'>,</span> <span class='varid'>k_enumeration</span><span class='layout'>)</span><span class='keyglyph'>]</span><span class='layout'>,</span> <span class='varid'>nl</span><span class='layout'>)</span>-<a name="line-370"></a>-<a name="line-371"></a><a name="notationType"></a><span class='definition'>notationType</span> <span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='layout'>(</span><span class='conid'>Attributes</span><span class='layout'>,</span> <span class='conid'>XmlTrees</span><span class='layout'>)</span>-<a name="line-372"></a><span class='definition'>notationType</span>-<a name="line-373"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-374"></a> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>keyword</span> <span class='varid'>k_notation</span>-<a name="line-375"></a> <span class='varid'>skipS</span>-<a name="line-376"></a> <span class='varid'>nl</span> <span class='keyglyph'><-</span> <span class='varid'>inSamePE</span> <span class='layout'>(</span><span class='varid'>between</span> <span class='varid'>lpar</span> <span class='varid'>rpar</span> <span class='layout'>(</span> <span class='varid'>sepBy1</span> <span class='varid'>name</span> <span class='varid'>bar</span> <span class='layout'>)</span><span class='layout'>)</span>-<a name="line-377"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a_type</span><span class='layout'>,</span> <span class='varid'>k_notation</span><span class='layout'>)</span><span class='keyglyph'>]</span><span class='layout'>,</span> <span class='varid'>nl</span><span class='layout'>)</span>-<a name="line-378"></a>-<a name="line-379"></a><a name="defaultDecl"></a><span class='definition'>defaultDecl</span> <span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='conid'>Attributes</span>-<a name="line-380"></a><span class='definition'>defaultDecl</span>-<a name="line-381"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-382"></a> <span class='varid'>str</span> <span class='keyglyph'><-</span> <span class='varid'>try</span> <span class='varop'>$</span> <span class='varid'>string</span> <span class='varid'>k_required</span>-<a name="line-383"></a> <span class='varid'>return</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a_kind</span><span class='layout'>,</span> <span class='varid'>str</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-384"></a> <span class='layout'>)</span>-<a name="line-385"></a> <span class='varop'><|></span>-<a name="line-386"></a> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-387"></a> <span class='varid'>str</span> <span class='keyglyph'><-</span> <span class='varid'>try</span> <span class='varop'>$</span> <span class='varid'>string</span> <span class='varid'>k_implied</span>-<a name="line-388"></a> <span class='varid'>return</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a_kind</span><span class='layout'>,</span> <span class='varid'>str</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-389"></a> <span class='layout'>)</span>-<a name="line-390"></a> <span class='varop'><|></span>-<a name="line-391"></a> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-392"></a> <span class='varid'>l</span> <span class='keyglyph'><-</span> <span class='varid'>fixed</span>-<a name="line-393"></a> <span class='varid'>v</span> <span class='keyglyph'><-</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>attrValueT</span>-<a name="line-394"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>a_default</span><span class='layout'>,</span> <span class='varid'>xshow</span> <span class='varid'>v</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>l</span><span class='layout'>)</span>-<a name="line-395"></a> <span class='layout'>)</span>-<a name="line-396"></a> <span class='varop'><?></span> <span class='str'>"default declaration"</span>-<a name="line-397"></a> <span class='keyword'>where</span>-<a name="line-398"></a> <span class='varid'>fixed</span> <span class='keyglyph'>=</span> <span class='varid'>option</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a_kind</span><span class='layout'>,</span> <span class='varid'>k_default</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-399"></a> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-400"></a> <span class='varid'>try</span> <span class='varop'>$</span> <span class='varid'>string</span> <span class='varid'>k_fixed</span>-<a name="line-401"></a> <span class='varid'>skipS</span>-<a name="line-402"></a> <span class='varid'>return</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a_kind</span><span class='layout'>,</span> <span class='varid'>k_fixed</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-403"></a> <span class='layout'>)</span>-<a name="line-404"></a>-<a name="line-405"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-406"></a><span class='comment'>--</span>-<a name="line-407"></a><span class='comment'>-- Entity Declarations (4.2)</span>-<a name="line-408"></a>-<a name="line-409"></a><a name="entityDecl"></a><span class='definition'>entityDecl</span> <span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='conid'>XmlTrees</span>-<a name="line-410"></a><span class='definition'>entityDecl</span>-<a name="line-411"></a> <span class='keyglyph'>=</span> <span class='varid'>between</span> <span class='layout'>(</span> <span class='varid'>try</span> <span class='varop'>$</span> <span class='varid'>string</span> <span class='str'>"<!ENTITY"</span> <span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>char</span> <span class='chr'>'>'</span><span class='layout'>)</span> <span class='varid'>entityDeclBody</span>-<a name="line-412"></a>-<a name="line-413"></a><a name="entityDeclBody"></a><span class='definition'>entityDeclBody</span> <span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='conid'>XmlTrees</span>-<a name="line-414"></a><span class='definition'>entityDeclBody</span>-<a name="line-415"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-416"></a> <span class='varid'>skipS</span>-<a name="line-417"></a> <span class='layout'>(</span> <span class='varid'>peDecl</span>-<a name="line-418"></a> <span class='varop'><|></span>-<a name="line-419"></a> <span class='varid'>geDecl</span>-<a name="line-420"></a> <span class='varop'><?></span> <span class='str'>"entity declaration"</span> <span class='layout'>)</span> <span class='comment'>-- don't move the ) to the next line</span>-<a name="line-421"></a>-<a name="line-422"></a><a name="geDecl"></a><span class='definition'>geDecl</span> <span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='conid'>XmlTrees</span>-<a name="line-423"></a><span class='definition'>geDecl</span>-<a name="line-424"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-425"></a> <span class='varid'>n</span> <span class='keyglyph'><-</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>name</span>-<a name="line-426"></a> <span class='varid'>skipS</span>-<a name="line-427"></a> <span class='layout'>(</span><span class='varid'>al</span><span class='layout'>,</span> <span class='varid'>cl</span><span class='layout'>)</span> <span class='keyglyph'><-</span> <span class='varid'>entityDef</span>-<a name="line-428"></a> <span class='varid'>skipS0</span>-<a name="line-429"></a> <span class='varid'>return</span> <span class='keyglyph'>[</span><span class='varid'>mkDTDElem</span> <span class='conid'>ENTITY</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>a_name</span><span class='layout'>,</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varid'>cl</span><span class='keyglyph'>]</span>-<a name="line-430"></a>-<a name="line-431"></a><a name="entityDef"></a><span class='definition'>entityDef</span> <span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='layout'>(</span><span class='conid'>Attributes</span><span class='layout'>,</span> <span class='conid'>XmlTrees</span><span class='layout'>)</span>-<a name="line-432"></a><span class='definition'>entityDef</span>-<a name="line-433"></a> <span class='keyglyph'>=</span> <span class='varid'>entityValue</span>-<a name="line-434"></a> <span class='varop'><|></span>-<a name="line-435"></a> <span class='varid'>externalEntitySpec</span>-<a name="line-436"></a>-<a name="line-437"></a><a name="externalEntitySpec"></a><span class='definition'>externalEntitySpec</span> <span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='layout'>(</span><span class='conid'>Attributes</span><span class='layout'>,</span> <span class='conid'>XmlTrees</span><span class='layout'>)</span>-<a name="line-438"></a><span class='definition'>externalEntitySpec</span>-<a name="line-439"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-440"></a> <span class='varid'>al</span> <span class='keyglyph'><-</span> <span class='varid'>externalID</span>-<a name="line-441"></a> <span class='varid'>nd</span> <span class='keyglyph'><-</span> <span class='varid'>option</span> <span class='conid'>[]</span> <span class='varid'>nDataDecl</span>-<a name="line-442"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>al</span> <span class='varop'>++</span> <span class='varid'>nd</span><span class='layout'>)</span><span class='layout'>,</span> <span class='conid'>[]</span><span class='layout'>)</span>-<a name="line-443"></a>-<a name="line-444"></a><a name="peDecl"></a><span class='definition'>peDecl</span> <span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='conid'>XmlTrees</span>-<a name="line-445"></a><span class='definition'>peDecl</span>-<a name="line-446"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-447"></a> <span class='varid'>char</span> <span class='chr'>'%'</span>-<a name="line-448"></a> <span class='varid'>skipS</span>-<a name="line-449"></a> <span class='varid'>n</span> <span class='keyglyph'><-</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>name</span>-<a name="line-450"></a> <span class='varid'>skipS</span>-<a name="line-451"></a> <span class='layout'>(</span><span class='varid'>al</span><span class='layout'>,</span> <span class='varid'>cs</span><span class='layout'>)</span> <span class='keyglyph'><-</span> <span class='varid'>peDef</span>-<a name="line-452"></a> <span class='varid'>skipS0</span>-<a name="line-453"></a> <span class='varid'>return</span> <span class='keyglyph'>[</span><span class='varid'>mkDTDElem</span> <span class='conid'>PENTITY</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>a_name</span><span class='layout'>,</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varid'>cs</span><span class='keyglyph'>]</span>-<a name="line-454"></a>-<a name="line-455"></a><a name="peDef"></a><span class='definition'>peDef</span> <span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='layout'>(</span><span class='conid'>Attributes</span><span class='layout'>,</span> <span class='conid'>XmlTrees</span><span class='layout'>)</span>-<a name="line-456"></a><span class='definition'>peDef</span>-<a name="line-457"></a> <span class='keyglyph'>=</span> <span class='varid'>entityValue</span>-<a name="line-458"></a> <span class='varop'><|></span>-<a name="line-459"></a> <span class='keyword'>do</span>-<a name="line-460"></a> <span class='varid'>al</span> <span class='keyglyph'><-</span> <span class='varid'>externalID</span>-<a name="line-461"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>al</span><span class='layout'>,</span> <span class='conid'>[]</span><span class='layout'>)</span>-<a name="line-462"></a>-<a name="line-463"></a><a name="entityValue"></a><span class='definition'>entityValue</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='layout'>(</span><span class='conid'>Attributes</span><span class='layout'>,</span> <span class='conid'>XmlTrees</span><span class='layout'>)</span>-<a name="line-464"></a><span class='definition'>entityValue</span>-<a name="line-465"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-466"></a> <span class='varid'>v</span> <span class='keyglyph'><-</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>entityValueT</span>-<a name="line-467"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>[]</span><span class='layout'>,</span> <span class='varid'>v</span><span class='layout'>)</span>-<a name="line-468"></a>-<a name="line-469"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-470"></a><span class='comment'>--</span>-<a name="line-471"></a><span class='comment'>-- External Entities (4.2.2)</span>-<a name="line-472"></a>-<a name="line-473"></a><a name="externalID"></a><span class='definition'>externalID</span> <span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='conid'>Attributes</span>-<a name="line-474"></a><span class='definition'>externalID</span>-<a name="line-475"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-476"></a> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>keyword</span> <span class='varid'>k_system</span>-<a name="line-477"></a> <span class='varid'>skipS</span>-<a name="line-478"></a> <span class='varid'>lit</span> <span class='keyglyph'><-</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>systemLiteral</span>-<a name="line-479"></a> <span class='varid'>return</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>k_system</span><span class='layout'>,</span> <span class='varid'>lit</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-480"></a> <span class='layout'>)</span>-<a name="line-481"></a> <span class='varop'><|></span>-<a name="line-482"></a> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-483"></a> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>keyword</span> <span class='varid'>k_public</span>-<a name="line-484"></a> <span class='varid'>skipS</span>-<a name="line-485"></a> <span class='varid'>pl</span> <span class='keyglyph'><-</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>pubidLiteral</span>-<a name="line-486"></a> <span class='varid'>skipS</span>-<a name="line-487"></a> <span class='varid'>sl</span> <span class='keyglyph'><-</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>systemLiteral</span>-<a name="line-488"></a> <span class='varid'>return</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>k_system</span><span class='layout'>,</span> <span class='varid'>sl</span><span class='layout'>)</span>-<a name="line-489"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>k_public</span><span class='layout'>,</span> <span class='varid'>pl</span><span class='layout'>)</span> <span class='keyglyph'>]</span>-<a name="line-490"></a> <span class='layout'>)</span>-<a name="line-491"></a> <span class='varop'><?></span> <span class='str'>"SYSTEM or PUBLIC declaration"</span>-<a name="line-492"></a>-<a name="line-493"></a><a name="nDataDecl"></a><span class='definition'>nDataDecl</span> <span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='conid'>Attributes</span>-<a name="line-494"></a><span class='definition'>nDataDecl</span>-<a name="line-495"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-496"></a> <span class='varid'>try</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-497"></a> <span class='varid'>skipS</span>-<a name="line-498"></a> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>keyword</span> <span class='varid'>k_ndata</span>-<a name="line-499"></a> <span class='layout'>)</span>-<a name="line-500"></a> <span class='varid'>skipS</span>-<a name="line-501"></a> <span class='varid'>n</span> <span class='keyglyph'><-</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>name</span>-<a name="line-502"></a> <span class='varid'>return</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>k_ndata</span><span class='layout'>,</span> <span class='varid'>n</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-503"></a>-<a name="line-504"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-505"></a><span class='comment'>--</span>-<a name="line-506"></a><span class='comment'>-- Notation Declarations (4.7)</span>-<a name="line-507"></a>-<a name="line-508"></a><a name="notationDecl"></a><span class='definition'>notationDecl</span> <span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='conid'>XmlTrees</span>-<a name="line-509"></a><span class='definition'>notationDecl</span>-<a name="line-510"></a> <span class='keyglyph'>=</span> <span class='varid'>between</span> <span class='layout'>(</span><span class='varid'>try</span> <span class='varop'>$</span> <span class='varid'>string</span> <span class='str'>"<!NOTATION"</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>char</span> <span class='chr'>'>'</span> <span class='varop'><?></span> <span class='str'>"notation declaration"</span><span class='layout'>)</span> <span class='varid'>notationDeclBody</span>-<a name="line-511"></a>-<a name="line-512"></a><a name="notationDeclBody"></a><span class='definition'>notationDeclBody</span> <span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='conid'>XmlTrees</span>-<a name="line-513"></a><span class='definition'>notationDeclBody</span>-<a name="line-514"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-515"></a> <span class='varid'>skipS</span>-<a name="line-516"></a> <span class='varid'>n</span> <span class='keyglyph'><-</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>name</span>-<a name="line-517"></a> <span class='varid'>skipS</span>-<a name="line-518"></a> <span class='varid'>eid</span> <span class='keyglyph'><-</span> <span class='layout'>(</span> <span class='varid'>try</span> <span class='varid'>externalID</span>-<a name="line-519"></a> <span class='varop'><|></span>-<a name="line-520"></a> <span class='varid'>publicID</span>-<a name="line-521"></a> <span class='layout'>)</span>-<a name="line-522"></a> <span class='varid'>skipS0</span>-<a name="line-523"></a> <span class='varid'>return</span> <span class='keyglyph'>[</span><span class='varid'>mkDTDElem</span> <span class='conid'>NOTATION</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>a_name</span><span class='layout'>,</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>eid</span><span class='layout'>)</span> <span class='conid'>[]</span><span class='keyglyph'>]</span>-<a name="line-524"></a>-<a name="line-525"></a><a name="publicID"></a><span class='definition'>publicID</span> <span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='conid'>Attributes</span>-<a name="line-526"></a><span class='definition'>publicID</span>-<a name="line-527"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-528"></a> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>keyword</span> <span class='varid'>k_public</span>-<a name="line-529"></a> <span class='varid'>skipS</span>-<a name="line-530"></a> <span class='varid'>l</span> <span class='keyglyph'><-</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>pubidLiteral</span>-<a name="line-531"></a> <span class='varid'>return</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>k_public</span><span class='layout'>,</span> <span class='varid'>l</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-532"></a>-<a name="line-533"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-534"></a>-<a name="line-535"></a><a name="condSectCondBody"></a><span class='definition'>condSectCondBody</span> <span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='conid'>XmlTrees</span>-<a name="line-536"></a><span class='definition'>condSectCondBody</span>-<a name="line-537"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-538"></a> <span class='varid'>skipS0</span>-<a name="line-539"></a> <span class='varid'>n</span> <span class='keyglyph'><-</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>name</span>-<a name="line-540"></a> <span class='varid'>skipS0</span>-<a name="line-541"></a> <span class='keyword'>let</span> <span class='varid'>n'</span> <span class='keyglyph'>=</span> <span class='varid'>stringToUpper</span> <span class='varid'>n</span>-<a name="line-542"></a> <span class='keyword'>if</span> <span class='varid'>n'</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='varid'>k_include</span><span class='layout'>,</span> <span class='varid'>k_ignore</span><span class='keyglyph'>]</span>-<a name="line-543"></a> <span class='keyword'>then</span> <span class='varid'>return</span> <span class='keyglyph'>[</span><span class='varid'>mkText</span> <span class='varid'>n'</span><span class='keyglyph'>]</span>-<a name="line-544"></a> <span class='keyword'>else</span> <span class='varid'>fail</span> <span class='varop'>$</span> <span class='str'>"INCLUDE or IGNORE expected in conditional section"</span>-<a name="line-545"></a>-<a name="line-546"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-547"></a>-<a name="line-548"></a><a name="separator"></a><span class='definition'>separator</span> <span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-></span> <span class='conid'>SParser</span> <span class='conid'>()</span>-<a name="line-549"></a><span class='definition'>separator</span> <span class='varid'>c</span>-<a name="line-550"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-551"></a> <span class='varid'>try</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-552"></a> <span class='varid'>skipS0</span>-<a name="line-553"></a> <span class='varid'>char</span> <span class='varid'>c</span>-<a name="line-554"></a> <span class='layout'>)</span>-<a name="line-555"></a> <span class='varid'>skipS0</span>-<a name="line-556"></a> <span class='varop'><?></span> <span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span>-<a name="line-557"></a>-<a name="line-558"></a>-<a name="line-559"></a><a name="bar"></a><span class='definition'>bar</span><span class='layout'>,</span> <span class='varid'>comma</span><span class='layout'>,</span> <span class='varid'>lpar</span><span class='layout'>,</span> <span class='varid'>rpar</span> <span class='keyglyph'>::</span> <span class='conid'>SParser</span> <span class='conid'>()</span>-<a name="line-560"></a>-<a name="line-561"></a><span class='definition'>bar</span> <span class='keyglyph'>=</span> <span class='varid'>separator</span> <span class='chr'>'|'</span>-<a name="line-562"></a><a name="comma"></a><span class='definition'>comma</span> <span class='keyglyph'>=</span> <span class='varid'>separator</span> <span class='chr'>','</span>-<a name="line-563"></a>-<a name="line-564"></a><a name="lpar"></a><span class='definition'>lpar</span>-<a name="line-565"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-566"></a> <span class='varid'>char</span> <span class='chr'>'('</span>-<a name="line-567"></a> <span class='varid'>skipS0</span>-<a name="line-568"></a>-<a name="line-569"></a><a name="rpar"></a><span class='definition'>rpar</span>-<a name="line-570"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-571"></a> <span class='varid'>skipS0</span>-<a name="line-572"></a> <span class='varid'>char</span> <span class='chr'>')'</span>-<a name="line-573"></a> <span class='varid'>return</span> <span class='conid'>()</span>-<a name="line-574"></a>-<a name="line-575"></a>-<a name="line-576"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-577"></a>-<a name="line-578"></a><a name="parseXmlDTDEntityValue"></a><span class='definition'>parseXmlDTDEntityValue</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span>-<a name="line-579"></a><span class='definition'>parseXmlDTDEntityValue</span> <span class='varid'>t</span> <span class='comment'>-- (NTree (XDTD PEREF al) cl)</span>-<a name="line-580"></a> <span class='keyglyph'>|</span> <span class='varid'>isDTDPEref</span> <span class='varid'>t</span>-<a name="line-581"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>either</span>-<a name="line-582"></a> <span class='layout'>(</span> <span class='layout'>(</span><span class='conop'>:</span><span class='conid'>[]</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>mkError</span> <span class='varid'>c_err</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='varop'>++</span> <span class='str'>"\n"</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>show</span> <span class='layout'>)</span>-<a name="line-583"></a> <span class='layout'>(</span> <span class='keyglyph'>\</span><span class='varid'>cl'</span> <span class='keyglyph'>-></span> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>cl'</span>-<a name="line-584"></a> <span class='keyword'>then</span> <span class='keyglyph'>[</span><span class='varid'>mkText</span> <span class='str'>""</span><span class='keyglyph'>]</span>-<a name="line-585"></a> <span class='keyword'>else</span> <span class='varid'>cl'</span>-<a name="line-586"></a> <span class='layout'>)</span>-<a name="line-587"></a> <span class='varop'>.</span>-<a name="line-588"></a> <span class='varid'>parse</span> <span class='varid'>parser</span> <span class='varid'>source</span>-<a name="line-589"></a> <span class='layout'>)</span> <span class='varid'>input</span>-<a name="line-590"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-591"></a> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-592"></a> <span class='keyword'>where</span>-<a name="line-593"></a> <span class='varid'>al</span> <span class='keyglyph'>=</span> <span class='varid'>fromMaybe</span> <span class='conid'>[]</span> <span class='varop'>.</span> <span class='varid'>getDTDAttrl</span> <span class='varop'>$</span> <span class='varid'>t</span>-<a name="line-594"></a> <span class='varid'>cl</span> <span class='keyglyph'>=</span> <span class='varid'>getChildren</span> <span class='varid'>t</span>-<a name="line-595"></a> <span class='varid'>parser</span> <span class='keyglyph'>=</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>entityTokensT</span> <span class='str'>"%&"</span>-<a name="line-596"></a> <span class='varid'>source</span> <span class='keyglyph'>=</span> <span class='str'>"value of parameter entity "</span> <span class='varop'>++</span> <span class='varid'>lookupDef</span> <span class='str'>""</span> <span class='varid'>a_peref</span> <span class='varid'>al</span>-<a name="line-597"></a> <span class='varid'>input</span> <span class='keyglyph'>=</span> <span class='varid'>xshow</span> <span class='varid'>cl</span>-<a name="line-598"></a>-<a name="line-599"></a><span class='comment'>{--<a name="line-600"></a>parseXmlDTDEntityValue n-<a name="line-601"></a> = error ("parseXmlDTDEntityValue: illegal argument: " ++ show n)-<a name="line-602"></a>-}</span>-<a name="line-603"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-604"></a>-<a name="line-605"></a><a name="parseXmlDTDdeclPart"></a><span class='definition'>parseXmlDTDdeclPart</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span>-<a name="line-606"></a><span class='definition'>parseXmlDTDdeclPart</span> <span class='varid'>t</span> <span class='comment'>-- @(NTree (XDTD PEREF al) cl)</span>-<a name="line-607"></a> <span class='keyglyph'>|</span> <span class='varid'>isDTDPEref</span> <span class='varid'>t</span>-<a name="line-608"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='conop'>:</span><span class='conid'>[]</span><span class='layout'>)</span>-<a name="line-609"></a> <span class='varop'>.</span>-<a name="line-610"></a> <span class='varid'>either</span>-<a name="line-611"></a> <span class='layout'>(</span> <span class='varid'>mkError</span> <span class='varid'>c_err</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='varop'>++</span> <span class='str'>"\n"</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>show</span> <span class='layout'>)</span>-<a name="line-612"></a> <span class='layout'>(</span> <span class='varid'>flip</span> <span class='varid'>setChildren</span> <span class='varop'>$</span> <span class='varid'>t</span> <span class='layout'>)</span> <span class='comment'>-- \ cl' -> setChildren cl' t)</span>-<a name="line-613"></a> <span class='varop'>.</span>-<a name="line-614"></a> <span class='varid'>parse</span> <span class='varid'>parser</span> <span class='varid'>source</span>-<a name="line-615"></a> <span class='layout'>)</span> <span class='varid'>input</span>-<a name="line-616"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-617"></a> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-618"></a> <span class='keyword'>where</span>-<a name="line-619"></a> <span class='varid'>al</span> <span class='keyglyph'>=</span> <span class='varid'>fromMaybe</span> <span class='conid'>[]</span> <span class='varop'>.</span> <span class='varid'>getDTDAttrl</span> <span class='varop'>$</span> <span class='varid'>t</span>-<a name="line-620"></a> <span class='varid'>cl</span> <span class='keyglyph'>=</span> <span class='varid'>getChildren</span> <span class='varid'>t</span>-<a name="line-621"></a> <span class='varid'>parser</span> <span class='keyglyph'>=</span> <span class='varid'>many</span> <span class='conid'>XD</span><span class='varop'>.</span><span class='varid'>dtdToken</span>-<a name="line-622"></a> <span class='varid'>source</span> <span class='keyglyph'>=</span> <span class='str'>"value of parameter entity "</span> <span class='varop'>++</span> <span class='varid'>lookupDef</span> <span class='str'>""</span> <span class='varid'>a_peref</span> <span class='varid'>al</span>-<a name="line-623"></a> <span class='varid'>input</span> <span class='keyglyph'>=</span> <span class='varid'>xshow</span> <span class='varid'>cl</span>-<a name="line-624"></a>-<a name="line-625"></a><span class='comment'>{--<a name="line-626"></a>parseXmlDTDdeclPart n-<a name="line-627"></a> = error ("parseXmlDTDdeclPart: illegal argument: " ++ show n)-<a name="line-628"></a>-}</span>-<a name="line-629"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-630"></a><span class='comment'>--</span>-<a name="line-631"></a><span class='comment'>-- the main entry point</span>-<a name="line-632"></a>-<a name="line-633"></a><span class='comment'>-- | parse a tokenized DTD declaration represented by a DTD tree.</span>-<a name="line-634"></a><span class='comment'>-- The content is represented by the children containing text and parameter entity reference nodes.</span>-<a name="line-635"></a><span class='comment'>-- The parameter entity reference nodes contain their value in the children list, consisting of text</span>-<a name="line-636"></a><span class='comment'>-- and possibly again parameter entity reference nodes. This structure is build by the parameter entity</span>-<a name="line-637"></a><span class='comment'>-- substitution.</span>-<a name="line-638"></a><span class='comment'>-- Output is again a DTD declaration node, but this time completely parsed and ready for further DTD processing</span>-<a name="line-639"></a>-<a name="line-640"></a><a name="parseXmlDTDdecl"></a><span class='definition'>parseXmlDTDdecl</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span>-<a name="line-641"></a><span class='definition'>parseXmlDTDdecl</span> <span class='varid'>t</span> <span class='comment'>-- (NTree (XDTD dtdElem al) cl)</span>-<a name="line-642"></a> <span class='keyglyph'>|</span> <span class='varid'>isDTD</span> <span class='varid'>t</span>-<a name="line-643"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>either</span> <span class='layout'>(</span><span class='layout'>(</span><span class='conop'>:</span><span class='conid'>[]</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>mkError</span> <span class='varid'>c_err</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='varop'>++</span> <span class='str'>"\n"</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>show</span><span class='layout'>)</span> <span class='varid'>id</span>-<a name="line-644"></a> <span class='varop'>.</span>-<a name="line-645"></a> <span class='varid'>runParser</span> <span class='varid'>parser</span> <span class='layout'>(</span><span class='varid'>initialLocalState</span> <span class='varid'>pos</span><span class='layout'>)</span> <span class='varid'>source</span>-<a name="line-646"></a> <span class='layout'>)</span> <span class='varid'>input</span>-<a name="line-647"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-648"></a> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-649"></a> <span class='keyword'>where</span>-<a name="line-650"></a> <span class='varid'>dtdElem</span> <span class='keyglyph'>=</span> <span class='varid'>fromJust</span> <span class='varop'>.</span> <span class='varid'>getDTDPart</span> <span class='varop'>$</span> <span class='varid'>t</span>-<a name="line-651"></a> <span class='varid'>al</span> <span class='keyglyph'>=</span> <span class='varid'>fromMaybe</span> <span class='conid'>[]</span> <span class='varop'>.</span> <span class='varid'>getDTDAttrl</span> <span class='varop'>$</span> <span class='varid'>t</span>-<a name="line-652"></a> <span class='varid'>cl</span> <span class='keyglyph'>=</span> <span class='varid'>getChildren</span> <span class='varid'>t</span>-<a name="line-653"></a> <span class='varid'>dtdParsers</span>-<a name="line-654"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='conid'>ELEMENT</span><span class='layout'>,</span> <span class='varid'>elementDeclBody</span><span class='layout'>)</span>-<a name="line-655"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='conid'>ATTLIST</span><span class='layout'>,</span> <span class='varid'>attlistDeclBody</span><span class='layout'>)</span>-<a name="line-656"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='conid'>ENTITY</span><span class='layout'>,</span> <span class='varid'>entityDeclBody</span><span class='layout'>)</span>-<a name="line-657"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='conid'>NOTATION</span><span class='layout'>,</span> <span class='varid'>notationDeclBody</span><span class='layout'>)</span>-<a name="line-658"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='conid'>CONDSECT</span><span class='layout'>,</span> <span class='varid'>condSectCondBody</span><span class='layout'>)</span>-<a name="line-659"></a> <span class='keyglyph'>]</span>-<a name="line-660"></a> <span class='varid'>source</span> <span class='keyglyph'>=</span> <span class='varid'>lookupDef</span> <span class='str'>"DTD declaration"</span> <span class='varid'>a_source</span> <span class='varid'>al</span>-<a name="line-661"></a> <span class='varid'>line</span> <span class='keyglyph'>=</span> <span class='varid'>lookupDef</span> <span class='str'>"1"</span> <span class='varid'>a_line</span> <span class='varid'>al</span>-<a name="line-662"></a> <span class='varid'>column</span> <span class='keyglyph'>=</span> <span class='varid'>lookupDef</span> <span class='str'>"1"</span> <span class='varid'>a_column</span> <span class='varid'>al</span>-<a name="line-663"></a> <span class='varid'>pos</span> <span class='keyglyph'>=</span> <span class='varid'>newPos</span> <span class='varid'>source</span> <span class='layout'>(</span><span class='varid'>read</span> <span class='varid'>line</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>read</span> <span class='varid'>column</span><span class='layout'>)</span>-<a name="line-664"></a> <span class='varid'>parser</span> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-665"></a> <span class='varid'>setPosition</span> <span class='varid'>pos</span>-<a name="line-666"></a> <span class='varid'>res</span> <span class='keyglyph'><-</span> <span class='varid'>fromJust</span> <span class='varop'>.</span> <span class='varid'>lookup</span> <span class='varid'>dtdElem</span> <span class='varop'>$</span> <span class='varid'>dtdParsers</span>-<a name="line-667"></a> <span class='varid'>eof</span>-<a name="line-668"></a> <span class='varid'>return</span> <span class='varid'>res</span>-<a name="line-669"></a> <span class='varid'>input</span> <span class='keyglyph'>=</span> <span class='varid'>concatMap</span> <span class='varid'>collectText</span> <span class='varid'>cl</span>-<a name="line-670"></a><span class='comment'>{--<a name="line-671"></a>parseXmlDTDdecl _-<a name="line-672"></a> = []-<a name="line-673"></a>-}</span>-<a name="line-674"></a>-<a name="line-675"></a><span class='comment'>-- | collect the tokens of a DTD declaration body and build</span>-<a name="line-676"></a><span class='comment'>-- a string ready for parsing. The structure of the parameter entity values</span>-<a name="line-677"></a><span class='comment'>-- is stll stored in this string for checking the scope of the parameter values</span>-<a name="line-678"></a>-<a name="line-679"></a><a name="collectText"></a><span class='definition'>collectText</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-680"></a>-<a name="line-681"></a><span class='definition'>collectText</span> <span class='varid'>t</span>-<a name="line-682"></a> <span class='keyglyph'>|</span> <span class='varid'>isText</span> <span class='varid'>t</span>-<a name="line-683"></a> <span class='keyglyph'>=</span> <span class='varid'>fromMaybe</span> <span class='str'>""</span> <span class='varop'>.</span> <span class='varid'>getText</span> <span class='varop'>$</span> <span class='varid'>t</span>-<a name="line-684"></a> <span class='keyglyph'>|</span> <span class='varid'>isDTDPEref</span> <span class='varid'>t</span>-<a name="line-685"></a> <span class='keyglyph'>=</span> <span class='varid'>prefixPe</span> <span class='varop'>++</span> <span class='varid'>concatMap</span> <span class='varid'>collectText</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varid'>t</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='varid'>suffixPe</span>-<a name="line-686"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-687"></a> <span class='keyglyph'>=</span> <span class='str'>""</span>-<a name="line-688"></a> <span class='keyword'>where</span>-<a name="line-689"></a> <span class='varid'>al</span> <span class='keyglyph'>=</span> <span class='varid'>fromMaybe</span> <span class='conid'>[]</span> <span class='varop'>.</span> <span class='varid'>getDTDAttrl</span> <span class='varop'>$</span> <span class='varid'>t</span>-<a name="line-690"></a> <span class='varid'>delPe</span> <span class='keyglyph'>=</span> <span class='str'>"\0"</span>-<a name="line-691"></a> <span class='varid'>prefixPe</span> <span class='keyglyph'>=</span> <span class='varid'>delPe</span> <span class='varop'>++</span> <span class='varid'>lookupDef</span> <span class='str'>"???"</span> <span class='varid'>a_peref</span> <span class='varid'>al</span> <span class='varop'>++</span> <span class='varid'>delPe</span>-<a name="line-692"></a> <span class='varid'>suffixPe</span> <span class='keyglyph'>=</span> <span class='varid'>delPe</span> <span class='varop'>++</span> <span class='varid'>delPe</span>-<a name="line-693"></a>-<a name="line-694"></a><span class='comment'>{--<a name="line-695"></a>-<a name="line-696"></a>collectText (NTree n _)-<a name="line-697"></a> | isXTextNode n-<a name="line-698"></a> = textOfXNode n-<a name="line-699"></a>-<a name="line-700"></a>collectText (NTree (XDTD PEREF al) cl)-<a name="line-701"></a> = prefixPe ++ concatMap collectText cl ++ suffixPe-<a name="line-702"></a> where-<a name="line-703"></a> delPe = "\0"-<a name="line-704"></a> prefixPe = delPe ++ lookupDef "???" a_peref al ++ delPe-<a name="line-705"></a> suffixPe = delPe ++ delPe-<a name="line-706"></a>-<a name="line-707"></a>collectText _-<a name="line-708"></a> = ""-<a name="line-709"></a>-}</span>-<a name="line-710"></a>-<a name="line-711"></a><a name="isDTDPEref"></a><span class='definition'>isDTDPEref</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-712"></a><span class='definition'>isDTDPEref</span>-<a name="line-713"></a> <span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='conid'>False</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='conid'>PEREF</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>getDTDPart</span>-<a name="line-714"></a>-<a name="line-715"></a><span class='comment'>-- ------------------------------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-Parser-XmlDTDTokenParser.html
@@ -1,120 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Text.XML.HXT.Parser.XmlDTDTokenParser-<a name="line-5"></a> Copyright : Copyright (C) 2005 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe@fh-wedel.de)-<a name="line-9"></a> Stability : experimental-<a name="line-10"></a> Portability: portable-<a name="line-11"></a> Version : $Id: XmlDTDTokenParser.hs,v 1.4 2005/09/02 17:09:39 hxml Exp $-<a name="line-12"></a>-<a name="line-13"></a> Parsec parser for tokenizing DTD declarations for ELEMENT, ATTLIST, ENTITY and NOTATION-<a name="line-14"></a>-<a name="line-15"></a>-}</span>-<a name="line-16"></a>-<a name="line-17"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-18"></a>-<a name="line-19"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Parser</span><span class='varop'>.</span><span class='conid'>XmlDTDTokenParser</span> <span class='keyword'>where</span>-<a name="line-20"></a>-<a name="line-21"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>ParserCombinators</span><span class='varop'>.</span><span class='conid'>Parsec</span>-<a name="line-22"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>ParserCombinators</span><span class='varop'>.</span><span class='conid'>Parsec</span><span class='varop'>.</span><span class='conid'>Pos</span>-<a name="line-23"></a>-<a name="line-24"></a><span class='comment'>-- import Text.XML.HXT.DOM.XmlTree hiding (choice)</span>-<a name="line-25"></a>-<a name="line-26"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>-<a name="line-27"></a>-<a name="line-28"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlNode</span>-<a name="line-29"></a> <span class='layout'>(</span> <span class='varid'>mkDTDElem</span>-<a name="line-30"></a> <span class='layout'>,</span> <span class='varid'>mkText</span>-<a name="line-31"></a> <span class='layout'>)</span>-<a name="line-32"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Parser</span><span class='varop'>.</span><span class='conid'>XmlTokenParser</span> <span class='keyword'>as</span> <span class='conid'>XT</span>-<a name="line-33"></a>-<a name="line-34"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-35"></a><span class='comment'>--</span>-<a name="line-36"></a><span class='comment'>-- DTD declaration tokenizer</span>-<a name="line-37"></a>-<a name="line-38"></a><a name="dtdDeclTokenizer"></a><span class='definition'>dtdDeclTokenizer</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTree</span>-<a name="line-39"></a><span class='definition'>dtdDeclTokenizer</span>-<a name="line-40"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-41"></a> <span class='layout'>(</span><span class='varid'>dcl</span><span class='layout'>,</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='keyglyph'><-</span> <span class='varid'>dtdDeclStart</span>-<a name="line-42"></a> <span class='varid'>content</span> <span class='keyglyph'><-</span> <span class='varid'>many1</span> <span class='varid'>dtdToken</span>-<a name="line-43"></a> <span class='varid'>dtdDeclEnd</span>-<a name="line-44"></a> <span class='varid'>return</span> <span class='varop'>$!</span> <span class='varid'>mkDTDElem</span> <span class='varid'>dcl</span> <span class='varid'>al</span> <span class='varid'>content</span>-<a name="line-45"></a>-<a name="line-46"></a><a name="dtdDeclStart"></a><span class='definition'>dtdDeclStart</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='layout'>(</span><span class='conid'>DTDElem</span><span class='layout'>,</span> <span class='conid'>Attributes</span><span class='layout'>)</span>-<a name="line-47"></a><span class='definition'>dtdDeclStart</span>-<a name="line-48"></a> <span class='keyglyph'>=</span> <span class='varid'>foldr1</span> <span class='layout'>(</span><span class='varop'><|></span><span class='layout'>)</span> <span class='varop'>$</span>-<a name="line-49"></a> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>uncurry</span> <span class='varid'>dtdStart</span><span class='layout'>)</span> <span class='varop'>$</span>-<a name="line-50"></a> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='str'>"ELEMENT"</span><span class='layout'>,</span> <span class='conid'>ELEMENT</span> <span class='layout'>)</span>-<a name="line-51"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ATTLIST"</span><span class='layout'>,</span> <span class='conid'>ATTLIST</span> <span class='layout'>)</span>-<a name="line-52"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"ENTITY"</span><span class='layout'>,</span> <span class='conid'>ENTITY</span> <span class='layout'>)</span>-<a name="line-53"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"NOTATION"</span><span class='layout'>,</span> <span class='conid'>NOTATION</span><span class='layout'>)</span>-<a name="line-54"></a> <span class='keyglyph'>]</span>-<a name="line-55"></a> <span class='keyword'>where</span>-<a name="line-56"></a> <span class='varid'>dtdStart</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>DTDElem</span> <span class='keyglyph'>-></span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='layout'>(</span><span class='conid'>DTDElem</span><span class='layout'>,</span> <span class='conid'>Attributes</span><span class='layout'>)</span>-<a name="line-57"></a> <span class='varid'>dtdStart</span> <span class='varid'>dcl</span> <span class='varid'>element</span>-<a name="line-58"></a> <span class='keyglyph'>=</span> <span class='varid'>try</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-59"></a> <span class='varid'>string</span> <span class='str'>"<!"</span>-<a name="line-60"></a> <span class='varid'>string</span> <span class='varid'>dcl</span>-<a name="line-61"></a> <span class='varid'>pos</span> <span class='keyglyph'><-</span> <span class='varid'>getPosition</span>-<a name="line-62"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>element</span><span class='layout'>,</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>a_source</span><span class='layout'>,</span> <span class='varid'>sourceName</span> <span class='varid'>pos</span><span class='layout'>)</span>-<a name="line-63"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>a_line</span><span class='layout'>,</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>sourceLine</span> <span class='varid'>pos</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-64"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>a_column</span><span class='layout'>,</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>sourceColumn</span> <span class='varid'>pos</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-65"></a> <span class='keyglyph'>]</span>-<a name="line-66"></a> <span class='layout'>)</span>-<a name="line-67"></a> <span class='layout'>)</span>-<a name="line-68"></a>-<a name="line-69"></a><a name="dtdDeclEnd"></a><span class='definition'>dtdDeclEnd</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>()</span>-<a name="line-70"></a><span class='definition'>dtdDeclEnd</span>-<a name="line-71"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-72"></a> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>gt</span>-<a name="line-73"></a> <span class='varid'>return</span> <span class='conid'>()</span>-<a name="line-74"></a>-<a name="line-75"></a><a name="dtdToken"></a><span class='definition'>dtdToken</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTree</span>-<a name="line-76"></a><span class='definition'>dtdToken</span>-<a name="line-77"></a> <span class='keyglyph'>=</span> <span class='varid'>dtdChars</span>-<a name="line-78"></a> <span class='varop'><|></span>-<a name="line-79"></a> <span class='varid'>attrValue</span>-<a name="line-80"></a> <span class='varop'><|></span>-<a name="line-81"></a> <span class='varid'>try</span> <span class='varid'>peReference</span> <span class='comment'>-- first try parameter entity ref %xxx;</span>-<a name="line-82"></a> <span class='varop'><|></span>-<a name="line-83"></a> <span class='varid'>percent</span> <span class='comment'>-- else % may be indicator for parameter entity declaration</span>-<a name="line-84"></a> <span class='varop'><?></span> <span class='str'>"DTD token"</span>-<a name="line-85"></a>-<a name="line-86"></a><a name="peReference"></a><span class='definition'>peReference</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTree</span>-<a name="line-87"></a><span class='definition'>peReference</span>-<a name="line-88"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-89"></a> <span class='varid'>r</span> <span class='keyglyph'><-</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>peReference</span>-<a name="line-90"></a> <span class='varid'>return</span> <span class='varop'>$!</span> <span class='layout'>(</span><span class='varid'>mkDTDElem</span> <span class='conid'>PEREF</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a_peref</span><span class='layout'>,</span> <span class='varid'>r</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='conid'>[]</span><span class='layout'>)</span>-<a name="line-91"></a>-<a name="line-92"></a><a name="attrValue"></a><span class='definition'>attrValue</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTree</span>-<a name="line-93"></a><span class='definition'>attrValue</span>-<a name="line-94"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-95"></a> <span class='varid'>v</span> <span class='keyglyph'><-</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>attrValue</span>-<a name="line-96"></a> <span class='varid'>return</span> <span class='varop'>$!</span> <span class='varid'>mkText</span> <span class='varid'>v</span>-<a name="line-97"></a>-<a name="line-98"></a><a name="dtdChars"></a><span class='definition'>dtdChars</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTree</span>-<a name="line-99"></a><span class='definition'>dtdChars</span>-<a name="line-100"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-101"></a> <span class='varid'>v</span> <span class='keyglyph'><-</span> <span class='varid'>many1</span> <span class='layout'>(</span><span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>singleChar</span> <span class='str'>"%\"'<>[]"</span><span class='layout'>)</span> <span class='comment'>-- everything except string constants, < and >, [ and ] (for cond sections)</span>-<a name="line-102"></a> <span class='varid'>return</span> <span class='varop'>$!</span> <span class='varid'>mkText</span> <span class='varid'>v</span> <span class='comment'>-- all illegal chars will be detected later during declaration parsing</span>-<a name="line-103"></a>-<a name="line-104"></a><a name="percent"></a><span class='definition'>percent</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTree</span>-<a name="line-105"></a><span class='definition'>percent</span>-<a name="line-106"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-107"></a> <span class='varid'>c</span> <span class='keyglyph'><-</span> <span class='varid'>char</span> <span class='chr'>'%'</span>-<a name="line-108"></a> <span class='varid'>return</span> <span class='varop'>$!</span> <span class='varid'>mkText</span> <span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span>-<a name="line-109"></a>-<a name="line-110"></a><span class='comment'>-- ------------------------------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-Parser-XmlEntities.html
@@ -1,36 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- |</span>-<a name="line-2"></a><span class='comment'>-- Predefined XML Entity References</span>-<a name="line-3"></a><span class='comment'>--</span>-<a name="line-4"></a><span class='comment'>-- This module defines a table of all</span>-<a name="line-5"></a><span class='comment'>-- predefined XML entity references</span>-<a name="line-6"></a>-<a name="line-7"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Parser</span><span class='varop'>.</span><span class='conid'>XmlEntities</span>-<a name="line-8"></a> <span class='layout'>(</span> <span class='varid'>xmlEntities</span>-<a name="line-9"></a> <span class='layout'>)</span>-<a name="line-10"></a>-<a name="line-11"></a><span class='keyword'>where</span>-<a name="line-12"></a>-<a name="line-13"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-14"></a>-<a name="line-15"></a><span class='comment'>-- |</span>-<a name="line-16"></a><span class='comment'>-- list of predefined XML entity names and their unicode values</span>-<a name="line-17"></a>-<a name="line-18"></a><a name="xmlEntities"></a><span class='definition'>xmlEntities</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>Int</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-19"></a><span class='definition'>xmlEntities</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='str'>"quot"</span><span class='layout'>,</span> <span class='num'>34</span><span class='layout'>)</span>-<a name="line-20"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"amp"</span><span class='layout'>,</span> <span class='num'>38</span><span class='layout'>)</span>-<a name="line-21"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"lt"</span><span class='layout'>,</span> <span class='num'>60</span><span class='layout'>)</span>-<a name="line-22"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"gt"</span><span class='layout'>,</span> <span class='num'>62</span><span class='layout'>)</span>-<a name="line-23"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"apos"</span><span class='layout'>,</span> <span class='num'>39</span><span class='layout'>)</span>-<a name="line-24"></a> <span class='keyglyph'>]</span>-<a name="line-25"></a>-<a name="line-26"></a><span class='comment'>-- ------------------------------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-Parser-XmlParsec.html
@@ -1,704 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Text.XML.HXT.Parser.XmlParsec-<a name="line-5"></a> Copyright : Copyright (C) 2005 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe@fh-wedel.de)-<a name="line-9"></a> Stability : experimental-<a name="line-10"></a> Portability: portable-<a name="line-11"></a> Version : $Id: XmlParsec.hs,v 1.14 2005/09/02 17:09:39 hxml Exp $-<a name="line-12"></a>-<a name="line-13"></a> Xml Parsec parser with pure filter interface-<a name="line-14"></a>-<a name="line-15"></a>-}</span>-<a name="line-16"></a>-<a name="line-17"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-18"></a>-<a name="line-19"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Parser</span><span class='varop'>.</span><span class='conid'>XmlParsec</span>-<a name="line-20"></a> <span class='layout'>(</span> <span class='varid'>charData</span>-<a name="line-21"></a> <span class='layout'>,</span> <span class='varid'>charData'</span>-<a name="line-22"></a> <span class='layout'>,</span> <span class='varid'>comment</span>-<a name="line-23"></a> <span class='layout'>,</span> <span class='varid'>pI</span>-<a name="line-24"></a> <span class='layout'>,</span> <span class='varid'>cDSect</span>-<a name="line-25"></a> <span class='layout'>,</span> <span class='varid'>document</span>-<a name="line-26"></a> <span class='layout'>,</span> <span class='varid'>document'</span>-<a name="line-27"></a> <span class='layout'>,</span> <span class='varid'>prolog</span>-<a name="line-28"></a> <span class='layout'>,</span> <span class='varid'>xMLDecl</span>-<a name="line-29"></a> <span class='layout'>,</span> <span class='varid'>xMLDecl'</span>-<a name="line-30"></a> <span class='layout'>,</span> <span class='varid'>versionInfo</span>-<a name="line-31"></a> <span class='layout'>,</span> <span class='varid'>misc</span>-<a name="line-32"></a> <span class='layout'>,</span> <span class='varid'>doctypedecl</span>-<a name="line-33"></a> <span class='layout'>,</span> <span class='varid'>markupdecl</span>-<a name="line-34"></a> <span class='layout'>,</span> <span class='varid'>sDDecl</span>-<a name="line-35"></a> <span class='layout'>,</span> <span class='varid'>element</span>-<a name="line-36"></a> <span class='layout'>,</span> <span class='varid'>content</span>-<a name="line-37"></a> <span class='layout'>,</span> <span class='varid'>contentWithTextDecl</span>-<a name="line-38"></a> <span class='layout'>,</span> <span class='varid'>textDecl</span>-<a name="line-39"></a> <span class='layout'>,</span> <span class='varid'>encodingDecl</span>-<a name="line-40"></a> <span class='layout'>,</span> <span class='varid'>xread</span>-<a name="line-41"></a>-<a name="line-42"></a> <span class='layout'>,</span> <span class='varid'>parseXmlAttrValue</span>-<a name="line-43"></a> <span class='layout'>,</span> <span class='varid'>parseXmlContent</span>-<a name="line-44"></a> <span class='layout'>,</span> <span class='varid'>parseXmlDocEncodingSpec</span>-<a name="line-45"></a> <span class='layout'>,</span> <span class='varid'>parseXmlDocument</span>-<a name="line-46"></a> <span class='layout'>,</span> <span class='varid'>parseXmlDTDPart</span>-<a name="line-47"></a> <span class='layout'>,</span> <span class='varid'>parseXmlEncodingSpec</span>-<a name="line-48"></a> <span class='layout'>,</span> <span class='varid'>parseXmlEntityEncodingSpec</span>-<a name="line-49"></a> <span class='layout'>,</span> <span class='varid'>parseXmlGeneralEntityValue</span>-<a name="line-50"></a> <span class='layout'>,</span> <span class='varid'>parseXmlPart</span>-<a name="line-51"></a> <span class='layout'>,</span> <span class='varid'>parseXmlText</span>-<a name="line-52"></a>-<a name="line-53"></a> <span class='layout'>,</span> <span class='varid'>parseNMToken</span>-<a name="line-54"></a> <span class='layout'>,</span> <span class='varid'>parseName</span>-<a name="line-55"></a>-<a name="line-56"></a> <span class='layout'>,</span> <span class='varid'>removeEncodingSpec</span>-<a name="line-57"></a> <span class='layout'>)</span>-<a name="line-58"></a><span class='keyword'>where</span>-<a name="line-59"></a>-<a name="line-60"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>ParserCombinators</span><span class='varop'>.</span><span class='conid'>Parsec</span>-<a name="line-61"></a> <span class='layout'>(</span> <span class='conid'>GenParser</span>-<a name="line-62"></a> <span class='layout'>,</span> <span class='conid'>Parser</span>-<a name="line-63"></a> <span class='layout'>,</span> <span class='varid'>parse</span>-<a name="line-64"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varop'><?></span><span class='layout'>)</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varop'><|></span><span class='layout'>)</span>-<a name="line-65"></a> <span class='layout'>,</span> <span class='varid'>char</span>-<a name="line-66"></a> <span class='layout'>,</span> <span class='varid'>string</span>-<a name="line-67"></a> <span class='layout'>,</span> <span class='varid'>eof</span> -<a name="line-68"></a> <span class='layout'>,</span> <span class='varid'>between</span>-<a name="line-69"></a> <span class='layout'>,</span> <span class='varid'>many</span><span class='layout'>,</span> <span class='varid'>many1</span>-<a name="line-70"></a> <span class='layout'>,</span> <span class='varid'>option</span>-<a name="line-71"></a> <span class='layout'>,</span> <span class='varid'>try</span>-<a name="line-72"></a> <span class='layout'>,</span> <span class='varid'>unexpected</span>-<a name="line-73"></a> <span class='layout'>,</span> <span class='varid'>getPosition</span>-<a name="line-74"></a> <span class='layout'>,</span> <span class='varid'>getInput</span>-<a name="line-75"></a> <span class='layout'>,</span> <span class='varid'>sourceName</span>-<a name="line-76"></a> <span class='layout'>)</span>-<a name="line-77"></a>-<a name="line-78"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>ShowXml</span>-<a name="line-79"></a> <span class='layout'>(</span> <span class='varid'>xshow</span>-<a name="line-80"></a> <span class='layout'>)</span>-<a name="line-81"></a>-<a name="line-82"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>-<a name="line-83"></a>-<a name="line-84"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlNode</span>-<a name="line-85"></a> <span class='layout'>(</span> <span class='varid'>mkElement</span>-<a name="line-86"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span>-<a name="line-87"></a> <span class='layout'>,</span> <span class='varid'>mkRoot</span>-<a name="line-88"></a> <span class='layout'>,</span> <span class='varid'>mkDTDElem</span>-<a name="line-89"></a> <span class='layout'>,</span> <span class='varid'>mkText</span>-<a name="line-90"></a> <span class='layout'>,</span> <span class='varid'>mkCmt</span>-<a name="line-91"></a> <span class='layout'>,</span> <span class='varid'>mkCdata</span>-<a name="line-92"></a> <span class='layout'>,</span> <span class='varid'>mkError</span>-<a name="line-93"></a> <span class='layout'>,</span> <span class='varid'>mkPi</span>-<a name="line-94"></a> <span class='layout'>,</span> <span class='varid'>isText</span>-<a name="line-95"></a> <span class='layout'>,</span> <span class='varid'>isRoot</span>-<a name="line-96"></a> <span class='layout'>,</span> <span class='varid'>getText</span>-<a name="line-97"></a> <span class='layout'>,</span> <span class='varid'>getChildren</span>-<a name="line-98"></a> <span class='layout'>,</span> <span class='varid'>getAttrl</span>-<a name="line-99"></a> <span class='layout'>,</span> <span class='varid'>getAttrName</span>-<a name="line-100"></a> <span class='layout'>,</span> <span class='varid'>changeAttrl</span>-<a name="line-101"></a> <span class='layout'>,</span> <span class='varid'>mergeAttrl</span>-<a name="line-102"></a> <span class='layout'>)</span>-<a name="line-103"></a>-<a name="line-104"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Parser</span><span class='varop'>.</span><span class='conid'>XmlCharParser</span>-<a name="line-105"></a> <span class='layout'>(</span> <span class='varid'>xmlChar</span>-<a name="line-106"></a> <span class='layout'>)</span>-<a name="line-107"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Parser</span><span class='varop'>.</span><span class='conid'>XmlTokenParser</span> <span class='keyword'>as</span> <span class='conid'>XT</span>-<a name="line-108"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Parser</span><span class='varop'>.</span><span class='conid'>XmlDTDTokenParser</span> <span class='keyword'>as</span> <span class='conid'>XD</span>-<a name="line-109"></a>-<a name="line-110"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Char</span> <span class='layout'>(</span><span class='varid'>toLower</span><span class='layout'>)</span>-<a name="line-111"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>-<a name="line-112"></a>-<a name="line-113"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-114"></a><span class='comment'>--</span>-<a name="line-115"></a><span class='comment'>-- Character Data (2.4)</span>-<a name="line-116"></a>-<a name="line-117"></a><a name="charData"></a><span class='definition'>charData</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTrees</span>-<a name="line-118"></a><span class='definition'>charData</span>-<a name="line-119"></a> <span class='keyglyph'>=</span> <span class='varid'>many</span> <span class='layout'>(</span><span class='varid'>charData'</span> <span class='varop'><|></span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>referenceT</span><span class='layout'>)</span>-<a name="line-120"></a>-<a name="line-121"></a><a name="charData'"></a><span class='definition'>charData'</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTree</span>-<a name="line-122"></a><span class='definition'>charData'</span>-<a name="line-123"></a> <span class='keyglyph'>=</span> <span class='varid'>try</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-124"></a> <span class='varid'>t</span> <span class='keyglyph'><-</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>allBut1</span> <span class='varid'>many1</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>c</span> <span class='keyglyph'>-></span> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>c</span> <span class='varop'>`elem`</span> <span class='str'>"<&"</span><span class='layout'>)</span><span class='layout'>)</span> <span class='str'>"]]>"</span>-<a name="line-125"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>mkText</span> <span class='varop'>$!</span> <span class='varid'>t</span><span class='layout'>)</span>-<a name="line-126"></a> <span class='layout'>)</span>-<a name="line-127"></a>-<a name="line-128"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-129"></a><span class='comment'>--</span>-<a name="line-130"></a><span class='comment'>-- Comments (2.5)</span>-<a name="line-131"></a>-<a name="line-132"></a><a name="comment"></a><span class='definition'>comment</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTree</span>-<a name="line-133"></a>-<a name="line-134"></a><span class='definition'>comment</span>-<a name="line-135"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-136"></a> <span class='varid'>c</span> <span class='keyglyph'><-</span> <span class='varid'>between</span> <span class='layout'>(</span><span class='varid'>try</span> <span class='varop'>$</span> <span class='varid'>string</span> <span class='str'>"<!--"</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>string</span> <span class='str'>"-->"</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>allBut</span> <span class='varid'>many</span> <span class='str'>"--"</span><span class='layout'>)</span>-<a name="line-137"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>mkCmt</span> <span class='varop'>$!</span> <span class='varid'>c</span><span class='layout'>)</span>-<a name="line-138"></a> <span class='layout'>)</span> <span class='varop'><?></span> <span class='str'>"comment"</span>-<a name="line-139"></a>-<a name="line-140"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-141"></a><span class='comment'>--</span>-<a name="line-142"></a><span class='comment'>-- Processing Instructions</span>-<a name="line-143"></a>-<a name="line-144"></a><a name="pI"></a><span class='definition'>pI</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTree</span>-<a name="line-145"></a><span class='definition'>pI</span>-<a name="line-146"></a> <span class='keyglyph'>=</span> <span class='varid'>between</span> <span class='layout'>(</span><span class='varid'>try</span> <span class='varop'>$</span> <span class='varid'>string</span> <span class='str'>"<?"</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>string</span> <span class='str'>"?>"</span><span class='layout'>)</span>-<a name="line-147"></a> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-148"></a> <span class='varid'>n</span> <span class='keyglyph'><-</span> <span class='varid'>pITarget</span>-<a name="line-149"></a> <span class='varid'>p</span> <span class='keyglyph'><-</span> <span class='varid'>option</span> <span class='str'>""</span> <span class='layout'>(</span><span class='keyword'>do</span>-<a name="line-150"></a> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>sPace</span>-<a name="line-151"></a> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>allBut</span> <span class='varid'>many</span> <span class='str'>"?>"</span>-<a name="line-152"></a> <span class='layout'>)</span>-<a name="line-153"></a> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mkPi</span> <span class='layout'>(</span><span class='varid'>mkName</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='keyglyph'>[</span><span class='varid'>mkAttr</span> <span class='layout'>(</span><span class='varid'>mkName</span> <span class='varid'>a_value</span><span class='layout'>)</span> <span class='keyglyph'>[</span><span class='varid'>mkText</span> <span class='varid'>p</span><span class='keyglyph'>]</span><span class='keyglyph'>]</span>-<a name="line-154"></a> <span class='layout'>)</span> <span class='varop'><?></span> <span class='str'>"processing instruction"</span>-<a name="line-155"></a> <span class='keyword'>where</span>-<a name="line-156"></a> <span class='varid'>pITarget</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>String</span>-<a name="line-157"></a> <span class='varid'>pITarget</span> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-158"></a> <span class='varid'>n</span> <span class='keyglyph'><-</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>name</span>-<a name="line-159"></a> <span class='keyword'>if</span> <span class='varid'>map</span> <span class='varid'>toLower</span> <span class='varid'>n</span> <span class='varop'>==</span> <span class='varid'>t_xml</span>-<a name="line-160"></a> <span class='keyword'>then</span> <span class='varid'>unexpected</span> <span class='varid'>n</span>-<a name="line-161"></a> <span class='keyword'>else</span> <span class='varid'>return</span> <span class='varid'>n</span>-<a name="line-162"></a> <span class='layout'>)</span>-<a name="line-163"></a>-<a name="line-164"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-165"></a><span class='comment'>--</span>-<a name="line-166"></a><span class='comment'>-- CDATA Sections (2.7)</span>-<a name="line-167"></a>-<a name="line-168"></a><a name="cDSect"></a><span class='definition'>cDSect</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTree</span>-<a name="line-169"></a>-<a name="line-170"></a><span class='definition'>cDSect</span>-<a name="line-171"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-172"></a> <span class='varid'>t</span> <span class='keyglyph'><-</span> <span class='varid'>between</span> <span class='layout'>(</span> <span class='varid'>try</span> <span class='varop'>$</span> <span class='varid'>string</span> <span class='str'>"<![CDATA["</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>string</span> <span class='str'>"]]>"</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>allBut</span> <span class='varid'>many</span> <span class='str'>"]]>"</span><span class='layout'>)</span>-<a name="line-173"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>mkCdata</span> <span class='varop'>$!</span> <span class='varid'>t</span><span class='layout'>)</span>-<a name="line-174"></a> <span class='varop'><?></span> <span class='str'>"CDATA section"</span>-<a name="line-175"></a>-<a name="line-176"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-177"></a><span class='comment'>--</span>-<a name="line-178"></a><span class='comment'>-- Document (2.1) and Prolog (2.8)</span>-<a name="line-179"></a>-<a name="line-180"></a><a name="document"></a><span class='definition'>document</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTree</span>-<a name="line-181"></a><span class='definition'>document</span>-<a name="line-182"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-183"></a> <span class='varid'>pos</span> <span class='keyglyph'><-</span> <span class='varid'>getPosition</span>-<a name="line-184"></a> <span class='varid'>dl</span> <span class='keyglyph'><-</span> <span class='varid'>document'</span>-<a name="line-185"></a> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mkRoot</span> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='layout'>(</span><span class='varid'>mkName</span> <span class='varid'>a_source</span><span class='layout'>)</span> <span class='keyglyph'>[</span><span class='varid'>mkText</span> <span class='layout'>(</span><span class='varid'>sourceName</span> <span class='varid'>pos</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-186"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='layout'>(</span><span class='varid'>mkName</span> <span class='varid'>a_status</span><span class='layout'>)</span> <span class='keyglyph'>[</span><span class='varid'>mkText</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>c_ok</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-187"></a> <span class='keyglyph'>]</span> <span class='varid'>dl</span>-<a name="line-188"></a>-<a name="line-189"></a><a name="document'"></a><span class='definition'>document'</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTrees</span>-<a name="line-190"></a><span class='definition'>document'</span>-<a name="line-191"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-192"></a> <span class='varid'>pl</span> <span class='keyglyph'><-</span> <span class='varid'>prolog</span>-<a name="line-193"></a> <span class='varid'>el</span> <span class='keyglyph'><-</span> <span class='varid'>element</span>-<a name="line-194"></a> <span class='varid'>ml</span> <span class='keyglyph'><-</span> <span class='varid'>many</span> <span class='varid'>misc</span>-<a name="line-195"></a> <span class='varid'>eof</span>-<a name="line-196"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>pl</span> <span class='varop'>++</span> <span class='keyglyph'>[</span><span class='varid'>el</span><span class='keyglyph'>]</span> <span class='varop'>++</span> <span class='varid'>ml</span><span class='layout'>)</span>-<a name="line-197"></a>-<a name="line-198"></a><a name="prolog"></a><span class='definition'>prolog</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTrees</span>-<a name="line-199"></a><span class='definition'>prolog</span>-<a name="line-200"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-201"></a> <span class='varid'>xml</span> <span class='keyglyph'><-</span> <span class='varid'>option</span> <span class='conid'>[]</span> <span class='varid'>xMLDecl'</span>-<a name="line-202"></a> <span class='varid'>misc1</span> <span class='keyglyph'><-</span> <span class='varid'>many</span> <span class='varid'>misc</span>-<a name="line-203"></a> <span class='varid'>dtdPart</span> <span class='keyglyph'><-</span> <span class='varid'>option</span> <span class='conid'>[]</span> <span class='varid'>doctypedecl</span>-<a name="line-204"></a> <span class='varid'>misc2</span> <span class='keyglyph'><-</span> <span class='varid'>many</span> <span class='varid'>misc</span>-<a name="line-205"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>xml</span> <span class='varop'>++</span> <span class='varid'>misc1</span> <span class='varop'>++</span> <span class='varid'>dtdPart</span> <span class='varop'>++</span> <span class='varid'>misc2</span><span class='layout'>)</span>-<a name="line-206"></a>-<a name="line-207"></a><a name="xMLDecl"></a><span class='definition'>xMLDecl</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTrees</span>-<a name="line-208"></a><span class='definition'>xMLDecl</span>-<a name="line-209"></a> <span class='keyglyph'>=</span> <span class='varid'>between</span> <span class='layout'>(</span><span class='varid'>try</span> <span class='varop'>$</span> <span class='varid'>string</span> <span class='str'>"<?xml"</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>string</span> <span class='str'>"?>"</span><span class='layout'>)</span>-<a name="line-210"></a> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-211"></a> <span class='varid'>vi</span> <span class='keyglyph'><-</span> <span class='varid'>versionInfo</span>-<a name="line-212"></a> <span class='varid'>ed</span> <span class='keyglyph'><-</span> <span class='varid'>option</span> <span class='conid'>[]</span> <span class='varid'>encodingDecl</span>-<a name="line-213"></a> <span class='varid'>sd</span> <span class='keyglyph'><-</span> <span class='varid'>option</span> <span class='conid'>[]</span> <span class='varid'>sDDecl</span>-<a name="line-214"></a> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>skipS0</span>-<a name="line-215"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>vi</span> <span class='varop'>++</span> <span class='varid'>ed</span> <span class='varop'>++</span> <span class='varid'>sd</span><span class='layout'>)</span>-<a name="line-216"></a> <span class='layout'>)</span>-<a name="line-217"></a> <span class='varop'><?></span> <span class='str'>"xml declaration"</span>-<a name="line-218"></a>-<a name="line-219"></a><a name="xMLDecl'"></a><span class='definition'>xMLDecl'</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTrees</span>-<a name="line-220"></a><span class='definition'>xMLDecl'</span>-<a name="line-221"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-222"></a> <span class='varid'>al</span> <span class='keyglyph'><-</span> <span class='varid'>xMLDecl</span>-<a name="line-223"></a> <span class='varid'>return</span> <span class='keyglyph'>[</span><span class='varid'>mkPi</span> <span class='layout'>(</span><span class='varid'>mkName</span> <span class='varid'>t_xml</span><span class='layout'>)</span> <span class='varid'>al</span><span class='keyglyph'>]</span>-<a name="line-224"></a>-<a name="line-225"></a><a name="xMLDecl''"></a><span class='definition'>xMLDecl''</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTree</span>-<a name="line-226"></a><span class='definition'>xMLDecl''</span>-<a name="line-227"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-228"></a> <span class='varid'>al</span> <span class='keyglyph'><-</span> <span class='varid'>option</span> <span class='conid'>[]</span> <span class='layout'>(</span><span class='varid'>try</span> <span class='varid'>xMLDecl</span><span class='layout'>)</span>-<a name="line-229"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>mkRoot</span> <span class='varid'>al</span> <span class='conid'>[]</span><span class='layout'>)</span>-<a name="line-230"></a>-<a name="line-231"></a><a name="versionInfo"></a><span class='definition'>versionInfo</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTrees</span>-<a name="line-232"></a><span class='definition'>versionInfo</span>-<a name="line-233"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-234"></a> <span class='varid'>try</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-235"></a> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>skipS</span>-<a name="line-236"></a> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>keyword</span> <span class='varid'>a_version</span>-<a name="line-237"></a> <span class='layout'>)</span>-<a name="line-238"></a> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>eq</span>-<a name="line-239"></a> <span class='varid'>vi</span> <span class='keyglyph'><-</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>quoted</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>versionNum</span>-<a name="line-240"></a> <span class='varid'>return</span> <span class='keyglyph'>[</span><span class='varid'>mkAttr</span> <span class='layout'>(</span><span class='varid'>mkName</span> <span class='varid'>a_version</span><span class='layout'>)</span> <span class='keyglyph'>[</span><span class='varid'>mkText</span> <span class='varid'>vi</span><span class='keyglyph'>]</span><span class='keyglyph'>]</span>-<a name="line-241"></a> <span class='layout'>)</span>-<a name="line-242"></a> <span class='varop'><?></span> <span class='str'>"version info (with quoted version number)"</span>-<a name="line-243"></a>-<a name="line-244"></a><a name="misc"></a><span class='definition'>misc</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTree</span>-<a name="line-245"></a><span class='definition'>misc</span>-<a name="line-246"></a> <span class='keyglyph'>=</span> <span class='varid'>comment</span>-<a name="line-247"></a> <span class='varop'><|></span>-<a name="line-248"></a> <span class='varid'>pI</span>-<a name="line-249"></a> <span class='varop'><|></span>-<a name="line-250"></a> <span class='layout'>(</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-251"></a> <span class='varid'>ws</span> <span class='keyglyph'><-</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>sPace</span>-<a name="line-252"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>mkText</span> <span class='varid'>ws</span><span class='layout'>)</span>-<a name="line-253"></a> <span class='layout'>)</span> <span class='varop'><?></span> <span class='str'>""</span>-<a name="line-254"></a> <span class='layout'>)</span>-<a name="line-255"></a>-<a name="line-256"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-257"></a><span class='comment'>--</span>-<a name="line-258"></a><span class='comment'>-- Document Type definition (2.8)</span>-<a name="line-259"></a>-<a name="line-260"></a><a name="doctypedecl"></a><span class='definition'>doctypedecl</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTrees</span>-<a name="line-261"></a><span class='definition'>doctypedecl</span>-<a name="line-262"></a> <span class='keyglyph'>=</span> <span class='varid'>between</span> <span class='layout'>(</span><span class='varid'>try</span> <span class='varop'>$</span> <span class='varid'>string</span> <span class='str'>"<!DOCTYPE"</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>char</span> <span class='chr'>'>'</span><span class='layout'>)</span>-<a name="line-263"></a> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-264"></a> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>skipS</span>-<a name="line-265"></a> <span class='varid'>n</span> <span class='keyglyph'><-</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>name</span>-<a name="line-266"></a> <span class='varid'>exId</span> <span class='keyglyph'><-</span> <span class='varid'>option</span> <span class='conid'>[]</span> <span class='layout'>(</span> <span class='varid'>try</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-267"></a> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>skipS</span>-<a name="line-268"></a> <span class='varid'>externalID</span>-<a name="line-269"></a> <span class='layout'>)</span>-<a name="line-270"></a> <span class='layout'>)</span>-<a name="line-271"></a> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>skipS0</span>-<a name="line-272"></a> <span class='varid'>markup</span> <span class='keyglyph'><-</span> <span class='varid'>option</span> <span class='conid'>[]</span>-<a name="line-273"></a> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-274"></a> <span class='varid'>m</span> <span class='keyglyph'><-</span> <span class='varid'>between</span> <span class='layout'>(</span><span class='varid'>char</span> <span class='chr'>'['</span> <span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>char</span> <span class='chr'>']'</span><span class='layout'>)</span> <span class='varid'>markupOrDeclSep</span>-<a name="line-275"></a> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>skipS0</span>-<a name="line-276"></a> <span class='varid'>return</span> <span class='varid'>m</span>-<a name="line-277"></a> <span class='layout'>)</span>-<a name="line-278"></a> <span class='varid'>return</span> <span class='keyglyph'>[</span><span class='varid'>mkDTDElem</span> <span class='conid'>DOCTYPE</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>a_name</span><span class='layout'>,</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>exId</span><span class='layout'>)</span> <span class='varid'>markup</span><span class='keyglyph'>]</span>-<a name="line-279"></a> <span class='layout'>)</span>-<a name="line-280"></a>-<a name="line-281"></a><a name="markupOrDeclSep"></a><span class='definition'>markupOrDeclSep</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTrees</span>-<a name="line-282"></a><span class='definition'>markupOrDeclSep</span>-<a name="line-283"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-284"></a> <span class='varid'>ll</span> <span class='keyglyph'><-</span> <span class='varid'>many</span> <span class='layout'>(</span> <span class='varid'>markupdecl</span>-<a name="line-285"></a> <span class='varop'><|></span>-<a name="line-286"></a> <span class='varid'>declSep</span>-<a name="line-287"></a> <span class='varop'><|></span>-<a name="line-288"></a> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>mkList</span> <span class='varid'>conditionalSect</span>-<a name="line-289"></a> <span class='layout'>)</span>-<a name="line-290"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>concat</span> <span class='varid'>ll</span><span class='layout'>)</span>-<a name="line-291"></a> <span class='layout'>)</span>-<a name="line-292"></a>-<a name="line-293"></a><a name="declSep"></a><span class='definition'>declSep</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTrees</span>-<a name="line-294"></a><span class='definition'>declSep</span>-<a name="line-295"></a> <span class='keyglyph'>=</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>mkList</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>peReferenceT</span>-<a name="line-296"></a> <span class='varop'><|></span>-<a name="line-297"></a> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-298"></a> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>skipS</span>-<a name="line-299"></a> <span class='varid'>return</span> <span class='conid'>[]</span>-<a name="line-300"></a> <span class='layout'>)</span>-<a name="line-301"></a>-<a name="line-302"></a><a name="markupdecl"></a><span class='definition'>markupdecl</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTrees</span>-<a name="line-303"></a><span class='definition'>markupdecl</span>-<a name="line-304"></a> <span class='keyglyph'>=</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>mkList</span>-<a name="line-305"></a> <span class='layout'>(</span> <span class='varid'>pI</span>-<a name="line-306"></a> <span class='varop'><|></span>-<a name="line-307"></a> <span class='varid'>comment</span>-<a name="line-308"></a> <span class='varop'><|></span>-<a name="line-309"></a> <span class='conid'>XD</span><span class='varop'>.</span><span class='varid'>dtdDeclTokenizer</span>-<a name="line-310"></a> <span class='layout'>)</span>-<a name="line-311"></a>-<a name="line-312"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-313"></a><span class='comment'>--</span>-<a name="line-314"></a><span class='comment'>-- Standalone Document Declaration (2.9)</span>-<a name="line-315"></a>-<a name="line-316"></a><a name="sDDecl"></a><span class='definition'>sDDecl</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTrees</span>-<a name="line-317"></a><span class='definition'>sDDecl</span>-<a name="line-318"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-319"></a> <span class='varid'>try</span> <span class='layout'>(</span><span class='keyword'>do</span>-<a name="line-320"></a> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>skipS</span>-<a name="line-321"></a> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>keyword</span> <span class='varid'>a_standalone</span>-<a name="line-322"></a> <span class='layout'>)</span>-<a name="line-323"></a> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>eq</span>-<a name="line-324"></a> <span class='varid'>sd</span> <span class='keyglyph'><-</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>quoted</span> <span class='layout'>(</span><span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>keywords</span> <span class='keyglyph'>[</span><span class='varid'>v_yes</span><span class='layout'>,</span> <span class='varid'>v_no</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-325"></a> <span class='varid'>return</span> <span class='keyglyph'>[</span><span class='varid'>mkAttr</span> <span class='layout'>(</span><span class='varid'>mkName</span> <span class='varid'>a_standalone</span><span class='layout'>)</span> <span class='keyglyph'>[</span><span class='varid'>mkText</span> <span class='varid'>sd</span><span class='keyglyph'>]</span><span class='keyglyph'>]</span>-<a name="line-326"></a>-<a name="line-327"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-328"></a><span class='comment'>--</span>-<a name="line-329"></a><span class='comment'>-- element, tags and content (3, 3.1)</span>-<a name="line-330"></a>-<a name="line-331"></a><a name="element"></a><span class='definition'>element</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTree</span>-<a name="line-332"></a><span class='definition'>element</span>-<a name="line-333"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-334"></a> <span class='varid'>e</span> <span class='keyglyph'><-</span> <span class='varid'>elementStart</span>-<a name="line-335"></a> <span class='varid'>elementRest</span> <span class='varid'>e</span>-<a name="line-336"></a> <span class='layout'>)</span> <span class='varop'><?></span> <span class='str'>"element"</span>-<a name="line-337"></a>-<a name="line-338"></a><a name="elementStart"></a><span class='definition'>elementStart</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>XmlTrees</span><span class='layout'>)</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-339"></a><span class='definition'>elementStart</span>-<a name="line-340"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-341"></a> <span class='varid'>n</span> <span class='keyglyph'><-</span> <span class='layout'>(</span> <span class='varid'>try</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-342"></a> <span class='varid'>char</span> <span class='chr'>'<'</span>-<a name="line-343"></a> <span class='varid'>n</span> <span class='keyglyph'><-</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>name</span>-<a name="line-344"></a> <span class='varid'>return</span> <span class='varid'>n</span>-<a name="line-345"></a> <span class='layout'>)</span>-<a name="line-346"></a> <span class='varop'><?></span> <span class='str'>"start tag"</span>-<a name="line-347"></a> <span class='layout'>)</span>-<a name="line-348"></a> <span class='varid'>ass</span> <span class='keyglyph'><-</span> <span class='varid'>attrList</span>-<a name="line-349"></a> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>skipS0</span>-<a name="line-350"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>n</span><span class='layout'>,</span> <span class='varid'>ass</span><span class='layout'>)</span>-<a name="line-351"></a> <span class='keyword'>where</span>-<a name="line-352"></a> <span class='varid'>attrList</span>-<a name="line-353"></a> <span class='keyglyph'>=</span> <span class='varid'>option</span> <span class='conid'>[]</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-354"></a> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>skipS</span>-<a name="line-355"></a> <span class='varid'>attrList'</span>-<a name="line-356"></a> <span class='layout'>)</span>-<a name="line-357"></a> <span class='varid'>attrList'</span>-<a name="line-358"></a> <span class='keyglyph'>=</span> <span class='varid'>option</span> <span class='conid'>[]</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-359"></a> <span class='varid'>a1</span> <span class='keyglyph'><-</span> <span class='varid'>attribute</span>-<a name="line-360"></a> <span class='varid'>al</span> <span class='keyglyph'><-</span> <span class='varid'>attrList</span>-<a name="line-361"></a> <span class='keyword'>let</span> <span class='layout'>(</span><span class='varid'>n</span><span class='layout'>,</span> <span class='sel'>_v</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>a1</span>-<a name="line-362"></a> <span class='keyword'>if</span> <span class='varid'>isJust</span> <span class='varop'>.</span> <span class='varid'>lookup</span> <span class='varid'>n</span> <span class='varop'>$</span> <span class='varid'>al</span>-<a name="line-363"></a> <span class='keyword'>then</span> <span class='varid'>unexpected</span> <span class='layout'>(</span><span class='str'>"attribute name "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span> <span class='varop'>++</span> <span class='str'>" occurs twice in attribute list"</span><span class='layout'>)</span>-<a name="line-364"></a> <span class='keyword'>else</span> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>a1</span> <span class='conop'>:</span> <span class='varid'>al</span><span class='layout'>)</span>-<a name="line-365"></a> <span class='layout'>)</span>-<a name="line-366"></a>-<a name="line-367"></a><a name="elementRest"></a><span class='definition'>elementRest</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>XmlTrees</span><span class='layout'>)</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTree</span>-<a name="line-368"></a><span class='definition'>elementRest</span> <span class='layout'>(</span><span class='varid'>n</span><span class='layout'>,</span> <span class='varid'>al</span><span class='layout'>)</span>-<a name="line-369"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-370"></a> <span class='varid'>try</span> <span class='varop'>$</span> <span class='varid'>string</span> <span class='str'>"/>"</span>-<a name="line-371"></a> <span class='varid'>return</span> <span class='varop'>$!</span> <span class='layout'>(</span><span class='varid'>mkElement</span> <span class='layout'>(</span><span class='varid'>mkName</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>mkA</span> <span class='varop'>$!</span><span class='layout'>)</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='conid'>[]</span><span class='layout'>)</span>-<a name="line-372"></a> <span class='layout'>)</span>-<a name="line-373"></a> <span class='varop'><|></span>-<a name="line-374"></a> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-375"></a> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>gt</span>-<a name="line-376"></a> <span class='varid'>c</span> <span class='keyglyph'><-</span> <span class='varid'>content</span>-<a name="line-377"></a> <span class='varid'>eTag</span> <span class='varid'>n</span>-<a name="line-378"></a> <span class='varid'>return</span> <span class='varop'>$!</span> <span class='layout'>(</span><span class='varid'>mkElement</span> <span class='layout'>(</span><span class='varid'>mkName</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>mkA</span> <span class='varop'>$!</span><span class='layout'>)</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varop'>$!</span> <span class='varid'>c</span><span class='layout'>)</span>-<a name="line-379"></a> <span class='layout'>)</span>-<a name="line-380"></a> <span class='varop'><?></span> <span class='str'>"proper attribute list followed by \"/>\" or \">\""</span>-<a name="line-381"></a> <span class='keyword'>where</span>-<a name="line-382"></a> <span class='varid'>mkA</span> <span class='layout'>(</span><span class='varid'>n'</span><span class='layout'>,</span> <span class='varid'>ts'</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>mkAttr</span> <span class='layout'>(</span><span class='varid'>mkName</span> <span class='varid'>n'</span><span class='layout'>)</span> <span class='varid'>ts'</span>-<a name="line-383"></a>-<a name="line-384"></a><a name="eTag"></a><span class='definition'>eTag</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>()</span>-<a name="line-385"></a><span class='definition'>eTag</span> <span class='varid'>n'</span>-<a name="line-386"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-387"></a> <span class='varid'>try</span> <span class='layout'>(</span> <span class='varid'>string</span> <span class='str'>"</"</span> <span class='layout'>)</span> <span class='varop'><?></span> <span class='str'>""</span>-<a name="line-388"></a> <span class='varid'>n</span> <span class='keyglyph'><-</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>name</span>-<a name="line-389"></a> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>skipS0</span>-<a name="line-390"></a> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>gt</span>-<a name="line-391"></a> <span class='keyword'>if</span> <span class='varid'>n</span> <span class='varop'>==</span> <span class='varid'>n'</span>-<a name="line-392"></a> <span class='keyword'>then</span> <span class='varid'>return</span> <span class='conid'>()</span>-<a name="line-393"></a> <span class='keyword'>else</span> <span class='varid'>unexpected</span> <span class='layout'>(</span><span class='str'>"illegal end tag </"</span> <span class='varop'>++</span> <span class='varid'>n</span> <span class='varop'>++</span> <span class='str'>"> found, </"</span> <span class='varop'>++</span> <span class='varid'>n'</span> <span class='varop'>++</span> <span class='str'>"> expected"</span><span class='layout'>)</span>-<a name="line-394"></a>-<a name="line-395"></a><a name="attribute"></a><span class='definition'>attribute</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>XmlTrees</span><span class='layout'>)</span>-<a name="line-396"></a><span class='definition'>attribute</span>-<a name="line-397"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-398"></a> <span class='varid'>n</span> <span class='keyglyph'><-</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>name</span>-<a name="line-399"></a> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>eq</span>-<a name="line-400"></a> <span class='varid'>v</span> <span class='keyglyph'><-</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>attrValueT</span>-<a name="line-401"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>n</span><span class='layout'>,</span> <span class='varid'>v</span><span class='layout'>)</span>-<a name="line-402"></a>-<a name="line-403"></a><a name="content"></a><span class='definition'>content</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTrees</span>-<a name="line-404"></a><span class='definition'>content</span>-<a name="line-405"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-406"></a> <span class='varid'>c1</span> <span class='keyglyph'><-</span> <span class='varid'>charData</span>-<a name="line-407"></a> <span class='varid'>cl</span> <span class='keyglyph'><-</span> <span class='varid'>many</span>-<a name="line-408"></a> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-409"></a> <span class='varid'>l</span> <span class='keyglyph'><-</span> <span class='layout'>(</span> <span class='varid'>element</span>-<a name="line-410"></a> <span class='varop'><|></span>-<a name="line-411"></a> <span class='varid'>cDSect</span>-<a name="line-412"></a> <span class='varop'><|></span>-<a name="line-413"></a> <span class='varid'>pI</span>-<a name="line-414"></a> <span class='varop'><|></span>-<a name="line-415"></a> <span class='varid'>comment</span>-<a name="line-416"></a> <span class='layout'>)</span>-<a name="line-417"></a> <span class='varid'>c</span> <span class='keyglyph'><-</span> <span class='varid'>charData</span>-<a name="line-418"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>l</span> <span class='conop'>:</span> <span class='varid'>c</span><span class='layout'>)</span>-<a name="line-419"></a> <span class='layout'>)</span>-<a name="line-420"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>c1</span> <span class='varop'>++</span> <span class='varid'>concat</span> <span class='varid'>cl</span><span class='layout'>)</span>-<a name="line-421"></a>-<a name="line-422"></a><a name="contentWithTextDecl"></a><span class='definition'>contentWithTextDecl</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTrees</span>-<a name="line-423"></a><span class='definition'>contentWithTextDecl</span>-<a name="line-424"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-425"></a> <span class='varid'>option</span> <span class='conid'>[]</span> <span class='varid'>textDecl</span>-<a name="line-426"></a> <span class='varid'>content</span>-<a name="line-427"></a>-<a name="line-428"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-429"></a><span class='comment'>--</span>-<a name="line-430"></a><span class='comment'>-- Conditional Sections (3.4)</span>-<a name="line-431"></a><span class='comment'>--</span>-<a name="line-432"></a><span class='comment'>-- conditional sections are parsed in two steps,</span>-<a name="line-433"></a><span class='comment'>-- first the whole content is detected,</span>-<a name="line-434"></a><span class='comment'>-- and then, after PE substitution include sections are parsed again</span>-<a name="line-435"></a>-<a name="line-436"></a><a name="conditionalSect"></a><span class='definition'>conditionalSect</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTree</span>-<a name="line-437"></a><span class='definition'>conditionalSect</span>-<a name="line-438"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-439"></a> <span class='varid'>try</span> <span class='varop'>$</span> <span class='varid'>string</span> <span class='str'>"<!["</span>-<a name="line-440"></a> <span class='varid'>cs</span> <span class='keyglyph'><-</span> <span class='varid'>many</span> <span class='conid'>XD</span><span class='varop'>.</span><span class='varid'>dtdToken</span>-<a name="line-441"></a> <span class='varid'>char</span> <span class='chr'>'['</span>-<a name="line-442"></a> <span class='varid'>sect</span> <span class='keyglyph'><-</span> <span class='varid'>condSectCont</span>-<a name="line-443"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>mkDTDElem</span> <span class='conid'>CONDSECT</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a_value</span><span class='layout'>,</span> <span class='varid'>sect</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='varid'>cs</span><span class='layout'>)</span>-<a name="line-444"></a> <span class='keyword'>where</span>-<a name="line-445"></a>-<a name="line-446"></a> <span class='varid'>condSectCont</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>String</span>-<a name="line-447"></a> <span class='varid'>condSectCont</span>-<a name="line-448"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-449"></a> <span class='varid'>try</span> <span class='varop'>$</span> <span class='varid'>string</span> <span class='str'>"]]>"</span>-<a name="line-450"></a> <span class='varid'>return</span> <span class='str'>""</span>-<a name="line-451"></a> <span class='layout'>)</span>-<a name="line-452"></a> <span class='varop'><|></span>-<a name="line-453"></a> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-454"></a> <span class='varid'>try</span> <span class='varop'>$</span> <span class='varid'>string</span> <span class='str'>"<!["</span>-<a name="line-455"></a> <span class='varid'>cs1</span> <span class='keyglyph'><-</span> <span class='varid'>condSectCont</span>-<a name="line-456"></a> <span class='varid'>cs2</span> <span class='keyglyph'><-</span> <span class='varid'>condSectCont</span>-<a name="line-457"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='str'>"<!["</span> <span class='varop'>++</span> <span class='varid'>cs1</span> <span class='varop'>++</span> <span class='str'>"]]>"</span> <span class='varop'>++</span> <span class='varid'>cs2</span><span class='layout'>)</span>-<a name="line-458"></a> <span class='layout'>)</span>-<a name="line-459"></a> <span class='varop'><|></span>-<a name="line-460"></a> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-461"></a> <span class='varid'>c</span> <span class='keyglyph'><-</span> <span class='varid'>xmlChar</span>-<a name="line-462"></a> <span class='varid'>cs</span> <span class='keyglyph'><-</span> <span class='varid'>condSectCont</span>-<a name="line-463"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>c</span> <span class='conop'>:</span> <span class='varid'>cs</span><span class='layout'>)</span>-<a name="line-464"></a> <span class='layout'>)</span>-<a name="line-465"></a>-<a name="line-466"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-467"></a><span class='comment'>--</span>-<a name="line-468"></a><span class='comment'>-- External Entities (4.2.2)</span>-<a name="line-469"></a>-<a name="line-470"></a><a name="externalID"></a><span class='definition'>externalID</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>Attributes</span>-<a name="line-471"></a><span class='definition'>externalID</span>-<a name="line-472"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-473"></a> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>keyword</span> <span class='varid'>k_system</span>-<a name="line-474"></a> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>skipS</span>-<a name="line-475"></a> <span class='varid'>lit</span> <span class='keyglyph'><-</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>systemLiteral</span>-<a name="line-476"></a> <span class='varid'>return</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>k_system</span><span class='layout'>,</span> <span class='varid'>lit</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-477"></a> <span class='layout'>)</span>-<a name="line-478"></a> <span class='varop'><|></span>-<a name="line-479"></a> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-480"></a> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>keyword</span> <span class='varid'>k_public</span>-<a name="line-481"></a> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>skipS</span>-<a name="line-482"></a> <span class='varid'>pl</span> <span class='keyglyph'><-</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>pubidLiteral</span>-<a name="line-483"></a> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>skipS</span>-<a name="line-484"></a> <span class='varid'>sl</span> <span class='keyglyph'><-</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>systemLiteral</span>-<a name="line-485"></a> <span class='varid'>return</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>k_system</span><span class='layout'>,</span> <span class='varid'>sl</span><span class='layout'>)</span>-<a name="line-486"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>k_public</span><span class='layout'>,</span> <span class='varid'>pl</span><span class='layout'>)</span> <span class='keyglyph'>]</span>-<a name="line-487"></a> <span class='layout'>)</span>-<a name="line-488"></a> <span class='varop'><?></span> <span class='str'>"SYSTEM or PUBLIC declaration"</span>-<a name="line-489"></a>-<a name="line-490"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-491"></a><span class='comment'>--</span>-<a name="line-492"></a><span class='comment'>-- Text Declaration (4.3.1)</span>-<a name="line-493"></a>-<a name="line-494"></a><a name="textDecl"></a><span class='definition'>textDecl</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTrees</span>-<a name="line-495"></a><span class='definition'>textDecl</span>-<a name="line-496"></a> <span class='keyglyph'>=</span> <span class='varid'>between</span> <span class='layout'>(</span><span class='varid'>try</span> <span class='varop'>$</span> <span class='varid'>string</span> <span class='str'>"<?xml"</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>string</span> <span class='str'>"?>"</span><span class='layout'>)</span>-<a name="line-497"></a> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-498"></a> <span class='varid'>vi</span> <span class='keyglyph'><-</span> <span class='varid'>option</span> <span class='conid'>[]</span> <span class='varid'>versionInfo</span>-<a name="line-499"></a> <span class='varid'>ed</span> <span class='keyglyph'><-</span> <span class='varid'>encodingDecl</span>-<a name="line-500"></a> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>skipS0</span>-<a name="line-501"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>vi</span> <span class='varop'>++</span> <span class='varid'>ed</span><span class='layout'>)</span>-<a name="line-502"></a> <span class='layout'>)</span>-<a name="line-503"></a> <span class='varop'><?></span> <span class='str'>"text declaration"</span>-<a name="line-504"></a>-<a name="line-505"></a>-<a name="line-506"></a><a name="textDecl''"></a><span class='definition'>textDecl''</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTree</span>-<a name="line-507"></a><span class='definition'>textDecl''</span>-<a name="line-508"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-509"></a> <span class='varid'>al</span> <span class='keyglyph'><-</span> <span class='varid'>option</span> <span class='conid'>[]</span> <span class='layout'>(</span><span class='varid'>try</span> <span class='varid'>textDecl</span><span class='layout'>)</span>-<a name="line-510"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>mkRoot</span> <span class='varid'>al</span> <span class='conid'>[]</span><span class='layout'>)</span>-<a name="line-511"></a>-<a name="line-512"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-513"></a><span class='comment'>--</span>-<a name="line-514"></a><span class='comment'>-- Encoding Declaration (4.3.3)</span>-<a name="line-515"></a>-<a name="line-516"></a><a name="encodingDecl"></a><span class='definition'>encodingDecl</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTrees</span>-<a name="line-517"></a><span class='definition'>encodingDecl</span>-<a name="line-518"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-519"></a> <span class='varid'>try</span> <span class='layout'>(</span><span class='keyword'>do</span>-<a name="line-520"></a> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>skipS</span>-<a name="line-521"></a> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>keyword</span> <span class='varid'>a_encoding</span>-<a name="line-522"></a> <span class='layout'>)</span>-<a name="line-523"></a> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>eq</span>-<a name="line-524"></a> <span class='varid'>ed</span> <span class='keyglyph'><-</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>quoted</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>encName</span>-<a name="line-525"></a> <span class='varid'>return</span> <span class='keyglyph'>[</span><span class='varid'>mkAttr</span> <span class='layout'>(</span><span class='varid'>mkName</span> <span class='varid'>a_encoding</span><span class='layout'>)</span> <span class='keyglyph'>[</span><span class='varid'>mkText</span> <span class='varid'>ed</span><span class='keyglyph'>]</span><span class='keyglyph'>]</span>-<a name="line-526"></a>-<a name="line-527"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-528"></a><span class='comment'>--</span>-<a name="line-529"></a><span class='comment'>-- the main entry points:</span>-<a name="line-530"></a><span class='comment'>-- parsing the content of a text node</span>-<a name="line-531"></a><span class='comment'>-- or parsing the text children from a tag node</span>-<a name="line-532"></a>-<a name="line-533"></a><span class='comment'>-- |</span>-<a name="line-534"></a><span class='comment'>-- the inverse function to 'xshow', (for XML content).</span>-<a name="line-535"></a><span class='comment'>--</span>-<a name="line-536"></a><span class='comment'>-- the string parameter is parsed with the XML content parser.</span>-<a name="line-537"></a><span class='comment'>-- result is the list of trees or in case of an error a single element list with the</span>-<a name="line-538"></a><span class='comment'>-- error message as node. No entity or character subtitution is done.</span>-<a name="line-539"></a><span class='comment'>--</span>-<a name="line-540"></a><span class='comment'>-- see also: 'parseXmlContent'</span>-<a name="line-541"></a>-<a name="line-542"></a><a name="xread"></a><span class='definition'>xread</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span>-<a name="line-543"></a><span class='definition'>xread</span> <span class='varid'>str</span>-<a name="line-544"></a> <span class='keyglyph'>=</span> <span class='varid'>parseXmlFromString</span> <span class='varid'>parser</span> <span class='varid'>loc</span> <span class='varid'>str</span>-<a name="line-545"></a> <span class='keyword'>where</span>-<a name="line-546"></a> <span class='varid'>loc</span> <span class='keyglyph'>=</span> <span class='str'>"string: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='keyword'>if</span> <span class='varid'>length</span> <span class='varid'>str</span> <span class='varop'>></span> <span class='num'>40</span> <span class='keyword'>then</span> <span class='varid'>take</span> <span class='num'>40</span> <span class='varid'>str</span> <span class='varop'>++</span> <span class='str'>"..."</span> <span class='keyword'>else</span> <span class='varid'>str</span><span class='layout'>)</span>-<a name="line-547"></a> <span class='varid'>parser</span> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-548"></a> <span class='varid'>res</span> <span class='keyglyph'><-</span> <span class='varid'>content</span> <span class='comment'>-- take the content parser for parsing the string</span>-<a name="line-549"></a> <span class='varid'>eof</span> <span class='comment'>-- and test on everything consumed</span>-<a name="line-550"></a> <span class='varid'>return</span> <span class='varid'>res</span>-<a name="line-551"></a>-<a name="line-552"></a><span class='comment'>-- |</span>-<a name="line-553"></a><span class='comment'>-- the filter version of 'xread'</span>-<a name="line-554"></a>-<a name="line-555"></a><a name="parseXmlContent"></a><span class='definition'>parseXmlContent</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span>-<a name="line-556"></a><span class='definition'>parseXmlContent</span>-<a name="line-557"></a> <span class='keyglyph'>=</span> <span class='varid'>xread</span> <span class='varop'>.</span> <span class='varid'>xshow</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='conop'>:</span><span class='conid'>[]</span><span class='layout'>)</span>-<a name="line-558"></a>-<a name="line-559"></a><span class='comment'>-- |</span>-<a name="line-560"></a><span class='comment'>-- a more general version of 'parseXmlContent'.</span>-<a name="line-561"></a><span class='comment'>-- The parser to be used and the context are extra parameter</span>-<a name="line-562"></a>-<a name="line-563"></a><a name="parseXmlText"></a><span class='definition'>parseXmlText</span> <span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span>-<a name="line-564"></a><span class='definition'>parseXmlText</span> <span class='varid'>p</span> <span class='varid'>loc</span> <span class='keyglyph'>=</span> <span class='varid'>parseXmlFromString</span> <span class='varid'>p</span> <span class='varid'>loc</span> <span class='varop'>.</span> <span class='varid'>xshow</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='conop'>:</span><span class='conid'>[]</span><span class='layout'>)</span>-<a name="line-565"></a>-<a name="line-566"></a><a name="parseXmlDocument"></a><span class='definition'>parseXmlDocument</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span>-<a name="line-567"></a><span class='definition'>parseXmlDocument</span> <span class='keyglyph'>=</span> <span class='varid'>parseXmlFromString</span> <span class='varid'>document'</span>-<a name="line-568"></a>-<a name="line-569"></a>-<a name="line-570"></a><a name="parseXmlFromString"></a><span class='definition'>parseXmlFromString</span> <span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span>-<a name="line-571"></a><span class='definition'>parseXmlFromString</span> <span class='varid'>parser</span> <span class='varid'>loc</span>-<a name="line-572"></a> <span class='keyglyph'>=</span> <span class='varid'>either</span> <span class='layout'>(</span><span class='layout'>(</span><span class='conop'>:</span><span class='conid'>[]</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>mkError</span> <span class='varid'>c_err</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='varop'>++</span> <span class='str'>"\n"</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>show</span><span class='layout'>)</span> <span class='varid'>id</span> <span class='varop'>.</span> <span class='varid'>parse</span> <span class='varid'>parser</span> <span class='varid'>loc</span>-<a name="line-573"></a>-<a name="line-574"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-575"></a><span class='comment'>--</span>-<a name="line-576"></a>-<a name="line-577"></a><a name="removeEncodingSpec"></a><span class='definition'>removeEncodingSpec</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span>-<a name="line-578"></a><span class='definition'>removeEncodingSpec</span> <span class='varid'>t</span>-<a name="line-579"></a> <span class='keyglyph'>|</span> <span class='varid'>isText</span> <span class='varid'>t</span>-<a name="line-580"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>either</span> <span class='layout'>(</span><span class='layout'>(</span><span class='conop'>:</span><span class='conid'>[]</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>mkError</span> <span class='varid'>c_err</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='varop'>++</span> <span class='str'>"\n"</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>show</span><span class='layout'>)</span> <span class='layout'>(</span><span class='layout'>(</span><span class='conop'>:</span><span class='conid'>[]</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>mkText</span><span class='layout'>)</span>-<a name="line-581"></a> <span class='varop'>.</span> <span class='varid'>parse</span> <span class='varid'>parser</span> <span class='str'>"remove encoding spec"</span>-<a name="line-582"></a> <span class='varop'>.</span> <span class='varid'>fromMaybe</span> <span class='str'>""</span>-<a name="line-583"></a> <span class='varop'>.</span> <span class='varid'>getText</span>-<a name="line-584"></a> <span class='layout'>)</span> <span class='varid'>t</span>-<a name="line-585"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-586"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>t</span><span class='keyglyph'>]</span>-<a name="line-587"></a> <span class='keyword'>where</span>-<a name="line-588"></a> <span class='varid'>parser</span> <span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>String</span>-<a name="line-589"></a> <span class='varid'>parser</span> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-590"></a> <span class='varid'>option</span> <span class='conid'>[]</span> <span class='varid'>textDecl</span>-<a name="line-591"></a> <span class='varid'>getInput</span>-<a name="line-592"></a><span class='comment'>{--<a name="line-593"></a>removeEncodingSpec n-<a name="line-594"></a> = [n]-<a name="line-595"></a>-}</span>-<a name="line-596"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-597"></a>-<a name="line-598"></a><span class='comment'>-- |</span>-<a name="line-599"></a><span class='comment'>-- general parser for parsing arbitray parts of a XML document</span>-<a name="line-600"></a>-<a name="line-601"></a><a name="parseXmlPart"></a><span class='definition'>parseXmlPart</span> <span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span>-<a name="line-602"></a><span class='definition'>parseXmlPart</span> <span class='varid'>parser</span> <span class='varid'>expected</span> <span class='varid'>context</span> <span class='varid'>t</span>-<a name="line-603"></a> <span class='keyglyph'>=</span> <span class='varid'>parseXmlText</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-604"></a> <span class='varid'>res</span> <span class='keyglyph'><-</span> <span class='varid'>parser</span>-<a name="line-605"></a> <span class='varid'>eof</span> <span class='varop'><?></span> <span class='varid'>expected</span>-<a name="line-606"></a> <span class='varid'>return</span> <span class='varid'>res</span>-<a name="line-607"></a> <span class='layout'>)</span> <span class='varid'>context</span>-<a name="line-608"></a> <span class='varop'>$</span> <span class='varid'>t</span>-<a name="line-609"></a>-<a name="line-610"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-611"></a>-<a name="line-612"></a><span class='comment'>-- |</span>-<a name="line-613"></a><span class='comment'>-- Parser for parts of a DTD</span>-<a name="line-614"></a>-<a name="line-615"></a><a name="parseXmlDTDPart"></a><span class='definition'>parseXmlDTDPart</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span>-<a name="line-616"></a><span class='definition'>parseXmlDTDPart</span>-<a name="line-617"></a> <span class='keyglyph'>=</span> <span class='varid'>parseXmlPart</span> <span class='varid'>markupOrDeclSep</span> <span class='str'>"markup declaration"</span>-<a name="line-618"></a>-<a name="line-619"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-620"></a>-<a name="line-621"></a><span class='comment'>-- |</span>-<a name="line-622"></a><span class='comment'>-- Parser for general entites</span>-<a name="line-623"></a>-<a name="line-624"></a><a name="parseXmlGeneralEntityValue"></a><span class='definition'>parseXmlGeneralEntityValue</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span>-<a name="line-625"></a><span class='definition'>parseXmlGeneralEntityValue</span>-<a name="line-626"></a> <span class='keyglyph'>=</span> <span class='varid'>parseXmlPart</span> <span class='varid'>content</span> <span class='str'>"general entity value"</span>-<a name="line-627"></a>-<a name="line-628"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-629"></a>-<a name="line-630"></a><span class='comment'>-- |</span>-<a name="line-631"></a><span class='comment'>-- Parser for attribute values</span>-<a name="line-632"></a>-<a name="line-633"></a><a name="parseXmlAttrValue"></a><span class='definition'>parseXmlAttrValue</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span>-<a name="line-634"></a><span class='definition'>parseXmlAttrValue</span>-<a name="line-635"></a> <span class='keyglyph'>=</span> <span class='varid'>parseXmlPart</span> <span class='layout'>(</span><span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>attrValueT'</span> <span class='str'>"<&"</span><span class='layout'>)</span> <span class='str'>"attribute value"</span>-<a name="line-636"></a>-<a name="line-637"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-638"></a>-<a name="line-639"></a><span class='comment'>-- |</span>-<a name="line-640"></a><span class='comment'>-- Parser for NMTOKENs</span>-<a name="line-641"></a>-<a name="line-642"></a><a name="parseNMToken"></a><span class='definition'>parseNMToken</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span>-<a name="line-643"></a><span class='definition'>parseNMToken</span>-<a name="line-644"></a> <span class='keyglyph'>=</span> <span class='varid'>parseXmlPart</span> <span class='layout'>(</span><span class='varid'>many1</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>nmtokenT</span><span class='layout'>)</span> <span class='str'>"nmtoken"</span>-<a name="line-645"></a>-<a name="line-646"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-647"></a>-<a name="line-648"></a><span class='comment'>-- |</span>-<a name="line-649"></a><span class='comment'>-- Parser for XML names</span>-<a name="line-650"></a>-<a name="line-651"></a><a name="parseName"></a><span class='definition'>parseName</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span>-<a name="line-652"></a><span class='definition'>parseName</span>-<a name="line-653"></a> <span class='keyglyph'>=</span> <span class='varid'>parseXmlPart</span> <span class='layout'>(</span><span class='varid'>many1</span> <span class='conid'>XT</span><span class='varop'>.</span><span class='varid'>nameT</span><span class='layout'>)</span> <span class='str'>"name"</span>-<a name="line-654"></a>-<a name="line-655"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-656"></a>-<a name="line-657"></a><span class='comment'>-- |</span>-<a name="line-658"></a><span class='comment'>-- try to parse a xml encoding spec.</span>-<a name="line-659"></a><span class='comment'>--</span>-<a name="line-660"></a><span class='comment'>--</span>-<a name="line-661"></a><span class='comment'>-- * 1.parameter encParse : the parser for the encoding decl</span>-<a name="line-662"></a><span class='comment'>--</span>-<a name="line-663"></a><span class='comment'>-- - 2.parameter root : a document root</span>-<a name="line-664"></a><span class='comment'>--</span>-<a name="line-665"></a><span class='comment'>-- - returns : the same tree, but with an additional</span>-<a name="line-666"></a><span class='comment'>-- attribute "encoding" in the root node</span>-<a name="line-667"></a><span class='comment'>-- in case of a valid encoding spec</span>-<a name="line-668"></a><span class='comment'>-- else the unchanged tree</span>-<a name="line-669"></a>-<a name="line-670"></a><a name="parseXmlEncodingSpec"></a><span class='definition'>parseXmlEncodingSpec</span> <span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span>-<a name="line-671"></a><span class='definition'>parseXmlEncodingSpec</span> <span class='varid'>encDecl</span> <span class='varid'>x</span>-<a name="line-672"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conop'>:</span><span class='conid'>[]</span><span class='layout'>)</span> <span class='varop'>.</span>-<a name="line-673"></a> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>isRoot</span> <span class='varid'>x</span>-<a name="line-674"></a> <span class='keyword'>then</span> <span class='varid'>parseEncSpec</span>-<a name="line-675"></a> <span class='keyword'>else</span> <span class='varid'>id</span>-<a name="line-676"></a> <span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>x</span>-<a name="line-677"></a> <span class='keyword'>where</span>-<a name="line-678"></a> <span class='varid'>parseEncSpec</span> <span class='varid'>r</span>-<a name="line-679"></a> <span class='keyglyph'>=</span> <span class='keyword'>case</span> <span class='layout'>(</span> <span class='varid'>parse</span> <span class='varid'>encDecl</span> <span class='varid'>source</span> <span class='varop'>.</span> <span class='varid'>xshow</span> <span class='varop'>.</span> <span class='varid'>getChildren</span> <span class='varop'>$</span> <span class='varid'>r</span> <span class='layout'>)</span> <span class='keyword'>of</span>-<a name="line-680"></a> <span class='conid'>Right</span> <span class='varid'>t</span>-<a name="line-681"></a> <span class='keyglyph'>-></span> <span class='varid'>changeAttrl</span> <span class='layout'>(</span><span class='varid'>mergeAttrl</span> <span class='varop'>.</span> <span class='varid'>fromMaybe</span> <span class='conid'>[]</span> <span class='varop'>.</span> <span class='varid'>getAttrl</span> <span class='varop'>$</span> <span class='varid'>t</span><span class='layout'>)</span> <span class='varid'>r</span>-<a name="line-682"></a> <span class='conid'>Left</span> <span class='keyword'>_</span>-<a name="line-683"></a> <span class='keyglyph'>-></span> <span class='varid'>r</span>-<a name="line-684"></a> <span class='keyword'>where</span>-<a name="line-685"></a> <span class='comment'>-- arrow \"getAttrValue a_source\" programmed on the tree level (oops!)</span>-<a name="line-686"></a> <span class='varid'>source</span> <span class='keyglyph'>=</span> <span class='varid'>xshow</span> <span class='varop'>.</span> <span class='varid'>concat</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='varid'>getChildren</span> <span class='varop'>.</span> <span class='varid'>filter</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varop'>==</span> <span class='varid'>a_source</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>maybe</span> <span class='str'>""</span> <span class='varid'>qualifiedName</span> <span class='varop'>.</span> <span class='varid'>getAttrName</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>fromMaybe</span> <span class='conid'>[]</span> <span class='varop'>.</span> <span class='varid'>getAttrl</span> <span class='varop'>$</span> <span class='varid'>r</span>-<a name="line-687"></a>-<a name="line-688"></a><a name="parseXmlEntityEncodingSpec"></a><span class='definition'>parseXmlEntityEncodingSpec</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span>-<a name="line-689"></a><span class='definition'>parseXmlEntityEncodingSpec</span> <span class='keyglyph'>=</span> <span class='varid'>parseXmlEncodingSpec</span> <span class='varid'>textDecl''</span>-<a name="line-690"></a>-<a name="line-691"></a><a name="parseXmlDocEncodingSpec"></a><span class='definition'>parseXmlDocEncodingSpec</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span>-<a name="line-692"></a><span class='definition'>parseXmlDocEncodingSpec</span> <span class='keyglyph'>=</span> <span class='varid'>parseXmlEncodingSpec</span> <span class='varid'>xMLDecl''</span>-<a name="line-693"></a>-<a name="line-694"></a><span class='comment'>-- ------------------------------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-Parser-XmlTokenParser.html
@@ -1,560 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Text.XML.HXT.Parser.XmlTokenParser-<a name="line-5"></a> Copyright : Copyright (C) 2005 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe@fh-wedel.de)-<a name="line-9"></a> Stability : experimental-<a name="line-10"></a> Portability: portable-<a name="line-11"></a> Version : $Id: XmlTokenParser.hs,v 1.3 2005/09/02 17:09:39 hxml Exp $-<a name="line-12"></a>-<a name="line-13"></a> Parsec parser for XML tokens-<a name="line-14"></a>-<a name="line-15"></a>-}</span>-<a name="line-16"></a>-<a name="line-17"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-18"></a>-<a name="line-19"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Parser</span><span class='varop'>.</span><span class='conid'>XmlTokenParser</span>-<a name="line-20"></a> <span class='layout'>(</span> <span class='varid'>allBut</span>-<a name="line-21"></a> <span class='layout'>,</span> <span class='varid'>allBut1</span>-<a name="line-22"></a> <span class='layout'>,</span> <span class='varid'>asciiLetter</span>-<a name="line-23"></a> <span class='layout'>,</span> <span class='varid'>attrValue</span>-<a name="line-24"></a> <span class='layout'>,</span> <span class='varid'>bar</span>-<a name="line-25"></a> <span class='layout'>,</span> <span class='varid'>charRef</span>-<a name="line-26"></a> <span class='layout'>,</span> <span class='varid'>comma</span>-<a name="line-27"></a> <span class='layout'>,</span> <span class='varid'>dq</span>-<a name="line-28"></a> <span class='layout'>,</span> <span class='varid'>encName</span>-<a name="line-29"></a> <span class='layout'>,</span> <span class='varid'>entityRef</span>-<a name="line-30"></a> <span class='layout'>,</span> <span class='varid'>entityValue</span>-<a name="line-31"></a> <span class='layout'>,</span> <span class='varid'>eq</span>-<a name="line-32"></a> <span class='layout'>,</span> <span class='varid'>gt</span>-<a name="line-33"></a> <span class='layout'>,</span> <span class='varid'>keyword</span>-<a name="line-34"></a> <span class='layout'>,</span> <span class='varid'>keywords</span>-<a name="line-35"></a> <span class='layout'>,</span> <span class='varid'>lpar</span>-<a name="line-36"></a> <span class='layout'>,</span> <span class='varid'>lt</span>-<a name="line-37"></a> <span class='layout'>,</span> <span class='varid'>name</span>-<a name="line-38"></a> <span class='layout'>,</span> <span class='varid'>names</span>-<a name="line-39"></a> <span class='layout'>,</span> <span class='varid'>ncName</span>-<a name="line-40"></a> <span class='layout'>,</span> <span class='varid'>nmtoken</span>-<a name="line-41"></a> <span class='layout'>,</span> <span class='varid'>nmtokens</span>-<a name="line-42"></a> <span class='layout'>,</span> <span class='varid'>peReference</span>-<a name="line-43"></a> <span class='layout'>,</span> <span class='varid'>pubidLiteral</span>-<a name="line-44"></a> <span class='layout'>,</span> <span class='varid'>qName</span>-<a name="line-45"></a> <span class='layout'>,</span> <span class='varid'>quoted</span>-<a name="line-46"></a> <span class='layout'>,</span> <span class='varid'>reference</span>-<a name="line-47"></a> <span class='layout'>,</span> <span class='varid'>rpar</span>-<a name="line-48"></a> <span class='layout'>,</span> <span class='varid'>semi</span>-<a name="line-49"></a> <span class='layout'>,</span> <span class='varid'>separator</span>-<a name="line-50"></a> <span class='layout'>,</span> <span class='varid'>singleChar</span>-<a name="line-51"></a> <span class='layout'>,</span> <span class='varid'>singleChars</span>-<a name="line-52"></a> <span class='layout'>,</span> <span class='varid'>skipS</span>-<a name="line-53"></a> <span class='layout'>,</span> <span class='varid'>skipS0</span>-<a name="line-54"></a> <span class='layout'>,</span> <span class='varid'>sPace</span>-<a name="line-55"></a> <span class='layout'>,</span> <span class='varid'>sPace0</span>-<a name="line-56"></a> <span class='layout'>,</span> <span class='varid'>sq</span>-<a name="line-57"></a> <span class='layout'>,</span> <span class='varid'>systemLiteral</span>-<a name="line-58"></a> <span class='layout'>,</span> <span class='varid'>versionNum</span>-<a name="line-59"></a>-<a name="line-60"></a> <span class='layout'>,</span> <span class='varid'>concRes</span>-<a name="line-61"></a> <span class='layout'>,</span> <span class='varid'>mkList</span>-<a name="line-62"></a>-<a name="line-63"></a> <span class='layout'>,</span> <span class='varid'>nameT</span>-<a name="line-64"></a> <span class='layout'>,</span> <span class='varid'>nmtokenT</span>-<a name="line-65"></a>-<a name="line-66"></a> <span class='layout'>,</span> <span class='varid'>entityValueT</span>-<a name="line-67"></a> <span class='layout'>,</span> <span class='varid'>entityTokensT</span>-<a name="line-68"></a> <span class='layout'>,</span> <span class='varid'>entityCharT</span>-<a name="line-69"></a>-<a name="line-70"></a> <span class='layout'>,</span> <span class='varid'>attrValueT</span>-<a name="line-71"></a> <span class='layout'>,</span> <span class='varid'>attrValueT'</span>-<a name="line-72"></a>-<a name="line-73"></a> <span class='layout'>,</span> <span class='varid'>referenceT</span>-<a name="line-74"></a> <span class='layout'>,</span> <span class='varid'>charRefT</span>-<a name="line-75"></a> <span class='layout'>,</span> <span class='varid'>entityRefT</span>-<a name="line-76"></a> <span class='layout'>,</span> <span class='varid'>peReferenceT</span>-<a name="line-77"></a>-<a name="line-78"></a> <span class='layout'>,</span> <span class='varid'>singleCharsT</span>-<a name="line-79"></a> <span class='layout'>)</span>-<a name="line-80"></a><span class='keyword'>where</span>-<a name="line-81"></a>-<a name="line-82"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>ParserCombinators</span><span class='varop'>.</span><span class='conid'>Parsec</span>-<a name="line-83"></a>-<a name="line-84"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>-<a name="line-85"></a>-<a name="line-86"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlNode</span>-<a name="line-87"></a> <span class='layout'>(</span> <span class='varid'>mkDTDElem</span>-<a name="line-88"></a> <span class='layout'>,</span> <span class='varid'>mkText</span>-<a name="line-89"></a> <span class='layout'>,</span> <span class='varid'>mkCharRef</span>-<a name="line-90"></a> <span class='layout'>,</span> <span class='varid'>mkEntityRef</span>-<a name="line-91"></a> <span class='layout'>)</span>-<a name="line-92"></a>-<a name="line-93"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Unicode</span>-<a name="line-94"></a> <span class='layout'>(</span> <span class='varid'>isXmlChar</span>-<a name="line-95"></a> <span class='layout'>,</span> <span class='varid'>intToCharRef</span>-<a name="line-96"></a> <span class='layout'>,</span> <span class='varid'>intToCharRefHex</span>-<a name="line-97"></a> <span class='layout'>)</span>-<a name="line-98"></a>-<a name="line-99"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Util</span>-<a name="line-100"></a> <span class='layout'>(</span> <span class='varid'>hexStringToInt</span>-<a name="line-101"></a> <span class='layout'>,</span> <span class='varid'>decimalStringToInt</span>-<a name="line-102"></a> <span class='layout'>)</span>-<a name="line-103"></a>-<a name="line-104"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Parser</span><span class='varop'>.</span><span class='conid'>XmlCharParser</span>-<a name="line-105"></a> <span class='layout'>(</span> <span class='varid'>xmlNameChar</span>-<a name="line-106"></a> <span class='layout'>,</span> <span class='varid'>xmlNameStartChar</span>-<a name="line-107"></a> <span class='layout'>,</span> <span class='varid'>xmlNCNameChar</span>-<a name="line-108"></a> <span class='layout'>,</span> <span class='varid'>xmlNCNameStartChar</span>-<a name="line-109"></a> <span class='layout'>,</span> <span class='varid'>xmlSpaceChar</span>-<a name="line-110"></a> <span class='layout'>)</span>-<a name="line-111"></a>-<a name="line-112"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-113"></a><span class='comment'>--</span>-<a name="line-114"></a><span class='comment'>-- Character (2.2) and White Space (2.3)</span>-<a name="line-115"></a><span class='comment'>--</span>-<a name="line-116"></a><span class='comment'>-- Unicode parsers in module XmlCharParser</span>-<a name="line-117"></a>-<a name="line-118"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-119"></a>-<a name="line-120"></a><a name="sPace"></a><span class='definition'>sPace</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>String</span>-<a name="line-121"></a><span class='definition'>sPace</span>-<a name="line-122"></a> <span class='keyglyph'>=</span> <span class='varid'>many1</span> <span class='varid'>xmlSpaceChar</span>-<a name="line-123"></a>-<a name="line-124"></a><a name="sPace0"></a><span class='definition'>sPace0</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>String</span>-<a name="line-125"></a><span class='definition'>sPace0</span>-<a name="line-126"></a> <span class='keyglyph'>=</span> <span class='varid'>many</span> <span class='varid'>xmlSpaceChar</span>-<a name="line-127"></a>-<a name="line-128"></a><a name="skipS"></a><span class='definition'>skipS</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>()</span>-<a name="line-129"></a><span class='definition'>skipS</span>-<a name="line-130"></a> <span class='keyglyph'>=</span> <span class='varid'>skipMany1</span> <span class='varid'>xmlSpaceChar</span>-<a name="line-131"></a>-<a name="line-132"></a><a name="skipS0"></a><span class='definition'>skipS0</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>()</span>-<a name="line-133"></a><span class='definition'>skipS0</span>-<a name="line-134"></a> <span class='keyglyph'>=</span> <span class='varid'>skipMany</span> <span class='varid'>xmlSpaceChar</span>-<a name="line-135"></a>-<a name="line-136"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-137"></a><span class='comment'>--</span>-<a name="line-138"></a><span class='comment'>-- Names and Tokens (2.3)</span>-<a name="line-139"></a>-<a name="line-140"></a><a name="asciiLetter"></a><span class='definition'>asciiLetter</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>Char</span>-<a name="line-141"></a><span class='definition'>asciiLetter</span>-<a name="line-142"></a> <span class='keyglyph'>=</span> <span class='varid'>satisfy</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>c</span> <span class='keyglyph'>-></span> <span class='layout'>(</span> <span class='varid'>c</span> <span class='varop'>>=</span> <span class='chr'>'A'</span> <span class='varop'>&&</span> <span class='varid'>c</span> <span class='varop'><=</span> <span class='chr'>'Z'</span> <span class='varop'>||</span>-<a name="line-143"></a> <span class='varid'>c</span> <span class='varop'>>=</span> <span class='chr'>'a'</span> <span class='varop'>&&</span> <span class='varid'>c</span> <span class='varop'><=</span> <span class='chr'>'z'</span> <span class='layout'>)</span>-<a name="line-144"></a> <span class='layout'>)</span>-<a name="line-145"></a> <span class='varop'><?></span> <span class='str'>"ASCII letter"</span>-<a name="line-146"></a>-<a name="line-147"></a><a name="name"></a><span class='definition'>name</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>String</span>-<a name="line-148"></a><span class='definition'>name</span>-<a name="line-149"></a> <span class='keyglyph'>=</span> <span class='varid'>try</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-150"></a> <span class='varid'>s1</span> <span class='keyglyph'><-</span> <span class='varid'>xmlNameStartChar</span>-<a name="line-151"></a> <span class='varid'>sl</span> <span class='keyglyph'><-</span> <span class='varid'>many</span> <span class='varid'>xmlNameChar</span>-<a name="line-152"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>s1</span> <span class='conop'>:</span> <span class='varid'>sl</span><span class='layout'>)</span>-<a name="line-153"></a> <span class='layout'>)</span>-<a name="line-154"></a> <span class='varop'><?></span> <span class='str'>"Name"</span>-<a name="line-155"></a>-<a name="line-156"></a><span class='comment'>-- Namespaces in XML: Rules [4-5] NCName:</span>-<a name="line-157"></a>-<a name="line-158"></a><a name="ncName"></a><span class='definition'>ncName</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>String</span>-<a name="line-159"></a><span class='definition'>ncName</span>-<a name="line-160"></a> <span class='keyglyph'>=</span> <span class='varid'>try</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-161"></a> <span class='varid'>s1</span> <span class='keyglyph'><-</span> <span class='varid'>xmlNCNameStartChar</span>-<a name="line-162"></a> <span class='varid'>sl</span> <span class='keyglyph'><-</span> <span class='varid'>many</span> <span class='varid'>xmlNCNameChar</span>-<a name="line-163"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>s1</span> <span class='conop'>:</span> <span class='varid'>sl</span><span class='layout'>)</span>-<a name="line-164"></a> <span class='layout'>)</span>-<a name="line-165"></a> <span class='varop'><?></span> <span class='str'>"NCName"</span>-<a name="line-166"></a>-<a name="line-167"></a><span class='comment'>-- Namespaces in XML: Rules [6-8] QName:</span>-<a name="line-168"></a>-<a name="line-169"></a><a name="qName"></a><span class='definition'>qName</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span>-<a name="line-170"></a><span class='definition'>qName</span>-<a name="line-171"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-172"></a> <span class='varid'>s1</span> <span class='keyglyph'><-</span> <span class='varid'>ncName</span>-<a name="line-173"></a> <span class='varid'>s2</span> <span class='keyglyph'><-</span> <span class='varid'>option</span> <span class='str'>""</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-174"></a> <span class='varid'>char</span> <span class='chr'>':'</span>-<a name="line-175"></a> <span class='varid'>ncName</span>-<a name="line-176"></a> <span class='layout'>)</span>-<a name="line-177"></a> <span class='varid'>return</span> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>s2</span> <span class='keyword'>then</span> <span class='layout'>(</span><span class='varid'>s2</span><span class='layout'>,</span> <span class='varid'>s1</span><span class='layout'>)</span> <span class='keyword'>else</span> <span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>s2</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-178"></a>-<a name="line-179"></a><a name="nmtoken"></a><span class='definition'>nmtoken</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>String</span>-<a name="line-180"></a><span class='definition'>nmtoken</span>-<a name="line-181"></a> <span class='keyglyph'>=</span> <span class='varid'>try</span> <span class='layout'>(</span><span class='varid'>many1</span> <span class='varid'>xmlNameChar</span><span class='layout'>)</span>-<a name="line-182"></a> <span class='varop'><?></span> <span class='str'>"Nmtoken"</span>-<a name="line-183"></a>-<a name="line-184"></a><a name="names"></a><span class='definition'>names</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span>-<a name="line-185"></a><span class='definition'>names</span>-<a name="line-186"></a> <span class='keyglyph'>=</span> <span class='varid'>sepBy1</span> <span class='varid'>name</span> <span class='varid'>sPace</span>-<a name="line-187"></a>-<a name="line-188"></a><a name="nmtokens"></a><span class='definition'>nmtokens</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span>-<a name="line-189"></a><span class='definition'>nmtokens</span>-<a name="line-190"></a> <span class='keyglyph'>=</span> <span class='varid'>sepBy1</span> <span class='varid'>nmtoken</span> <span class='varid'>sPace</span>-<a name="line-191"></a>-<a name="line-192"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-193"></a><span class='comment'>--</span>-<a name="line-194"></a><span class='comment'>-- Literals (2.3)</span>-<a name="line-195"></a>-<a name="line-196"></a><a name="singleChar"></a><span class='definition'>singleChar</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>Char</span>-<a name="line-197"></a><span class='definition'>singleChar</span> <span class='varid'>notAllowed</span>-<a name="line-198"></a> <span class='keyglyph'>=</span> <span class='varid'>satisfy</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>c</span> <span class='keyglyph'>-></span> <span class='varid'>isXmlChar</span> <span class='varid'>c</span> <span class='varop'>&&</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>c</span> <span class='varop'>`elem`</span> <span class='varid'>notAllowed</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-199"></a>-<a name="line-200"></a><a name="singleChars"></a><span class='definition'>singleChars</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>String</span>-<a name="line-201"></a><span class='definition'>singleChars</span> <span class='varid'>notAllowed</span>-<a name="line-202"></a> <span class='keyglyph'>=</span> <span class='varid'>many1</span> <span class='layout'>(</span><span class='varid'>singleChar</span> <span class='varid'>notAllowed</span><span class='layout'>)</span>-<a name="line-203"></a>-<a name="line-204"></a><a name="entityValue"></a><span class='definition'>entityValue</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>String</span>-<a name="line-205"></a><span class='definition'>entityValue</span>-<a name="line-206"></a> <span class='keyglyph'>=</span> <span class='varid'>attrValue</span>-<a name="line-207"></a>-<a name="line-208"></a><a name="attrValueDQ"></a><span class='definition'>attrValueDQ</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>String</span>-<a name="line-209"></a><span class='definition'>attrValueDQ</span>-<a name="line-210"></a> <span class='keyglyph'>=</span> <span class='varid'>between</span> <span class='varid'>dq</span> <span class='varid'>dq</span> <span class='layout'>(</span><span class='varid'>concRes</span> <span class='varop'>$</span> <span class='varid'>many</span> <span class='varop'>$</span> <span class='varid'>attrChar</span> <span class='str'>"<&\""</span><span class='layout'>)</span>-<a name="line-211"></a>-<a name="line-212"></a><a name="attrValueSQ"></a><span class='definition'>attrValueSQ</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>String</span>-<a name="line-213"></a><span class='definition'>attrValueSQ</span>-<a name="line-214"></a> <span class='keyglyph'>=</span> <span class='varid'>between</span> <span class='varid'>sq</span> <span class='varid'>sq</span> <span class='layout'>(</span><span class='varid'>concRes</span> <span class='varop'>$</span> <span class='varid'>many</span> <span class='varop'>$</span> <span class='varid'>attrChar</span> <span class='str'>"<&\'"</span><span class='layout'>)</span>-<a name="line-215"></a>-<a name="line-216"></a><a name="attrValue"></a><span class='definition'>attrValue</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>String</span>-<a name="line-217"></a><span class='definition'>attrValue</span>-<a name="line-218"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-219"></a> <span class='varid'>v</span> <span class='keyglyph'><-</span> <span class='varid'>attrValueDQ</span>-<a name="line-220"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='str'>"\""</span> <span class='varop'>++</span> <span class='varid'>v</span> <span class='varop'>++</span> <span class='str'>"\""</span><span class='layout'>)</span>-<a name="line-221"></a> <span class='layout'>)</span>-<a name="line-222"></a> <span class='varop'><|></span>-<a name="line-223"></a> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-224"></a> <span class='varid'>v</span> <span class='keyglyph'><-</span> <span class='varid'>attrValueSQ</span>-<a name="line-225"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='str'>"'"</span> <span class='varop'>++</span> <span class='varid'>v</span> <span class='varop'>++</span> <span class='str'>"'"</span><span class='layout'>)</span>-<a name="line-226"></a> <span class='layout'>)</span>-<a name="line-227"></a> <span class='varop'><?></span> <span class='str'>"attribute value (in quotes)"</span>-<a name="line-228"></a>-<a name="line-229"></a><a name="attrChar"></a><span class='definition'>attrChar</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>String</span>-<a name="line-230"></a><span class='definition'>attrChar</span> <span class='varid'>notAllowed</span>-<a name="line-231"></a> <span class='keyglyph'>=</span> <span class='varid'>reference</span>-<a name="line-232"></a> <span class='varop'><|></span>-<a name="line-233"></a> <span class='varid'>mkList</span> <span class='layout'>(</span><span class='varid'>singleChar</span> <span class='varid'>notAllowed</span><span class='layout'>)</span>-<a name="line-234"></a> <span class='varop'><?></span> <span class='str'>"legal attribute character or reference"</span>-<a name="line-235"></a>-<a name="line-236"></a>-<a name="line-237"></a><a name="systemLiteral"></a><span class='definition'>systemLiteral</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>String</span>-<a name="line-238"></a><span class='definition'>systemLiteral</span>-<a name="line-239"></a> <span class='keyglyph'>=</span> <span class='varid'>between</span> <span class='varid'>dq</span> <span class='varid'>dq</span> <span class='layout'>(</span><span class='varid'>many</span> <span class='varop'>$</span> <span class='varid'>noneOf</span> <span class='str'>"\""</span><span class='layout'>)</span>-<a name="line-240"></a> <span class='varop'><|></span>-<a name="line-241"></a> <span class='varid'>between</span> <span class='varid'>sq</span> <span class='varid'>sq</span> <span class='layout'>(</span><span class='varid'>many</span> <span class='varop'>$</span> <span class='varid'>noneOf</span> <span class='str'>"\'"</span><span class='layout'>)</span>-<a name="line-242"></a> <span class='varop'><?></span> <span class='str'>"system literal (in quotes)"</span>-<a name="line-243"></a>-<a name="line-244"></a><a name="pubidLiteral"></a><span class='definition'>pubidLiteral</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>String</span>-<a name="line-245"></a><span class='definition'>pubidLiteral</span>-<a name="line-246"></a> <span class='keyglyph'>=</span> <span class='varid'>between</span> <span class='varid'>dq</span> <span class='varid'>dq</span> <span class='layout'>(</span><span class='varid'>many</span> <span class='varop'>$</span> <span class='varid'>pubidChar</span> <span class='str'>"\'"</span><span class='layout'>)</span>-<a name="line-247"></a> <span class='varop'><|></span>-<a name="line-248"></a> <span class='varid'>between</span> <span class='varid'>sq</span> <span class='varid'>sq</span> <span class='layout'>(</span><span class='varid'>many</span> <span class='varop'>$</span> <span class='varid'>pubidChar</span> <span class='str'>""</span><span class='layout'>)</span>-<a name="line-249"></a> <span class='varop'><?></span> <span class='str'>"pubid literal (in quotes)"</span>-<a name="line-250"></a> <span class='keyword'>where</span>-<a name="line-251"></a> <span class='varid'>pubidChar</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>Char</span>-<a name="line-252"></a> <span class='varid'>pubidChar</span> <span class='varid'>quoteChars</span>-<a name="line-253"></a> <span class='keyglyph'>=</span> <span class='varid'>asciiLetter</span>-<a name="line-254"></a> <span class='varop'><|></span>-<a name="line-255"></a> <span class='varid'>digit</span>-<a name="line-256"></a> <span class='varop'><|></span>-<a name="line-257"></a> <span class='varid'>oneOf</span> <span class='str'>" \r\n"</span> <span class='comment'>-- no "\t" allowed, so xmlSpaceChar parser not used</span>-<a name="line-258"></a> <span class='varop'><|></span>-<a name="line-259"></a> <span class='varid'>oneOf</span> <span class='str'>"-()+,./:=?;!*#@$_%"</span>-<a name="line-260"></a> <span class='varop'><|></span>-<a name="line-261"></a> <span class='varid'>oneOf</span> <span class='varid'>quoteChars</span>-<a name="line-262"></a>-<a name="line-263"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-264"></a><span class='comment'>--</span>-<a name="line-265"></a><span class='comment'>-- Character and Entity References (4.1)</span>-<a name="line-266"></a>-<a name="line-267"></a><a name="reference"></a><span class='definition'>reference</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>String</span>-<a name="line-268"></a><span class='definition'>reference</span>-<a name="line-269"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-270"></a> <span class='varid'>i</span> <span class='keyglyph'><-</span> <span class='varid'>charRef</span>-<a name="line-271"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='str'>"&#"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>i</span> <span class='varop'>++</span> <span class='str'>";"</span><span class='layout'>)</span>-<a name="line-272"></a> <span class='layout'>)</span>-<a name="line-273"></a> <span class='varop'><|></span>-<a name="line-274"></a> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-275"></a> <span class='varid'>n</span> <span class='keyglyph'><-</span> <span class='varid'>entityRef</span>-<a name="line-276"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='str'>"&"</span> <span class='varop'>++</span> <span class='varid'>n</span> <span class='varop'>++</span> <span class='str'>";"</span><span class='layout'>)</span>-<a name="line-277"></a> <span class='layout'>)</span>-<a name="line-278"></a> -<a name="line-279"></a>-<a name="line-280"></a><a name="checkCharRef"></a><span class='definition'>checkCharRef</span> <span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-></span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>Int</span>-<a name="line-281"></a><span class='definition'>checkCharRef</span> <span class='varid'>i</span>-<a name="line-282"></a> <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='layout'>(</span> <span class='varid'>i</span> <span class='varop'><=</span> <span class='varid'>fromEnum</span> <span class='layout'>(</span><span class='varid'>maxBound</span><span class='keyglyph'>::</span><span class='conid'>Char</span><span class='layout'>)</span>-<a name="line-283"></a> <span class='varop'>&&</span> <span class='varid'>isXmlChar</span> <span class='layout'>(</span><span class='varid'>toEnum</span> <span class='varid'>i</span><span class='layout'>)</span>-<a name="line-284"></a> <span class='layout'>)</span>-<a name="line-285"></a> <span class='keyword'>then</span> <span class='varid'>return</span> <span class='varid'>i</span>-<a name="line-286"></a> <span class='keyword'>else</span> <span class='varid'>unexpected</span> <span class='layout'>(</span><span class='str'>"illegal value in character reference: "</span> <span class='varop'>++</span> <span class='varid'>intToCharRef</span> <span class='varid'>i</span> <span class='varop'>++</span> <span class='str'>" , in hex: "</span> <span class='varop'>++</span> <span class='varid'>intToCharRefHex</span> <span class='varid'>i</span><span class='layout'>)</span>-<a name="line-287"></a>-<a name="line-288"></a><a name="charRef"></a><span class='definition'>charRef</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>Int</span>-<a name="line-289"></a><span class='definition'>charRef</span>-<a name="line-290"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-291"></a> <span class='varid'>try</span> <span class='layout'>(</span><span class='varid'>string</span> <span class='str'>"&#x"</span><span class='layout'>)</span>-<a name="line-292"></a> <span class='varid'>d</span> <span class='keyglyph'><-</span> <span class='varid'>many1</span> <span class='varid'>hexDigit</span>-<a name="line-293"></a> <span class='varid'>semi</span>-<a name="line-294"></a> <span class='varid'>checkCharRef</span> <span class='layout'>(</span><span class='varid'>hexStringToInt</span> <span class='varid'>d</span><span class='layout'>)</span>-<a name="line-295"></a> <span class='varop'><|></span>-<a name="line-296"></a> <span class='keyword'>do</span>-<a name="line-297"></a> <span class='varid'>try</span> <span class='layout'>(</span><span class='varid'>string</span> <span class='str'>"&#"</span><span class='layout'>)</span>-<a name="line-298"></a> <span class='varid'>d</span> <span class='keyglyph'><-</span> <span class='varid'>many1</span> <span class='varid'>digit</span>-<a name="line-299"></a> <span class='varid'>semi</span>-<a name="line-300"></a> <span class='varid'>checkCharRef</span> <span class='layout'>(</span><span class='varid'>decimalStringToInt</span> <span class='varid'>d</span><span class='layout'>)</span>-<a name="line-301"></a> <span class='varop'><?></span> <span class='str'>"character reference"</span>-<a name="line-302"></a>-<a name="line-303"></a>-<a name="line-304"></a><a name="entityRef"></a><span class='definition'>entityRef</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>String</span>-<a name="line-305"></a><span class='definition'>entityRef</span>-<a name="line-306"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-307"></a> <span class='varid'>char</span> <span class='chr'>'&'</span>-<a name="line-308"></a> <span class='varid'>n</span> <span class='keyglyph'><-</span> <span class='varid'>name</span>-<a name="line-309"></a> <span class='varid'>semi</span>-<a name="line-310"></a> <span class='varid'>return</span> <span class='varid'>n</span>-<a name="line-311"></a> <span class='varop'><?></span> <span class='str'>"entity reference"</span>-<a name="line-312"></a>-<a name="line-313"></a><a name="peReference"></a><span class='definition'>peReference</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>String</span>-<a name="line-314"></a><span class='definition'>peReference</span>-<a name="line-315"></a> <span class='keyglyph'>=</span> <span class='varid'>try</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-316"></a> <span class='varid'>char</span> <span class='chr'>'%'</span>-<a name="line-317"></a> <span class='varid'>n</span> <span class='keyglyph'><-</span> <span class='varid'>name</span>-<a name="line-318"></a> <span class='varid'>semi</span>-<a name="line-319"></a> <span class='varid'>return</span> <span class='varid'>n</span>-<a name="line-320"></a> <span class='layout'>)</span>-<a name="line-321"></a> <span class='varop'><?></span> <span class='str'>"parameter-entity reference"</span>-<a name="line-322"></a>-<a name="line-323"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-324"></a><span class='comment'>--</span>-<a name="line-325"></a><span class='comment'>-- 4.3</span>-<a name="line-326"></a>-<a name="line-327"></a><a name="encName"></a><span class='definition'>encName</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>String</span>-<a name="line-328"></a><span class='definition'>encName</span>-<a name="line-329"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-330"></a> <span class='varid'>c</span> <span class='keyglyph'><-</span> <span class='varid'>asciiLetter</span>-<a name="line-331"></a> <span class='varid'>r</span> <span class='keyglyph'><-</span> <span class='varid'>many</span> <span class='layout'>(</span><span class='varid'>asciiLetter</span> <span class='varop'><|></span> <span class='varid'>digit</span> <span class='varop'><|></span> <span class='varid'>oneOf</span> <span class='str'>"._-"</span><span class='layout'>)</span>-<a name="line-332"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>c</span><span class='conop'>:</span><span class='varid'>r</span><span class='layout'>)</span>-<a name="line-333"></a>-<a name="line-334"></a><a name="versionNum"></a><span class='definition'>versionNum</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>String</span>-<a name="line-335"></a><span class='definition'>versionNum</span>-<a name="line-336"></a> <span class='keyglyph'>=</span> <span class='varid'>many1</span> <span class='varid'>xmlNameChar</span>-<a name="line-337"></a>-<a name="line-338"></a>-<a name="line-339"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-340"></a><span class='comment'>--</span>-<a name="line-341"></a><span class='comment'>-- keywords</span>-<a name="line-342"></a>-<a name="line-343"></a><a name="keyword"></a><span class='definition'>keyword</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>String</span>-<a name="line-344"></a><span class='definition'>keyword</span> <span class='varid'>kw</span>-<a name="line-345"></a> <span class='keyglyph'>=</span> <span class='varid'>try</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-346"></a> <span class='varid'>n</span> <span class='keyglyph'><-</span> <span class='varid'>name</span>-<a name="line-347"></a> <span class='keyword'>if</span> <span class='varid'>n</span> <span class='varop'>==</span> <span class='varid'>kw</span>-<a name="line-348"></a> <span class='keyword'>then</span> <span class='varid'>return</span> <span class='varid'>n</span>-<a name="line-349"></a> <span class='keyword'>else</span> <span class='varid'>unexpected</span> <span class='varid'>n</span>-<a name="line-350"></a> <span class='layout'>)</span>-<a name="line-351"></a> <span class='varop'><?></span> <span class='varid'>kw</span>-<a name="line-352"></a>-<a name="line-353"></a><a name="keywords"></a><span class='definition'>keywords</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>String</span>-<a name="line-354"></a><span class='definition'>keywords</span>-<a name="line-355"></a> <span class='keyglyph'>=</span> <span class='varid'>foldr1</span> <span class='layout'>(</span><span class='varop'><|></span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='varid'>keyword</span>-<a name="line-356"></a>-<a name="line-357"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-358"></a><span class='comment'>--</span>-<a name="line-359"></a><span class='comment'>-- parser for quoted attribute values</span>-<a name="line-360"></a>-<a name="line-361"></a><a name="quoted"></a><span class='definition'>quoted</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='varid'>a</span>-<a name="line-362"></a><span class='definition'>quoted</span> <span class='varid'>p</span>-<a name="line-363"></a> <span class='keyglyph'>=</span> <span class='varid'>between</span> <span class='varid'>dq</span> <span class='varid'>dq</span> <span class='varid'>p</span>-<a name="line-364"></a> <span class='varop'><|></span>-<a name="line-365"></a> <span class='varid'>between</span> <span class='varid'>sq</span> <span class='varid'>sq</span> <span class='varid'>p</span>-<a name="line-366"></a>-<a name="line-367"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-368"></a><span class='comment'>--</span>-<a name="line-369"></a><span class='comment'>-- simple char parsers</span>-<a name="line-370"></a>-<a name="line-371"></a><a name="dq"></a><span class='definition'>dq</span><span class='layout'>,</span> <span class='varid'>sq</span><span class='layout'>,</span> <span class='varid'>lt</span><span class='layout'>,</span> <span class='varid'>gt</span><span class='layout'>,</span> <span class='varid'>semi</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>Char</span>-<a name="line-372"></a>-<a name="line-373"></a><span class='definition'>dq</span> <span class='keyglyph'>=</span> <span class='varid'>char</span> <span class='chr'>'\"'</span>-<a name="line-374"></a><a name="sq"></a><span class='definition'>sq</span> <span class='keyglyph'>=</span> <span class='varid'>char</span> <span class='chr'>'\''</span>-<a name="line-375"></a><a name="lt"></a><span class='definition'>lt</span> <span class='keyglyph'>=</span> <span class='varid'>char</span> <span class='chr'>'<'</span>-<a name="line-376"></a><a name="gt"></a><span class='definition'>gt</span> <span class='keyglyph'>=</span> <span class='varid'>char</span> <span class='chr'>'>'</span>-<a name="line-377"></a><a name="semi"></a><span class='definition'>semi</span> <span class='keyglyph'>=</span> <span class='varid'>char</span> <span class='chr'>';'</span>-<a name="line-378"></a>-<a name="line-379"></a><a name="separator"></a><span class='definition'>separator</span> <span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-></span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>()</span>-<a name="line-380"></a><span class='definition'>separator</span> <span class='varid'>c</span>-<a name="line-381"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-382"></a> <span class='varid'>try</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-383"></a> <span class='varid'>skipS0</span>-<a name="line-384"></a> <span class='varid'>char</span> <span class='varid'>c</span>-<a name="line-385"></a> <span class='layout'>)</span>-<a name="line-386"></a> <span class='varid'>skipS0</span>-<a name="line-387"></a> <span class='varop'><?></span> <span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span>-<a name="line-388"></a>-<a name="line-389"></a><a name="bar"></a><span class='definition'>bar</span><span class='layout'>,</span> <span class='varid'>comma</span><span class='layout'>,</span> <span class='varid'>eq</span><span class='layout'>,</span> <span class='varid'>lpar</span><span class='layout'>,</span> <span class='varid'>rpar</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>()</span>-<a name="line-390"></a>-<a name="line-391"></a><span class='definition'>bar</span> <span class='keyglyph'>=</span> <span class='varid'>separator</span> <span class='chr'>'|'</span>-<a name="line-392"></a><a name="comma"></a><span class='definition'>comma</span> <span class='keyglyph'>=</span> <span class='varid'>separator</span> <span class='chr'>','</span>-<a name="line-393"></a><a name="eq"></a><span class='definition'>eq</span> <span class='keyglyph'>=</span> <span class='varid'>separator</span> <span class='chr'>'='</span>-<a name="line-394"></a>-<a name="line-395"></a><a name="lpar"></a><span class='definition'>lpar</span>-<a name="line-396"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-397"></a> <span class='varid'>char</span> <span class='chr'>'('</span>-<a name="line-398"></a> <span class='varid'>skipS0</span>-<a name="line-399"></a>-<a name="line-400"></a><a name="rpar"></a><span class='definition'>rpar</span>-<a name="line-401"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-402"></a> <span class='varid'>skipS0</span>-<a name="line-403"></a> <span class='varid'>char</span> <span class='chr'>')'</span>-<a name="line-404"></a> <span class='varid'>return</span> <span class='conid'>()</span>-<a name="line-405"></a>-<a name="line-406"></a>-<a name="line-407"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-408"></a><span class='comment'>--</span>-<a name="line-409"></a><span class='comment'>-- all chars but not a special substring</span>-<a name="line-410"></a>-<a name="line-411"></a><a name="allBut"></a><span class='definition'>allBut</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>Char</span> <span class='keyglyph'>-></span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>String</span>-<a name="line-412"></a><span class='definition'>allBut</span> <span class='varid'>p</span> <span class='varid'>str</span>-<a name="line-413"></a> <span class='keyglyph'>=</span> <span class='varid'>allBut1</span> <span class='varid'>p</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='conid'>True</span><span class='layout'>)</span> <span class='varid'>str</span>-<a name="line-414"></a>-<a name="line-415"></a><a name="allBut1"></a><span class='definition'>allBut1</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>Char</span> <span class='keyglyph'>-></span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='conid'>Char</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>String</span>-<a name="line-416"></a><span class='definition'>allBut1</span> <span class='varid'>p</span> <span class='varid'>prd</span> <span class='layout'>(</span><span class='varid'>c</span><span class='conop'>:</span><span class='varid'>rest</span><span class='layout'>)</span>-<a name="line-417"></a> <span class='keyglyph'>=</span> <span class='varid'>p</span> <span class='layout'>(</span> <span class='varid'>satisfy</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='varid'>isXmlChar</span> <span class='varid'>x</span> <span class='varop'>&&</span> <span class='varid'>prd</span> <span class='varid'>x</span> <span class='varop'>&&</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>x</span> <span class='varop'>==</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-418"></a> <span class='varop'><|></span>-<a name="line-419"></a> <span class='varid'>try</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-420"></a> <span class='varid'>char</span> <span class='varid'>c</span>-<a name="line-421"></a> <span class='varid'>notFollowedBy</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-422"></a> <span class='varid'>try</span> <span class='layout'>(</span><span class='varid'>string</span> <span class='varid'>rest</span><span class='layout'>)</span>-<a name="line-423"></a> <span class='varid'>return</span> <span class='varid'>c</span>-<a name="line-424"></a> <span class='layout'>)</span>-<a name="line-425"></a> <span class='varid'>return</span> <span class='varid'>c</span>-<a name="line-426"></a> <span class='layout'>)</span>-<a name="line-427"></a> <span class='layout'>)</span>-<a name="line-428"></a>-<a name="line-429"></a><span class='definition'>allBut1</span> <span class='sel'>_p</span> <span class='sel'>_prd</span> <span class='varid'>str</span>-<a name="line-430"></a> <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"allBut1 _ _ "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>str</span> <span class='varop'>++</span> <span class='str'>" is undefined"</span><span class='layout'>)</span>-<a name="line-431"></a>-<a name="line-432"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-433"></a><span class='comment'>--</span>-<a name="line-434"></a><span class='comment'>-- concatenate parse results</span>-<a name="line-435"></a>-<a name="line-436"></a><a name="concRes"></a><span class='definition'>concRes</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='keyglyph'>[</span><span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span>-<a name="line-437"></a><span class='definition'>concRes</span> <span class='varid'>p</span>-<a name="line-438"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-439"></a> <span class='varid'>sl</span> <span class='keyglyph'><-</span> <span class='varid'>p</span>-<a name="line-440"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>concat</span> <span class='varid'>sl</span><span class='layout'>)</span>-<a name="line-441"></a>-<a name="line-442"></a><a name="mkList"></a><span class='definition'>mkList</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span>-<a name="line-443"></a><span class='definition'>mkList</span> <span class='varid'>p</span>-<a name="line-444"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-445"></a> <span class='varid'>r</span> <span class='keyglyph'><-</span> <span class='varid'>p</span>-<a name="line-446"></a> <span class='varid'>return</span> <span class='keyglyph'>[</span><span class='varid'>r</span><span class='keyglyph'>]</span>-<a name="line-447"></a>-<a name="line-448"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-449"></a><span class='comment'>--</span>-<a name="line-450"></a><span class='comment'>-- token parsers returning XmlTrees</span>-<a name="line-451"></a><span class='comment'>--</span>-<a name="line-452"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-453"></a><span class='comment'>--</span>-<a name="line-454"></a><span class='comment'>-- Literals (2.3)</span>-<a name="line-455"></a>-<a name="line-456"></a><a name="nameT"></a><span class='definition'>nameT</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTree</span>-<a name="line-457"></a><span class='definition'>nameT</span>-<a name="line-458"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-459"></a> <span class='varid'>n</span> <span class='keyglyph'><-</span> <span class='varid'>name</span>-<a name="line-460"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>mkDTDElem</span> <span class='conid'>NAME</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a_name</span><span class='layout'>,</span> <span class='varid'>n</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='conid'>[]</span><span class='layout'>)</span>-<a name="line-461"></a>-<a name="line-462"></a><a name="nmtokenT"></a><span class='definition'>nmtokenT</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTree</span>-<a name="line-463"></a><span class='definition'>nmtokenT</span>-<a name="line-464"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-465"></a> <span class='varid'>n</span> <span class='keyglyph'><-</span> <span class='varid'>nmtoken</span>-<a name="line-466"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>mkDTDElem</span> <span class='conid'>NAME</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a_name</span><span class='layout'>,</span> <span class='varid'>n</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='conid'>[]</span><span class='layout'>)</span>-<a name="line-467"></a>-<a name="line-468"></a>-<a name="line-469"></a><a name="entityValueT"></a><span class='definition'>entityValueT</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTrees</span>-<a name="line-470"></a><span class='definition'>entityValueT</span>-<a name="line-471"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-472"></a> <span class='varid'>sl</span> <span class='keyglyph'><-</span> <span class='varid'>between</span> <span class='varid'>dq</span> <span class='varid'>dq</span> <span class='layout'>(</span><span class='varid'>entityTokensT</span> <span class='str'>"%&\""</span><span class='layout'>)</span>-<a name="line-473"></a> <span class='varid'>return</span> <span class='varid'>sl</span>-<a name="line-474"></a> <span class='varop'><|></span>-<a name="line-475"></a> <span class='keyword'>do</span>-<a name="line-476"></a> <span class='varid'>sl</span> <span class='keyglyph'><-</span> <span class='varid'>between</span> <span class='varid'>sq</span> <span class='varid'>sq</span> <span class='layout'>(</span><span class='varid'>entityTokensT</span> <span class='str'>"%&\'"</span><span class='layout'>)</span>-<a name="line-477"></a> <span class='varid'>return</span> <span class='varid'>sl</span>-<a name="line-478"></a> <span class='varop'><?></span> <span class='str'>"entity value (in quotes)"</span>-<a name="line-479"></a>-<a name="line-480"></a><a name="entityTokensT"></a><span class='definition'>entityTokensT</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTrees</span>-<a name="line-481"></a><span class='definition'>entityTokensT</span> <span class='varid'>notAllowed</span>-<a name="line-482"></a> <span class='keyglyph'>=</span> <span class='varid'>many</span> <span class='layout'>(</span><span class='varid'>entityCharT</span> <span class='varid'>notAllowed</span><span class='layout'>)</span>-<a name="line-483"></a>-<a name="line-484"></a><a name="entityCharT"></a><span class='definition'>entityCharT</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTree</span>-<a name="line-485"></a><span class='definition'>entityCharT</span> <span class='varid'>notAllowed</span>-<a name="line-486"></a> <span class='keyglyph'>=</span> <span class='varid'>peReferenceT</span>-<a name="line-487"></a> <span class='varop'><|></span>-<a name="line-488"></a> <span class='varid'>charRefT</span>-<a name="line-489"></a> <span class='varop'><|></span>-<a name="line-490"></a> <span class='varid'>bypassedEntityRefT</span>-<a name="line-491"></a> <span class='varop'><|></span>-<a name="line-492"></a> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-493"></a> <span class='varid'>cs</span> <span class='keyglyph'><-</span> <span class='varid'>many1</span> <span class='layout'>(</span><span class='varid'>singleChar</span> <span class='varid'>notAllowed</span><span class='layout'>)</span>-<a name="line-494"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>mkText</span> <span class='varid'>cs</span><span class='layout'>)</span>-<a name="line-495"></a> <span class='layout'>)</span>-<a name="line-496"></a>-<a name="line-497"></a><a name="attrValueT"></a><span class='definition'>attrValueT</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTrees</span>-<a name="line-498"></a><span class='definition'>attrValueT</span>-<a name="line-499"></a> <span class='keyglyph'>=</span> <span class='varid'>between</span> <span class='varid'>dq</span> <span class='varid'>dq</span> <span class='layout'>(</span><span class='varid'>attrValueT'</span> <span class='str'>"<&\""</span><span class='layout'>)</span>-<a name="line-500"></a> <span class='varop'><|></span>-<a name="line-501"></a> <span class='varid'>between</span> <span class='varid'>sq</span> <span class='varid'>sq</span> <span class='layout'>(</span><span class='varid'>attrValueT'</span> <span class='str'>"<&\'"</span><span class='layout'>)</span>-<a name="line-502"></a> <span class='varop'><?></span> <span class='str'>"attribute value (in quotes)"</span>-<a name="line-503"></a>-<a name="line-504"></a><a name="attrValueT'"></a><span class='definition'>attrValueT'</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTrees</span>-<a name="line-505"></a><span class='definition'>attrValueT'</span> <span class='varid'>notAllowed</span>-<a name="line-506"></a> <span class='keyglyph'>=</span> <span class='varid'>many</span> <span class='layout'>(</span> <span class='varid'>referenceT</span> <span class='varop'><|></span> <span class='varid'>singleCharsT</span> <span class='varid'>notAllowed</span><span class='layout'>)</span>-<a name="line-507"></a>-<a name="line-508"></a><a name="singleCharsT"></a><span class='definition'>singleCharsT</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTree</span>-<a name="line-509"></a><span class='definition'>singleCharsT</span> <span class='varid'>notAllowed</span>-<a name="line-510"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-511"></a> <span class='varid'>cs</span> <span class='keyglyph'><-</span> <span class='varid'>singleChars</span> <span class='varid'>notAllowed</span>-<a name="line-512"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>mkText</span> <span class='varid'>cs</span><span class='layout'>)</span>-<a name="line-513"></a>-<a name="line-514"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-515"></a><span class='comment'>--</span>-<a name="line-516"></a><span class='comment'>-- Character and Entity References (4.1)</span>-<a name="line-517"></a>-<a name="line-518"></a><a name="referenceT"></a><span class='definition'>referenceT</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTree</span>-<a name="line-519"></a><span class='definition'>referenceT</span>-<a name="line-520"></a> <span class='keyglyph'>=</span> <span class='varid'>charRefT</span>-<a name="line-521"></a> <span class='varop'><|></span>-<a name="line-522"></a> <span class='varid'>entityRefT</span>-<a name="line-523"></a>-<a name="line-524"></a><a name="charRefT"></a><span class='definition'>charRefT</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTree</span>-<a name="line-525"></a><span class='definition'>charRefT</span>-<a name="line-526"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-527"></a> <span class='varid'>i</span> <span class='keyglyph'><-</span> <span class='varid'>charRef</span>-<a name="line-528"></a> <span class='varid'>return</span> <span class='varop'>$!</span> <span class='layout'>(</span><span class='varid'>mkCharRef</span> <span class='varop'>$!</span> <span class='varid'>i</span><span class='layout'>)</span>-<a name="line-529"></a>-<a name="line-530"></a><a name="entityRefT"></a><span class='definition'>entityRefT</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTree</span>-<a name="line-531"></a><span class='definition'>entityRefT</span>-<a name="line-532"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-533"></a> <span class='varid'>n</span> <span class='keyglyph'><-</span> <span class='varid'>entityRef</span>-<a name="line-534"></a> <span class='varid'>return</span> <span class='varop'>$!</span> <span class='layout'>(</span><span class='varid'>mkEntityRef</span> <span class='varop'>$!</span> <span class='varid'>n</span><span class='layout'>)</span>-<a name="line-535"></a>-<a name="line-536"></a><a name="bypassedEntityRefT"></a><span class='definition'>bypassedEntityRefT</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTree</span>-<a name="line-537"></a><span class='definition'>bypassedEntityRefT</span>-<a name="line-538"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-539"></a> <span class='varid'>n</span> <span class='keyglyph'><-</span> <span class='varid'>entityRef</span>-<a name="line-540"></a> <span class='varid'>return</span> <span class='varop'>$!</span> <span class='layout'>(</span><span class='varid'>mkText</span> <span class='layout'>(</span><span class='str'>"&"</span> <span class='varop'>++</span> <span class='varid'>n</span> <span class='varop'>++</span> <span class='str'>";"</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-541"></a>-<a name="line-542"></a><a name="peReferenceT"></a><span class='definition'>peReferenceT</span> <span class='keyglyph'>::</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='varid'>state</span> <span class='conid'>XmlTree</span>-<a name="line-543"></a><span class='definition'>peReferenceT</span>-<a name="line-544"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-545"></a> <span class='varid'>r</span> <span class='keyglyph'><-</span> <span class='varid'>peReference</span>-<a name="line-546"></a> <span class='varid'>return</span> <span class='varop'>$!</span> <span class='layout'>(</span><span class='varid'>mkDTDElem</span> <span class='conid'>PEREF</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a_peref</span><span class='layout'>,</span> <span class='varid'>r</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='conid'>[]</span><span class='layout'>)</span>-<a name="line-547"></a>-<a name="line-548"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-549"></a>-<a name="line-550"></a>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-RelaxNG-BasicArrows.html
@@ -1,336 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Text.XML.HXT.RelaxNG.BasicArrows-<a name="line-5"></a> Copyright : Copyright (C) 2005 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe@fh-wedel.de)-<a name="line-9"></a> Stability : experimental-<a name="line-10"></a> Portability: portable-<a name="line-11"></a> Version : $Id$-<a name="line-12"></a>-<a name="line-13"></a> Constants and basic arrows for Relax NG-<a name="line-14"></a>-<a name="line-15"></a>-}</span>-<a name="line-16"></a>-<a name="line-17"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-18"></a>-<a name="line-19"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>BasicArrows</span>-<a name="line-20"></a><span class='keyword'>where</span>-<a name="line-21"></a>-<a name="line-22"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ListArrows</span>-<a name="line-23"></a>-<a name="line-24"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>-<a name="line-25"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlArrow</span>-<a name="line-26"></a> <span class='varid'>hiding</span>-<a name="line-27"></a> <span class='layout'>(</span> <span class='varid'>mkText</span>-<a name="line-28"></a> <span class='layout'>,</span> <span class='varid'>mkError</span>-<a name="line-29"></a> <span class='layout'>)</span>-<a name="line-30"></a>-<a name="line-31"></a><a name="hasRngName"></a><span class='definition'>hasRngName</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-32"></a><span class='definition'>hasRngName</span> <span class='varid'>s</span>-<a name="line-33"></a> <span class='keyglyph'>=</span> <span class='varid'>hasName</span> <span class='varid'>s</span> -<a name="line-34"></a> <span class='varop'>`orElse`</span>-<a name="line-35"></a> <span class='layout'>(</span> <span class='varid'>hasLocalPart</span> <span class='varid'>s</span> <span class='varop'>>>></span> <span class='varid'>hasNamespaceUri</span> <span class='varid'>relaxNamespace</span> <span class='layout'>)</span>-<a name="line-36"></a>-<a name="line-37"></a><a name="checkRngName"></a><span class='definition'>checkRngName</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-38"></a><span class='definition'>checkRngName</span> <span class='varid'>l</span>-<a name="line-39"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>isElem</span>-<a name="line-40"></a> <span class='varop'>>>></span>-<a name="line-41"></a> <span class='varid'>catA</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>hasRngName</span> <span class='varid'>l</span><span class='layout'>)</span>-<a name="line-42"></a> <span class='layout'>)</span>-<a name="line-43"></a> <span class='varop'>`guards`</span> <span class='varid'>this</span>-<a name="line-44"></a>-<a name="line-45"></a><a name="noOfChildren"></a><span class='definition'>noOfChildren</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='layout'>(</span><span class='conid'>Int</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-46"></a><span class='definition'>noOfChildren</span> <span class='varid'>p</span>-<a name="line-47"></a> <span class='keyglyph'>=</span> <span class='varid'>getChildren</span>-<a name="line-48"></a> <span class='varop'>>>.</span>-<a name="line-49"></a> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>l</span> <span class='keyglyph'>-></span> <span class='keyword'>if</span> <span class='varid'>p</span> <span class='layout'>(</span><span class='varid'>length</span> <span class='varid'>l</span><span class='layout'>)</span> <span class='keyword'>then</span> <span class='varid'>l</span> <span class='keyword'>else</span> <span class='conid'>[]</span><span class='layout'>)</span>-<a name="line-50"></a>-<a name="line-51"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-52"></a>-<a name="line-53"></a><a name="isAttributeRef"></a><span class='definition'>isAttributeRef</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-54"></a><span class='definition'>isAttributeRef</span>-<a name="line-55"></a> <span class='keyglyph'>=</span> <span class='varid'>checkRngName</span> <span class='keyglyph'>[</span><span class='str'>"attribute"</span><span class='layout'>,</span> <span class='str'>"ref"</span><span class='keyglyph'>]</span>-<a name="line-56"></a>-<a name="line-57"></a><a name="isAttributeRefTextListGroupInterleaveOneOrMoreEmpty"></a><span class='definition'>isAttributeRefTextListGroupInterleaveOneOrMoreEmpty</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-58"></a><span class='definition'>isAttributeRefTextListGroupInterleaveOneOrMoreEmpty</span>-<a name="line-59"></a> <span class='keyglyph'>=</span> <span class='varid'>checkRngName</span> <span class='keyglyph'>[</span><span class='str'>"attribute"</span><span class='layout'>,</span> <span class='str'>"ref"</span><span class='layout'>,</span> <span class='str'>"text"</span><span class='layout'>,</span> <span class='str'>"list"</span><span class='layout'>,</span> <span class='str'>"group"</span><span class='layout'>,</span> <span class='str'>"interleave"</span><span class='layout'>,</span> <span class='str'>"oneOrMore"</span><span class='layout'>,</span> <span class='str'>"empty"</span><span class='keyglyph'>]</span>-<a name="line-60"></a>-<a name="line-61"></a><a name="isAttributeRefTextListInterleave"></a><span class='definition'>isAttributeRefTextListInterleave</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-62"></a><span class='definition'>isAttributeRefTextListInterleave</span>-<a name="line-63"></a> <span class='keyglyph'>=</span> <span class='varid'>checkRngName</span> <span class='keyglyph'>[</span><span class='str'>"attribute"</span><span class='layout'>,</span> <span class='str'>"ref"</span><span class='layout'>,</span> <span class='str'>"text"</span><span class='layout'>,</span> <span class='str'>"list"</span><span class='layout'>,</span> <span class='str'>"interleave"</span><span class='keyglyph'>]</span>-<a name="line-64"></a>-<a name="line-65"></a><a name="isAttributeListGroupInterleaveOneOrMore"></a><span class='definition'>isAttributeListGroupInterleaveOneOrMore</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-66"></a><span class='definition'>isAttributeListGroupInterleaveOneOrMore</span>-<a name="line-67"></a> <span class='keyglyph'>=</span> <span class='varid'>checkRngName</span> <span class='keyglyph'>[</span><span class='str'>"attribute"</span><span class='layout'>,</span> <span class='str'>"list"</span><span class='layout'>,</span> <span class='str'>"group"</span><span class='layout'>,</span> <span class='str'>"interleave"</span><span class='layout'>,</span> <span class='str'>"oneOrMore"</span><span class='keyglyph'>]</span>-<a name="line-68"></a>-<a name="line-69"></a><a name="isExternalRefInclude"></a><span class='definition'>isExternalRefInclude</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-70"></a><span class='definition'>isExternalRefInclude</span>-<a name="line-71"></a> <span class='keyglyph'>=</span> <span class='varid'>checkRngName</span> <span class='keyglyph'>[</span><span class='str'>"externalRef"</span><span class='layout'>,</span> <span class='str'>"include"</span><span class='keyglyph'>]</span>-<a name="line-72"></a>-<a name="line-73"></a><a name="isNameNsNameValue"></a><span class='definition'>isNameNsNameValue</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-74"></a><span class='definition'>isNameNsNameValue</span>-<a name="line-75"></a> <span class='keyglyph'>=</span> <span class='varid'>checkRngName</span> <span class='keyglyph'>[</span><span class='str'>"name"</span><span class='layout'>,</span> <span class='str'>"nsName"</span><span class='layout'>,</span> <span class='str'>"value"</span><span class='keyglyph'>]</span>-<a name="line-76"></a>-<a name="line-77"></a><a name="isNameNsName"></a><span class='definition'>isNameNsName</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-78"></a><span class='definition'>isNameNsName</span>-<a name="line-79"></a> <span class='keyglyph'>=</span> <span class='varid'>checkRngName</span> <span class='keyglyph'>[</span><span class='str'>"name"</span><span class='layout'>,</span> <span class='str'>"nsName"</span><span class='keyglyph'>]</span>-<a name="line-80"></a>-<a name="line-81"></a><a name="isNameAnyNameNsName"></a><span class='definition'>isNameAnyNameNsName</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-82"></a><span class='definition'>isNameAnyNameNsName</span>-<a name="line-83"></a> <span class='keyglyph'>=</span> <span class='varid'>checkRngName</span> <span class='keyglyph'>[</span><span class='str'>"name"</span><span class='layout'>,</span> <span class='str'>"anyName"</span><span class='layout'>,</span> <span class='str'>"nsName"</span><span class='keyglyph'>]</span>-<a name="line-84"></a>-<a name="line-85"></a><a name="isDefineOneOrMoreZeroOrMoreOptionalListMixed"></a><span class='definition'>isDefineOneOrMoreZeroOrMoreOptionalListMixed</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-86"></a><span class='definition'>isDefineOneOrMoreZeroOrMoreOptionalListMixed</span>-<a name="line-87"></a> <span class='keyglyph'>=</span> <span class='varid'>checkRngName</span> <span class='keyglyph'>[</span><span class='str'>"define"</span><span class='layout'>,</span> <span class='str'>"oneOrMore"</span><span class='layout'>,</span> <span class='str'>"zeroOrMore"</span><span class='layout'>,</span> <span class='str'>"optional"</span><span class='layout'>,</span> <span class='str'>"list"</span><span class='layout'>,</span> <span class='str'>"mixed"</span><span class='keyglyph'>]</span>-<a name="line-88"></a>-<a name="line-89"></a><a name="isChoiceGroupInterleave"></a><span class='definition'>isChoiceGroupInterleave</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-90"></a><span class='definition'>isChoiceGroupInterleave</span>-<a name="line-91"></a> <span class='keyglyph'>=</span> <span class='varid'>checkRngName</span> <span class='keyglyph'>[</span><span class='str'>"choice"</span><span class='layout'>,</span> <span class='str'>"group"</span><span class='layout'>,</span> <span class='str'>"interleave"</span><span class='keyglyph'>]</span>-<a name="line-92"></a>-<a name="line-93"></a><a name="isChoiceGroupInterleaveOneOrMore"></a><span class='definition'>isChoiceGroupInterleaveOneOrMore</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-94"></a><span class='definition'>isChoiceGroupInterleaveOneOrMore</span>-<a name="line-95"></a> <span class='keyglyph'>=</span> <span class='varid'>checkRngName</span> <span class='keyglyph'>[</span><span class='str'>"choice"</span><span class='layout'>,</span> <span class='str'>"group"</span><span class='layout'>,</span> <span class='str'>"interleave"</span><span class='layout'>,</span> <span class='str'>"oneOrMore"</span><span class='keyglyph'>]</span>-<a name="line-96"></a>-<a name="line-97"></a><a name="isGroupInterleave"></a><span class='definition'>isGroupInterleave</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-98"></a><span class='definition'>isGroupInterleave</span>-<a name="line-99"></a> <span class='keyglyph'>=</span> <span class='varid'>checkRngName</span> <span class='keyglyph'>[</span><span class='str'>"group"</span><span class='layout'>,</span> <span class='str'>"interleave"</span><span class='keyglyph'>]</span>-<a name="line-100"></a>-<a name="line-101"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-102"></a>-<a name="line-103"></a><a name="isRngAnyName"></a><span class='definition'>isRngAnyName</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-104"></a><span class='definition'>isRngAnyName</span> <span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>>>></span> <span class='varid'>hasRngName</span> <span class='str'>"anyName"</span>-<a name="line-105"></a>-<a name="line-106"></a><a name="isRngAttribute"></a><span class='definition'>isRngAttribute</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-107"></a><span class='definition'>isRngAttribute</span> <span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>>>></span> <span class='varid'>hasRngName</span> <span class='str'>"attribute"</span>-<a name="line-108"></a>-<a name="line-109"></a><a name="isRngChoice"></a><span class='definition'>isRngChoice</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-110"></a><span class='definition'>isRngChoice</span> <span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>>>></span> <span class='varid'>hasRngName</span> <span class='str'>"choice"</span>-<a name="line-111"></a>-<a name="line-112"></a><a name="isRngCombine"></a><span class='definition'>isRngCombine</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-113"></a><span class='definition'>isRngCombine</span> <span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>>>></span> <span class='varid'>hasRngName</span> <span class='str'>"combine"</span>-<a name="line-114"></a>-<a name="line-115"></a><a name="isRngData"></a><span class='definition'>isRngData</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-116"></a><span class='definition'>isRngData</span> <span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>>>></span> <span class='varid'>hasRngName</span> <span class='str'>"data"</span>-<a name="line-117"></a>-<a name="line-118"></a><a name="isRngDefine"></a><span class='definition'>isRngDefine</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-119"></a><span class='definition'>isRngDefine</span> <span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>>>></span> <span class='varid'>hasRngName</span> <span class='str'>"define"</span>-<a name="line-120"></a>-<a name="line-121"></a><a name="isRngDiv"></a><span class='definition'>isRngDiv</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-122"></a><span class='definition'>isRngDiv</span> <span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>>>></span> <span class='varid'>hasRngName</span> <span class='str'>"div"</span>-<a name="line-123"></a>-<a name="line-124"></a><a name="isRngElement"></a><span class='definition'>isRngElement</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-125"></a><span class='definition'>isRngElement</span> <span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>>>></span> <span class='varid'>hasRngName</span> <span class='str'>"element"</span>-<a name="line-126"></a>-<a name="line-127"></a><a name="isRngEmpty"></a><span class='definition'>isRngEmpty</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-128"></a><span class='definition'>isRngEmpty</span> <span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>>>></span> <span class='varid'>hasRngName</span> <span class='str'>"empty"</span>-<a name="line-129"></a>-<a name="line-130"></a><a name="isRngExcept"></a><span class='definition'>isRngExcept</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-131"></a><span class='definition'>isRngExcept</span> <span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>>>></span> <span class='varid'>hasRngName</span> <span class='str'>"except"</span>-<a name="line-132"></a>-<a name="line-133"></a><a name="isRngExternalRef"></a><span class='definition'>isRngExternalRef</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-134"></a><span class='definition'>isRngExternalRef</span> <span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>>>></span> <span class='varid'>hasRngName</span> <span class='str'>"externalRef"</span>-<a name="line-135"></a>-<a name="line-136"></a><a name="isRngGrammar"></a><span class='definition'>isRngGrammar</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-137"></a><span class='definition'>isRngGrammar</span> <span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>>>></span> <span class='varid'>hasRngName</span> <span class='str'>"grammar"</span>-<a name="line-138"></a>-<a name="line-139"></a><a name="isRngGroup"></a><span class='definition'>isRngGroup</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-140"></a><span class='definition'>isRngGroup</span> <span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>>>></span> <span class='varid'>hasRngName</span> <span class='str'>"group"</span>-<a name="line-141"></a>-<a name="line-142"></a><a name="isRngInclude"></a><span class='definition'>isRngInclude</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-143"></a><span class='definition'>isRngInclude</span> <span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>>>></span> <span class='varid'>hasRngName</span> <span class='str'>"include"</span>-<a name="line-144"></a>-<a name="line-145"></a><a name="isRngInterleave"></a><span class='definition'>isRngInterleave</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-146"></a><span class='definition'>isRngInterleave</span> <span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>>>></span> <span class='varid'>hasRngName</span> <span class='str'>"interleave"</span>-<a name="line-147"></a>-<a name="line-148"></a><a name="isRngList"></a><span class='definition'>isRngList</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-149"></a><span class='definition'>isRngList</span> <span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>>>></span> <span class='varid'>hasRngName</span> <span class='str'>"list"</span>-<a name="line-150"></a>-<a name="line-151"></a><a name="isRngMixed"></a><span class='definition'>isRngMixed</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-152"></a><span class='definition'>isRngMixed</span> <span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>>>></span> <span class='varid'>hasRngName</span> <span class='str'>"mixed"</span>-<a name="line-153"></a>-<a name="line-154"></a><a name="isRngName"></a><span class='definition'>isRngName</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-155"></a><span class='definition'>isRngName</span> <span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>>>></span> <span class='varid'>hasRngName</span> <span class='str'>"name"</span>-<a name="line-156"></a>-<a name="line-157"></a><a name="isRngNotAllowed"></a><span class='definition'>isRngNotAllowed</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-158"></a><span class='definition'>isRngNotAllowed</span> <span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>>>></span> <span class='varid'>hasRngName</span> <span class='str'>"notAllowed"</span>-<a name="line-159"></a>-<a name="line-160"></a><a name="isRngNsName"></a><span class='definition'>isRngNsName</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-161"></a><span class='definition'>isRngNsName</span> <span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>>>></span> <span class='varid'>hasRngName</span> <span class='str'>"nsName"</span>-<a name="line-162"></a>-<a name="line-163"></a><a name="isRngOneOrMore"></a><span class='definition'>isRngOneOrMore</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-164"></a><span class='definition'>isRngOneOrMore</span> <span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>>>></span> <span class='varid'>hasRngName</span> <span class='str'>"oneOrMore"</span>-<a name="line-165"></a>-<a name="line-166"></a><a name="isRngOptional"></a><span class='definition'>isRngOptional</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-167"></a><span class='definition'>isRngOptional</span> <span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>>>></span> <span class='varid'>hasRngName</span> <span class='str'>"optional"</span>-<a name="line-168"></a>-<a name="line-169"></a><a name="isRngParam"></a><span class='definition'>isRngParam</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-170"></a><span class='definition'>isRngParam</span> <span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>>>></span> <span class='varid'>hasRngName</span> <span class='str'>"param"</span>-<a name="line-171"></a>-<a name="line-172"></a><a name="isRngParentRef"></a><span class='definition'>isRngParentRef</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-173"></a><span class='definition'>isRngParentRef</span> <span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>>>></span> <span class='varid'>hasRngName</span> <span class='str'>"parentRef"</span>-<a name="line-174"></a>-<a name="line-175"></a><a name="isRngRef"></a><span class='definition'>isRngRef</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-176"></a><span class='definition'>isRngRef</span> <span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>>>></span> <span class='varid'>hasRngName</span> <span class='str'>"ref"</span>-<a name="line-177"></a>-<a name="line-178"></a><a name="isRngRelaxError"></a><span class='definition'>isRngRelaxError</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-179"></a><span class='definition'>isRngRelaxError</span> <span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>>>></span> <span class='varid'>hasRngName</span> <span class='str'>"relaxError"</span>-<a name="line-180"></a>-<a name="line-181"></a><a name="isRngStart"></a><span class='definition'>isRngStart</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-182"></a><span class='definition'>isRngStart</span> <span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>>>></span> <span class='varid'>hasRngName</span> <span class='str'>"start"</span>-<a name="line-183"></a>-<a name="line-184"></a><a name="isRngText"></a><span class='definition'>isRngText</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-185"></a><span class='definition'>isRngText</span> <span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>>>></span> <span class='varid'>hasRngName</span> <span class='str'>"text"</span>-<a name="line-186"></a>-<a name="line-187"></a><a name="isRngType"></a><span class='definition'>isRngType</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-188"></a><span class='definition'>isRngType</span> <span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>>>></span> <span class='varid'>hasRngName</span> <span class='str'>"type"</span>-<a name="line-189"></a>-<a name="line-190"></a><a name="isRngValue"></a><span class='definition'>isRngValue</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-191"></a><span class='definition'>isRngValue</span> <span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>>>></span> <span class='varid'>hasRngName</span> <span class='str'>"value"</span>-<a name="line-192"></a>-<a name="line-193"></a><a name="isRngZeroOrMore"></a><span class='definition'>isRngZeroOrMore</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-194"></a><span class='definition'>isRngZeroOrMore</span> <span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>>>></span> <span class='varid'>hasRngName</span> <span class='str'>"zeroOrMore"</span>-<a name="line-195"></a>-<a name="line-196"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-197"></a>-<a name="line-198"></a><a name="mkRngElement"></a><span class='definition'>mkRngElement</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span>-<a name="line-199"></a><span class='definition'>mkRngElement</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='varid'>mkElement</span> <span class='layout'>(</span><span class='varid'>mkQName</span> <span class='str'>""</span> <span class='varid'>n</span> <span class='varid'>relaxNamespace</span><span class='layout'>)</span>-<a name="line-200"></a>-<a name="line-201"></a><a name="mkRngChoice"></a><span class='definition'>mkRngChoice</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span>-<a name="line-202"></a><span class='definition'>mkRngChoice</span> <span class='keyglyph'>=</span> <span class='varid'>mkRngElement</span> <span class='str'>"choice"</span>-<a name="line-203"></a>-<a name="line-204"></a><a name="mkRngDefine"></a><span class='definition'>mkRngDefine</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span>-<a name="line-205"></a><span class='definition'>mkRngDefine</span> <span class='keyglyph'>=</span> <span class='varid'>mkRngElement</span> <span class='str'>"define"</span>-<a name="line-206"></a>-<a name="line-207"></a><a name="mkRngEmpty"></a><span class='definition'>mkRngEmpty</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span>-<a name="line-208"></a><span class='definition'>mkRngEmpty</span> <span class='varid'>a</span> <span class='keyglyph'>=</span> <span class='varid'>mkRngElement</span> <span class='str'>"empty"</span> <span class='varid'>a</span> <span class='varid'>none</span>-<a name="line-209"></a>-<a name="line-210"></a><a name="mkRngGrammar"></a><span class='definition'>mkRngGrammar</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span>-<a name="line-211"></a><span class='definition'>mkRngGrammar</span> <span class='keyglyph'>=</span> <span class='varid'>mkRngElement</span> <span class='str'>"grammar"</span>-<a name="line-212"></a>-<a name="line-213"></a><a name="mkRngGroup"></a><span class='definition'>mkRngGroup</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span>-<a name="line-214"></a><span class='definition'>mkRngGroup</span> <span class='keyglyph'>=</span> <span class='varid'>mkRngElement</span> <span class='str'>"group"</span>-<a name="line-215"></a>-<a name="line-216"></a><a name="mkRngInterleave"></a><span class='definition'>mkRngInterleave</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span>-<a name="line-217"></a><span class='definition'>mkRngInterleave</span> <span class='keyglyph'>=</span> <span class='varid'>mkRngElement</span> <span class='str'>"interleave"</span>-<a name="line-218"></a>-<a name="line-219"></a><a name="mkRngName"></a><span class='definition'>mkRngName</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span>-<a name="line-220"></a><span class='definition'>mkRngName</span> <span class='keyglyph'>=</span> <span class='varid'>mkRngElement</span> <span class='str'>"name"</span>-<a name="line-221"></a>-<a name="line-222"></a><a name="mkRngNotAllowed"></a><span class='definition'>mkRngNotAllowed</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span>-<a name="line-223"></a><span class='definition'>mkRngNotAllowed</span> <span class='keyglyph'>=</span> <span class='varid'>mkRngElement</span> <span class='str'>"notAllowed"</span>-<a name="line-224"></a>-<a name="line-225"></a><a name="mkRngOneOrMore"></a><span class='definition'>mkRngOneOrMore</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span>-<a name="line-226"></a><span class='definition'>mkRngOneOrMore</span> <span class='keyglyph'>=</span> <span class='varid'>mkRngElement</span> <span class='str'>"oneOrMore"</span>-<a name="line-227"></a>-<a name="line-228"></a><a name="mkRngRef"></a><span class='definition'>mkRngRef</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span>-<a name="line-229"></a><span class='definition'>mkRngRef</span> <span class='keyglyph'>=</span> <span class='varid'>mkRngElement</span> <span class='str'>"ref"</span>-<a name="line-230"></a>-<a name="line-231"></a><a name="mkRngRelaxError"></a><span class='definition'>mkRngRelaxError</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span>-<a name="line-232"></a><span class='definition'>mkRngRelaxError</span> <span class='keyglyph'>=</span> <span class='varid'>mkRngElement</span> <span class='str'>"relaxError"</span>-<a name="line-233"></a>-<a name="line-234"></a><a name="mkRngStart"></a><span class='definition'>mkRngStart</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span>-<a name="line-235"></a><span class='definition'>mkRngStart</span> <span class='keyglyph'>=</span> <span class='varid'>mkRngElement</span> <span class='str'>"start"</span>-<a name="line-236"></a>-<a name="line-237"></a><a name="mkRngText"></a><span class='definition'>mkRngText</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span>-<a name="line-238"></a><span class='definition'>mkRngText</span> <span class='varid'>a</span> <span class='keyglyph'>=</span> <span class='varid'>mkRngElement</span> <span class='str'>"text"</span> <span class='varid'>a</span> <span class='varid'>none</span>-<a name="line-239"></a>-<a name="line-240"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-241"></a>-<a name="line-242"></a><a name="setRngName"></a><span class='definition'>setRngName</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-243"></a><span class='definition'>setRngName</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='varid'>setElemName</span> <span class='layout'>(</span><span class='varid'>mkQName</span> <span class='str'>""</span> <span class='varid'>n</span> <span class='varid'>relaxNamespace</span><span class='layout'>)</span>-<a name="line-244"></a>-<a name="line-245"></a><a name="setRngNameDiv"></a><span class='definition'>setRngNameDiv</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-246"></a><span class='definition'>setRngNameDiv</span> <span class='keyglyph'>=</span> <span class='varid'>setRngName</span> <span class='str'>"div"</span>-<a name="line-247"></a>-<a name="line-248"></a><a name="setRngNameRef"></a><span class='definition'>setRngNameRef</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-249"></a><span class='definition'>setRngNameRef</span> <span class='keyglyph'>=</span> <span class='varid'>setRngName</span> <span class='str'>"ref"</span>-<a name="line-250"></a>-<a name="line-251"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-252"></a>-<a name="line-253"></a><span class='comment'>-- Attributes</span>-<a name="line-254"></a>-<a name="line-255"></a><a name="isRngAttrAttribute"></a><span class='definition'>isRngAttrAttribute</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-256"></a><span class='definition'>isRngAttrAttribute</span> <span class='keyglyph'>=</span> <span class='varid'>isAttr</span> <span class='varop'>>>></span> <span class='varid'>hasRngName</span> <span class='str'>"attribute"</span>-<a name="line-257"></a>-<a name="line-258"></a><a name="isRngAttrCombine"></a><span class='definition'>isRngAttrCombine</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-259"></a><span class='definition'>isRngAttrCombine</span> <span class='keyglyph'>=</span> <span class='varid'>isAttr</span> <span class='varop'>>>></span> <span class='varid'>hasRngName</span> <span class='str'>"combine"</span>-<a name="line-260"></a>-<a name="line-261"></a><a name="isRngAttrDatatypeLibrary"></a><span class='definition'>isRngAttrDatatypeLibrary</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-262"></a><span class='definition'>isRngAttrDatatypeLibrary</span> <span class='keyglyph'>=</span> <span class='varid'>isAttr</span> <span class='varop'>>>></span> <span class='varid'>hasRngName</span> <span class='str'>"datatypeLibrary"</span>-<a name="line-263"></a>-<a name="line-264"></a><a name="isRngAttrHref"></a><span class='definition'>isRngAttrHref</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-265"></a><span class='definition'>isRngAttrHref</span> <span class='keyglyph'>=</span> <span class='varid'>isAttr</span> <span class='varop'>>>></span> <span class='varid'>hasRngName</span> <span class='str'>"href"</span>-<a name="line-266"></a>-<a name="line-267"></a><a name="isRngAttrName"></a><span class='definition'>isRngAttrName</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-268"></a><span class='definition'>isRngAttrName</span> <span class='keyglyph'>=</span> <span class='varid'>isAttr</span> <span class='varop'>>>></span> <span class='varid'>hasRngName</span> <span class='str'>"name"</span>-<a name="line-269"></a>-<a name="line-270"></a><a name="isRngAttrNs"></a><span class='definition'>isRngAttrNs</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-271"></a><span class='definition'>isRngAttrNs</span> <span class='keyglyph'>=</span> <span class='varid'>isAttr</span> <span class='varop'>>>></span> <span class='varid'>hasRngName</span> <span class='str'>"ns"</span>-<a name="line-272"></a>-<a name="line-273"></a><a name="isRngAttrType"></a><span class='definition'>isRngAttrType</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-274"></a><span class='definition'>isRngAttrType</span> <span class='keyglyph'>=</span> <span class='varid'>isAttr</span> <span class='varop'>>>></span> <span class='varid'>hasRngName</span> <span class='str'>"type"</span>-<a name="line-275"></a>-<a name="line-276"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-277"></a>-<a name="line-278"></a><a name="hasRngAttrAttribute"></a><span class='definition'>hasRngAttrAttribute</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-279"></a><span class='definition'>hasRngAttrAttribute</span> <span class='keyglyph'>=</span> <span class='varid'>hasAttr</span> <span class='str'>"attribute"</span>-<a name="line-280"></a>-<a name="line-281"></a><a name="hasRngAttrCombine"></a><span class='definition'>hasRngAttrCombine</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-282"></a><span class='definition'>hasRngAttrCombine</span> <span class='keyglyph'>=</span> <span class='varid'>hasAttr</span> <span class='str'>"combine"</span>-<a name="line-283"></a>-<a name="line-284"></a><a name="hasRngAttrDatatypeLibrary"></a><span class='definition'>hasRngAttrDatatypeLibrary</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-285"></a><span class='definition'>hasRngAttrDatatypeLibrary</span> <span class='keyglyph'>=</span> <span class='varid'>hasAttr</span> <span class='str'>"datatypeLibrary"</span>-<a name="line-286"></a>-<a name="line-287"></a><a name="hasRngAttrHref"></a><span class='definition'>hasRngAttrHref</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-288"></a><span class='definition'>hasRngAttrHref</span> <span class='keyglyph'>=</span> <span class='varid'>hasAttr</span> <span class='str'>"href"</span>-<a name="line-289"></a>-<a name="line-290"></a><a name="hasRngAttrName"></a><span class='definition'>hasRngAttrName</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-291"></a><span class='definition'>hasRngAttrName</span> <span class='keyglyph'>=</span> <span class='varid'>hasAttr</span> <span class='str'>"name"</span>-<a name="line-292"></a>-<a name="line-293"></a><a name="hasRngAttrNs"></a><span class='definition'>hasRngAttrNs</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-294"></a><span class='definition'>hasRngAttrNs</span> <span class='keyglyph'>=</span> <span class='varid'>hasAttr</span> <span class='str'>"ns"</span>-<a name="line-295"></a>-<a name="line-296"></a><a name="hasRngAttrType"></a><span class='definition'>hasRngAttrType</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-297"></a><span class='definition'>hasRngAttrType</span> <span class='keyglyph'>=</span> <span class='varid'>hasAttr</span> <span class='str'>"type"</span>-<a name="line-298"></a>-<a name="line-299"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-300"></a>-<a name="line-301"></a><a name="getRngAttrAttribute"></a><span class='definition'>getRngAttrAttribute</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>-<a name="line-302"></a><span class='definition'>getRngAttrAttribute</span> <span class='keyglyph'>=</span> <span class='varid'>getAttrValue</span> <span class='str'>"attribute"</span>-<a name="line-303"></a>-<a name="line-304"></a><a name="getRngAttrCombine"></a><span class='definition'>getRngAttrCombine</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>-<a name="line-305"></a><span class='definition'>getRngAttrCombine</span> <span class='keyglyph'>=</span> <span class='varid'>getAttrValue</span> <span class='str'>"combine"</span>-<a name="line-306"></a>-<a name="line-307"></a><a name="getRngAttrDatatypeLibrary"></a><span class='definition'>getRngAttrDatatypeLibrary</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>-<a name="line-308"></a><span class='definition'>getRngAttrDatatypeLibrary</span> <span class='keyglyph'>=</span> <span class='varid'>getAttrValue</span> <span class='str'>"datatypeLibrary"</span>-<a name="line-309"></a>-<a name="line-310"></a><a name="getRngAttrDescr"></a><span class='definition'>getRngAttrDescr</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>-<a name="line-311"></a><span class='definition'>getRngAttrDescr</span> <span class='keyglyph'>=</span> <span class='varid'>getAttrValue</span> <span class='str'>"descr"</span>-<a name="line-312"></a>-<a name="line-313"></a><a name="getRngAttrHref"></a><span class='definition'>getRngAttrHref</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>-<a name="line-314"></a><span class='definition'>getRngAttrHref</span> <span class='keyglyph'>=</span> <span class='varid'>getAttrValue</span> <span class='str'>"href"</span>-<a name="line-315"></a>-<a name="line-316"></a><a name="getRngAttrName"></a><span class='definition'>getRngAttrName</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>-<a name="line-317"></a><span class='definition'>getRngAttrName</span> <span class='keyglyph'>=</span> <span class='varid'>getAttrValue</span> <span class='str'>"name"</span>-<a name="line-318"></a>-<a name="line-319"></a><a name="getRngAttrNs"></a><span class='definition'>getRngAttrNs</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>-<a name="line-320"></a><span class='definition'>getRngAttrNs</span> <span class='keyglyph'>=</span> <span class='varid'>getAttrValue</span> <span class='str'>"ns"</span>-<a name="line-321"></a>-<a name="line-322"></a><a name="getRngAttrType"></a><span class='definition'>getRngAttrType</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>-<a name="line-323"></a><span class='definition'>getRngAttrType</span> <span class='keyglyph'>=</span> <span class='varid'>getAttrValue</span> <span class='str'>"type"</span>-<a name="line-324"></a>-<a name="line-325"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-326"></a>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-RelaxNG-CreatePattern.html
@@ -1,359 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- |</span>-<a name="line-2"></a><span class='comment'>-- </span>-<a name="line-3"></a><span class='comment'>-- Creates the 'Pattern' datastructure from a simplified Relax NG schema. </span>-<a name="line-4"></a><span class='comment'>-- The created datastructure is used in the validation algorithm</span>-<a name="line-5"></a><span class='comment'>-- (see also: "Text.XML.HXT.RelaxNG.Validation")</span>-<a name="line-6"></a>-<a name="line-7"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>CreatePattern</span>-<a name="line-8"></a> <span class='layout'>(</span> <span class='varid'>createPatternFromXmlTree</span>-<a name="line-9"></a> <span class='layout'>,</span> <span class='varid'>createNameClass</span>-<a name="line-10"></a> <span class='layout'>,</span> <span class='varid'>firstChild</span>-<a name="line-11"></a> <span class='layout'>,</span> <span class='varid'>lastChild</span>-<a name="line-12"></a> <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>PatternFunctions</span>-<a name="line-13"></a> <span class='layout'>)</span>-<a name="line-14"></a><span class='keyword'>where</span>-<a name="line-15"></a>-<a name="line-16"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ListArrows</span>-<a name="line-17"></a>-<a name="line-18"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>-<a name="line-19"></a>-<a name="line-20"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlArrow</span>-<a name="line-21"></a>-<a name="line-22"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>DataTypes</span>-<a name="line-23"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>BasicArrows</span>-<a name="line-24"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>PatternFunctions</span>-<a name="line-25"></a>-<a name="line-26"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>-<a name="line-27"></a> <span class='layout'>(</span> <span class='varid'>fromMaybe</span> <span class='layout'>)</span>-<a name="line-28"></a>-<a name="line-29"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>List</span>-<a name="line-30"></a> <span class='layout'>(</span> <span class='varid'>isPrefixOf</span> <span class='layout'>)</span>-<a name="line-31"></a>-<a name="line-32"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-33"></a>-<a name="line-34"></a><span class='comment'>-- | Creates the 'Pattern' datastructure from a simplified Relax NG schema.</span>-<a name="line-35"></a>-<a name="line-36"></a><a name="createPatternFromXmlTree"></a><span class='definition'>createPatternFromXmlTree</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>Pattern</span>-<a name="line-37"></a><span class='definition'>createPatternFromXmlTree</span> <span class='keyglyph'>=</span> <span class='varid'>createPatternFromXml</span> <span class='varop'>$<</span> <span class='varid'>createEnv</span>-<a name="line-38"></a> <span class='keyword'>where</span>-<a name="line-39"></a> <span class='comment'>-- | Selects all define-pattern and creates an environment list.</span>-<a name="line-40"></a> <span class='comment'>-- Each list entry maps the define name to the children of the define-pattern.</span>-<a name="line-41"></a> <span class='comment'>-- The map is used to replace a ref-pattern with the referenced define-pattern.</span>-<a name="line-42"></a> <span class='varid'>createEnv</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>Env</span>-<a name="line-43"></a> <span class='varid'>createEnv</span> <span class='keyglyph'>=</span> <span class='varid'>listA</span> <span class='varop'>$</span> <span class='varid'>deep</span> <span class='varid'>isRngDefine</span> -<a name="line-44"></a> <span class='varop'>>>></span> -<a name="line-45"></a> <span class='layout'>(</span><span class='varid'>getRngAttrName</span> <span class='varop'>&&&</span> <span class='varid'>getChildren</span><span class='layout'>)</span>-<a name="line-46"></a>-<a name="line-47"></a>-<a name="line-48"></a><span class='comment'>-- | Transforms each XML-element to the corresponding pattern</span>-<a name="line-49"></a>-<a name="line-50"></a><a name="createPatternFromXml"></a><span class='definition'>createPatternFromXml</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span> <span class='keyglyph'>-></span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>Pattern</span>-<a name="line-51"></a><span class='definition'>createPatternFromXml</span> <span class='varid'>env</span>-<a name="line-52"></a> <span class='keyglyph'>=</span> <span class='varid'>choiceA</span> <span class='keyglyph'>[</span>-<a name="line-53"></a> <span class='varid'>isRoot</span> <span class='conop'>:-></span> <span class='varid'>processRoot</span> <span class='varid'>env</span><span class='layout'>,</span>-<a name="line-54"></a> <span class='varid'>isRngEmpty</span> <span class='conop'>:-></span> <span class='varid'>constA</span> <span class='conid'>Empty</span><span class='layout'>,</span>-<a name="line-55"></a> <span class='varid'>isRngNotAllowed</span> <span class='conop'>:-></span> <span class='varid'>mkNotAllowed</span><span class='layout'>,</span>-<a name="line-56"></a> <span class='varid'>isRngText</span> <span class='conop'>:-></span> <span class='varid'>constA</span> <span class='conid'>Text</span><span class='layout'>,</span>-<a name="line-57"></a> <span class='varid'>isRngChoice</span> <span class='conop'>:-></span> <span class='varid'>mkRelaxChoice</span> <span class='varid'>env</span><span class='layout'>,</span>-<a name="line-58"></a> <span class='varid'>isRngInterleave</span> <span class='conop'>:-></span> <span class='varid'>mkRelaxInterleave</span> <span class='varid'>env</span><span class='layout'>,</span>-<a name="line-59"></a> <span class='varid'>isRngGroup</span> <span class='conop'>:-></span> <span class='varid'>mkRelaxGroup</span> <span class='varid'>env</span><span class='layout'>,</span>-<a name="line-60"></a> <span class='varid'>isRngOneOrMore</span> <span class='conop'>:-></span> <span class='varid'>mkRelaxOneOrMore</span> <span class='varid'>env</span><span class='layout'>,</span>-<a name="line-61"></a> <span class='varid'>isRngList</span> <span class='conop'>:-></span> <span class='varid'>mkRelaxList</span> <span class='varid'>env</span><span class='layout'>,</span>-<a name="line-62"></a> <span class='varid'>isRngData</span> <span class='conop'>:-></span> <span class='varid'>mkRelaxData</span> <span class='varid'>env</span><span class='layout'>,</span>-<a name="line-63"></a> <span class='varid'>isRngValue</span> <span class='conop'>:-></span> <span class='varid'>mkRelaxValue</span><span class='layout'>,</span>-<a name="line-64"></a> <span class='varid'>isRngAttribute</span> <span class='conop'>:-></span> <span class='varid'>mkRelaxAttribute</span> <span class='varid'>env</span><span class='layout'>,</span>-<a name="line-65"></a> <span class='varid'>isRngElement</span> <span class='conop'>:-></span> <span class='varid'>mkRelaxElement</span> <span class='varid'>env</span><span class='layout'>,</span>-<a name="line-66"></a> <span class='varid'>isRngRef</span> <span class='conop'>:-></span> <span class='varid'>mkRelaxRef</span> <span class='varid'>env</span><span class='layout'>,</span>-<a name="line-67"></a> <span class='varid'>this</span> <span class='conop'>:-></span> <span class='varid'>mkRelaxError</span> <span class='str'>""</span>-<a name="line-68"></a> <span class='keyglyph'>]</span>-<a name="line-69"></a>-<a name="line-70"></a> -<a name="line-71"></a><a name="processRoot"></a><span class='definition'>processRoot</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span> <span class='keyglyph'>-></span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>Pattern</span>-<a name="line-72"></a><span class='definition'>processRoot</span> <span class='varid'>env</span>-<a name="line-73"></a> <span class='keyglyph'>=</span> <span class='varid'>getChildren</span>-<a name="line-74"></a> <span class='varop'>>>></span> -<a name="line-75"></a> <span class='varid'>choiceA</span> <span class='keyglyph'>[</span>-<a name="line-76"></a> <span class='varid'>isRngRelaxError</span> <span class='conop'>:-></span> <span class='layout'>(</span><span class='varid'>mkRelaxError</span> <span class='varop'>$<</span> <span class='varid'>getRngAttrDescr</span><span class='layout'>)</span><span class='layout'>,</span>-<a name="line-77"></a> <span class='varid'>isRngGrammar</span> <span class='conop'>:-></span> <span class='layout'>(</span><span class='varid'>processGrammar</span> <span class='varid'>env</span><span class='layout'>)</span><span class='layout'>,</span>-<a name="line-78"></a> <span class='varid'>this</span> <span class='conop'>:-></span> <span class='layout'>(</span><span class='varid'>mkRelaxError</span> <span class='str'>"no grammar-pattern in schema"</span><span class='layout'>)</span>-<a name="line-79"></a> <span class='keyglyph'>]</span>-<a name="line-80"></a>-<a name="line-81"></a>-<a name="line-82"></a><a name="processGrammar"></a><span class='definition'>processGrammar</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span> <span class='keyglyph'>-></span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>Pattern</span>-<a name="line-83"></a><span class='definition'>processGrammar</span> <span class='varid'>env</span>-<a name="line-84"></a> <span class='keyglyph'>=</span> <span class='varid'>getChildren</span>-<a name="line-85"></a> <span class='varop'>>>></span> -<a name="line-86"></a> <span class='varid'>choiceA</span> <span class='keyglyph'>[</span>-<a name="line-87"></a> <span class='varid'>isRngDefine</span> <span class='conop'>:-></span> <span class='varid'>none</span><span class='layout'>,</span>-<a name="line-88"></a> <span class='varid'>isRngRelaxError</span> <span class='conop'>:-></span> <span class='layout'>(</span><span class='varid'>mkRelaxError</span> <span class='varop'>$<</span> <span class='varid'>getAttrValue</span> <span class='str'>"desc"</span><span class='layout'>)</span><span class='layout'>,</span>-<a name="line-89"></a> <span class='varid'>isRngStart</span> <span class='conop'>:-></span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>>>></span> <span class='varid'>createPatternFromXml</span> <span class='varid'>env</span><span class='layout'>)</span><span class='layout'>,</span>-<a name="line-90"></a> <span class='varid'>this</span> <span class='conop'>:-></span> <span class='layout'>(</span><span class='varid'>mkRelaxError</span> <span class='str'>"no start-pattern in schema"</span><span class='layout'>)</span>-<a name="line-91"></a> <span class='keyglyph'>]</span>-<a name="line-92"></a>-<a name="line-93"></a>-<a name="line-94"></a><a name="mkRelaxRef"></a><span class='comment'>{- |-<a name="line-95"></a> Transforms a ref-element.-<a name="line-96"></a> The value of the name-attribute is looked up in the environment list-<a name="line-97"></a> to find the corresponding define-pattern. -<a name="line-98"></a> Haskells lazy-evaluation is used to transform circular structures.-<a name="line-99"></a>-}</span>-<a name="line-100"></a><span class='definition'>mkRelaxRef</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span> <span class='keyglyph'>-></span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>Pattern</span>-<a name="line-101"></a><span class='definition'>mkRelaxRef</span> <span class='varid'>e</span>-<a name="line-102"></a> <span class='keyglyph'>=</span> <span class='varid'>getRngAttrName</span>-<a name="line-103"></a> <span class='varop'>>>></span>-<a name="line-104"></a> <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>n</span> <span class='keyglyph'>-></span> <span class='varid'>fromMaybe</span> <span class='layout'>(</span><span class='varid'>notAllowed</span> <span class='varop'>$</span> <span class='str'>"define-pattern with name "</span> <span class='varop'>++</span> <span class='varid'>n</span> <span class='varop'>++</span> <span class='str'>" not found"</span><span class='layout'>)</span>-<a name="line-105"></a> <span class='varop'>.</span> <span class='varid'>lookup</span> <span class='varid'>n</span> <span class='varop'>$</span> <span class='varid'>transformEnv</span> <span class='varid'>e</span>-<a name="line-106"></a> <span class='layout'>)</span>-<a name="line-107"></a> <span class='keyword'>where</span>-<a name="line-108"></a> <span class='varid'>transformEnv</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>XmlTree</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>Pattern</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-109"></a> <span class='varid'>transformEnv</span> <span class='varid'>env</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>treeName</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>transformEnvElem</span> <span class='varid'>tree</span> <span class='varid'>env</span><span class='layout'>)</span><span class='layout'>)</span> <span class='keyglyph'>|</span> <span class='layout'>(</span><span class='varid'>treeName</span><span class='layout'>,</span> <span class='varid'>tree</span><span class='layout'>)</span> <span class='keyglyph'><-</span> <span class='varid'>env</span><span class='keyglyph'>]</span>-<a name="line-110"></a> <span class='varid'>transformEnvElem</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>XmlTree</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>Pattern</span>-<a name="line-111"></a> <span class='varid'>transformEnvElem</span> <span class='varid'>tree</span> <span class='varid'>env</span> <span class='keyglyph'>=</span> <span class='varid'>head</span> <span class='varop'>$</span> <span class='varid'>runLA</span> <span class='layout'>(</span><span class='varid'>createPatternFromXml</span> <span class='varid'>env</span><span class='layout'>)</span> <span class='varid'>tree</span> -<a name="line-112"></a>-<a name="line-113"></a>-<a name="line-114"></a><a name="mkNotAllowed"></a><span class='comment'>-- | Transforms a notAllowed-element.</span>-<a name="line-115"></a><span class='definition'>mkNotAllowed</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>Pattern</span>-<a name="line-116"></a><span class='definition'>mkNotAllowed</span> <span class='keyglyph'>=</span> <span class='varid'>constA</span> <span class='varop'>$</span> <span class='varid'>notAllowed</span> <span class='str'>"notAllowed-pattern in Relax NG schema definition"</span>-<a name="line-117"></a>-<a name="line-118"></a>-<a name="line-119"></a><a name="mkRelaxError"></a><span class='comment'>-- | Creates an error message.</span>-<a name="line-120"></a><span class='definition'>mkRelaxError</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>Pattern</span>-<a name="line-121"></a><span class='definition'>mkRelaxError</span> <span class='varid'>errStr</span>-<a name="line-122"></a> <span class='keyglyph'>=</span> <span class='varid'>choiceA</span> <span class='keyglyph'>[</span>-<a name="line-123"></a> <span class='varid'>isRngRelaxError</span> <span class='conop'>:-></span> <span class='layout'>(</span><span class='varid'>getRngAttrDescr</span> <span class='varop'>>>></span> <span class='varid'>arr</span> <span class='varid'>notAllowed</span><span class='layout'>)</span><span class='layout'>,</span>-<a name="line-124"></a> <span class='varid'>isElem</span> <span class='conop'>:-></span> <span class='layout'>(</span> <span class='varid'>getName</span>-<a name="line-125"></a> <span class='varop'>>>></span>-<a name="line-126"></a> <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>n</span> <span class='keyglyph'>-></span> <span class='varid'>notAllowed</span> <span class='varop'>$</span> <span class='str'>"Pattern "</span> <span class='varop'>++</span> <span class='varid'>n</span> <span class='varop'>++</span> -<a name="line-127"></a> <span class='str'>" is not allowed in Relax NG schema"</span>-<a name="line-128"></a> <span class='layout'>)</span>-<a name="line-129"></a> <span class='layout'>)</span><span class='layout'>,</span>-<a name="line-130"></a> <span class='varid'>isAttr</span> <span class='conop'>:-></span> <span class='layout'>(</span> <span class='varid'>getName</span>-<a name="line-131"></a> <span class='varop'>>>></span>-<a name="line-132"></a> <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>n</span> <span class='keyglyph'>-></span> <span class='varid'>notAllowed</span> <span class='varop'>$</span> <span class='str'>"Attribute "</span> <span class='varop'>++</span> <span class='varid'>n</span> <span class='varop'>++</span> -<a name="line-133"></a> <span class='str'>" is not allowed in Relax NG schema"</span>-<a name="line-134"></a> <span class='layout'>)</span>-<a name="line-135"></a> <span class='layout'>)</span><span class='layout'>,</span>-<a name="line-136"></a> <span class='varid'>isError</span> <span class='conop'>:-></span> <span class='layout'>(</span><span class='varid'>getErrorMsg</span> <span class='varop'>>>></span> <span class='varid'>arr</span> <span class='varid'>notAllowed</span><span class='layout'>)</span><span class='layout'>,</span> -<a name="line-137"></a> <span class='varid'>this</span> <span class='conop'>:-></span> <span class='layout'>(</span><span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>e</span> <span class='keyglyph'>-></span> <span class='varid'>notAllowed</span> <span class='varop'>$</span> <span class='keyword'>if</span> <span class='varid'>errStr</span> <span class='varop'>/=</span> <span class='str'>""</span>-<a name="line-138"></a> <span class='keyword'>then</span> <span class='varid'>errStr</span>-<a name="line-139"></a> <span class='keyword'>else</span> <span class='str'>"Can't create pattern from "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>e</span><span class='layout'>)</span>-<a name="line-140"></a> <span class='layout'>)</span>-<a name="line-141"></a> <span class='keyglyph'>]</span>-<a name="line-142"></a>-<a name="line-143"></a>-<a name="line-144"></a><a name="mkRelaxChoice"></a><span class='comment'>-- | Transforms a choice-element.</span>-<a name="line-145"></a><span class='definition'>mkRelaxChoice</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span> <span class='keyglyph'>-></span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>Pattern</span>-<a name="line-146"></a><span class='definition'>mkRelaxChoice</span> <span class='varid'>env</span>-<a name="line-147"></a> <span class='keyglyph'>=</span> <span class='varid'>ifA</span> <span class='layout'>(</span> <span class='varid'>getChildren</span> <span class='varop'>>>.</span>-<a name="line-148"></a> <span class='layout'>(</span> <span class='keyglyph'>\</span> <span class='varid'>l</span> <span class='keyglyph'>-></span> <span class='keyword'>if</span> <span class='varid'>length</span> <span class='varid'>l</span> <span class='varop'>==</span> <span class='num'>1</span> <span class='keyword'>then</span> <span class='varid'>l</span> <span class='keyword'>else</span> <span class='conid'>[]</span> <span class='layout'>)</span>-<a name="line-149"></a> <span class='layout'>)</span>-<a name="line-150"></a> <span class='layout'>(</span> <span class='varid'>createPatternFromXml</span> <span class='varid'>env</span> <span class='layout'>)</span>-<a name="line-151"></a> <span class='layout'>(</span> <span class='varid'>getTwoChildrenPattern</span> <span class='varid'>env</span> <span class='varop'>>>></span> <span class='varid'>arr2</span> <span class='conid'>Choice</span> <span class='layout'>)</span>-<a name="line-152"></a>-<a name="line-153"></a><a name="mkRelaxInterleave"></a><span class='comment'>-- | Transforms a interleave-element.</span>-<a name="line-154"></a><span class='definition'>mkRelaxInterleave</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span> <span class='keyglyph'>-></span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>Pattern</span>-<a name="line-155"></a><span class='definition'>mkRelaxInterleave</span> <span class='varid'>env</span>-<a name="line-156"></a> <span class='keyglyph'>=</span> <span class='varid'>getTwoChildrenPattern</span> <span class='varid'>env</span>-<a name="line-157"></a> <span class='varop'>>>></span> -<a name="line-158"></a> <span class='varid'>arr2</span> <span class='conid'>Interleave</span>-<a name="line-159"></a>-<a name="line-160"></a>-<a name="line-161"></a><a name="mkRelaxGroup"></a><span class='comment'>-- | Transforms a group-element.</span>-<a name="line-162"></a><span class='definition'>mkRelaxGroup</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span> <span class='keyglyph'>-></span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>Pattern</span>-<a name="line-163"></a><span class='definition'>mkRelaxGroup</span> <span class='varid'>env</span>-<a name="line-164"></a> <span class='keyglyph'>=</span> <span class='varid'>getTwoChildrenPattern</span> <span class='varid'>env</span>-<a name="line-165"></a> <span class='varop'>>>></span>-<a name="line-166"></a> <span class='varid'>arr2</span> <span class='conid'>Group</span>-<a name="line-167"></a>-<a name="line-168"></a>-<a name="line-169"></a><a name="mkRelaxOneOrMore"></a><span class='comment'>-- | Transforms a oneOrMore-element.</span>-<a name="line-170"></a><span class='definition'>mkRelaxOneOrMore</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span> <span class='keyglyph'>-></span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>Pattern</span>-<a name="line-171"></a><span class='definition'>mkRelaxOneOrMore</span> <span class='varid'>env</span>-<a name="line-172"></a> <span class='keyglyph'>=</span> <span class='varid'>getOneChildPattern</span> <span class='varid'>env</span>-<a name="line-173"></a> <span class='varop'>>>></span> -<a name="line-174"></a> <span class='varid'>arr</span> <span class='conid'>OneOrMore</span>-<a name="line-175"></a>-<a name="line-176"></a>-<a name="line-177"></a><a name="mkRelaxList"></a><span class='comment'>-- | Transforms a list-element.</span>-<a name="line-178"></a><span class='definition'>mkRelaxList</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span> <span class='keyglyph'>-></span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>Pattern</span>-<a name="line-179"></a><span class='definition'>mkRelaxList</span> <span class='varid'>env</span>-<a name="line-180"></a> <span class='keyglyph'>=</span> <span class='varid'>getOneChildPattern</span> <span class='varid'>env</span>-<a name="line-181"></a> <span class='varop'>>>></span>-<a name="line-182"></a> <span class='varid'>arr</span> <span class='conid'>List</span>-<a name="line-183"></a>-<a name="line-184"></a>-<a name="line-185"></a><a name="mkRelaxData"></a><span class='comment'>-- | Transforms a data- or dataExcept-element.</span>-<a name="line-186"></a><span class='definition'>mkRelaxData</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span> <span class='keyglyph'>-></span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>Pattern</span>-<a name="line-187"></a><span class='definition'>mkRelaxData</span> <span class='varid'>env</span> -<a name="line-188"></a> <span class='keyglyph'>=</span> <span class='varid'>ifA</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>>>></span> <span class='varid'>isRngExcept</span><span class='layout'>)</span>-<a name="line-189"></a> <span class='layout'>(</span><span class='varid'>processDataExcept</span> <span class='varop'>>>></span> <span class='varid'>arr3</span> <span class='conid'>DataExcept</span><span class='layout'>)</span>-<a name="line-190"></a> <span class='layout'>(</span><span class='varid'>processData</span> <span class='varop'>>>></span> <span class='varid'>arr2</span> <span class='conid'>Data</span><span class='layout'>)</span>-<a name="line-191"></a> <span class='keyword'>where</span>-<a name="line-192"></a> <span class='varid'>processDataExcept</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='layout'>(</span><span class='conid'>Datatype</span><span class='layout'>,</span> <span class='layout'>(</span><span class='conid'>ParamList</span><span class='layout'>,</span> <span class='conid'>Pattern</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-193"></a> <span class='varid'>processDataExcept</span> <span class='keyglyph'>=</span> <span class='varid'>getDatatype</span> <span class='varop'>&&&</span> <span class='varid'>getParamList</span> <span class='varop'>&&&</span> -<a name="line-194"></a> <span class='layout'>(</span> <span class='varid'>getChildren</span>-<a name="line-195"></a> <span class='varop'>>>></span> -<a name="line-196"></a> <span class='varid'>isRngExcept</span>-<a name="line-197"></a> <span class='varop'>>>></span> -<a name="line-198"></a> <span class='varid'>getChildren</span>-<a name="line-199"></a> <span class='varop'>>>></span>-<a name="line-200"></a> <span class='varid'>createPatternFromXml</span> <span class='varid'>env</span>-<a name="line-201"></a> <span class='layout'>)</span>-<a name="line-202"></a> <span class='varid'>processData</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='layout'>(</span><span class='conid'>Datatype</span><span class='layout'>,</span> <span class='conid'>ParamList</span><span class='layout'>)</span>-<a name="line-203"></a> <span class='varid'>processData</span> <span class='keyglyph'>=</span> <span class='varid'>getDatatype</span> <span class='varop'>&&&</span> <span class='varid'>getParamList</span>-<a name="line-204"></a> <span class='varid'>getParamList</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>ParamList</span>-<a name="line-205"></a> <span class='varid'>getParamList</span> <span class='keyglyph'>=</span> <span class='varid'>listA</span> <span class='varop'>$</span> <span class='varid'>getChildren</span>-<a name="line-206"></a> <span class='varop'>>>></span>-<a name="line-207"></a> <span class='varid'>isRngParam</span>-<a name="line-208"></a> <span class='varop'>>>></span> -<a name="line-209"></a> <span class='layout'>(</span><span class='varid'>getRngAttrName</span> <span class='varop'>&&&</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>>>></span> <span class='varid'>getText</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-210"></a> -<a name="line-211"></a>-<a name="line-212"></a><a name="mkRelaxValue"></a><span class='comment'>-- | Transforms a value-element.</span>-<a name="line-213"></a><span class='definition'>mkRelaxValue</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>Pattern</span> -<a name="line-214"></a><span class='definition'>mkRelaxValue</span> <span class='keyglyph'>=</span> <span class='varid'>getDatatype</span> <span class='varop'>&&&</span> <span class='varid'>getValue</span> <span class='varop'>&&&</span> <span class='varid'>getContext</span>-<a name="line-215"></a> <span class='varop'>>>></span>-<a name="line-216"></a> <span class='varid'>arr3</span> <span class='conid'>Value</span> -<a name="line-217"></a> <span class='keyword'>where</span>-<a name="line-218"></a> <span class='varid'>getContext</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>Context</span>-<a name="line-219"></a> <span class='varid'>getContext</span> <span class='keyglyph'>=</span> <span class='varid'>getAttrValue</span> <span class='varid'>contextBaseAttr</span> <span class='varop'>&&&</span> <span class='varid'>getMapping</span>-<a name="line-220"></a> <span class='varid'>getMapping</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>Prefix</span><span class='layout'>,</span> <span class='conid'>Uri</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-221"></a> <span class='varid'>getMapping</span> <span class='keyglyph'>=</span> <span class='varid'>listA</span> <span class='varop'>$</span> <span class='varid'>getAttrl</span> <span class='varop'>>>></span> -<a name="line-222"></a> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>getName</span> <span class='varop'>>>></span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>contextAttributes</span> <span class='varop'>`isPrefixOf`</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-223"></a> <span class='varop'>`guards`</span>-<a name="line-224"></a> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>getName</span> <span class='varop'>>>></span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='varid'>drop</span> <span class='varop'>$</span> <span class='varid'>length</span> <span class='varid'>contextAttributes</span><span class='layout'>)</span><span class='layout'>)</span> -<a name="line-225"></a> <span class='varop'>&&&</span>-<a name="line-226"></a> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>>>></span> <span class='varid'>getText</span><span class='layout'>)</span>-<a name="line-227"></a> <span class='layout'>)</span>-<a name="line-228"></a> <span class='layout'>)</span>-<a name="line-229"></a> <span class='varid'>getValue</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>-<a name="line-230"></a> <span class='varid'>getValue</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>>>></span> <span class='varid'>getText</span><span class='layout'>)</span> <span class='varop'>`orElse`</span> <span class='layout'>(</span><span class='varid'>constA</span> <span class='str'>""</span><span class='layout'>)</span>-<a name="line-231"></a>-<a name="line-232"></a>-<a name="line-233"></a><a name="getDatatype"></a><span class='definition'>getDatatype</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>Datatype</span>-<a name="line-234"></a><span class='definition'>getDatatype</span> <span class='keyglyph'>=</span> <span class='varid'>getRngAttrDatatypeLibrary</span>-<a name="line-235"></a> <span class='varop'>&&&</span>-<a name="line-236"></a> <span class='varid'>getRngAttrType</span>-<a name="line-237"></a>-<a name="line-238"></a>-<a name="line-239"></a><span class='comment'>-- | Transforms a attribute-element.</span>-<a name="line-240"></a><span class='comment'>-- The first child is a 'NameClass', the second (the last) one a pattern.</span>-<a name="line-241"></a>-<a name="line-242"></a><a name="mkRelaxAttribute"></a><span class='definition'>mkRelaxAttribute</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span> <span class='keyglyph'>-></span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>Pattern</span>-<a name="line-243"></a><span class='definition'>mkRelaxAttribute</span> <span class='varid'>env</span>-<a name="line-244"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>firstChild</span> <span class='varop'>>>></span> <span class='varid'>createNameClass</span> <span class='layout'>)</span>-<a name="line-245"></a> <span class='varop'>&&&</span>-<a name="line-246"></a> <span class='layout'>(</span> <span class='varid'>lastChild</span> <span class='varop'>>>></span> <span class='varid'>createPatternFromXml</span> <span class='varid'>env</span> <span class='layout'>)</span>-<a name="line-247"></a> <span class='layout'>)</span>-<a name="line-248"></a> <span class='varop'>>>></span>-<a name="line-249"></a> <span class='varid'>arr2</span> <span class='conid'>Attribute</span>-<a name="line-250"></a>-<a name="line-251"></a><a name="mkRelaxElement"></a><span class='comment'>-- | Transforms a element-element.</span>-<a name="line-252"></a><span class='comment'>-- The first child is a 'NameClass', the second (the last) one a pattern.</span>-<a name="line-253"></a><span class='definition'>mkRelaxElement</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span> <span class='keyglyph'>-></span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>Pattern</span>-<a name="line-254"></a><span class='definition'>mkRelaxElement</span> <span class='varid'>env</span>-<a name="line-255"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>firstChild</span> <span class='varop'>>>></span> <span class='varid'>createNameClass</span> <span class='layout'>)</span>-<a name="line-256"></a> <span class='varop'>&&&</span>-<a name="line-257"></a> <span class='layout'>(</span> <span class='varid'>lastChild</span> <span class='varop'>>>></span> <span class='varid'>createPatternFromXml</span> <span class='varid'>env</span> <span class='layout'>)</span>-<a name="line-258"></a> <span class='layout'>)</span>-<a name="line-259"></a> <span class='varop'>>>></span>-<a name="line-260"></a> <span class='varid'>arr2</span> <span class='conid'>Element</span>-<a name="line-261"></a>-<a name="line-262"></a>-<a name="line-263"></a><a name="createNameClass"></a><span class='comment'>-- | Creates a 'NameClass' from an \"anyName\"-, \"nsName\"- or \"name\"-Pattern, </span>-<a name="line-264"></a><span class='definition'>createNameClass</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>NameClass</span>-<a name="line-265"></a><span class='definition'>createNameClass</span>-<a name="line-266"></a> <span class='keyglyph'>=</span> <span class='varid'>choiceA</span>-<a name="line-267"></a> <span class='keyglyph'>[</span> <span class='varid'>isRngAnyName</span> <span class='conop'>:-></span> <span class='varid'>processAnyName</span>-<a name="line-268"></a> <span class='layout'>,</span> <span class='varid'>isRngNsName</span> <span class='conop'>:-></span> <span class='varid'>processNsName</span>-<a name="line-269"></a> <span class='layout'>,</span> <span class='varid'>isRngName</span> <span class='conop'>:-></span> <span class='varid'>processName</span>-<a name="line-270"></a> <span class='layout'>,</span> <span class='varid'>isRngChoice</span> <span class='conop'>:-></span> <span class='varid'>processChoice</span>-<a name="line-271"></a> <span class='layout'>,</span> <span class='varid'>this</span> <span class='conop'>:-></span> <span class='varid'>mkNameClassError</span>-<a name="line-272"></a> <span class='keyglyph'>]</span>-<a name="line-273"></a> <span class='keyword'>where</span>-<a name="line-274"></a> <span class='varid'>processAnyName</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>NameClass</span>-<a name="line-275"></a> <span class='varid'>processAnyName</span>-<a name="line-276"></a> <span class='keyglyph'>=</span> <span class='varid'>ifA</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>>>></span> <span class='varid'>isRngExcept</span><span class='layout'>)</span>-<a name="line-277"></a> <span class='layout'>(</span> <span class='varid'>getChildren</span>-<a name="line-278"></a> <span class='varop'>>>></span> <span class='varid'>getChildren</span>-<a name="line-279"></a> <span class='varop'>>>></span> <span class='varid'>createNameClass</span>-<a name="line-280"></a> <span class='varop'>>>></span> <span class='varid'>arr</span> <span class='conid'>AnyNameExcept</span>-<a name="line-281"></a> <span class='layout'>)</span>-<a name="line-282"></a> <span class='layout'>(</span> <span class='varid'>constA</span> <span class='conid'>AnyName</span> <span class='layout'>)</span>-<a name="line-283"></a>-<a name="line-284"></a> <span class='varid'>processNsName</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>NameClass</span>-<a name="line-285"></a> <span class='varid'>processNsName</span>-<a name="line-286"></a> <span class='keyglyph'>=</span> <span class='varid'>ifA</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>>>></span> <span class='varid'>isRngExcept</span><span class='layout'>)</span>-<a name="line-287"></a> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>getRngAttrNs</span> -<a name="line-288"></a> <span class='varop'>&&&</span>-<a name="line-289"></a> <span class='layout'>(</span> <span class='varid'>getChildren</span> <span class='varop'>>>></span> <span class='varid'>getChildren</span> <span class='varop'>>>></span> <span class='varid'>createNameClass</span> <span class='layout'>)</span>-<a name="line-290"></a> <span class='layout'>)</span>-<a name="line-291"></a> <span class='varop'>>>></span> -<a name="line-292"></a> <span class='varid'>arr2</span> <span class='conid'>NsNameExcept</span>-<a name="line-293"></a> <span class='layout'>)</span>-<a name="line-294"></a> <span class='layout'>(</span> <span class='varid'>getRngAttrNs</span> <span class='varop'>>>></span> <span class='varid'>arr</span> <span class='conid'>NsName</span> <span class='layout'>)</span> -<a name="line-295"></a>-<a name="line-296"></a> <span class='varid'>processName</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>NameClass</span>-<a name="line-297"></a> <span class='varid'>processName</span>-<a name="line-298"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>getRngAttrNs</span> <span class='varop'>&&&</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>>>></span> <span class='varid'>getText</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varop'>>>></span> <span class='varid'>arr2</span> <span class='conid'>Name</span>-<a name="line-299"></a>-<a name="line-300"></a> <span class='varid'>processChoice</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>NameClass</span>-<a name="line-301"></a> <span class='varid'>processChoice</span>-<a name="line-302"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>firstChild</span> <span class='varop'>>>></span> <span class='varid'>createNameClass</span> <span class='layout'>)</span>-<a name="line-303"></a> <span class='varop'>&&&</span>-<a name="line-304"></a> <span class='layout'>(</span> <span class='varid'>lastChild</span> <span class='varop'>>>></span> <span class='varid'>createNameClass</span> <span class='layout'>)</span>-<a name="line-305"></a> <span class='layout'>)</span>-<a name="line-306"></a> <span class='varop'>>>></span>-<a name="line-307"></a> <span class='varid'>arr2</span> <span class='conid'>NameClassChoice</span>-<a name="line-308"></a> -<a name="line-309"></a><a name="mkNameClassError"></a><span class='definition'>mkNameClassError</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>NameClass</span>-<a name="line-310"></a><span class='definition'>mkNameClassError</span> -<a name="line-311"></a> <span class='keyglyph'>=</span> <span class='varid'>choiceA</span> <span class='keyglyph'>[</span> <span class='varid'>isRngRelaxError</span>-<a name="line-312"></a> <span class='conop'>:-></span> <span class='layout'>(</span> <span class='varid'>getRngAttrDescr</span>-<a name="line-313"></a> <span class='varop'>>>></span>-<a name="line-314"></a> <span class='varid'>arr</span> <span class='conid'>NCError</span>-<a name="line-315"></a> <span class='layout'>)</span>-<a name="line-316"></a> <span class='layout'>,</span> <span class='varid'>isElem</span> <span class='conop'>:-></span> <span class='layout'>(</span> <span class='varid'>getName</span>-<a name="line-317"></a> <span class='varop'>>>></span>-<a name="line-318"></a> <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>n</span> <span class='keyglyph'>-></span> <span class='conid'>NCError</span> <span class='layout'>(</span><span class='str'>"Can't create name class from element "</span> <span class='varop'>++</span> <span class='varid'>n</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-319"></a> <span class='layout'>)</span>-<a name="line-320"></a> <span class='layout'>,</span> <span class='varid'>isAttr</span> <span class='conop'>:-></span> <span class='layout'>(</span> <span class='varid'>getName</span>-<a name="line-321"></a> <span class='varop'>>>></span>-<a name="line-322"></a> <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>n</span> <span class='keyglyph'>-></span> <span class='conid'>NCError</span> <span class='layout'>(</span><span class='str'>"Can't create name class from attribute: "</span> <span class='varop'>++</span> <span class='varid'>n</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-323"></a> <span class='layout'>)</span>-<a name="line-324"></a> <span class='layout'>,</span> <span class='varid'>isError</span> <span class='conop'>:-></span> <span class='layout'>(</span> <span class='varid'>getErrorMsg</span>-<a name="line-325"></a> <span class='varop'>>>></span>-<a name="line-326"></a> <span class='varid'>arr</span> <span class='conid'>NCError</span>-<a name="line-327"></a> <span class='layout'>)</span>-<a name="line-328"></a> <span class='layout'>,</span> <span class='varid'>this</span> <span class='conop'>:-></span> <span class='layout'>(</span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>e</span> <span class='keyglyph'>-></span> <span class='conid'>NCError</span> <span class='varop'>$</span> <span class='str'>"Can't create name class from "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>e</span><span class='layout'>)</span> <span class='layout'>)</span> -<a name="line-329"></a> <span class='keyglyph'>]</span>-<a name="line-330"></a>-<a name="line-331"></a>-<a name="line-332"></a><a name="getOneChildPattern"></a><span class='definition'>getOneChildPattern</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span> <span class='keyglyph'>-></span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>Pattern</span>-<a name="line-333"></a><span class='definition'>getOneChildPattern</span> <span class='varid'>env</span>-<a name="line-334"></a> <span class='keyglyph'>=</span> <span class='varid'>firstChild</span> <span class='varop'>>>></span> <span class='varid'>createPatternFromXml</span> <span class='varid'>env</span>-<a name="line-335"></a>-<a name="line-336"></a>-<a name="line-337"></a><a name="getTwoChildrenPattern"></a><span class='definition'>getTwoChildrenPattern</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span> <span class='keyglyph'>-></span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='layout'>(</span><span class='conid'>Pattern</span><span class='layout'>,</span> <span class='conid'>Pattern</span><span class='layout'>)</span>-<a name="line-338"></a><span class='definition'>getTwoChildrenPattern</span> <span class='varid'>env</span>-<a name="line-339"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>getOneChildPattern</span> <span class='varid'>env</span> <span class='layout'>)</span>-<a name="line-340"></a> <span class='varop'>&&&</span>-<a name="line-341"></a> <span class='layout'>(</span> <span class='varid'>lastChild</span> <span class='varop'>>>></span> <span class='varid'>createPatternFromXml</span> <span class='varid'>env</span> <span class='layout'>)</span>-<a name="line-342"></a>-<a name="line-343"></a><span class='comment'>-- | Simple access arrows</span>-<a name="line-344"></a>-<a name="line-345"></a><a name="firstChild"></a><span class='definition'>firstChild</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>ArrowTree</span> <span class='varid'>a</span><span class='layout'>,</span> <span class='conid'>Tree</span> <span class='varid'>t</span><span class='layout'>)</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span>-<a name="line-346"></a><span class='definition'>firstChild</span> <span class='keyglyph'>=</span> <span class='varid'>single</span> <span class='varid'>getChildren</span>-<a name="line-347"></a>-<a name="line-348"></a><a name="lastChild"></a><span class='definition'>lastChild</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>ArrowTree</span> <span class='varid'>a</span><span class='layout'>,</span> <span class='conid'>Tree</span> <span class='varid'>t</span><span class='layout'>)</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span>-<a name="line-349"></a><span class='definition'>lastChild</span> <span class='keyglyph'>=</span> <span class='varid'>getChildren</span> <span class='varop'>>>.</span> <span class='layout'>(</span><span class='varid'>take</span> <span class='num'>1</span> <span class='varop'>.</span> <span class='varid'>reverse</span><span class='layout'>)</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-RelaxNG-DataTypeLibMysql.html
@@ -1,179 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- |</span>-<a name="line-2"></a><span class='comment'>-- Datatype library for the MySQL datatypes</span>-<a name="line-3"></a><span class='comment'>--</span>-<a name="line-4"></a><span class='comment'>-- $Id: DataTypeLibMysql.hs,v 1.1 2005/09/02 17:09:39 hxml Exp $</span>-<a name="line-5"></a>-<a name="line-6"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>DataTypeLibMysql</span>-<a name="line-7"></a> <span class='layout'>(</span> <span class='varid'>mysqlNS</span>-<a name="line-8"></a> <span class='layout'>,</span> <span class='varid'>mysqlDatatypeLib</span>-<a name="line-9"></a> <span class='layout'>)</span>-<a name="line-10"></a><span class='keyword'>where</span>-<a name="line-11"></a>-<a name="line-12"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>DataTypeLibUtils</span> -<a name="line-13"></a>-<a name="line-14"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>-<a name="line-15"></a>-<a name="line-16"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-17"></a>-<a name="line-18"></a><span class='comment'>-- | Namespace of the MySQL datatype library</span>-<a name="line-19"></a>-<a name="line-20"></a><a name="mysqlNS"></a><span class='definition'>mysqlNS</span> <span class='keyglyph'>::</span> <span class='conid'>String</span>-<a name="line-21"></a><span class='definition'>mysqlNS</span> <span class='keyglyph'>=</span> <span class='str'>"http://www.mysql.com"</span>-<a name="line-22"></a>-<a name="line-23"></a>-<a name="line-24"></a><span class='comment'>-- | The main entry point to the MySQL datatype library.</span>-<a name="line-25"></a><span class='comment'>--</span>-<a name="line-26"></a><span class='comment'>-- The 'DTC' constructor exports the list of supported datatypes and params.</span>-<a name="line-27"></a><span class='comment'>-- It also exports the specialized functions to validate a XML instance value with</span>-<a name="line-28"></a><span class='comment'>-- respect to a datatype.</span>-<a name="line-29"></a>-<a name="line-30"></a><a name="mysqlDatatypeLib"></a><span class='definition'>mysqlDatatypeLib</span> <span class='keyglyph'>::</span> <span class='conid'>DatatypeLibrary</span>-<a name="line-31"></a><span class='definition'>mysqlDatatypeLib</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>mysqlNS</span><span class='layout'>,</span> <span class='conid'>DTC</span> <span class='varid'>datatypeAllowsMysql</span> <span class='varid'>datatypeEqualMysql</span> <span class='varid'>mysqlDatatypes</span><span class='layout'>)</span>-<a name="line-32"></a>-<a name="line-33"></a>-<a name="line-34"></a><a name="mysqlDatatypes"></a><span class='comment'>-- | All supported datatypes of the library</span>-<a name="line-35"></a><span class='definition'>mysqlDatatypes</span> <span class='keyglyph'>::</span> <span class='conid'>AllowedDatatypes</span>-<a name="line-36"></a><span class='definition'>mysqlDatatypes</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='comment'>-- numeric types</span>-<a name="line-37"></a> <span class='layout'>(</span><span class='str'>"SIGNED-TINYINT"</span><span class='layout'>,</span> <span class='varid'>numericParams</span><span class='layout'>)</span>-<a name="line-38"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"UNSIGNED-TINYINT"</span><span class='layout'>,</span> <span class='varid'>numericParams</span><span class='layout'>)</span>-<a name="line-39"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"SIGNED-SMALLINT"</span><span class='layout'>,</span> <span class='varid'>numericParams</span><span class='layout'>)</span>-<a name="line-40"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"UNSIGNED-SMALLINT"</span><span class='layout'>,</span> <span class='varid'>numericParams</span><span class='layout'>)</span>-<a name="line-41"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"SIGNED-MEDIUMINT"</span><span class='layout'>,</span> <span class='varid'>numericParams</span><span class='layout'>)</span>-<a name="line-42"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"UNSIGNED-MEDIUMINT"</span><span class='layout'>,</span> <span class='varid'>numericParams</span><span class='layout'>)</span>-<a name="line-43"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"SIGNED-INT"</span><span class='layout'>,</span> <span class='varid'>numericParams</span><span class='layout'>)</span>-<a name="line-44"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"UNSIGNED-INT"</span><span class='layout'>,</span> <span class='varid'>numericParams</span><span class='layout'>)</span>-<a name="line-45"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"SIGNED-BIGINT"</span><span class='layout'>,</span> <span class='varid'>numericParams</span><span class='layout'>)</span>-<a name="line-46"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"UNSIGNED-BIGINT"</span><span class='layout'>,</span> <span class='varid'>numericParams</span><span class='layout'>)</span>-<a name="line-47"></a> -<a name="line-48"></a> <span class='comment'>-- string types</span>-<a name="line-49"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"CHAR"</span><span class='layout'>,</span> <span class='varid'>stringParams</span><span class='layout'>)</span>-<a name="line-50"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"VARCHAR"</span><span class='layout'>,</span> <span class='varid'>stringParams</span><span class='layout'>)</span> -<a name="line-51"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"BINARY"</span><span class='layout'>,</span> <span class='varid'>stringParams</span><span class='layout'>)</span>-<a name="line-52"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"VARBINARY"</span><span class='layout'>,</span> <span class='varid'>stringParams</span><span class='layout'>)</span> -<a name="line-53"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"TINYTEXT"</span><span class='layout'>,</span> <span class='varid'>stringParams</span><span class='layout'>)</span>-<a name="line-54"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"TINYBLOB"</span><span class='layout'>,</span> <span class='varid'>stringParams</span><span class='layout'>)</span> -<a name="line-55"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"TEXT"</span><span class='layout'>,</span> <span class='varid'>stringParams</span><span class='layout'>)</span>-<a name="line-56"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"BLOB"</span><span class='layout'>,</span> <span class='varid'>stringParams</span><span class='layout'>)</span> -<a name="line-57"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"MEDIUMTEXT"</span><span class='layout'>,</span> <span class='varid'>stringParams</span><span class='layout'>)</span>-<a name="line-58"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"MEDIUMBLOB"</span><span class='layout'>,</span> <span class='varid'>stringParams</span><span class='layout'>)</span> -<a name="line-59"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"LONGTEXT"</span><span class='layout'>,</span> <span class='varid'>stringParams</span><span class='layout'>)</span>-<a name="line-60"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"LONGBLOB"</span><span class='layout'>,</span> <span class='varid'>stringParams</span><span class='layout'>)</span> -<a name="line-61"></a> <span class='keyglyph'>]</span>-<a name="line-62"></a>-<a name="line-63"></a>-<a name="line-64"></a><a name="stringTypes"></a><span class='comment'>-- | List of supported string datatypes</span>-<a name="line-65"></a><span class='definition'>stringTypes</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span>-<a name="line-66"></a><span class='definition'>stringTypes</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='str'>"CHAR"</span>-<a name="line-67"></a> <span class='layout'>,</span> <span class='str'>"VARCHAR"</span>-<a name="line-68"></a> <span class='layout'>,</span> <span class='str'>"BINARY"</span>-<a name="line-69"></a> <span class='layout'>,</span> <span class='str'>"VARBINARY"</span>-<a name="line-70"></a> <span class='layout'>,</span> <span class='str'>"TINYTEXT"</span>-<a name="line-71"></a> <span class='layout'>,</span> <span class='str'>"TINYBLOB"</span>-<a name="line-72"></a> <span class='layout'>,</span> <span class='str'>"TEXT"</span>-<a name="line-73"></a> <span class='layout'>,</span> <span class='str'>"BLOB"</span>-<a name="line-74"></a> <span class='layout'>,</span> <span class='str'>"MEDIUMTEXT"</span>-<a name="line-75"></a> <span class='layout'>,</span> <span class='str'>"MEDIUMBLOB"</span>-<a name="line-76"></a> <span class='layout'>,</span> <span class='str'>"LONGTEXT"</span>-<a name="line-77"></a> <span class='layout'>,</span> <span class='str'>"LONGBLOB"</span>-<a name="line-78"></a> <span class='keyglyph'>]</span>-<a name="line-79"></a>-<a name="line-80"></a>-<a name="line-81"></a><a name="numericTypes"></a><span class='comment'>-- | List of supported numeric datatypes</span>-<a name="line-82"></a><span class='definition'>numericTypes</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span>-<a name="line-83"></a><span class='definition'>numericTypes</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='str'>"SIGNED-TINYINT"</span>-<a name="line-84"></a> <span class='layout'>,</span> <span class='str'>"UNSIGNED-TINYINT"</span>-<a name="line-85"></a> <span class='layout'>,</span> <span class='str'>"SIGNED-SMALLINT"</span>-<a name="line-86"></a> <span class='layout'>,</span> <span class='str'>"UNSIGNED-SMALLINT"</span>-<a name="line-87"></a> <span class='layout'>,</span> <span class='str'>"SIGNED-MEDIUMINT"</span>-<a name="line-88"></a> <span class='layout'>,</span> <span class='str'>"UNSIGNED-MEDIUMINT"</span>-<a name="line-89"></a> <span class='layout'>,</span> <span class='str'>"SIGNED-INT"</span>-<a name="line-90"></a> <span class='layout'>,</span> <span class='str'>"UNSIGNED-INT"</span>-<a name="line-91"></a> <span class='layout'>,</span> <span class='str'>"SIGNED-BIGINT"</span>-<a name="line-92"></a> <span class='layout'>,</span> <span class='str'>"UNSIGNED-BIGINT"</span>-<a name="line-93"></a> <span class='keyglyph'>]</span>-<a name="line-94"></a>-<a name="line-95"></a>-<a name="line-96"></a><a name="numericParams"></a><span class='comment'>-- | List of allowed params for the numeric datatypes</span>-<a name="line-97"></a><span class='definition'>numericParams</span> <span class='keyglyph'>::</span> <span class='conid'>AllowedParams</span>-<a name="line-98"></a><span class='definition'>numericParams</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='varid'>rng_maxExclusive</span>-<a name="line-99"></a> <span class='layout'>,</span> <span class='varid'>rng_minExclusive</span>-<a name="line-100"></a> <span class='layout'>,</span> <span class='varid'>rng_maxInclusive</span>-<a name="line-101"></a> <span class='layout'>,</span> <span class='varid'>rng_minInclusive</span>-<a name="line-102"></a> <span class='keyglyph'>]</span>-<a name="line-103"></a> -<a name="line-104"></a>-<a name="line-105"></a><a name="stringParams"></a><span class='comment'>-- | List of allowed params for the string datatypes</span>-<a name="line-106"></a><span class='definition'>stringParams</span> <span class='keyglyph'>::</span> <span class='conid'>AllowedParams</span>-<a name="line-107"></a><span class='definition'>stringParams</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='varid'>rng_length</span>-<a name="line-108"></a> <span class='layout'>,</span> <span class='varid'>rng_maxLength</span>-<a name="line-109"></a> <span class='layout'>,</span> <span class='varid'>rng_minLength</span>-<a name="line-110"></a> <span class='keyglyph'>]</span>-<a name="line-111"></a>-<a name="line-112"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-113"></a><span class='comment'>--</span>-<a name="line-114"></a><span class='comment'>-- | Tests whether a XML instance value matches a data-pattern.</span>-<a name="line-115"></a> -<a name="line-116"></a><a name="datatypeAllowsMysql"></a><span class='definition'>datatypeAllowsMysql</span> <span class='keyglyph'>::</span> <span class='conid'>DatatypeAllows</span>-<a name="line-117"></a><span class='definition'>datatypeAllowsMysql</span> <span class='varid'>d</span> <span class='varid'>params</span> <span class='varid'>value</span> <span class='keyword'>_</span>-<a name="line-118"></a> <span class='keyglyph'>=</span> <span class='varid'>performCheck</span> <span class='varid'>check</span> <span class='varid'>value</span>-<a name="line-119"></a> <span class='keyword'>where</span>-<a name="line-120"></a> <span class='varid'>check</span>-<a name="line-121"></a> <span class='keyglyph'>|</span> <span class='varid'>isJust</span> <span class='varid'>ndt</span> <span class='keyglyph'>=</span> <span class='varid'>checkNum</span> <span class='layout'>(</span><span class='varid'>fromJust</span> <span class='varid'>ndt</span><span class='layout'>)</span>-<a name="line-122"></a> <span class='keyglyph'>|</span> <span class='varid'>isJust</span> <span class='varid'>sdt</span> <span class='keyglyph'>=</span> <span class='varid'>checkStr</span> <span class='layout'>(</span><span class='varid'>fromJust</span> <span class='varid'>sdt</span><span class='layout'>)</span>-<a name="line-123"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>failure</span> <span class='varop'>$</span> <span class='varid'>errorMsgDataTypeNotAllowed</span> <span class='varid'>mysqlNS</span> <span class='varid'>d</span> <span class='varid'>params</span>-<a name="line-124"></a> <span class='varid'>checkNum</span> <span class='varid'>r</span> <span class='keyglyph'>=</span> <span class='varid'>uncurry</span> <span class='layout'>(</span><span class='varid'>numberValid</span> <span class='varid'>d</span><span class='layout'>)</span> <span class='varid'>r</span> <span class='varid'>params</span>-<a name="line-125"></a> <span class='varid'>checkStr</span> <span class='varid'>r</span> <span class='keyglyph'>=</span> <span class='varid'>uncurry</span> <span class='layout'>(</span><span class='varid'>stringValid</span> <span class='varid'>d</span><span class='layout'>)</span> <span class='varid'>r</span> <span class='varid'>params</span>-<a name="line-126"></a> <span class='varid'>ndt</span> <span class='keyglyph'>=</span> <span class='varid'>lookup</span> <span class='varid'>d</span> <span class='varop'>$</span>-<a name="line-127"></a> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='str'>"SIGNED-TINYINT"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='layout'>(</span><span class='comment'>-</span><span class='num'>128</span><span class='layout'>)</span><span class='layout'>,</span> <span class='num'>127</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-128"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"UNSIGNED-TINYINT"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='num'>0</span><span class='layout'>,</span> <span class='num'>255</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-129"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"SIGNED-SMALLINT"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='layout'>(</span><span class='comment'>-</span><span class='num'>32768</span><span class='layout'>)</span><span class='layout'>,</span> <span class='num'>32767</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-130"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"UNSIGNED-SMALLINT"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='num'>0</span><span class='layout'>,</span> <span class='num'>65535</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-131"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"SIGNED-MEDIUMINT"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='layout'>(</span><span class='comment'>-</span><span class='num'>8388608</span><span class='layout'>)</span><span class='layout'>,</span> <span class='num'>8388607</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-132"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"UNSIGNED-MEDIUMINT"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='num'>0</span><span class='layout'>,</span> <span class='num'>16777215</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-133"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"SIGNED-INT"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='layout'>(</span><span class='comment'>-</span><span class='num'>2147483648</span><span class='layout'>)</span><span class='layout'>,</span> <span class='num'>2147483647</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-134"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"UNSIGNED-INT"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='num'>0</span><span class='layout'>,</span> <span class='num'>4294967295</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-135"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"SIGNED-BIGINT"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='layout'>(</span><span class='comment'>-</span><span class='num'>9223372036854775808</span><span class='layout'>)</span><span class='layout'>,</span> <span class='num'>9223372036854775807</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-136"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"UNSIGNED-BIGINT"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='num'>0</span><span class='layout'>,</span> <span class='num'>18446744073709551615</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-137"></a> <span class='keyglyph'>]</span>-<a name="line-138"></a> <span class='varid'>sdt</span> <span class='keyglyph'>=</span> <span class='varid'>lookup</span> <span class='varid'>d</span> <span class='varop'>$</span>-<a name="line-139"></a> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='str'>"CHAR"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='num'>0</span><span class='layout'>,</span> <span class='num'>255</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-140"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"VARCHAR"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='num'>0</span><span class='layout'>,</span> <span class='num'>65535</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-141"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"BINARY"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='num'>0</span><span class='layout'>,</span> <span class='num'>255</span><span class='layout'>)</span><span class='layout'>)</span> -<a name="line-142"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"VARBINARY"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='num'>0</span><span class='layout'>,</span> <span class='num'>65535</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-143"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"TINYTEXT"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='num'>0</span><span class='layout'>,</span> <span class='num'>256</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-144"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"TINYBLOB"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='num'>0</span><span class='layout'>,</span> <span class='num'>256</span><span class='layout'>)</span><span class='layout'>)</span> -<a name="line-145"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"TEXT"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='num'>0</span><span class='layout'>,</span> <span class='num'>65536</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-146"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"BLOB"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='num'>0</span><span class='layout'>,</span> <span class='num'>65536</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-147"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"MEDIUMTEXT"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='num'>0</span><span class='layout'>,</span> <span class='num'>16777216</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-148"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"MEDIUMBLOB"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='num'>0</span><span class='layout'>,</span> <span class='num'>16777216</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-149"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"LONGTEXT"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='num'>0</span><span class='layout'>,</span> <span class='num'>4294967296</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-150"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"LONGBLOB"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='num'>0</span><span class='layout'>,</span> <span class='num'>4294967296</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-151"></a> <span class='keyglyph'>]</span>-<a name="line-152"></a>-<a name="line-153"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-154"></a>-<a name="line-155"></a><span class='comment'>-- | Tests whether a XML instance value matches a value-pattern.</span>-<a name="line-156"></a>-<a name="line-157"></a><a name="datatypeEqualMysql"></a><span class='definition'>datatypeEqualMysql</span> <span class='keyglyph'>::</span> <span class='conid'>DatatypeEqual</span>-<a name="line-158"></a><span class='definition'>datatypeEqualMysql</span> <span class='varid'>d</span> <span class='varid'>s1</span> <span class='keyword'>_</span> <span class='varid'>s2</span> <span class='keyword'>_</span>-<a name="line-159"></a> <span class='keyglyph'>=</span> <span class='varid'>performCheck</span> <span class='varid'>check</span> <span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>s2</span><span class='layout'>)</span>-<a name="line-160"></a> <span class='keyword'>where</span>-<a name="line-161"></a> <span class='varid'>cmp</span> <span class='varid'>nf</span> <span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='layout'>(</span><span class='varid'>x1</span><span class='layout'>,</span> <span class='varid'>x2</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='varid'>nf</span> <span class='varid'>x1</span><span class='layout'>,</span> <span class='varid'>nf</span> <span class='varid'>x2</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-162"></a> <span class='varop'>>>></span>-<a name="line-163"></a> <span class='varid'>assert</span> <span class='layout'>(</span><span class='varid'>uncurry</span> <span class='layout'>(</span><span class='varop'>==</span><span class='layout'>)</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>uncurry</span> <span class='varop'>$</span> <span class='varid'>errorMsgEqual</span> <span class='varid'>d</span><span class='layout'>)</span>-<a name="line-164"></a> <span class='varid'>check</span>-<a name="line-165"></a> <span class='keyglyph'>|</span> <span class='varid'>d</span> <span class='varop'>`elem`</span> <span class='varid'>stringTypes</span> <span class='keyglyph'>=</span> <span class='varid'>cmp</span> <span class='varid'>id</span>-<a name="line-166"></a> <span class='keyglyph'>|</span> <span class='varid'>d</span> <span class='varop'>`elem`</span> <span class='varid'>numericTypes</span> <span class='keyglyph'>=</span> <span class='varid'>cmp</span> <span class='varid'>normalizeNumber</span>-<a name="line-167"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>failure</span> <span class='varop'>$</span> <span class='varid'>const</span> <span class='layout'>(</span><span class='varid'>errorMsgDataTypeNotAllowed0</span> <span class='varid'>mysqlNS</span> <span class='varid'>d</span><span class='layout'>)</span>-<a name="line-168"></a>-<a name="line-169"></a><span class='comment'>-- ------------------------------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html
@@ -1,418 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- |</span>-<a name="line-2"></a><span class='comment'>-- exports helper functions for the integration of new datatype-libraries</span>-<a name="line-3"></a>-<a name="line-4"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>DataTypeLibUtils</span>-<a name="line-5"></a> <span class='layout'>(</span> <span class='varid'>errorMsgEqual</span>-<a name="line-6"></a> <span class='layout'>,</span> <span class='varid'>errorMsgDataTypeNotAllowed</span>-<a name="line-7"></a> <span class='layout'>,</span> <span class='varid'>errorMsgDataTypeNotAllowed0</span>-<a name="line-8"></a> <span class='layout'>,</span> <span class='varid'>errorMsgDataTypeNotAllowed2</span>-<a name="line-9"></a> <span class='layout'>,</span> <span class='varid'>errorMsgDataLibQName</span>-<a name="line-10"></a> <span class='layout'>,</span> <span class='varid'>errorMsgParam</span>-<a name="line-11"></a>-<a name="line-12"></a> <span class='layout'>,</span> <span class='varid'>rng_length</span>-<a name="line-13"></a> <span class='layout'>,</span> <span class='varid'>rng_maxLength</span>-<a name="line-14"></a> <span class='layout'>,</span> <span class='varid'>rng_minLength</span>-<a name="line-15"></a> <span class='layout'>,</span><span class='varid'>rng_maxExclusive</span>-<a name="line-16"></a> <span class='layout'>,</span> <span class='varid'>rng_minExclusive</span>-<a name="line-17"></a> <span class='layout'>,</span> <span class='varid'>rng_maxInclusive</span>-<a name="line-18"></a> <span class='layout'>,</span> <span class='varid'>rng_minInclusive</span>-<a name="line-19"></a>-<a name="line-20"></a> <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span>-<a name="line-21"></a> <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Util</span>-<a name="line-22"></a> <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>Utils</span>-<a name="line-23"></a> <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>DataTypes</span> -<a name="line-24"></a>-<a name="line-25"></a> <span class='layout'>,</span> <span class='conid'>FunctionTable</span>-<a name="line-26"></a>-<a name="line-27"></a> <span class='layout'>,</span> <span class='varid'>stringValidFT</span> <span class='comment'>-- generalized checkString</span>-<a name="line-28"></a> <span class='layout'>,</span> <span class='varid'>fctTableString</span> <span class='comment'>-- minLength, maxLenght, length</span>-<a name="line-29"></a> <span class='layout'>,</span> <span class='varid'>fctTableList</span> <span class='comment'>-- minLength, maxLenght, length</span>-<a name="line-30"></a>-<a name="line-31"></a> <span class='layout'>,</span> <span class='varid'>stringValid</span> <span class='comment'>-- checkString</span>-<a name="line-32"></a> <span class='layout'>,</span> <span class='varid'>numberValid</span> <span class='comment'>-- checkNumeric</span>-<a name="line-33"></a>-<a name="line-34"></a> <span class='layout'>,</span> <span class='varid'>numParamValid</span>-<a name="line-35"></a>-<a name="line-36"></a> <span class='layout'>,</span> <span class='conid'>CheckA</span> <span class='comment'>-- Check datatype</span>-<a name="line-37"></a> <span class='layout'>,</span> <span class='conid'>CheckString</span> <span class='comment'>-- CheckA String String</span>-<a name="line-38"></a> <span class='layout'>,</span> <span class='conid'>CheckInteger</span> <span class='comment'>-- CheckA Integer Integer</span>-<a name="line-39"></a>-<a name="line-40"></a> <span class='layout'>,</span> <span class='varid'>performCheck</span> <span class='comment'>-- run a CheckA</span>-<a name="line-41"></a> <span class='layout'>,</span> <span class='varid'>ok</span> <span class='comment'>-- always true</span>-<a name="line-42"></a> <span class='layout'>,</span> <span class='varid'>failure</span> <span class='comment'>-- create an error meesage</span>-<a name="line-43"></a> <span class='layout'>,</span> <span class='varid'>assert</span> <span class='comment'>-- create a primitive check from a predicate</span>-<a name="line-44"></a> <span class='layout'>,</span> <span class='varid'>assertMaybe</span> <span class='comment'>-- create a primitive check from a maybe</span>-<a name="line-45"></a> <span class='layout'>,</span> <span class='varid'>checkWith</span> <span class='comment'>-- convert value before checking</span>-<a name="line-46"></a> <span class='layout'>)</span>-<a name="line-47"></a>-<a name="line-48"></a><span class='keyword'>where</span>-<a name="line-49"></a><span class='keyword'>import</span> <span class='conid'>Prelude</span> <span class='varid'>hiding</span> <span class='layout'>(</span><span class='varid'>id</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varop'>.</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-50"></a>-<a name="line-51"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Category</span>-<a name="line-52"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span>-<a name="line-53"></a>-<a name="line-54"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Either</span>-<a name="line-55"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>-<a name="line-56"></a>-<a name="line-57"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Util</span>-<a name="line-58"></a>-<a name="line-59"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>DataTypes</span>-<a name="line-60"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>Utils</span>-<a name="line-61"></a>-<a name="line-62"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-63"></a>-<a name="line-64"></a><a name="CheckA"></a><span class='keyword'>newtype</span> <span class='conid'>CheckA</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='keyglyph'>=</span> <span class='conid'>C</span> <span class='layout'>{</span> <span class='varid'>runCheck</span> <span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>Either</span> <span class='conid'>String</span> <span class='varid'>b</span> <span class='layout'>}</span>-<a name="line-65"></a>-<a name="line-66"></a><span class='keyword'>instance</span> <span class='conid'>Category</span> <span class='conid'>CheckA</span> <span class='keyword'>where</span>-<a name="line-67"></a> <span class='varid'>id</span> <span class='keyglyph'>=</span> <span class='conid'>C</span> <span class='varop'>$</span> <span class='conid'>Right</span>-<a name="line-68"></a>-<a name="line-69"></a> <span class='varid'>f2</span> <span class='varop'>.</span> <span class='varid'>f1</span> <span class='keyglyph'>=</span> <span class='conid'>C</span> <span class='varop'>$</span> <span class='comment'>-- logical and: f1 and f2 must hold</span>-<a name="line-70"></a> <span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='keyword'>case</span> <span class='varid'>runCheck</span> <span class='varid'>f1</span> <span class='varid'>x</span> <span class='keyword'>of</span>-<a name="line-71"></a> <span class='conid'>Right</span> <span class='varid'>y</span> <span class='keyglyph'>-></span> <span class='varid'>runCheck</span> <span class='varid'>f2</span> <span class='varid'>y</span>-<a name="line-72"></a> <span class='conid'>Left</span> <span class='varid'>e</span> <span class='keyglyph'>-></span> <span class='conid'>Left</span> <span class='varid'>e</span>-<a name="line-73"></a>-<a name="line-74"></a><span class='keyword'>instance</span> <span class='conid'>Arrow</span> <span class='conid'>CheckA</span> <span class='keyword'>where</span>-<a name="line-75"></a> <span class='varid'>arr</span> <span class='varid'>f</span> <span class='keyglyph'>=</span> <span class='conid'>C</span> <span class='layout'>(</span> <span class='conid'>Right</span> <span class='varop'>.</span> <span class='varid'>f</span> <span class='layout'>)</span> <span class='comment'>-- unit: no check, always o.k., just a conversion</span>-<a name="line-76"></a>-<a name="line-77"></a> <span class='varid'>first</span> <span class='varid'>f1</span> <span class='keyglyph'>=</span> <span class='conid'>C</span> <span class='varop'>$</span> <span class='comment'>-- check 1. component of a pair</span>-<a name="line-78"></a> <span class='keyglyph'>\</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>x1</span><span class='layout'>,</span> <span class='varid'>x2</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='keyword'>case</span> <span class='varid'>runCheck</span> <span class='varid'>f1</span> <span class='varid'>x1</span> <span class='keyword'>of</span>-<a name="line-79"></a> <span class='conid'>Right</span> <span class='varid'>y1</span> <span class='keyglyph'>-></span> <span class='conid'>Right</span> <span class='layout'>(</span><span class='varid'>y1</span><span class='layout'>,</span> <span class='varid'>x2</span><span class='layout'>)</span>-<a name="line-80"></a> <span class='conid'>Left</span> <span class='varid'>e</span> <span class='keyglyph'>-></span> <span class='conid'>Left</span> <span class='varid'>e</span>-<a name="line-81"></a>-<a name="line-82"></a> <span class='varid'>second</span> <span class='varid'>f2</span> <span class='keyglyph'>=</span> <span class='conid'>C</span> <span class='varop'>$</span> <span class='comment'>-- check 2. component of a pair</span>-<a name="line-83"></a> <span class='keyglyph'>\</span> <span class='keyglyph'>~</span><span class='layout'>(</span><span class='varid'>x1</span><span class='layout'>,</span> <span class='varid'>x2</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='keyword'>case</span> <span class='varid'>runCheck</span> <span class='varid'>f2</span> <span class='varid'>x2</span> <span class='keyword'>of</span>-<a name="line-84"></a> <span class='conid'>Right</span> <span class='varid'>y2</span> <span class='keyglyph'>-></span> <span class='conid'>Right</span> <span class='layout'>(</span><span class='varid'>x1</span><span class='layout'>,</span> <span class='varid'>y2</span><span class='layout'>)</span>-<a name="line-85"></a> <span class='conid'>Left</span> <span class='varid'>e</span> <span class='keyglyph'>-></span> <span class='conid'>Left</span> <span class='varid'>e</span>-<a name="line-86"></a>-<a name="line-87"></a>-<a name="line-88"></a>-<a name="line-89"></a><span class='keyword'>instance</span> <span class='conid'>ArrowZero</span> <span class='conid'>CheckA</span> <span class='keyword'>where</span>-<a name="line-90"></a> <span class='varid'>zeroArrow</span> <span class='keyglyph'>=</span> <span class='conid'>C</span> <span class='varop'>$</span> <span class='varid'>const</span> <span class='layout'>(</span><span class='conid'>Left</span> <span class='str'>""</span><span class='layout'>)</span> <span class='comment'>-- always false: zero</span>-<a name="line-91"></a>-<a name="line-92"></a><span class='keyword'>instance</span> <span class='conid'>ArrowPlus</span> <span class='conid'>CheckA</span> <span class='keyword'>where</span>-<a name="line-93"></a> <span class='varid'>f1</span> <span class='varop'><+></span> <span class='varid'>f2</span> <span class='keyglyph'>=</span> <span class='conid'>C</span> <span class='varop'>$</span> <span class='comment'>-- logical or</span>-<a name="line-94"></a> <span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='keyword'>case</span> <span class='varid'>runCheck</span> <span class='varid'>f1</span> <span class='varid'>x</span> <span class='keyword'>of</span>-<a name="line-95"></a> <span class='conid'>Right</span> <span class='varid'>y1</span> <span class='keyglyph'>-></span> <span class='conid'>Right</span> <span class='varid'>y1</span>-<a name="line-96"></a> <span class='conid'>Left</span> <span class='varid'>e1</span> <span class='keyglyph'>-></span> <span class='keyword'>case</span> <span class='varid'>runCheck</span> <span class='varid'>f2</span> <span class='varid'>x</span> <span class='keyword'>of</span>-<a name="line-97"></a> <span class='conid'>Right</span> <span class='varid'>y2</span> <span class='keyglyph'>-></span> <span class='conid'>Right</span> <span class='varid'>y2</span>-<a name="line-98"></a> <span class='conid'>Left</span> <span class='varid'>e2</span> <span class='keyglyph'>-></span> <span class='conid'>Left</span> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>e1</span>-<a name="line-99"></a> <span class='keyword'>then</span> <span class='varid'>e2</span>-<a name="line-100"></a> <span class='keyword'>else</span>-<a name="line-101"></a> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>e2</span>-<a name="line-102"></a> <span class='keyword'>then</span> <span class='varid'>e1</span>-<a name="line-103"></a> <span class='keyword'>else</span> <span class='varid'>e1</span> <span class='varop'>++</span> <span class='str'>" or "</span> <span class='varop'>++</span> <span class='varid'>e2</span>-<a name="line-104"></a> <span class='layout'>)</span>-<a name="line-105"></a>-<a name="line-106"></a><a name="CheckString"></a><span class='keyword'>type</span> <span class='conid'>CheckString</span> <span class='keyglyph'>=</span> <span class='conid'>CheckA</span> <span class='conid'>String</span> <span class='conid'>String</span>-<a name="line-107"></a><a name="CheckInteger"></a><span class='keyword'>type</span> <span class='conid'>CheckInteger</span> <span class='keyglyph'>=</span> <span class='conid'>CheckA</span> <span class='conid'>Integer</span> <span class='conid'>Integer</span>-<a name="line-108"></a>-<a name="line-109"></a><span class='comment'>-- | run a check and deliver Just an error message or Nothing</span>-<a name="line-110"></a>-<a name="line-111"></a><a name="performCheck"></a><span class='definition'>performCheck</span> <span class='keyglyph'>::</span> <span class='conid'>CheckA</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>Maybe</span> <span class='conid'>String</span>-<a name="line-112"></a><span class='definition'>performCheck</span> <span class='varid'>c</span> <span class='keyglyph'>=</span> <span class='varid'>either</span> <span class='conid'>Just</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='conid'>Nothing</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>runCheck</span> <span class='varid'>c</span>-<a name="line-113"></a>-<a name="line-114"></a><span class='comment'>-- | always failure</span>-<a name="line-115"></a>-<a name="line-116"></a><a name="failure"></a><span class='definition'>failure</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>CheckA</span> <span class='varid'>a</span> <span class='varid'>b</span>-<a name="line-117"></a><span class='definition'>failure</span> <span class='varid'>msg</span> <span class='keyglyph'>=</span> <span class='conid'>C</span> <span class='layout'>(</span><span class='conid'>Left</span> <span class='varop'>.</span> <span class='varid'>msg</span><span class='layout'>)</span>-<a name="line-118"></a>-<a name="line-119"></a><span class='comment'>-- | every thing is fine</span>-<a name="line-120"></a>-<a name="line-121"></a><a name="ok"></a><span class='definition'>ok</span> <span class='keyglyph'>::</span> <span class='conid'>CheckA</span> <span class='varid'>a</span> <span class='varid'>a</span>-<a name="line-122"></a><span class='definition'>ok</span> <span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='varid'>id</span>-<a name="line-123"></a>-<a name="line-124"></a><span class='comment'>-- | perform a simple check with a predicate p,</span>-<a name="line-125"></a><span class='comment'>-- when the predicate holds, assert acts as identity,</span>-<a name="line-126"></a><span class='comment'>-- else an error message is generated</span>-<a name="line-127"></a>-<a name="line-128"></a><a name="assert"></a><span class='definition'>assert</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>CheckA</span> <span class='varid'>a</span> <span class='varid'>a</span>-<a name="line-129"></a><span class='definition'>assert</span> <span class='varid'>p</span> <span class='varid'>msg</span> <span class='keyglyph'>=</span> <span class='conid'>C</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='keyword'>if</span> <span class='varid'>p</span> <span class='varid'>x</span> <span class='keyword'>then</span> <span class='conid'>Right</span> <span class='varid'>x</span> <span class='keyword'>else</span> <span class='conid'>Left</span> <span class='layout'>(</span><span class='varid'>msg</span> <span class='varid'>x</span><span class='layout'>)</span>-<a name="line-130"></a>-<a name="line-131"></a><span class='comment'>-- | perform a simple check with a Maybe function, Nothing indicates error</span>-<a name="line-132"></a>-<a name="line-133"></a><a name="assertMaybe"></a><span class='definition'>assertMaybe</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>Maybe</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>CheckA</span> <span class='varid'>a</span> <span class='varid'>b</span>-<a name="line-134"></a><span class='definition'>assertMaybe</span> <span class='varid'>f</span> <span class='varid'>msg</span>-<a name="line-135"></a> <span class='keyglyph'>=</span> <span class='conid'>C</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='keyword'>case</span> <span class='varid'>f</span> <span class='varid'>x</span> <span class='keyword'>of</span>-<a name="line-136"></a> <span class='conid'>Nothing</span> <span class='keyglyph'>-></span> <span class='conid'>Left</span> <span class='layout'>(</span><span class='varid'>msg</span> <span class='varid'>x</span><span class='layout'>)</span>-<a name="line-137"></a> <span class='conid'>Just</span> <span class='varid'>y</span> <span class='keyglyph'>-></span> <span class='conid'>Right</span> <span class='varid'>y</span>-<a name="line-138"></a>-<a name="line-139"></a><span class='comment'>-- | perform a check, but convert the value before checking</span>-<a name="line-140"></a>-<a name="line-141"></a><a name="checkWith"></a><span class='definition'>checkWith</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>CheckA</span> <span class='varid'>b</span> <span class='varid'>c</span> <span class='keyglyph'>-></span> <span class='conid'>CheckA</span> <span class='varid'>a</span> <span class='varid'>a</span>-<a name="line-142"></a><span class='definition'>checkWith</span> <span class='varid'>f</span> <span class='varid'>c</span> <span class='keyglyph'>=</span> <span class='conid'>C</span> <span class='varop'>$</span>-<a name="line-143"></a> <span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='keyword'>case</span> <span class='varid'>runCheck</span> <span class='varid'>c</span> <span class='layout'>(</span><span class='varid'>f</span> <span class='varid'>x</span><span class='layout'>)</span> <span class='keyword'>of</span>-<a name="line-144"></a> <span class='conid'>Right</span> <span class='keyword'>_</span> <span class='keyglyph'>-></span> <span class='conid'>Right</span> <span class='varid'>x</span>-<a name="line-145"></a> <span class='conid'>Left</span> <span class='varid'>e</span> <span class='keyglyph'>-></span> <span class='conid'>Left</span> <span class='varid'>e</span>-<a name="line-146"></a>-<a name="line-147"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-148"></a>-<a name="line-149"></a><span class='comment'>-- RelaxNG attribute names</span>-<a name="line-150"></a>-<a name="line-151"></a><a name="rng_length"></a><span class='definition'>rng_length</span><span class='layout'>,</span> <span class='varid'>rng_maxLength</span><span class='layout'>,</span> <span class='varid'>rng_minLength</span>-<a name="line-152"></a> <span class='layout'>,</span><span class='varid'>rng_maxExclusive</span><span class='layout'>,</span> <span class='varid'>rng_minExclusive</span><span class='layout'>,</span> <span class='varid'>rng_maxInclusive</span><span class='layout'>,</span> <span class='varid'>rng_minInclusive</span> <span class='keyglyph'>::</span> <span class='conid'>String</span>-<a name="line-153"></a>-<a name="line-154"></a><span class='definition'>rng_length</span> <span class='keyglyph'>=</span> <span class='str'>"length"</span>-<a name="line-155"></a><a name="rng_maxLength"></a><span class='definition'>rng_maxLength</span> <span class='keyglyph'>=</span> <span class='str'>"maxLength"</span>-<a name="line-156"></a><a name="rng_minLength"></a><span class='definition'>rng_minLength</span> <span class='keyglyph'>=</span> <span class='str'>"minLength"</span>-<a name="line-157"></a>-<a name="line-158"></a><a name="rng_maxExclusive"></a><span class='definition'>rng_maxExclusive</span> <span class='keyglyph'>=</span> <span class='str'>"maxExclusive"</span>-<a name="line-159"></a><a name="rng_minExclusive"></a><span class='definition'>rng_minExclusive</span> <span class='keyglyph'>=</span> <span class='str'>"minExclusive"</span>-<a name="line-160"></a><a name="rng_maxInclusive"></a><span class='definition'>rng_maxInclusive</span> <span class='keyglyph'>=</span> <span class='str'>"maxInclusive"</span>-<a name="line-161"></a><a name="rng_minInclusive"></a><span class='definition'>rng_minInclusive</span> <span class='keyglyph'>=</span> <span class='str'>"minInclusive"</span>-<a name="line-162"></a>-<a name="line-163"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-164"></a>-<a name="line-165"></a><span class='comment'>-- | Function table type</span>-<a name="line-166"></a>-<a name="line-167"></a><a name="FunctionTable"></a><span class='keyword'>type</span> <span class='conid'>FunctionTable</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-168"></a>-<a name="line-169"></a><span class='comment'>-- | Function table for numeric tests,</span>-<a name="line-170"></a><span class='comment'>-- XML document value is first operand, schema value second</span>-<a name="line-171"></a>-<a name="line-172"></a><a name="fctTableNum"></a><span class='definition'>fctTableNum</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Ord</span> <span class='varid'>a</span><span class='layout'>,</span> <span class='conid'>Num</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>=></span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-173"></a><span class='definition'>fctTableNum</span>-<a name="line-174"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>rng_maxExclusive</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varop'><</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-175"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>rng_minExclusive</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varop'>></span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-176"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>rng_maxInclusive</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varop'><=</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-177"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>rng_minInclusive</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varop'>>=</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-178"></a> <span class='keyglyph'>]</span>-<a name="line-179"></a>-<a name="line-180"></a><a name="fctTableString"></a><span class='comment'>-- | Function table for string tests,</span>-<a name="line-181"></a><span class='comment'>-- XML document value is first operand, schema value second</span>-<a name="line-182"></a><span class='definition'>fctTableString</span> <span class='keyglyph'>::</span> <span class='conid'>FunctionTable</span>-<a name="line-183"></a><span class='definition'>fctTableString</span>-<a name="line-184"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>rng_length</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>numParamValid</span> <span class='layout'>(</span><span class='varop'>==</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-185"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>rng_maxLength</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>numParamValid</span> <span class='layout'>(</span><span class='varop'><=</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-186"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>rng_minLength</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>numParamValid</span> <span class='layout'>(</span><span class='varop'>>=</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-187"></a> <span class='keyglyph'>]</span>-<a name="line-188"></a>-<a name="line-189"></a><span class='comment'>-- | Function table for list tests,</span>-<a name="line-190"></a><span class='comment'>-- XML document value is first operand, schema value second</span>-<a name="line-191"></a>-<a name="line-192"></a><a name="fctTableList"></a><span class='definition'>fctTableList</span> <span class='keyglyph'>::</span> <span class='conid'>FunctionTable</span>-<a name="line-193"></a><span class='definition'>fctTableList</span>-<a name="line-194"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>rng_length</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>listParamValid</span> <span class='layout'>(</span><span class='varop'>==</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-195"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>rng_maxLength</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>listParamValid</span> <span class='layout'>(</span><span class='varop'><=</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-196"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>rng_minLength</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>listParamValid</span> <span class='layout'>(</span><span class='varop'>>=</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-197"></a> <span class='keyglyph'>]</span>-<a name="line-198"></a>-<a name="line-199"></a><span class='comment'>{- | -<a name="line-200"></a>tests whether a string value matches a numeric param-<a name="line-201"></a>-<a name="line-202"></a>valid example:-<a name="line-203"></a>-<a name="line-204"></a>> <data type="CHAR"> <param name="maxLength">5</param> </data>-<a name="line-205"></a>-<a name="line-206"></a>invalid example:-<a name="line-207"></a>-<a name="line-208"></a>> <data type="CHAR"> <param name="minLength">foo</param> </data>-<a name="line-209"></a>-<a name="line-210"></a>-}</span>-<a name="line-211"></a>-<a name="line-212"></a><a name="numParamValid"></a><span class='definition'>numParamValid</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Integer</span> <span class='keyglyph'>-></span> <span class='conid'>Integer</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-213"></a><span class='definition'>numParamValid</span> <span class='varid'>fct</span> <span class='varid'>a</span> <span class='varid'>b</span>-<a name="line-214"></a> <span class='keyglyph'>=</span> <span class='varid'>isNumber</span> <span class='varid'>b</span>-<a name="line-215"></a> <span class='varop'>&&</span>-<a name="line-216"></a> <span class='layout'>(</span> <span class='varid'>toInteger</span> <span class='layout'>(</span><span class='varid'>length</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='varop'>`fct`</span> <span class='layout'>(</span><span class='varid'>read</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-217"></a>-<a name="line-218"></a><span class='comment'>{- | -<a name="line-219"></a>tests whether a list value matches a length constraint-<a name="line-220"></a>-<a name="line-221"></a>valid example:-<a name="line-222"></a>-<a name="line-223"></a>> <data type="IDREFS"> <param name="maxLength">5</param> </data>-<a name="line-224"></a>-<a name="line-225"></a>invalid example:-<a name="line-226"></a>-<a name="line-227"></a>> <data type="IDREFS"> <param name="minLength">foo</param> </data>-<a name="line-228"></a>-<a name="line-229"></a>-}</span>-<a name="line-230"></a>-<a name="line-231"></a><a name="listParamValid"></a><span class='definition'>listParamValid</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Integer</span> <span class='keyglyph'>-></span> <span class='conid'>Integer</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-232"></a><span class='definition'>listParamValid</span> <span class='varid'>fct</span> <span class='varid'>a</span> <span class='varid'>b</span>-<a name="line-233"></a> <span class='keyglyph'>=</span> <span class='varid'>isNumber</span> <span class='varid'>b</span>-<a name="line-234"></a> <span class='varop'>&&</span>-<a name="line-235"></a> <span class='layout'>(</span> <span class='varid'>toInteger</span> <span class='layout'>(</span><span class='varid'>length</span> <span class='varop'>.</span> <span class='varid'>words</span> <span class='varop'>$</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='varop'>`fct`</span> <span class='layout'>(</span><span class='varid'>read</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-236"></a>-<a name="line-237"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-238"></a><span class='comment'>-- new check functions</span>-<a name="line-239"></a>-<a name="line-240"></a><span class='comment'>{- | -<a name="line-241"></a>Tests whether a \"string\" datatype value is between the lower and -<a name="line-242"></a>upper bound of the datatype and matches all parameters.-<a name="line-243"></a>-<a name="line-244"></a>All tests are performed on the string value.-<a name="line-245"></a> -<a name="line-246"></a> * 1.parameter : datatype-<a name="line-247"></a> -<a name="line-248"></a> - 2.parameter : lower bound of the datatype range-<a name="line-249"></a> -<a name="line-250"></a> - 3.parameter : upper bound of the datatype range (-1 = no upper bound) -<a name="line-251"></a> -<a name="line-252"></a> - 4.parameter : list of parameters-<a name="line-253"></a> -<a name="line-254"></a> - 5.parameter : datatype value to be checked-<a name="line-255"></a>-<a name="line-256"></a> - return : Just \"Errormessage\" in case of an error, else Nothing-<a name="line-257"></a> -<a name="line-258"></a>-}</span>-<a name="line-259"></a>-<a name="line-260"></a><a name="stringValid"></a><span class='definition'>stringValid</span> <span class='keyglyph'>::</span> <span class='conid'>DatatypeName</span> <span class='keyglyph'>-></span> <span class='conid'>Integer</span> <span class='keyglyph'>-></span> <span class='conid'>Integer</span> <span class='keyglyph'>-></span> <span class='conid'>ParamList</span> <span class='keyglyph'>-></span> <span class='conid'>CheckString</span>-<a name="line-261"></a><span class='definition'>stringValid</span> <span class='keyglyph'>=</span> <span class='varid'>stringValidFT</span> <span class='varid'>fctTableString</span>-<a name="line-262"></a>-<a name="line-263"></a><a name="stringValidFT"></a><span class='definition'>stringValidFT</span> <span class='keyglyph'>::</span> <span class='conid'>FunctionTable</span> <span class='keyglyph'>-></span> <span class='conid'>DatatypeName</span> <span class='keyglyph'>-></span> <span class='conid'>Integer</span> <span class='keyglyph'>-></span> <span class='conid'>Integer</span> <span class='keyglyph'>-></span> <span class='conid'>ParamList</span> <span class='keyglyph'>-></span> <span class='conid'>CheckString</span>-<a name="line-264"></a><span class='definition'>stringValidFT</span> <span class='varid'>ft</span> <span class='varid'>datatype</span> <span class='varid'>lowerBound</span> <span class='varid'>upperBound</span> <span class='varid'>params</span>-<a name="line-265"></a> <span class='keyglyph'>=</span> <span class='varid'>assert</span> <span class='varid'>boundsOK</span> <span class='varid'>boundsErr</span>-<a name="line-266"></a> <span class='varop'>>>></span>-<a name="line-267"></a> <span class='varid'>paramsStringValid</span> <span class='varid'>params</span>-<a name="line-268"></a> <span class='keyword'>where</span>-<a name="line-269"></a> <span class='varid'>boundsOK</span> <span class='varid'>v</span>-<a name="line-270"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>lowerBound</span> <span class='varop'>==</span> <span class='num'>0</span><span class='layout'>)</span>-<a name="line-271"></a> <span class='varop'>||</span>-<a name="line-272"></a> <span class='layout'>(</span><span class='varid'>toInteger</span> <span class='layout'>(</span><span class='varid'>length</span> <span class='varid'>v</span><span class='layout'>)</span> <span class='varop'>>=</span> <span class='varid'>lowerBound</span><span class='layout'>)</span>-<a name="line-273"></a> <span class='layout'>)</span>-<a name="line-274"></a> <span class='varop'>&&</span>-<a name="line-275"></a> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>upperBound</span> <span class='varop'>==</span> <span class='layout'>(</span><span class='comment'>-</span><span class='num'>1</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-276"></a> <span class='varop'>||</span>-<a name="line-277"></a> <span class='layout'>(</span><span class='varid'>toInteger</span> <span class='layout'>(</span><span class='varid'>length</span> <span class='varid'>v</span><span class='layout'>)</span> <span class='varop'><=</span> <span class='varid'>upperBound</span><span class='layout'>)</span>-<a name="line-278"></a> <span class='layout'>)</span>-<a name="line-279"></a>-<a name="line-280"></a> <span class='varid'>boundsErr</span> <span class='varid'>v</span>-<a name="line-281"></a> <span class='keyglyph'>=</span> <span class='str'>"Length of "</span> <span class='varop'>++</span> <span class='varid'>v</span>-<a name="line-282"></a> <span class='varop'>++</span> <span class='str'>" ("</span> <span class='varop'>++</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varop'>$</span> <span class='varid'>length</span> <span class='varid'>v</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='str'>" chars) out of range: "</span>-<a name="line-283"></a> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>lowerBound</span> <span class='varop'>++</span> <span class='str'>" .. "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>upperBound</span>-<a name="line-284"></a> <span class='varop'>++</span> <span class='str'>" for datatype "</span> <span class='varop'>++</span> <span class='varid'>datatype</span>-<a name="line-285"></a>-<a name="line-286"></a> <span class='varid'>paramStringValid</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>LocalName</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>CheckString</span>-<a name="line-287"></a> <span class='varid'>paramStringValid</span> <span class='layout'>(</span><span class='varid'>pn</span><span class='layout'>,</span> <span class='varid'>pv</span><span class='layout'>)</span>-<a name="line-288"></a> <span class='keyglyph'>=</span> <span class='varid'>assert</span> <span class='varid'>paramOK</span> <span class='layout'>(</span><span class='varid'>errorMsgParam</span> <span class='varid'>pn</span> <span class='varid'>pv</span><span class='layout'>)</span>-<a name="line-289"></a> <span class='keyword'>where</span>-<a name="line-290"></a> <span class='varid'>paramOK</span> <span class='varid'>v</span> <span class='keyglyph'>=</span> <span class='varid'>paramFct</span> <span class='varid'>pn</span> <span class='varid'>v</span> <span class='varid'>pv</span>-<a name="line-291"></a> <span class='varid'>paramFct</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='varid'>fromMaybe</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varop'>.</span> <span class='varid'>const</span> <span class='varop'>$</span> <span class='conid'>True</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>lookup</span> <span class='varid'>n</span> <span class='varid'>ft</span>-<a name="line-292"></a>-<a name="line-293"></a> <span class='varid'>paramsStringValid</span> <span class='keyglyph'>::</span> <span class='conid'>ParamList</span> <span class='keyglyph'>-></span> <span class='conid'>CheckString</span>-<a name="line-294"></a> <span class='varid'>paramsStringValid</span>-<a name="line-295"></a> <span class='keyglyph'>=</span> <span class='varid'>foldr</span> <span class='layout'>(</span><span class='varop'>>>></span><span class='layout'>)</span> <span class='varid'>ok</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='varid'>paramStringValid</span>-<a name="line-296"></a>-<a name="line-297"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-298"></a>-<a name="line-299"></a><span class='comment'>{- | -<a name="line-300"></a>Tests whether a \"numeric\" datatype value is between the lower and upper -<a name="line-301"></a>bound of the datatype and matches all parameters.-<a name="line-302"></a>-<a name="line-303"></a>First, the string value is parsed into a numeric representation.-<a name="line-304"></a>If no error occur, all following tests are performed on the numeric value.-<a name="line-305"></a>-<a name="line-306"></a> * 1.parameter : datatype-<a name="line-307"></a> -<a name="line-308"></a> - 2.parameter : lower bound of the datatype range-<a name="line-309"></a> -<a name="line-310"></a> - 3.parameter : upper bound of the datatype range (-1 = no upper bound) -<a name="line-311"></a> -<a name="line-312"></a> - 4.parameter : list of parameters-<a name="line-313"></a> -<a name="line-314"></a> - 5.parameter : datatype value to be checked-<a name="line-315"></a>-<a name="line-316"></a> - return : Just \"Errormessage\" in case of an error, else Nothing-<a name="line-317"></a> -<a name="line-318"></a>-}</span>-<a name="line-319"></a>-<a name="line-320"></a><a name="numberValid"></a><span class='definition'>numberValid</span> <span class='keyglyph'>::</span> <span class='conid'>DatatypeName</span> <span class='keyglyph'>-></span> <span class='conid'>Integer</span> <span class='keyglyph'>-></span> <span class='conid'>Integer</span> <span class='keyglyph'>-></span> <span class='conid'>ParamList</span> <span class='keyglyph'>-></span> <span class='conid'>CheckString</span>-<a name="line-321"></a><span class='definition'>numberValid</span> <span class='varid'>datatype</span> <span class='varid'>lowerBound</span> <span class='varid'>upperBound</span> <span class='varid'>params</span>-<a name="line-322"></a> <span class='keyglyph'>=</span> <span class='varid'>assert</span> <span class='varid'>isNumber</span> <span class='varid'>numErr</span>-<a name="line-323"></a> <span class='varop'>>>></span>-<a name="line-324"></a> <span class='varid'>checkWith</span> <span class='varid'>read</span> <span class='layout'>(</span> <span class='varid'>assert</span> <span class='varid'>inRange</span> <span class='varid'>rangeErr</span>-<a name="line-325"></a> <span class='varop'>>>></span>-<a name="line-326"></a> <span class='varid'>paramsNumValid</span> <span class='varid'>params</span>-<a name="line-327"></a> <span class='layout'>)</span>-<a name="line-328"></a> <span class='keyword'>where</span>-<a name="line-329"></a> <span class='varid'>inRange</span> <span class='keyglyph'>::</span> <span class='conid'>Integer</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-330"></a> <span class='varid'>inRange</span> <span class='varid'>x</span> <span class='keyglyph'>=</span> <span class='varid'>x</span> <span class='varop'>>=</span> <span class='varid'>lowerBound</span>-<a name="line-331"></a> <span class='varop'>&&</span>-<a name="line-332"></a> <span class='varid'>x</span> <span class='varop'><=</span> <span class='varid'>upperBound</span>-<a name="line-333"></a>-<a name="line-334"></a> <span class='varid'>rangeErr</span> <span class='varid'>v</span> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='str'>"Value = "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>v</span> <span class='varop'>++</span> <span class='str'>" out of range: "</span>-<a name="line-335"></a> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>lowerBound</span> <span class='varop'>++</span> <span class='str'>" .. "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>upperBound</span>-<a name="line-336"></a> <span class='varop'>++</span> <span class='str'>" for datatype "</span> <span class='varop'>++</span> <span class='varid'>datatype</span>-<a name="line-337"></a> <span class='layout'>)</span>-<a name="line-338"></a> <span class='varid'>numErr</span> <span class='varid'>v</span>-<a name="line-339"></a> <span class='keyglyph'>=</span> <span class='str'>"Value = "</span> <span class='varop'>++</span> <span class='varid'>v</span> <span class='varop'>++</span> <span class='str'>" is not a number"</span>-<a name="line-340"></a>-<a name="line-341"></a><a name="paramsNumValid"></a><span class='definition'>paramsNumValid</span> <span class='keyglyph'>::</span> <span class='conid'>ParamList</span> <span class='keyglyph'>-></span> <span class='conid'>CheckInteger</span>-<a name="line-342"></a><span class='definition'>paramsNumValid</span>-<a name="line-343"></a> <span class='keyglyph'>=</span> <span class='varid'>foldr</span> <span class='layout'>(</span><span class='varop'>>>></span><span class='layout'>)</span> <span class='varid'>ok</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='varid'>paramNumValid</span>-<a name="line-344"></a>-<a name="line-345"></a><a name="paramNumValid"></a><span class='definition'>paramNumValid</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>LocalName</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>CheckInteger</span>-<a name="line-346"></a><span class='definition'>paramNumValid</span> <span class='layout'>(</span><span class='varid'>pn</span><span class='layout'>,</span> <span class='varid'>pv</span><span class='layout'>)</span>-<a name="line-347"></a> <span class='keyglyph'>=</span> <span class='varid'>assert</span> <span class='varid'>paramOK</span> <span class='layout'>(</span><span class='varid'>errorMsgParam</span> <span class='varid'>pn</span> <span class='varid'>pv</span> <span class='varop'>.</span> <span class='varid'>show</span><span class='layout'>)</span>-<a name="line-348"></a> <span class='keyword'>where</span>-<a name="line-349"></a> <span class='varid'>paramOK</span> <span class='varid'>v</span> <span class='keyglyph'>=</span> <span class='varid'>isNumber</span> <span class='varid'>pv</span>-<a name="line-350"></a> <span class='varop'>&&</span>-<a name="line-351"></a> <span class='varid'>paramFct</span> <span class='varid'>pn</span> <span class='varid'>v</span> <span class='layout'>(</span><span class='varid'>read</span> <span class='varid'>pv</span><span class='layout'>)</span>-<a name="line-352"></a> <span class='varid'>paramFct</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>lookup</span> <span class='varid'>n</span> <span class='varid'>fctTableNum</span>-<a name="line-353"></a>-<a name="line-354"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-355"></a> -<a name="line-356"></a><span class='comment'>{- | -<a name="line-357"></a>Error Message for the equality test of two datatype values-<a name="line-358"></a> -<a name="line-359"></a> * 1.parameter : datatype-<a name="line-360"></a> -<a name="line-361"></a> - 2.parameter : datatype value-<a name="line-362"></a>-<a name="line-363"></a> - 3.parameter : datatype value-<a name="line-364"></a> -<a name="line-365"></a>example:-<a name="line-366"></a>-<a name="line-367"></a>> errorMsgEqual "Int" "21" "42" -> "Datatype Int with value = 21 expected, but value = 42 found"-<a name="line-368"></a>-<a name="line-369"></a>-}</span>-<a name="line-370"></a>-<a name="line-371"></a><a name="errorMsgParam"></a><span class='definition'>errorMsgParam</span> <span class='keyglyph'>::</span> <span class='conid'>LocalName</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-372"></a><span class='definition'>errorMsgParam</span> <span class='varid'>pn</span> <span class='varid'>pv</span> <span class='varid'>v</span>-<a name="line-373"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='str'>"Parameter restriction: \""</span>-<a name="line-374"></a> <span class='varop'>++</span> <span class='varid'>pn</span> <span class='varop'>++</span> <span class='str'>" = "</span> <span class='varop'>++</span> <span class='varid'>pv</span>-<a name="line-375"></a> <span class='varop'>++</span> <span class='str'>"\" does not hold for value = \""</span> <span class='varop'>++</span> <span class='varid'>v</span> <span class='varop'>++</span> <span class='str'>"\""</span>-<a name="line-376"></a> <span class='layout'>)</span>-<a name="line-377"></a>-<a name="line-378"></a><a name="errorMsgEqual"></a><span class='definition'>errorMsgEqual</span> <span class='keyglyph'>::</span> <span class='conid'>DatatypeName</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-379"></a><span class='definition'>errorMsgEqual</span> <span class='varid'>d</span> <span class='varid'>s1</span> <span class='varid'>s2</span>-<a name="line-380"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='str'>"Datatype"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>d</span> <span class='varop'>++</span>-<a name="line-381"></a> <span class='str'>" with value = "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>s1</span> <span class='varop'>++</span>-<a name="line-382"></a> <span class='str'>" expected, but value = "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>s2</span> <span class='varop'>++</span> <span class='str'>" found"</span> -<a name="line-383"></a> <span class='layout'>)</span>-<a name="line-384"></a><a name="errorMsgDataTypeNotAllowed"></a><span class='definition'>errorMsgDataTypeNotAllowed</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-385"></a><span class='definition'>errorMsgDataTypeNotAllowed</span> <span class='varid'>l</span> <span class='varid'>t</span> <span class='varid'>p</span> <span class='varid'>v</span>-<a name="line-386"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='str'>"Datatype "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>t</span> <span class='varop'>++</span> <span class='str'>" with parameter(s) "</span> <span class='varop'>++</span>-<a name="line-387"></a> <span class='varid'>formatStringListPairs</span> <span class='varid'>p</span> <span class='varop'>++</span> <span class='str'>" and value = "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>v</span> <span class='varop'>++</span>-<a name="line-388"></a> <span class='str'>" not allowed for DatatypeLibrary "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>l</span>-<a name="line-389"></a> <span class='layout'>)</span>-<a name="line-390"></a>-<a name="line-391"></a><a name="errorMsgDataTypeNotAllowed0"></a><span class='definition'>errorMsgDataTypeNotAllowed0</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-392"></a><span class='definition'>errorMsgDataTypeNotAllowed0</span> <span class='varid'>l</span> <span class='varid'>t</span>-<a name="line-393"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='str'>"Datatype "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>t</span> <span class='varop'>++</span>-<a name="line-394"></a> <span class='str'>" not allowed for DatatypeLibrary "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>l</span>-<a name="line-395"></a> <span class='layout'>)</span>-<a name="line-396"></a><a name="errorMsgDataTypeNotAllowed2"></a><span class='definition'>errorMsgDataTypeNotAllowed2</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-397"></a><span class='definition'>errorMsgDataTypeNotAllowed2</span> <span class='varid'>l</span> <span class='varid'>t</span> <span class='varid'>v1</span> <span class='varid'>v2</span>-<a name="line-398"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='str'>"Datatype "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>t</span> <span class='varop'>++</span>-<a name="line-399"></a> <span class='str'>" with values = "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>v1</span> <span class='varop'>++</span>-<a name="line-400"></a> <span class='str'>" and "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>v2</span> <span class='varop'>++</span> -<a name="line-401"></a> <span class='str'>" not allowed for DatatypeLibrary "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>l</span>-<a name="line-402"></a> <span class='layout'>)</span>-<a name="line-403"></a>-<a name="line-404"></a><a name="errorMsgDataLibQName"></a><span class='definition'>errorMsgDataLibQName</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-405"></a><span class='definition'>errorMsgDataLibQName</span> <span class='varid'>l</span> <span class='varid'>n</span> <span class='varid'>v</span>-<a name="line-406"></a> <span class='keyglyph'>=</span> <span class='varid'>show</span> <span class='varid'>v</span> <span class='varop'>++</span> <span class='str'>" is not a valid "</span> <span class='varop'>++</span> <span class='varid'>n</span> <span class='varop'>++</span> <span class='str'>" for DatatypeLibrary "</span> <span class='varop'>++</span> <span class='varid'>l</span>-<a name="line-407"></a>-<a name="line-408"></a><span class='comment'>-- ------------------------------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-RelaxNG-DataTypeLibraries.html
@@ -1,150 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- | This modul exports the list of supported datatype libraries.</span>-<a name="line-2"></a><span class='comment'>-- It also exports the main functions to validate an XML instance value</span>-<a name="line-3"></a><span class='comment'>-- with respect to a datatype.</span>-<a name="line-4"></a>-<a name="line-5"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>DataTypeLibraries</span>-<a name="line-6"></a> <span class='layout'>(</span> <span class='varid'>datatypeLibraries</span>-<a name="line-7"></a> <span class='layout'>,</span> <span class='varid'>datatypeEqual</span>-<a name="line-8"></a> <span class='layout'>,</span> <span class='varid'>datatypeAllows</span>-<a name="line-9"></a> <span class='layout'>)</span>-<a name="line-10"></a><span class='keyword'>where</span>-<a name="line-11"></a>-<a name="line-12"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>-<a name="line-13"></a> <span class='layout'>(</span> <span class='varid'>relaxNamespace</span>-<a name="line-14"></a> <span class='layout'>)</span>-<a name="line-15"></a>-<a name="line-16"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>DataTypeLibUtils</span> -<a name="line-17"></a>-<a name="line-18"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>DataTypeLibMysql</span>-<a name="line-19"></a> <span class='layout'>(</span> <span class='varid'>mysqlDatatypeLib</span> <span class='layout'>)</span>-<a name="line-20"></a>-<a name="line-21"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>XmlSchema</span><span class='varop'>.</span><span class='conid'>DataTypeLibW3C</span>-<a name="line-22"></a> <span class='layout'>(</span> <span class='varid'>w3cDatatypeLib</span> <span class='layout'>)</span>-<a name="line-23"></a>-<a name="line-24"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>-<a name="line-25"></a> <span class='layout'>(</span> <span class='varid'>fromJust</span> <span class='layout'>)</span>-<a name="line-26"></a>-<a name="line-27"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-28"></a> -<a name="line-29"></a>-<a name="line-30"></a><span class='comment'>-- | List of all supported datatype libraries which can be </span>-<a name="line-31"></a><span class='comment'>-- used within the Relax NG validator modul.</span>-<a name="line-32"></a>-<a name="line-33"></a><a name="datatypeLibraries"></a><span class='definition'>datatypeLibraries</span> <span class='keyglyph'>::</span> <span class='conid'>DatatypeLibraries</span> -<a name="line-34"></a><span class='definition'>datatypeLibraries</span>-<a name="line-35"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='varid'>relaxDatatypeLib</span>-<a name="line-36"></a> <span class='layout'>,</span> <span class='varid'>relaxDatatypeLib'</span>-<a name="line-37"></a> <span class='layout'>,</span> <span class='varid'>mysqlDatatypeLib</span>-<a name="line-38"></a> <span class='layout'>,</span> <span class='varid'>w3cDatatypeLib</span>-<a name="line-39"></a> <span class='keyglyph'>]</span>-<a name="line-40"></a>-<a name="line-41"></a>-<a name="line-42"></a><span class='comment'>{- |-<a name="line-43"></a>Tests whether a XML instance value matches a value-pattern.-<a name="line-44"></a>-<a name="line-45"></a>The following tests are performed:-<a name="line-46"></a> -<a name="line-47"></a> * 1. : does the uri exist in the list of supported datatype libraries-<a name="line-48"></a>-<a name="line-49"></a> - 2. : does the library support the datatype-<a name="line-50"></a> -<a name="line-51"></a> - 3. : does the XML instance value match the value-pattern-<a name="line-52"></a> -<a name="line-53"></a>The hard work is done by the specialized 'DatatypeEqual' function -<a name="line-54"></a>(see also: 'DatatypeCheck') of the datatype library.-<a name="line-55"></a>-}</span>-<a name="line-56"></a>-<a name="line-57"></a><a name="datatypeEqual"></a><span class='definition'>datatypeEqual</span> <span class='keyglyph'>::</span> <span class='conid'>Uri</span> <span class='keyglyph'>-></span> <span class='conid'>DatatypeEqual</span> -<a name="line-58"></a><span class='definition'>datatypeEqual</span> <span class='varid'>uri</span> <span class='varid'>d</span> <span class='varid'>s1</span> <span class='varid'>c1</span> <span class='varid'>s2</span> <span class='varid'>c2</span> -<a name="line-59"></a> <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>elem</span> <span class='varid'>uri</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>fst</span> <span class='varid'>datatypeLibraries</span><span class='layout'>)</span> -<a name="line-60"></a> <span class='keyword'>then</span> <span class='varid'>dtEqFct</span> <span class='varid'>d</span> <span class='varid'>s1</span> <span class='varid'>c1</span> <span class='varid'>s2</span> <span class='varid'>c2</span> -<a name="line-61"></a> <span class='keyword'>else</span> <span class='conid'>Just</span> <span class='layout'>(</span> <span class='str'>"Unknown DatatypeLibrary "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>uri</span> <span class='layout'>)</span>-<a name="line-62"></a> <span class='keyword'>where</span>-<a name="line-63"></a> <span class='conid'>DTC</span> <span class='keyword'>_</span> <span class='varid'>dtEqFct</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>lookup</span> <span class='varid'>uri</span> <span class='varid'>datatypeLibraries</span>-<a name="line-64"></a>-<a name="line-65"></a><span class='comment'>{- |-<a name="line-66"></a>Tests whether a XML instance value matches a data-pattern.-<a name="line-67"></a>-<a name="line-68"></a>The following tests are performed:-<a name="line-69"></a> -<a name="line-70"></a> * 1. : does the uri exist in the list of supported datatype libraries-<a name="line-71"></a>-<a name="line-72"></a> - 2. : does the library support the datatype-<a name="line-73"></a> -<a name="line-74"></a> - 3. : does the XML instance value match the data-pattern-<a name="line-75"></a> -<a name="line-76"></a> - 4. : does the XML instance value match all params-<a name="line-77"></a> -<a name="line-78"></a>The hard work is done by the specialized 'DatatypeAllows' function -<a name="line-79"></a>(see also: 'DatatypeCheck') of the datatype library.-<a name="line-80"></a> -<a name="line-81"></a>-}</span>-<a name="line-82"></a>-<a name="line-83"></a><a name="datatypeAllows"></a><span class='definition'>datatypeAllows</span> <span class='keyglyph'>::</span> <span class='conid'>Uri</span> <span class='keyglyph'>-></span> <span class='conid'>DatatypeAllows</span>-<a name="line-84"></a><span class='definition'>datatypeAllows</span> <span class='varid'>uri</span> <span class='varid'>d</span> <span class='varid'>params</span> <span class='varid'>s1</span> <span class='varid'>c1</span> -<a name="line-85"></a> <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>elem</span> <span class='varid'>uri</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>fst</span> <span class='varid'>datatypeLibraries</span><span class='layout'>)</span>-<a name="line-86"></a> <span class='keyword'>then</span> <span class='varid'>dtAllowFct</span> <span class='varid'>d</span> <span class='varid'>params</span> <span class='varid'>s1</span> <span class='varid'>c1</span> -<a name="line-87"></a> <span class='keyword'>else</span> <span class='conid'>Just</span> <span class='layout'>(</span> <span class='str'>"Unknown DatatypeLibrary "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>uri</span> <span class='layout'>)</span>-<a name="line-88"></a> <span class='keyword'>where</span>-<a name="line-89"></a> <span class='conid'>DTC</span> <span class='varid'>dtAllowFct</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>lookup</span> <span class='varid'>uri</span> <span class='varid'>datatypeLibraries</span>-<a name="line-90"></a>-<a name="line-91"></a>-<a name="line-92"></a><span class='comment'>-- -------------------------------------------------------------------------------------- </span>-<a name="line-93"></a><span class='comment'>-- Relax NG build in datatype library</span>-<a name="line-94"></a>-<a name="line-95"></a><a name="relaxDatatypeLib"></a><span class='definition'>relaxDatatypeLib</span> <span class='keyglyph'>::</span> <span class='conid'>DatatypeLibrary</span>-<a name="line-96"></a><span class='definition'>relaxDatatypeLib</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>relaxNamespace</span><span class='layout'>,</span> <span class='conid'>DTC</span> <span class='varid'>datatypeAllowsRelax</span> <span class='varid'>datatypeEqualRelax</span> <span class='varid'>relaxDatatypes</span><span class='layout'>)</span>-<a name="line-97"></a>-<a name="line-98"></a><a name="relaxDatatypeLib'"></a><span class='comment'>-- | if there is no datatype uri, the built in datatype library is used</span>-<a name="line-99"></a><span class='definition'>relaxDatatypeLib'</span> <span class='keyglyph'>::</span> <span class='conid'>DatatypeLibrary</span>-<a name="line-100"></a><span class='definition'>relaxDatatypeLib'</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='str'>""</span><span class='layout'>,</span> <span class='conid'>DTC</span> <span class='varid'>datatypeAllowsRelax</span> <span class='varid'>datatypeEqualRelax</span> <span class='varid'>relaxDatatypes</span><span class='layout'>)</span>-<a name="line-101"></a>-<a name="line-102"></a><span class='comment'>-- | The build in Relax NG datatype lib supportes only the token and string datatype,</span>-<a name="line-103"></a><span class='comment'>-- without any params.</span>-<a name="line-104"></a>-<a name="line-105"></a><a name="relaxDatatypes"></a><span class='definition'>relaxDatatypes</span> <span class='keyglyph'>::</span> <span class='conid'>AllowedDatatypes</span>-<a name="line-106"></a><span class='definition'>relaxDatatypes</span>-<a name="line-107"></a> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='varid'>x</span><span class='layout'>,</span> <span class='conid'>[]</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>fst</span> <span class='layout'>)</span> <span class='varid'>relaxDatatypeTable</span>-<a name="line-108"></a>-<a name="line-109"></a><a name="datatypeAllowsRelax"></a><span class='definition'>datatypeAllowsRelax</span> <span class='keyglyph'>::</span> <span class='conid'>DatatypeAllows</span>-<a name="line-110"></a><span class='definition'>datatypeAllowsRelax</span> <span class='varid'>d</span> <span class='varid'>p</span> <span class='varid'>v</span> <span class='keyword'>_</span> -<a name="line-111"></a> <span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='varid'>notAllowed'</span> <span class='varid'>allowed</span> <span class='varop'>.</span> <span class='varid'>lookup</span> <span class='varid'>d</span> <span class='varop'>$</span> <span class='varid'>relaxDatatypeTable</span>-<a name="line-112"></a> <span class='keyword'>where</span>-<a name="line-113"></a> <span class='varid'>notAllowed'</span>-<a name="line-114"></a> <span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='varop'>$</span> <span class='varid'>errorMsgDataTypeNotAllowed</span> <span class='varid'>relaxNamespace</span> <span class='varid'>d</span> <span class='varid'>p</span> <span class='varid'>v</span>-<a name="line-115"></a> <span class='varid'>allowed</span> <span class='keyword'>_</span>-<a name="line-116"></a> <span class='keyglyph'>=</span> <span class='conid'>Nothing</span>-<a name="line-117"></a>-<a name="line-118"></a><span class='comment'>-- | If the token datatype is used, the values have to be normalized</span>-<a name="line-119"></a><span class='comment'>-- (trailing and leading whitespaces are removed).</span>-<a name="line-120"></a><span class='comment'>-- token does not perform any changes to the values.</span>-<a name="line-121"></a>-<a name="line-122"></a><a name="datatypeEqualRelax"></a><span class='definition'>datatypeEqualRelax</span> <span class='keyglyph'>::</span> <span class='conid'>DatatypeEqual</span>-<a name="line-123"></a><span class='definition'>datatypeEqualRelax</span> <span class='varid'>d</span> <span class='varid'>s1</span> <span class='keyword'>_</span> <span class='varid'>s2</span> <span class='keyword'>_</span>-<a name="line-124"></a> <span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='varid'>notAllowed'</span> <span class='varid'>checkValues</span> <span class='varop'>.</span> <span class='varid'>lookup</span> <span class='varid'>d</span> <span class='varop'>$</span> <span class='varid'>relaxDatatypeTable</span>-<a name="line-125"></a> <span class='keyword'>where</span>-<a name="line-126"></a> <span class='varid'>notAllowed'</span>-<a name="line-127"></a> <span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='varop'>$</span> <span class='varid'>errorMsgDataTypeNotAllowed2</span> <span class='varid'>relaxNamespace</span> <span class='varid'>d</span> <span class='varid'>s1</span> <span class='varid'>s2</span>-<a name="line-128"></a> <span class='varid'>checkValues</span> <span class='varid'>predicate</span>-<a name="line-129"></a> <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>predicate</span> <span class='varid'>s1</span> <span class='varid'>s2</span>-<a name="line-130"></a> <span class='keyword'>then</span> <span class='conid'>Nothing</span>-<a name="line-131"></a> <span class='keyword'>else</span> <span class='conid'>Just</span> <span class='varop'>$</span> <span class='varid'>errorMsgEqual</span> <span class='varid'>d</span> <span class='varid'>s1</span> <span class='varid'>s2</span>-<a name="line-132"></a>-<a name="line-133"></a><a name="relaxDatatypeTable"></a><span class='definition'>relaxDatatypeTable</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-134"></a><span class='definition'>relaxDatatypeTable</span>-<a name="line-135"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='str'>"string"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varop'>==</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-136"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"token"</span><span class='layout'>,</span> <span class='keyglyph'>\</span> <span class='varid'>s1</span> <span class='varid'>s2</span> <span class='keyglyph'>-></span> <span class='varid'>normalizeWhitespace</span> <span class='varid'>s1</span> <span class='varop'>==</span> <span class='varid'>normalizeWhitespace</span> <span class='varid'>s2</span> <span class='layout'>)</span>-<a name="line-137"></a> <span class='keyglyph'>]</span>-<a name="line-138"></a>-<a name="line-139"></a>-<a name="line-140"></a><span class='comment'>-- -------------------------------------------------------------------------------------- </span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-RelaxNG-DataTypes.html
@@ -1,306 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>DataTypes</span>-<a name="line-2"></a><span class='keyword'>where</span> -<a name="line-3"></a>-<a name="line-4"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>TypeDefs</span>-<a name="line-5"></a>-<a name="line-6"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-7"></a>-<a name="line-8"></a><a name="relaxSchemaFile"></a><span class='definition'>relaxSchemaFile</span> <span class='keyglyph'>::</span> <span class='conid'>String</span>-<a name="line-9"></a><span class='definition'>relaxSchemaFile</span> <span class='keyglyph'>=</span> <span class='str'>"Text/XML/HXT/RelaxNG/SpecificationSchema.rng"</span>-<a name="line-10"></a>-<a name="line-11"></a>-<a name="line-12"></a><a name="relaxSchemaGrammarFile"></a><span class='definition'>relaxSchemaGrammarFile</span> <span class='keyglyph'>::</span> <span class='conid'>String</span>-<a name="line-13"></a><span class='definition'>relaxSchemaGrammarFile</span> <span class='keyglyph'>=</span> <span class='str'>"Text/XML/HXT/RelaxNG/SpecificationSchemaGrammar.rng"</span>-<a name="line-14"></a>-<a name="line-15"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-16"></a><span class='comment'>-- datatypes for the simplification process</span>-<a name="line-17"></a>-<a name="line-18"></a><a name="a_numberOfErrors"></a><span class='definition'>a_numberOfErrors</span><span class='layout'>,</span>-<a name="line-19"></a> <span class='varid'>a_relaxSimplificationChanges</span><span class='layout'>,</span>-<a name="line-20"></a> <span class='varid'>defineOrigName</span> <span class='keyglyph'>::</span> <span class='conid'>String</span>-<a name="line-21"></a>-<a name="line-22"></a><span class='definition'>a_numberOfErrors</span> <span class='keyglyph'>=</span> <span class='str'>"numberOfErrors"</span>-<a name="line-23"></a><a name="a_relaxSimplificationChanges"></a><span class='definition'>a_relaxSimplificationChanges</span> <span class='keyglyph'>=</span> <span class='str'>"relaxSimplificationChanges"</span>-<a name="line-24"></a><a name="defineOrigName"></a><span class='definition'>defineOrigName</span> <span class='keyglyph'>=</span> <span class='str'>"RelaxDefineOriginalName"</span>-<a name="line-25"></a>-<a name="line-26"></a>-<a name="line-27"></a><a name="Env"></a><span class='keyword'>type</span> <span class='conid'>Env</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>XmlTree</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-28"></a>-<a name="line-29"></a><span class='comment'>-- | Start of a context attribute value </span>-<a name="line-30"></a><span class='comment'>-- (see also: 'Text.XML.HXT.RelaxNG.Simplification.simplificationStep1')</span>-<a name="line-31"></a><span class='comment'>--</span>-<a name="line-32"></a><span class='comment'>-- The value is always followed by the original attribute name and value</span>-<a name="line-33"></a>-<a name="line-34"></a><a name="contextAttributes"></a><span class='definition'>contextAttributes</span> <span class='keyglyph'>::</span> <span class='conid'>String</span>-<a name="line-35"></a><span class='definition'>contextAttributes</span> <span class='keyglyph'>=</span> <span class='str'>"RelaxContext:"</span>-<a name="line-36"></a>-<a name="line-37"></a>-<a name="line-38"></a><span class='comment'>-- | Start of base uri attribute value </span>-<a name="line-39"></a><span class='comment'>-- (see also: 'simplificationStep1' in "Text.XML.HXT.RelaxNG.Simplification")</span>-<a name="line-40"></a>-<a name="line-41"></a><a name="contextBaseAttr"></a><span class='definition'>contextBaseAttr</span> <span class='keyglyph'>::</span> <span class='conid'>String</span>-<a name="line-42"></a><span class='definition'>contextBaseAttr</span> <span class='keyglyph'>=</span> <span class='str'>"RelaxContextBaseURI"</span>-<a name="line-43"></a>-<a name="line-44"></a>-<a name="line-45"></a><span class='comment'>-- see simplificationStep5 in Text.XML.HXT.RelaxNG.Simplification</span>-<a name="line-46"></a>-<a name="line-47"></a><a name="OldName"></a><span class='keyword'>type</span> <span class='conid'>OldName</span> <span class='keyglyph'>=</span> <span class='conid'>String</span>-<a name="line-48"></a><a name="NewName"></a><span class='keyword'>type</span> <span class='conid'>NewName</span> <span class='keyglyph'>=</span> <span class='conid'>String</span>-<a name="line-49"></a><a name="NamePair"></a><span class='keyword'>type</span> <span class='conid'>NamePair</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>OldName</span><span class='layout'>,</span> <span class='conid'>NewName</span><span class='layout'>)</span>-<a name="line-50"></a><a name="RefList"></a><span class='keyword'>type</span> <span class='conid'>RefList</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>NamePair</span><span class='keyglyph'>]</span>-<a name="line-51"></a>-<a name="line-52"></a>-<a name="line-53"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-54"></a><span class='comment'>-- datatype library handling</span>-<a name="line-55"></a>-<a name="line-56"></a><span class='comment'>-- | Type of all datatype libraries functions that tests whether </span>-<a name="line-57"></a><span class='comment'>-- a XML instance value matches a value-pattern.</span>-<a name="line-58"></a><span class='comment'>--</span>-<a name="line-59"></a><span class='comment'>-- Returns Just \"errorMessage\" in case of an error else Nothing.</span>-<a name="line-60"></a>-<a name="line-61"></a><a name="DatatypeEqual"></a><span class='keyword'>type</span> <span class='conid'>DatatypeEqual</span> <span class='keyglyph'>=</span> <span class='conid'>DatatypeName</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='conid'>Maybe</span> <span class='conid'>String</span>-<a name="line-62"></a>-<a name="line-63"></a>-<a name="line-64"></a><span class='comment'>-- | Type of all datatype libraries functions that tests whether </span>-<a name="line-65"></a><span class='comment'>-- a XML instance value matches a data-pattern.</span>-<a name="line-66"></a><span class='comment'>--</span>-<a name="line-67"></a><span class='comment'>-- Returns Just \"errorMessage\" in case of an error else Nothing.</span>-<a name="line-68"></a>-<a name="line-69"></a><a name="DatatypeAllows"></a><span class='keyword'>type</span> <span class='conid'>DatatypeAllows</span> <span class='keyglyph'>=</span> <span class='conid'>DatatypeName</span> <span class='keyglyph'>-></span> <span class='conid'>ParamList</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='conid'>Maybe</span> <span class='conid'>String</span>-<a name="line-70"></a>-<a name="line-71"></a>-<a name="line-72"></a><span class='comment'>-- | List of all supported datatype libraries</span>-<a name="line-73"></a>-<a name="line-74"></a><a name="DatatypeLibraries"></a><span class='keyword'>type</span> <span class='conid'>DatatypeLibraries</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>DatatypeLibrary</span><span class='keyglyph'>]</span>-<a name="line-75"></a>-<a name="line-76"></a>-<a name="line-77"></a><span class='comment'>-- | Each datatype library is identified by a URI.</span>-<a name="line-78"></a>-<a name="line-79"></a><a name="DatatypeLibrary"></a><span class='keyword'>type</span> <span class='conid'>DatatypeLibrary</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>Uri</span><span class='layout'>,</span> <span class='conid'>DatatypeCheck</span><span class='layout'>)</span>-<a name="line-80"></a>-<a name="line-81"></a><a name="DatatypeName"></a><span class='keyword'>type</span> <span class='conid'>DatatypeName</span> <span class='keyglyph'>=</span> <span class='conid'>String</span>-<a name="line-82"></a>-<a name="line-83"></a><a name="ParamName"></a><span class='keyword'>type</span> <span class='conid'>ParamName</span> <span class='keyglyph'>=</span> <span class='conid'>String</span>-<a name="line-84"></a>-<a name="line-85"></a>-<a name="line-86"></a><span class='comment'>-- | List of all supported params for a datatype</span>-<a name="line-87"></a>-<a name="line-88"></a><a name="AllowedParams"></a><span class='keyword'>type</span> <span class='conid'>AllowedParams</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>ParamName</span><span class='keyglyph'>]</span>-<a name="line-89"></a>-<a name="line-90"></a>-<a name="line-91"></a><span class='comment'>-- | List of all supported datatypes and there allowed params</span>-<a name="line-92"></a>-<a name="line-93"></a><a name="AllowedDatatypes"></a><span class='keyword'>type</span> <span class='conid'>AllowedDatatypes</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>DatatypeName</span><span class='layout'>,</span> <span class='conid'>AllowedParams</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-94"></a>-<a name="line-95"></a>-<a name="line-96"></a><span class='comment'>-- | The Constructor exports the list of supported datatypes for a library.</span>-<a name="line-97"></a><span class='comment'>-- It also exports the specialized datatype library functions to validate </span>-<a name="line-98"></a><span class='comment'>-- a XML instance value with respect to a datatype.</span>-<a name="line-99"></a>-<a name="line-100"></a><a name="DatatypeCheck"></a><span class='keyword'>data</span> <span class='conid'>DatatypeCheck</span> -<a name="line-101"></a> <span class='keyglyph'>=</span> <span class='conid'>DTC</span> <span class='layout'>{</span> <span class='varid'>dtAllowsFct</span> <span class='keyglyph'>::</span> <span class='conid'>DatatypeAllows</span> <span class='comment'>-- ^ function to test whether a value matches a data-pattern</span>-<a name="line-102"></a> <span class='layout'>,</span> <span class='varid'>dtEqualFct</span> <span class='keyglyph'>::</span> <span class='conid'>DatatypeEqual</span> <span class='comment'>-- ^ function to test whether a value matches a value-pattern</span>-<a name="line-103"></a> <span class='layout'>,</span> <span class='varid'>dtAllowedTypes</span> <span class='keyglyph'>::</span> <span class='conid'>AllowedDatatypes</span> <span class='comment'>-- ^ list of all supported params for a datatype</span>-<a name="line-104"></a> <span class='layout'>}</span>-<a name="line-105"></a>-<a name="line-106"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-107"></a><span class='comment'>-- datatypes for the validation process</span>-<a name="line-108"></a>-<a name="line-109"></a><a name="Uri"></a><span class='keyword'>type</span> <span class='conid'>Uri</span> <span class='keyglyph'>=</span> <span class='conid'>String</span>-<a name="line-110"></a>-<a name="line-111"></a><a name="LocalName"></a><span class='keyword'>type</span> <span class='conid'>LocalName</span> <span class='keyglyph'>=</span> <span class='conid'>String</span>-<a name="line-112"></a>-<a name="line-113"></a>-<a name="line-114"></a><span class='comment'>-- | List of parameters; each parameter is a pair consisting of a local name and a value.</span>-<a name="line-115"></a>-<a name="line-116"></a><a name="ParamList"></a><span class='keyword'>type</span> <span class='conid'>ParamList</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>LocalName</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-117"></a>-<a name="line-118"></a><a name="Prefix"></a><span class='keyword'>type</span> <span class='conid'>Prefix</span> <span class='keyglyph'>=</span> <span class='conid'>String</span>-<a name="line-119"></a>-<a name="line-120"></a>-<a name="line-121"></a><span class='comment'>-- | A Context represents the context of an XML element. </span>-<a name="line-122"></a><span class='comment'>-- It consists of a base URI and a mapping from prefixes to namespace URIs.</span>-<a name="line-123"></a>-<a name="line-124"></a><a name="Context"></a><span class='keyword'>type</span> <span class='conid'>Context</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>Uri</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>Prefix</span><span class='layout'>,</span> <span class='conid'>Uri</span><span class='layout'>)</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-125"></a>-<a name="line-126"></a><span class='comment'>-- | A Datatype identifies a datatype by a datatype library name and a local name.</span>-<a name="line-127"></a>-<a name="line-128"></a><a name="Datatype"></a><span class='keyword'>type</span> <span class='conid'>Datatype</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>Uri</span><span class='layout'>,</span> <span class='conid'>LocalName</span><span class='layout'>)</span>-<a name="line-129"></a>-<a name="line-130"></a><a name="showDatatype"></a><span class='definition'>showDatatype</span> <span class='keyglyph'>::</span> <span class='conid'>Datatype</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-131"></a><span class='definition'>showDatatype</span> <span class='layout'>(</span><span class='varid'>u</span><span class='layout'>,</span> <span class='varid'>ln</span><span class='layout'>)</span>-<a name="line-132"></a> <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>u</span> <span class='keyglyph'>=</span> <span class='varid'>ln</span>-<a name="line-133"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='str'>"{"</span> <span class='varop'>++</span> <span class='varid'>u</span> <span class='varop'>++</span> <span class='str'>"}"</span> <span class='varop'>++</span> <span class='varid'>ln</span>-<a name="line-134"></a>-<a name="line-135"></a><span class='comment'>-- | Represents a name class</span>-<a name="line-136"></a>-<a name="line-137"></a><a name="NameClass"></a><span class='keyword'>data</span> <span class='conid'>NameClass</span> <span class='keyglyph'>=</span> <span class='conid'>AnyName</span>-<a name="line-138"></a> <span class='keyglyph'>|</span> <span class='conid'>AnyNameExcept</span> <span class='conid'>NameClass</span>-<a name="line-139"></a> <span class='keyglyph'>|</span> <span class='conid'>Name</span> <span class='conid'>Uri</span> <span class='conid'>LocalName</span>-<a name="line-140"></a> <span class='keyglyph'>|</span> <span class='conid'>NsName</span> <span class='conid'>Uri</span>-<a name="line-141"></a> <span class='keyglyph'>|</span> <span class='conid'>NsNameExcept</span> <span class='conid'>Uri</span> <span class='conid'>NameClass</span>-<a name="line-142"></a> <span class='keyglyph'>|</span> <span class='conid'>NameClassChoice</span> <span class='conid'>NameClass</span> <span class='conid'>NameClass</span>-<a name="line-143"></a> <span class='keyglyph'>|</span> <span class='conid'>NCError</span> <span class='conid'>String</span>-<a name="line-144"></a> <span class='keyword'>deriving</span> <span class='conid'>Eq</span>-<a name="line-145"></a>-<a name="line-146"></a><span class='keyword'>instance</span> <span class='conid'>Show</span> <span class='conid'>NameClass</span>-<a name="line-147"></a> <span class='keyword'>where</span>-<a name="line-148"></a> <span class='varid'>show</span> <span class='conid'>AnyName</span> <span class='keyglyph'>=</span> <span class='str'>"AnyName"</span>-<a name="line-149"></a> <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>AnyNameExcept</span> <span class='varid'>nameClass</span><span class='layout'>)</span> -<a name="line-150"></a> <span class='keyglyph'>=</span> <span class='str'>"AnyNameExcept: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>nameClass</span>-<a name="line-151"></a> <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>Name</span> <span class='varid'>uri</span> <span class='varid'>localName</span><span class='layout'>)</span>-<a name="line-152"></a> <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>uri</span> <span class='keyglyph'>=</span> <span class='varid'>localName</span>-<a name="line-153"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='str'>"{"</span> <span class='varop'>++</span> <span class='varid'>uri</span> <span class='varop'>++</span> <span class='str'>"}"</span> <span class='varop'>++</span> <span class='varid'>localName</span>-<a name="line-154"></a> <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>NsName</span> <span class='varid'>uri</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>"{"</span> <span class='varop'>++</span> <span class='varid'>uri</span> <span class='varop'>++</span> <span class='str'>"}AnyName"</span>-<a name="line-155"></a> <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>NsNameExcept</span> <span class='varid'>uri</span> <span class='varid'>nameClass</span><span class='layout'>)</span> -<a name="line-156"></a> <span class='keyglyph'>=</span> <span class='str'>"NsNameExcept: {"</span> <span class='varop'>++</span> <span class='varid'>uri</span> <span class='varop'>++</span> <span class='str'>"}"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>nameClass</span>-<a name="line-157"></a> <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>NameClassChoice</span> <span class='varid'>nameClass1</span> <span class='varid'>nameClass2</span><span class='layout'>)</span>-<a name="line-158"></a> <span class='keyglyph'>=</span> <span class='str'>"NameClassChoice: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>nameClass1</span> <span class='varop'>++</span> <span class='str'>"|"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>nameClass2</span>-<a name="line-159"></a> <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>NCError</span> <span class='varid'>string</span><span class='layout'>)</span>-<a name="line-160"></a> <span class='keyglyph'>=</span> <span class='str'>"NCError: "</span> <span class='varop'>++</span> <span class='varid'>string</span>-<a name="line-161"></a>-<a name="line-162"></a>-<a name="line-163"></a><span class='comment'>-- | Represents a pattern after simplification</span>-<a name="line-164"></a>-<a name="line-165"></a><a name="Pattern"></a><span class='keyword'>data</span> <span class='conid'>Pattern</span> <span class='keyglyph'>=</span> <span class='conid'>Empty</span>-<a name="line-166"></a> <span class='keyglyph'>|</span> <span class='conid'>NotAllowed</span> <span class='conid'>ErrMessage</span>-<a name="line-167"></a> <span class='keyglyph'>|</span> <span class='conid'>Text</span>-<a name="line-168"></a> <span class='keyglyph'>|</span> <span class='conid'>Choice</span> <span class='conid'>Pattern</span> <span class='conid'>Pattern</span>-<a name="line-169"></a> <span class='keyglyph'>|</span> <span class='conid'>Interleave</span> <span class='conid'>Pattern</span> <span class='conid'>Pattern</span>-<a name="line-170"></a> <span class='keyglyph'>|</span> <span class='conid'>Group</span> <span class='conid'>Pattern</span> <span class='conid'>Pattern</span>-<a name="line-171"></a> <span class='keyglyph'>|</span> <span class='conid'>OneOrMore</span> <span class='conid'>Pattern</span>-<a name="line-172"></a> <span class='keyglyph'>|</span> <span class='conid'>List</span> <span class='conid'>Pattern</span>-<a name="line-173"></a> <span class='keyglyph'>|</span> <span class='conid'>Data</span> <span class='conid'>Datatype</span> <span class='conid'>ParamList</span>-<a name="line-174"></a> <span class='keyglyph'>|</span> <span class='conid'>DataExcept</span> <span class='conid'>Datatype</span> <span class='conid'>ParamList</span> <span class='conid'>Pattern</span>-<a name="line-175"></a> <span class='keyglyph'>|</span> <span class='conid'>Value</span> <span class='conid'>Datatype</span> <span class='conid'>String</span> <span class='conid'>Context</span>-<a name="line-176"></a> <span class='keyglyph'>|</span> <span class='conid'>Attribute</span> <span class='conid'>NameClass</span> <span class='conid'>Pattern</span>-<a name="line-177"></a> <span class='keyglyph'>|</span> <span class='conid'>Element</span> <span class='conid'>NameClass</span> <span class='conid'>Pattern</span>-<a name="line-178"></a> <span class='keyglyph'>|</span> <span class='conid'>After</span> <span class='conid'>Pattern</span> <span class='conid'>Pattern</span>-<a name="line-179"></a>-<a name="line-180"></a><span class='keyword'>instance</span> <span class='conid'>Show</span> <span class='conid'>Pattern</span> <span class='keyword'>where</span>-<a name="line-181"></a> <span class='varid'>show</span> <span class='conid'>Empty</span> <span class='keyglyph'>=</span> <span class='str'>"empty"</span>-<a name="line-182"></a> <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>NotAllowed</span> <span class='varid'>e</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>show</span> <span class='varid'>e</span>-<a name="line-183"></a> <span class='varid'>show</span> <span class='conid'>Text</span> <span class='keyglyph'>=</span> <span class='str'>"text"</span>-<a name="line-184"></a> <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>Choice</span> <span class='varid'>p1</span> <span class='varid'>p2</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>"( "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>p1</span> <span class='varop'>++</span> <span class='str'>" | "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>p2</span> <span class='varop'>++</span> <span class='str'>" )"</span>-<a name="line-185"></a> <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>Interleave</span> <span class='varid'>p1</span> <span class='varid'>p2</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>"( "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>p1</span> <span class='varop'>++</span> <span class='str'>" & "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>p2</span> <span class='varop'>++</span> <span class='str'>" )"</span>-<a name="line-186"></a> <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>Group</span> <span class='varid'>p1</span> <span class='varid'>p2</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>"( "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>p1</span> <span class='varop'>++</span> <span class='str'>" , "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>p2</span> <span class='varop'>++</span> <span class='str'>" )"</span>-<a name="line-187"></a> <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>OneOrMore</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>show</span> <span class='varid'>p</span> <span class='varop'>++</span> <span class='str'>"+"</span>-<a name="line-188"></a> <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>List</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>"list { "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>p</span> <span class='varop'>++</span> <span class='str'>" }"</span>-<a name="line-189"></a> <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>Data</span> <span class='varid'>dt</span> <span class='varid'>pl</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>showDatatype</span> <span class='varid'>dt</span> <span class='varop'>++</span> <span class='varid'>showPL</span> <span class='varid'>pl</span>-<a name="line-190"></a> <span class='keyword'>where</span>-<a name="line-191"></a> <span class='varid'>showPL</span> <span class='conid'>[]</span> <span class='keyglyph'>=</span> <span class='str'>""</span>-<a name="line-192"></a> <span class='varid'>showPL</span> <span class='varid'>l</span> <span class='keyglyph'>=</span> <span class='str'>" {"</span> <span class='varop'>++</span> <span class='varid'>concatMap</span> <span class='varid'>showP</span> <span class='varid'>l</span> <span class='varop'>++</span> <span class='str'>" }"</span>-<a name="line-193"></a> <span class='varid'>showP</span> <span class='layout'>(</span><span class='varid'>ln</span><span class='layout'>,</span> <span class='varid'>v</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>" "</span> <span class='varop'>++</span> <span class='varid'>ln</span> <span class='varop'>++</span> <span class='str'>" = "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>v</span>-<a name="line-194"></a> <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>DataExcept</span> <span class='varid'>dt</span> <span class='varid'>pl</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>Data</span> <span class='varid'>dt</span> <span class='varid'>pl</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='str'>" - ("</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>p</span> <span class='varop'>++</span> <span class='str'>" )"</span>-<a name="line-195"></a> <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>Value</span> <span class='varid'>dt</span> <span class='varid'>v</span> <span class='sel'>_cx</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>showDatatype</span> <span class='varid'>dt</span> <span class='varop'>++</span> <span class='str'>" "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>v</span>-<a name="line-196"></a> <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>Attribute</span> <span class='varid'>nc</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>"attribute "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>nc</span> <span class='varop'>++</span> <span class='str'>" { "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>p</span> <span class='varop'>++</span> <span class='str'>" }"</span>-<a name="line-197"></a> <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>Element</span> <span class='varid'>nc</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>"element "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>nc</span> <span class='varop'>++</span> <span class='str'>" { "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>p</span> <span class='varop'>++</span> <span class='str'>" }"</span>-<a name="line-198"></a> <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>After</span> <span class='varid'>p1</span> <span class='varid'>p2</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>"( "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>p1</span> <span class='varop'>++</span> <span class='str'>" ; "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>p2</span> <span class='varop'>++</span> <span class='str'>" )"</span>-<a name="line-199"></a>-<a name="line-200"></a><a name="ErrMessage"></a><span class='keyword'>data</span> <span class='conid'>ErrMessage</span> <span class='keyglyph'>=</span> <span class='conid'>ErrMsg</span> <span class='conid'>ErrLevel</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span>-<a name="line-201"></a> <span class='comment'>-- deriving Show</span>-<a name="line-202"></a>-<a name="line-203"></a><span class='keyword'>instance</span> <span class='conid'>Show</span> <span class='conid'>ErrMessage</span> <span class='keyword'>where</span>-<a name="line-204"></a> <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>ErrMsg</span> <span class='sel'>_lev</span> <span class='varid'>es</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>foldr1</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='varid'>y</span> <span class='keyglyph'>-></span> <span class='varid'>x</span> <span class='varop'>++</span> <span class='str'>"\n"</span> <span class='varop'>++</span> <span class='varid'>y</span><span class='layout'>)</span> <span class='varid'>es</span>-<a name="line-205"></a>-<a name="line-206"></a><a name="ErrLevel"></a><span class='keyword'>type</span> <span class='conid'>ErrLevel</span> <span class='keyglyph'>=</span> <span class='conid'>Int</span>-<a name="line-207"></a>-<a name="line-208"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-209"></a>-<a name="line-210"></a><span class='comment'>-- smart constructor funtions for Pattern</span>-<a name="line-211"></a>-<a name="line-212"></a><span class='comment'>-- | smart constructor for NotAllowed</span>-<a name="line-213"></a>-<a name="line-214"></a><a name="notAllowed"></a><span class='definition'>notAllowed</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Pattern</span>-<a name="line-215"></a><span class='definition'>notAllowed</span> <span class='keyglyph'>=</span> <span class='varid'>notAllowedN</span> <span class='num'>0</span>-<a name="line-216"></a>-<a name="line-217"></a><a name="notAllowed1"></a><span class='definition'>notAllowed1</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Pattern</span>-<a name="line-218"></a><span class='definition'>notAllowed1</span> <span class='keyglyph'>=</span> <span class='varid'>notAllowedN</span> <span class='num'>1</span>-<a name="line-219"></a>-<a name="line-220"></a><a name="notAllowed2"></a><span class='definition'>notAllowed2</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Pattern</span>-<a name="line-221"></a><span class='definition'>notAllowed2</span> <span class='keyglyph'>=</span> <span class='varid'>notAllowedN</span> <span class='num'>2</span>-<a name="line-222"></a>-<a name="line-223"></a><a name="notAllowedN"></a><span class='definition'>notAllowedN</span> <span class='keyglyph'>::</span> <span class='conid'>ErrLevel</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Pattern</span>-<a name="line-224"></a><span class='definition'>notAllowedN</span> <span class='varid'>l</span> <span class='varid'>s</span> <span class='keyglyph'>=</span> <span class='conid'>NotAllowed</span> <span class='layout'>(</span><span class='conid'>ErrMsg</span> <span class='varid'>l</span> <span class='keyglyph'>[</span><span class='varid'>s</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-225"></a>-<a name="line-226"></a><span class='comment'>-- | merge error messages</span>-<a name="line-227"></a><span class='comment'>--</span>-<a name="line-228"></a><span class='comment'>-- If error levels are different, the more important is taken,</span>-<a name="line-229"></a><span class='comment'>-- if level is 2 (max level) both error messages are taken</span>-<a name="line-230"></a><span class='comment'>-- else the 1. error mesage is taken</span>-<a name="line-231"></a>-<a name="line-232"></a><a name="mergeNotAllowed"></a><span class='definition'>mergeNotAllowed</span> <span class='keyglyph'>::</span> <span class='conid'>Pattern</span> <span class='keyglyph'>-></span> <span class='conid'>Pattern</span> <span class='keyglyph'>-></span> <span class='conid'>Pattern</span>-<a name="line-233"></a><span class='definition'>mergeNotAllowed</span> <span class='varid'>p1</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NotAllowed</span> <span class='layout'>(</span><span class='conid'>ErrMsg</span> <span class='varid'>l1</span> <span class='varid'>s1</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varid'>p2</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NotAllowed</span> <span class='layout'>(</span><span class='conid'>ErrMsg</span> <span class='varid'>l2</span> <span class='varid'>s2</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-234"></a> <span class='keyglyph'>|</span> <span class='varid'>l1</span> <span class='varop'><</span> <span class='varid'>l2</span> <span class='keyglyph'>=</span> <span class='varid'>p2</span>-<a name="line-235"></a> <span class='keyglyph'>|</span> <span class='varid'>l1</span> <span class='varop'>></span> <span class='varid'>l2</span> <span class='keyglyph'>=</span> <span class='varid'>p1</span>-<a name="line-236"></a> <span class='keyglyph'>|</span> <span class='varid'>l1</span> <span class='varop'>==</span> <span class='num'>2</span> <span class='keyglyph'>=</span> <span class='conid'>NotAllowed</span> <span class='varop'>$</span> <span class='conid'>ErrMsg</span> <span class='num'>2</span> <span class='layout'>(</span><span class='varid'>s1</span> <span class='varop'>++</span> <span class='varid'>s2</span><span class='layout'>)</span>-<a name="line-237"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>p1</span>-<a name="line-238"></a>-<a name="line-239"></a><span class='comment'>-- TODO : weird error when collecting error messages errors are duplicated</span>-<a name="line-240"></a>-<a name="line-241"></a><span class='definition'>mergeNotAllowed</span> <span class='sel'>_p1</span> <span class='sel'>_p2</span>-<a name="line-242"></a> <span class='keyglyph'>=</span> <span class='varid'>notAllowed2</span> <span class='str'>"mergeNotAllowed with wrong patterns"</span>-<a name="line-243"></a>-<a name="line-244"></a><span class='comment'>-- | smart constructor for Choice</span>-<a name="line-245"></a>-<a name="line-246"></a><a name="choice"></a><span class='definition'>choice</span> <span class='keyglyph'>::</span> <span class='conid'>Pattern</span> <span class='keyglyph'>-></span> <span class='conid'>Pattern</span> <span class='keyglyph'>-></span> <span class='conid'>Pattern</span>-<a name="line-247"></a><span class='definition'>choice</span> <span class='varid'>p1</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NotAllowed</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='varid'>p2</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NotAllowed</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>mergeNotAllowed</span> <span class='varid'>p1</span> <span class='varid'>p2</span>-<a name="line-248"></a><span class='definition'>choice</span> <span class='varid'>p1</span> <span class='layout'>(</span><span class='conid'>NotAllowed</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>p1</span>-<a name="line-249"></a><span class='definition'>choice</span> <span class='layout'>(</span><span class='conid'>NotAllowed</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='varid'>p2</span> <span class='keyglyph'>=</span> <span class='varid'>p2</span>-<a name="line-250"></a><span class='definition'>choice</span> <span class='varid'>p1</span> <span class='varid'>p2</span> <span class='keyglyph'>=</span> <span class='conid'>Choice</span> <span class='varid'>p1</span> <span class='varid'>p2</span>-<a name="line-251"></a>-<a name="line-252"></a><span class='comment'>-- | smart constructor for Group</span>-<a name="line-253"></a>-<a name="line-254"></a><a name="group"></a><span class='definition'>group</span> <span class='keyglyph'>::</span> <span class='conid'>Pattern</span> <span class='keyglyph'>-></span> <span class='conid'>Pattern</span> <span class='keyglyph'>-></span> <span class='conid'>Pattern</span>-<a name="line-255"></a><span class='definition'>group</span> <span class='varid'>p1</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NotAllowed</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='varid'>p2</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NotAllowed</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>mergeNotAllowed</span> <span class='varid'>p1</span> <span class='varid'>p2</span>-<a name="line-256"></a><span class='definition'>group</span> <span class='keyword'>_</span> <span class='varid'>n</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NotAllowed</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>n</span>-<a name="line-257"></a><span class='definition'>group</span> <span class='varid'>n</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NotAllowed</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='varid'>n</span>-<a name="line-258"></a><span class='definition'>group</span> <span class='varid'>p</span> <span class='conid'>Empty</span> <span class='keyglyph'>=</span> <span class='varid'>p</span>-<a name="line-259"></a><span class='definition'>group</span> <span class='conid'>Empty</span> <span class='varid'>p</span> <span class='keyglyph'>=</span> <span class='varid'>p</span>-<a name="line-260"></a><span class='definition'>group</span> <span class='varid'>p1</span> <span class='varid'>p2</span> <span class='keyglyph'>=</span> <span class='conid'>Group</span> <span class='varid'>p1</span> <span class='varid'>p2</span>-<a name="line-261"></a>-<a name="line-262"></a><span class='comment'>-- | smart constructor for OneOrMore</span>-<a name="line-263"></a>-<a name="line-264"></a><a name="oneOrMore"></a><span class='definition'>oneOrMore</span> <span class='keyglyph'>::</span> <span class='conid'>Pattern</span> <span class='keyglyph'>-></span> <span class='conid'>Pattern</span>-<a name="line-265"></a><span class='definition'>oneOrMore</span> <span class='varid'>n</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NotAllowed</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>n</span>-<a name="line-266"></a><span class='definition'>oneOrMore</span> <span class='varid'>p</span> <span class='keyglyph'>=</span> <span class='conid'>OneOrMore</span> <span class='varid'>p</span>-<a name="line-267"></a>-<a name="line-268"></a><span class='comment'>-- | smart constructor for Interleave</span>-<a name="line-269"></a>-<a name="line-270"></a><a name="interleave"></a><span class='definition'>interleave</span> <span class='keyglyph'>::</span> <span class='conid'>Pattern</span> <span class='keyglyph'>-></span> <span class='conid'>Pattern</span> <span class='keyglyph'>-></span> <span class='conid'>Pattern</span>-<a name="line-271"></a><span class='definition'>interleave</span> <span class='varid'>p1</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NotAllowed</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='varid'>p2</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NotAllowed</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>mergeNotAllowed</span> <span class='varid'>p1</span> <span class='varid'>p2</span>-<a name="line-272"></a><span class='definition'>interleave</span> <span class='keyword'>_</span> <span class='varid'>p2</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NotAllowed</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>p2</span>-<a name="line-273"></a><span class='definition'>interleave</span> <span class='varid'>p1</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NotAllowed</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='varid'>p1</span>-<a name="line-274"></a><span class='definition'>interleave</span> <span class='varid'>p1</span> <span class='conid'>Empty</span> <span class='keyglyph'>=</span> <span class='varid'>p1</span>-<a name="line-275"></a><span class='definition'>interleave</span> <span class='conid'>Empty</span> <span class='varid'>p2</span> <span class='keyglyph'>=</span> <span class='varid'>p2</span>-<a name="line-276"></a><span class='definition'>interleave</span> <span class='varid'>p1</span> <span class='varid'>p2</span> <span class='keyglyph'>=</span> <span class='conid'>Interleave</span> <span class='varid'>p1</span> <span class='varid'>p2</span>-<a name="line-277"></a>-<a name="line-278"></a><span class='comment'>-- | smart constructor for After</span>-<a name="line-279"></a>-<a name="line-280"></a><a name="after"></a><span class='definition'>after</span> <span class='keyglyph'>::</span> <span class='conid'>Pattern</span> <span class='keyglyph'>-></span> <span class='conid'>Pattern</span> <span class='keyglyph'>-></span> <span class='conid'>Pattern</span>-<a name="line-281"></a><span class='definition'>after</span> <span class='varid'>p1</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NotAllowed</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='varid'>p2</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NotAllowed</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>mergeNotAllowed</span> <span class='varid'>p1</span> <span class='varid'>p2</span>-<a name="line-282"></a><span class='definition'>after</span> <span class='keyword'>_</span> <span class='varid'>p2</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NotAllowed</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>p2</span>-<a name="line-283"></a><span class='definition'>after</span> <span class='varid'>p1</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NotAllowed</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='varid'>p1</span>-<a name="line-284"></a><span class='definition'>after</span> <span class='varid'>p1</span> <span class='varid'>p2</span> <span class='keyglyph'>=</span> <span class='conid'>After</span> <span class='varid'>p1</span> <span class='varid'>p2</span>-<a name="line-285"></a>-<a name="line-286"></a>-<a name="line-287"></a><span class='comment'>-- | Possible content types of a Relax NG pattern.</span>-<a name="line-288"></a><span class='comment'>-- (see also chapter 7.2 in Relax NG specification)</span>-<a name="line-289"></a>-<a name="line-290"></a><a name="ContentType"></a><span class='keyword'>data</span> <span class='conid'>ContentType</span> <span class='keyglyph'>=</span> <span class='conid'>CTEmpty</span>-<a name="line-291"></a> <span class='keyglyph'>|</span> <span class='conid'>CTComplex</span>-<a name="line-292"></a> <span class='keyglyph'>|</span> <span class='conid'>CTSimple</span>-<a name="line-293"></a> <span class='keyglyph'>|</span> <span class='conid'>CTNone</span>-<a name="line-294"></a> <span class='keyword'>deriving</span> <span class='layout'>(</span><span class='conid'>Show</span><span class='layout'>,</span> <span class='conid'>Eq</span><span class='layout'>,</span> <span class='conid'>Ord</span><span class='layout'>)</span>-<a name="line-295"></a>-<a name="line-296"></a><span class='comment'>-- ------------------------------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-RelaxNG-PatternFunctions.html
@@ -1,118 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- | basic 'Pattern' functions</span>-<a name="line-2"></a><span class='comment'>--</span>-<a name="line-3"></a>-<a name="line-4"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>PatternFunctions</span>-<a name="line-5"></a>-<a name="line-6"></a><span class='keyword'>where</span>-<a name="line-7"></a>-<a name="line-8"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>DataTypes</span>-<a name="line-9"></a>-<a name="line-10"></a>-<a name="line-11"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-12"></a>-<a name="line-13"></a><a name="isRelaxEmpty"></a><span class='definition'>isRelaxEmpty</span> <span class='keyglyph'>::</span> <span class='conid'>Pattern</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-14"></a><span class='definition'>isRelaxEmpty</span> <span class='conid'>Empty</span> <span class='keyglyph'>=</span> <span class='conid'>True</span> -<a name="line-15"></a><span class='definition'>isRelaxEmpty</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-16"></a>-<a name="line-17"></a><a name="isRelaxNotAllowed"></a><span class='definition'>isRelaxNotAllowed</span> <span class='keyglyph'>::</span> <span class='conid'>Pattern</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-18"></a><span class='definition'>isRelaxNotAllowed</span> <span class='layout'>(</span><span class='conid'>NotAllowed</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>True</span> -<a name="line-19"></a><span class='definition'>isRelaxNotAllowed</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-20"></a>-<a name="line-21"></a><a name="isRelaxText"></a><span class='definition'>isRelaxText</span> <span class='keyglyph'>::</span> <span class='conid'>Pattern</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-22"></a><span class='definition'>isRelaxText</span> <span class='conid'>Text</span> <span class='keyglyph'>=</span> <span class='conid'>True</span> -<a name="line-23"></a><span class='definition'>isRelaxText</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-24"></a>-<a name="line-25"></a><a name="isRelaxChoice"></a><span class='definition'>isRelaxChoice</span> <span class='keyglyph'>::</span> <span class='conid'>Pattern</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-26"></a><span class='definition'>isRelaxChoice</span> <span class='layout'>(</span><span class='conid'>Choice</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>True</span> -<a name="line-27"></a><span class='definition'>isRelaxChoice</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-28"></a>-<a name="line-29"></a><a name="isRelaxInterleave"></a><span class='definition'>isRelaxInterleave</span> <span class='keyglyph'>::</span> <span class='conid'>Pattern</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-30"></a><span class='definition'>isRelaxInterleave</span> <span class='layout'>(</span><span class='conid'>Interleave</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>True</span> -<a name="line-31"></a><span class='definition'>isRelaxInterleave</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-32"></a>-<a name="line-33"></a><a name="isRelaxGroup"></a><span class='definition'>isRelaxGroup</span> <span class='keyglyph'>::</span> <span class='conid'>Pattern</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-34"></a><span class='definition'>isRelaxGroup</span> <span class='layout'>(</span><span class='conid'>Group</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>True</span> -<a name="line-35"></a><span class='definition'>isRelaxGroup</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-36"></a>-<a name="line-37"></a><a name="isRelaxOneOrMore"></a><span class='definition'>isRelaxOneOrMore</span> <span class='keyglyph'>::</span> <span class='conid'>Pattern</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-38"></a><span class='definition'>isRelaxOneOrMore</span> <span class='layout'>(</span><span class='conid'>OneOrMore</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>True</span> -<a name="line-39"></a><span class='definition'>isRelaxOneOrMore</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-40"></a>-<a name="line-41"></a><a name="isRelaxList"></a><span class='definition'>isRelaxList</span> <span class='keyglyph'>::</span> <span class='conid'>Pattern</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-42"></a><span class='definition'>isRelaxList</span> <span class='layout'>(</span><span class='conid'>List</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>True</span> -<a name="line-43"></a><span class='definition'>isRelaxList</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-44"></a>-<a name="line-45"></a><a name="isRelaxData"></a><span class='definition'>isRelaxData</span> <span class='keyglyph'>::</span> <span class='conid'>Pattern</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-46"></a><span class='definition'>isRelaxData</span> <span class='layout'>(</span><span class='conid'>Data</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>True</span> -<a name="line-47"></a><span class='definition'>isRelaxData</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-48"></a>-<a name="line-49"></a><a name="isRelaxDataExcept"></a><span class='definition'>isRelaxDataExcept</span> <span class='keyglyph'>::</span> <span class='conid'>Pattern</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-50"></a><span class='definition'>isRelaxDataExcept</span> <span class='layout'>(</span><span class='conid'>DataExcept</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>True</span> -<a name="line-51"></a><span class='definition'>isRelaxDataExcept</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-52"></a>-<a name="line-53"></a><a name="isRelaxValue"></a><span class='definition'>isRelaxValue</span> <span class='keyglyph'>::</span> <span class='conid'>Pattern</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-54"></a><span class='definition'>isRelaxValue</span> <span class='layout'>(</span><span class='conid'>Value</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>True</span> -<a name="line-55"></a><span class='definition'>isRelaxValue</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-56"></a>-<a name="line-57"></a><a name="isRelaxAttribute"></a><span class='definition'>isRelaxAttribute</span> <span class='keyglyph'>::</span> <span class='conid'>Pattern</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-58"></a><span class='definition'>isRelaxAttribute</span> <span class='layout'>(</span><span class='conid'>Attribute</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>True</span> -<a name="line-59"></a><span class='definition'>isRelaxAttribute</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-60"></a>-<a name="line-61"></a><a name="isRelaxElement"></a><span class='definition'>isRelaxElement</span> <span class='keyglyph'>::</span> <span class='conid'>Pattern</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-62"></a><span class='definition'>isRelaxElement</span> <span class='layout'>(</span><span class='conid'>Element</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>True</span> -<a name="line-63"></a><span class='definition'>isRelaxElement</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-64"></a> -<a name="line-65"></a><a name="isRelaxAfter"></a><span class='definition'>isRelaxAfter</span> <span class='keyglyph'>::</span> <span class='conid'>Pattern</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-66"></a><span class='definition'>isRelaxAfter</span> <span class='layout'>(</span><span class='conid'>After</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>True</span> -<a name="line-67"></a><span class='definition'>isRelaxAfter</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-68"></a>-<a name="line-69"></a>-<a name="line-70"></a><a name="getChildrenPattern"></a><span class='comment'>-- | Returns a list of children pattern for each pattern, </span>-<a name="line-71"></a><span class='comment'>-- e.g. (Choice p1 p2) = [p1, p2]</span>-<a name="line-72"></a><span class='definition'>getChildrenPattern</span> <span class='keyglyph'>::</span> <span class='conid'>Pattern</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>Pattern</span><span class='keyglyph'>]</span>-<a name="line-73"></a><span class='definition'>getChildrenPattern</span> <span class='layout'>(</span><span class='conid'>Choice</span> <span class='varid'>p1</span> <span class='varid'>p2</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>p1</span><span class='layout'>,</span> <span class='varid'>p2</span><span class='keyglyph'>]</span>-<a name="line-74"></a><span class='definition'>getChildrenPattern</span> <span class='layout'>(</span><span class='conid'>Interleave</span> <span class='varid'>p1</span> <span class='varid'>p2</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>p1</span><span class='layout'>,</span> <span class='varid'>p2</span><span class='keyglyph'>]</span>-<a name="line-75"></a><span class='definition'>getChildrenPattern</span> <span class='layout'>(</span><span class='conid'>Group</span> <span class='varid'>p1</span> <span class='varid'>p2</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>p1</span><span class='layout'>,</span> <span class='varid'>p2</span><span class='keyglyph'>]</span>-<a name="line-76"></a><span class='definition'>getChildrenPattern</span> <span class='layout'>(</span><span class='conid'>OneOrMore</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>p</span><span class='keyglyph'>]</span>-<a name="line-77"></a><span class='definition'>getChildrenPattern</span> <span class='layout'>(</span><span class='conid'>List</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>p</span><span class='keyglyph'>]</span>-<a name="line-78"></a><span class='definition'>getChildrenPattern</span> <span class='layout'>(</span><span class='conid'>Element</span> <span class='keyword'>_</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>p</span><span class='keyglyph'>]</span>-<a name="line-79"></a><span class='definition'>getChildrenPattern</span> <span class='layout'>(</span><span class='conid'>DataExcept</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>p</span><span class='keyglyph'>]</span>-<a name="line-80"></a><span class='definition'>getChildrenPattern</span> <span class='layout'>(</span><span class='conid'>Attribute</span> <span class='keyword'>_</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>p</span><span class='keyglyph'>]</span>-<a name="line-81"></a><span class='definition'>getChildrenPattern</span> <span class='layout'>(</span><span class='conid'>After</span> <span class='varid'>p1</span> <span class='varid'>p2</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>p1</span><span class='layout'>,</span> <span class='varid'>p2</span><span class='keyglyph'>]</span>-<a name="line-82"></a><span class='definition'>getChildrenPattern</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-83"></a>-<a name="line-84"></a>-<a name="line-85"></a><a name="getNameClassFromPattern"></a><span class='comment'>-- | Returns the nameclass of a element- or attribute pattern.</span>-<a name="line-86"></a><span class='comment'>-- Otherwise 'NCError' is returned.</span>-<a name="line-87"></a><span class='definition'>getNameClassFromPattern</span> <span class='keyglyph'>::</span> <span class='conid'>Pattern</span> <span class='keyglyph'>-></span> <span class='conid'>NameClass</span>-<a name="line-88"></a><span class='definition'>getNameClassFromPattern</span> <span class='layout'>(</span><span class='conid'>Element</span> <span class='varid'>nc</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>nc</span>-<a name="line-89"></a><span class='definition'>getNameClassFromPattern</span> <span class='layout'>(</span><span class='conid'>Attribute</span> <span class='varid'>nc</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>nc</span>-<a name="line-90"></a><span class='definition'>getNameClassFromPattern</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>NCError</span> <span class='str'>"Pattern without a NameClass"</span>-<a name="line-91"></a>-<a name="line-92"></a>-<a name="line-93"></a><a name="getPatternName"></a><span class='comment'>-- | Returns a string representation of the pattern name</span>-<a name="line-94"></a><span class='definition'>getPatternName</span> <span class='keyglyph'>::</span> <span class='conid'>Pattern</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-95"></a><span class='definition'>getPatternName</span> <span class='layout'>(</span><span class='conid'>Empty</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>"Empty"</span>-<a name="line-96"></a><span class='definition'>getPatternName</span> <span class='layout'>(</span><span class='conid'>NotAllowed</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>"NotAllowed"</span>-<a name="line-97"></a><span class='definition'>getPatternName</span> <span class='layout'>(</span><span class='conid'>Text</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>"Text"</span>-<a name="line-98"></a><span class='definition'>getPatternName</span> <span class='layout'>(</span><span class='conid'>Choice</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>"Choice"</span>-<a name="line-99"></a><span class='definition'>getPatternName</span> <span class='layout'>(</span><span class='conid'>Interleave</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>"Interleave"</span>-<a name="line-100"></a><span class='definition'>getPatternName</span> <span class='layout'>(</span><span class='conid'>Group</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>"Group"</span>-<a name="line-101"></a><span class='definition'>getPatternName</span> <span class='layout'>(</span><span class='conid'>OneOrMore</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>"OneOrMore"</span>-<a name="line-102"></a><span class='definition'>getPatternName</span> <span class='layout'>(</span><span class='conid'>List</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>"List"</span>-<a name="line-103"></a><span class='definition'>getPatternName</span> <span class='layout'>(</span><span class='conid'>Data</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>"Data"</span>-<a name="line-104"></a><span class='definition'>getPatternName</span> <span class='layout'>(</span><span class='conid'>DataExcept</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>"DataExcept"</span>-<a name="line-105"></a><span class='definition'>getPatternName</span> <span class='layout'>(</span><span class='conid'>Value</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>"Value"</span>-<a name="line-106"></a><span class='definition'>getPatternName</span> <span class='layout'>(</span><span class='conid'>Attribute</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>"Attribute"</span>-<a name="line-107"></a><span class='definition'>getPatternName</span> <span class='layout'>(</span><span class='conid'>Element</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>"Element"</span>-<a name="line-108"></a><span class='definition'>getPatternName</span> <span class='layout'>(</span><span class='conid'>After</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>"After"</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-RelaxNG-PatternToString.html
@@ -1,370 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>PatternToString</span>-<a name="line-2"></a> <span class='layout'>(</span> <span class='varid'>patternToStringTree</span>-<a name="line-3"></a> <span class='layout'>,</span> <span class='varid'>patternToFormatedString</span>-<a name="line-4"></a> <span class='layout'>,</span> <span class='varid'>xmlTreeToPatternStringTree</span>-<a name="line-5"></a> <span class='layout'>,</span> <span class='varid'>xmlTreeToPatternFormatedString</span>-<a name="line-6"></a> <span class='layout'>,</span> <span class='varid'>xmlTreeToPatternString</span>-<a name="line-7"></a> <span class='layout'>,</span> <span class='varid'>nameClassToString</span>-<a name="line-8"></a> <span class='layout'>)</span>-<a name="line-9"></a><span class='keyword'>where</span>-<a name="line-10"></a>-<a name="line-11"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ListArrows</span>-<a name="line-12"></a>-<a name="line-13"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Tree</span><span class='varop'>.</span><span class='conid'>NTree</span><span class='varop'>.</span><span class='conid'>TypeDefs</span>-<a name="line-14"></a>-<a name="line-15"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>-<a name="line-16"></a>-<a name="line-17"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>DataTypes</span>-<a name="line-18"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>CreatePattern</span>-<a name="line-19"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>Utils</span>-<a name="line-20"></a>-<a name="line-21"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-22"></a>-<a name="line-23"></a><a name="PatternTree"></a><span class='keyword'>type</span> <span class='conid'>PatternTree</span> <span class='keyglyph'>=</span> <span class='conid'>NTree</span> <span class='conid'>String</span>-<a name="line-24"></a>-<a name="line-25"></a>-<a name="line-26"></a><span class='comment'>{- |-<a name="line-27"></a>Returns a string representation of the pattern structure.-<a name="line-28"></a>(see also: 'createPatternFromXmlTree')-<a name="line-29"></a>-<a name="line-30"></a>Example:-<a name="line-31"></a>-<a name="line-32"></a>> Element {}foo (Choice (Choice (Value ("","token") "abc"-<a name="line-33"></a>> ("foo","www.bar.baz")]))(Data ("<a href="http://www.mysql.com">http://www.mysql.com</a>","VARCHAR")-<a name="line-34"></a>> [("length","2"),("maxLength","5")])) (Element {}bar (Group (Element {}baz-<a name="line-35"></a>-<a name="line-36"></a>The function can @not@ be used to display circular ref-pattern structures.-<a name="line-37"></a>-}</span>-<a name="line-38"></a>-<a name="line-39"></a><a name="xmlTreeToPatternString"></a><span class='definition'>xmlTreeToPatternString</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>-<a name="line-40"></a><span class='definition'>xmlTreeToPatternString</span>-<a name="line-41"></a> <span class='keyglyph'>=</span> <span class='varid'>createPatternFromXmlTree</span>-<a name="line-42"></a> <span class='varop'>>>^</span>-<a name="line-43"></a> <span class='varid'>show</span>-<a name="line-44"></a>-<a name="line-45"></a>-<a name="line-46"></a><span class='comment'>-- | Returns a string representation of a nameclass.</span>-<a name="line-47"></a>-<a name="line-48"></a><a name="nameClassToString"></a><span class='definition'>nameClassToString</span> <span class='keyglyph'>::</span> <span class='conid'>NameClass</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-49"></a><span class='definition'>nameClassToString</span> <span class='conid'>AnyName</span>-<a name="line-50"></a> <span class='keyglyph'>=</span> <span class='str'>"AnyName"</span>-<a name="line-51"></a>-<a name="line-52"></a><span class='definition'>nameClassToString</span> <span class='layout'>(</span><span class='conid'>AnyNameExcept</span> <span class='varid'>nc</span><span class='layout'>)</span> -<a name="line-53"></a> <span class='keyglyph'>=</span> <span class='str'>"AnyNameExcept "</span> <span class='varop'>++</span> <span class='varid'>nameClassToString</span> <span class='varid'>nc</span>-<a name="line-54"></a>-<a name="line-55"></a><span class='definition'>nameClassToString</span> <span class='layout'>(</span><span class='conid'>Name</span> <span class='varid'>uri</span> <span class='varid'>local</span><span class='layout'>)</span> -<a name="line-56"></a> <span class='keyglyph'>=</span> <span class='str'>"{"</span> <span class='varop'>++</span> <span class='varid'>uri</span> <span class='varop'>++</span> <span class='str'>"}"</span> <span class='varop'>++</span> <span class='varid'>local</span>-<a name="line-57"></a>-<a name="line-58"></a><span class='definition'>nameClassToString</span> <span class='layout'>(</span><span class='conid'>NsName</span> <span class='varid'>uri</span><span class='layout'>)</span>-<a name="line-59"></a> <span class='keyglyph'>=</span> <span class='str'>"{"</span> <span class='varop'>++</span> <span class='varid'>uri</span> <span class='varop'>++</span> <span class='str'>"}"</span>-<a name="line-60"></a>-<a name="line-61"></a><span class='definition'>nameClassToString</span> <span class='layout'>(</span><span class='conid'>NsNameExcept</span> <span class='varid'>uri</span> <span class='varid'>nc</span><span class='layout'>)</span>-<a name="line-62"></a> <span class='keyglyph'>=</span> <span class='varid'>uri</span> <span class='varop'>++</span> <span class='str'>"except (NsName) "</span> <span class='varop'>++</span> <span class='varid'>nameClassToString</span> <span class='varid'>nc</span>-<a name="line-63"></a>-<a name="line-64"></a><span class='definition'>nameClassToString</span> <span class='layout'>(</span><span class='conid'>NameClassChoice</span> <span class='varid'>nc1</span> <span class='varid'>nc2</span><span class='layout'>)</span>-<a name="line-65"></a> <span class='keyglyph'>=</span> <span class='varid'>nameClassToString</span> <span class='varid'>nc1</span> <span class='varop'>++</span> <span class='str'>" "</span> <span class='varop'>++</span> <span class='varid'>nameClassToString</span> <span class='varid'>nc2</span>-<a name="line-66"></a>-<a name="line-67"></a><span class='definition'>nameClassToString</span> <span class='layout'>(</span><span class='conid'>NCError</span> <span class='varid'>e</span><span class='layout'>)</span>-<a name="line-68"></a> <span class='keyglyph'>=</span> <span class='str'>"NameClass Error: "</span> <span class='varop'>++</span> <span class='varid'>e</span>-<a name="line-69"></a>-<a name="line-70"></a>-<a name="line-71"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-72"></a>-<a name="line-73"></a><span class='comment'>{- |-<a name="line-74"></a>Returns a tree representation of the pattern structure.-<a name="line-75"></a>The hard work is done by 'formatTree'.-<a name="line-76"></a>-<a name="line-77"></a>Example:-<a name="line-78"></a>-<a name="line-79"></a>> +---element {}bar-<a name="line-80"></a>> |-<a name="line-81"></a>> +---group-<a name="line-82"></a>> |-<a name="line-83"></a>> +---oneOrMore-<a name="line-84"></a>> | |-<a name="line-85"></a>> | +---attribute AnyName-<a name="line-86"></a>> | |-<a name="line-87"></a>> | +---text-<a name="line-88"></a>> |-<a name="line-89"></a>> +---text-<a name="line-90"></a> -<a name="line-91"></a>The function can be used to display circular ref-pattern structures.-<a name="line-92"></a>-<a name="line-93"></a>Example:-<a name="line-94"></a>-<a name="line-95"></a>> <define name="baz">-<a name="line-96"></a>> <element name="baz">-<a name="line-97"></a>> ... <ref name="baz"/> ...-<a name="line-98"></a>> </element>-<a name="line-99"></a>> </define>-<a name="line-100"></a>-<a name="line-101"></a>-}</span>-<a name="line-102"></a>-<a name="line-103"></a><a name="patternToStringTree"></a><span class='definition'>patternToStringTree</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>Pattern</span> <span class='conid'>String</span>-<a name="line-104"></a><span class='definition'>patternToStringTree</span>-<a name="line-105"></a> <span class='keyglyph'>=</span> <span class='varid'>fromSLA</span> <span class='conid'>[]</span> <span class='varid'>pattern2PatternTree</span>-<a name="line-106"></a> <span class='varop'>>>^</span>-<a name="line-107"></a> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>p</span> <span class='keyglyph'>-></span> <span class='varid'>formatTree</span> <span class='varid'>id</span> <span class='varid'>p</span> <span class='varop'>++</span> <span class='str'>"\n"</span><span class='layout'>)</span>-<a name="line-108"></a>-<a name="line-109"></a>-<a name="line-110"></a><span class='comment'>-- | Returns a tree representation of the pattern structure.</span>-<a name="line-111"></a><span class='comment'>-- (see also: 'createPatternFromXmlTree' and 'patternToStringTree')</span>-<a name="line-112"></a>-<a name="line-113"></a><a name="xmlTreeToPatternStringTree"></a><span class='definition'>xmlTreeToPatternStringTree</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>-<a name="line-114"></a><span class='definition'>xmlTreeToPatternStringTree</span>-<a name="line-115"></a> <span class='keyglyph'>=</span> <span class='varid'>createPatternFromXmlTree</span> -<a name="line-116"></a> <span class='varop'>>>></span>-<a name="line-117"></a> <span class='varid'>patternToStringTree</span>-<a name="line-118"></a>-<a name="line-119"></a>-<a name="line-120"></a><a name="pattern2PatternTree"></a><span class='definition'>pattern2PatternTree</span> <span class='keyglyph'>::</span> <span class='conid'>SLA</span> <span class='keyglyph'>[</span><span class='conid'>NameClass</span><span class='keyglyph'>]</span> <span class='conid'>Pattern</span> <span class='conid'>PatternTree</span>-<a name="line-121"></a><span class='definition'>pattern2PatternTree</span>-<a name="line-122"></a> <span class='keyglyph'>=</span> <span class='varid'>choiceA</span>-<a name="line-123"></a> <span class='keyglyph'>[</span> <span class='varid'>isA</span> <span class='varid'>isRelaxEmpty</span> <span class='conop'>:-></span> <span class='layout'>(</span><span class='varid'>constA</span> <span class='varop'>$</span> <span class='conid'>NTree</span> <span class='str'>"empty"</span> <span class='conid'>[]</span><span class='layout'>)</span>-<a name="line-124"></a> <span class='layout'>,</span> <span class='varid'>isA</span> <span class='varid'>isRelaxNotAllowed</span> <span class='conop'>:-></span> <span class='varid'>notAllowed2PatternTree</span>-<a name="line-125"></a> <span class='layout'>,</span> <span class='varid'>isA</span> <span class='varid'>isRelaxText</span> <span class='conop'>:-></span> <span class='layout'>(</span><span class='varid'>constA</span> <span class='varop'>$</span> <span class='conid'>NTree</span> <span class='str'>"text"</span> <span class='conid'>[]</span><span class='layout'>)</span>-<a name="line-126"></a> <span class='layout'>,</span> <span class='varid'>isA</span> <span class='varid'>isRelaxChoice</span> <span class='conop'>:-></span> <span class='varid'>choice2PatternTree</span> -<a name="line-127"></a> <span class='layout'>,</span> <span class='varid'>isA</span> <span class='varid'>isRelaxInterleave</span> <span class='conop'>:-></span> <span class='varid'>children2PatternTree</span> <span class='str'>"interleave"</span>-<a name="line-128"></a> <span class='layout'>,</span> <span class='varid'>isA</span> <span class='varid'>isRelaxGroup</span> <span class='conop'>:-></span> <span class='varid'>children2PatternTree</span> <span class='str'>"group"</span>-<a name="line-129"></a> <span class='layout'>,</span> <span class='varid'>isA</span> <span class='varid'>isRelaxOneOrMore</span> <span class='conop'>:-></span> <span class='varid'>children2PatternTree</span> <span class='str'>"oneOrMore"</span>-<a name="line-130"></a> <span class='layout'>,</span> <span class='varid'>isA</span> <span class='varid'>isRelaxList</span> <span class='conop'>:-></span> <span class='varid'>children2PatternTree</span> <span class='str'>"list"</span>-<a name="line-131"></a> <span class='layout'>,</span> <span class='varid'>isA</span> <span class='varid'>isRelaxData</span> <span class='conop'>:-></span> <span class='varid'>data2PatternTree</span>-<a name="line-132"></a> <span class='layout'>,</span> <span class='varid'>isA</span> <span class='varid'>isRelaxDataExcept</span> <span class='conop'>:-></span> <span class='varid'>dataExcept2PatternTree</span>-<a name="line-133"></a> <span class='layout'>,</span> <span class='varid'>isA</span> <span class='varid'>isRelaxValue</span> <span class='conop'>:-></span> <span class='varid'>value2PatternTree</span>-<a name="line-134"></a> <span class='layout'>,</span> <span class='varid'>isA</span> <span class='varid'>isRelaxAttribute</span> <span class='conop'>:-></span> <span class='varid'>createPatternTreeFromElement</span> <span class='str'>"attribute"</span> -<a name="line-135"></a> <span class='layout'>,</span> <span class='varid'>isA</span> <span class='varid'>isRelaxElement</span> <span class='conop'>:-></span> <span class='varid'>element2PatternTree</span>-<a name="line-136"></a> <span class='layout'>,</span> <span class='varid'>isA</span> <span class='varid'>isRelaxAfter</span> <span class='conop'>:-></span> <span class='varid'>children2PatternTree</span> <span class='str'>"after"</span>-<a name="line-137"></a> <span class='keyglyph'>]</span>-<a name="line-138"></a>-<a name="line-139"></a><a name="notAllowed2PatternTree"></a><span class='definition'>notAllowed2PatternTree</span> <span class='keyglyph'>::</span> <span class='conid'>SLA</span> <span class='keyglyph'>[</span><span class='conid'>NameClass</span><span class='keyglyph'>]</span> <span class='conid'>Pattern</span> <span class='conid'>PatternTree</span>-<a name="line-140"></a><span class='definition'>notAllowed2PatternTree</span>-<a name="line-141"></a> <span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='varop'>$</span> <span class='keyglyph'>\</span><span class='layout'>(</span><span class='conid'>NotAllowed</span> <span class='layout'>(</span><span class='conid'>ErrMsg</span> <span class='sel'>_l</span> <span class='varid'>sl</span><span class='layout'>)</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>NTree</span> <span class='str'>"notAllowed"</span> <span class='varop'>$</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='keyglyph'>-></span> <span class='conid'>NTree</span> <span class='varid'>s</span> <span class='conid'>[]</span><span class='layout'>)</span> <span class='varid'>sl</span>-<a name="line-142"></a>-<a name="line-143"></a>-<a name="line-144"></a><a name="data2PatternTree"></a><span class='definition'>data2PatternTree</span> <span class='keyglyph'>::</span> <span class='conid'>SLA</span> <span class='keyglyph'>[</span><span class='conid'>NameClass</span><span class='keyglyph'>]</span> <span class='conid'>Pattern</span> <span class='conid'>PatternTree</span>-<a name="line-145"></a><span class='definition'>data2PatternTree</span> -<a name="line-146"></a> <span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='layout'>(</span><span class='conid'>Data</span> <span class='varid'>d</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>NTree</span> <span class='str'>"data"</span> <span class='keyglyph'>[</span> <span class='varid'>datatype2PatternTree</span> <span class='varid'>d</span>-<a name="line-147"></a> <span class='layout'>,</span> <span class='varid'>mapping2PatternTree</span> <span class='str'>"parameter"</span> <span class='varid'>p</span>-<a name="line-148"></a> <span class='keyglyph'>]</span>-<a name="line-149"></a> -<a name="line-150"></a><a name="dataExcept2PatternTree"></a><span class='definition'>dataExcept2PatternTree</span> <span class='keyglyph'>::</span> <span class='conid'>SLA</span> <span class='keyglyph'>[</span><span class='conid'>NameClass</span><span class='keyglyph'>]</span> <span class='conid'>Pattern</span> <span class='conid'>PatternTree</span>-<a name="line-151"></a><span class='definition'>dataExcept2PatternTree</span> -<a name="line-152"></a> <span class='keyglyph'>=</span> <span class='varid'>this</span> <span class='varop'>&&&</span> <span class='layout'>(</span><span class='varid'>listA</span> <span class='varop'>$</span> <span class='varid'>arrL</span> <span class='varid'>getChildrenPattern</span> <span class='varop'>>>></span> <span class='varid'>pattern2PatternTree</span><span class='layout'>)</span>-<a name="line-153"></a> <span class='varop'>>>></span>-<a name="line-154"></a> <span class='varid'>arr2</span> <span class='layout'>(</span> <span class='keyglyph'>\</span> <span class='layout'>(</span><span class='conid'>DataExcept</span> <span class='varid'>d</span> <span class='varid'>param</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='varid'>pattern</span> <span class='keyglyph'>-></span>-<a name="line-155"></a> <span class='conid'>NTree</span> <span class='str'>"dataExcept"</span> <span class='layout'>(</span><span class='keyglyph'>[</span> <span class='varid'>datatype2PatternTree</span> <span class='varid'>d</span>-<a name="line-156"></a> <span class='layout'>,</span> <span class='varid'>mapping2PatternTree</span> <span class='str'>"parameter"</span> <span class='varid'>param</span>-<a name="line-157"></a> <span class='keyglyph'>]</span> <span class='varop'>++</span> <span class='varid'>pattern</span><span class='layout'>)</span>-<a name="line-158"></a> <span class='layout'>)</span>-<a name="line-159"></a>-<a name="line-160"></a><a name="value2PatternTree"></a><span class='definition'>value2PatternTree</span> <span class='keyglyph'>::</span> <span class='conid'>SLA</span> <span class='keyglyph'>[</span><span class='conid'>NameClass</span><span class='keyglyph'>]</span> <span class='conid'>Pattern</span> <span class='conid'>PatternTree</span> -<a name="line-161"></a><span class='definition'>value2PatternTree</span>-<a name="line-162"></a> <span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='layout'>(</span><span class='conid'>Value</span> <span class='varid'>d</span> <span class='varid'>v</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>NTree</span> <span class='layout'>(</span><span class='str'>"value = "</span> <span class='varop'>++</span> <span class='varid'>v</span><span class='layout'>)</span> <span class='keyglyph'>[</span> <span class='varid'>datatype2PatternTree</span> <span class='varid'>d</span>-<a name="line-163"></a> <span class='layout'>,</span> <span class='varid'>context2PatternTree</span> <span class='varid'>c</span>-<a name="line-164"></a> <span class='keyglyph'>]</span>-<a name="line-165"></a>-<a name="line-166"></a>-<a name="line-167"></a><a name="createPatternTreeFromElement"></a><span class='definition'>createPatternTreeFromElement</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>SLA</span> <span class='keyglyph'>[</span><span class='conid'>NameClass</span><span class='keyglyph'>]</span> <span class='conid'>Pattern</span> <span class='conid'>PatternTree</span>-<a name="line-168"></a><span class='definition'>createPatternTreeFromElement</span> <span class='varid'>name</span>-<a name="line-169"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>arr</span> <span class='varid'>getNameClassFromPattern</span>-<a name="line-170"></a> <span class='varop'>&&&</span>-<a name="line-171"></a> <span class='varid'>listA</span> <span class='layout'>(</span><span class='varid'>arrL</span> <span class='varid'>getChildrenPattern</span> <span class='varop'>>>></span> <span class='varid'>pattern2PatternTree</span><span class='layout'>)</span>-<a name="line-172"></a> <span class='layout'>)</span>-<a name="line-173"></a> <span class='varop'>>>></span>-<a name="line-174"></a> <span class='varid'>arr2</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>nc</span> <span class='varid'>rl</span> <span class='keyglyph'>-></span> <span class='conid'>NTree</span> <span class='layout'>(</span><span class='varid'>name</span> <span class='varop'>++</span> <span class='str'>" "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>nc</span><span class='layout'>)</span> <span class='varid'>rl</span><span class='layout'>)</span>-<a name="line-175"></a>-<a name="line-176"></a><a name="children2PatternTree"></a><span class='definition'>children2PatternTree</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>SLA</span> <span class='keyglyph'>[</span><span class='conid'>NameClass</span><span class='keyglyph'>]</span> <span class='conid'>Pattern</span> <span class='conid'>PatternTree</span>-<a name="line-177"></a><span class='definition'>children2PatternTree</span> <span class='varid'>name</span> -<a name="line-178"></a> <span class='keyglyph'>=</span> <span class='varid'>listA</span> <span class='layout'>(</span><span class='varid'>arrL</span> <span class='varid'>getChildrenPattern</span> <span class='varop'>>>></span> <span class='varid'>pattern2PatternTree</span><span class='layout'>)</span> -<a name="line-179"></a> <span class='varop'>>>^</span>-<a name="line-180"></a> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='varid'>name</span><span class='layout'>)</span>-<a name="line-181"></a>-<a name="line-182"></a><a name="choice2PatternTree"></a><span class='definition'>choice2PatternTree</span> <span class='keyglyph'>::</span> <span class='conid'>SLA</span> <span class='keyglyph'>[</span><span class='conid'>NameClass</span><span class='keyglyph'>]</span> <span class='conid'>Pattern</span> <span class='conid'>PatternTree</span>-<a name="line-183"></a><span class='definition'>choice2PatternTree</span> -<a name="line-184"></a> <span class='keyglyph'>=</span> <span class='varid'>ifA</span> <span class='layout'>(</span> <span class='comment'>-- wenn das zweite kind ein noch nicht ausgegebenes element ist, </span>-<a name="line-185"></a> <span class='comment'>-- muss dieses anders behandelt werden</span>-<a name="line-186"></a> <span class='comment'>-- nur fuer bessere formatierung des outputs</span>-<a name="line-187"></a> <span class='varid'>arr</span> <span class='layout'>(</span><span class='varid'>last</span> <span class='varop'>.</span> <span class='varid'>getChildrenPattern</span><span class='layout'>)</span> <span class='varop'>>>></span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>isRelaxElement</span><span class='layout'>)</span> <span class='varop'>>>></span>-<a name="line-188"></a> <span class='layout'>(</span><span class='varid'>arr</span> <span class='varid'>getNameClassFromPattern</span> <span class='varop'>&&&</span> <span class='varid'>getState</span><span class='layout'>)</span> <span class='varop'>>>></span> -<a name="line-189"></a> <span class='varid'>isA</span><span class='layout'>(</span><span class='keyglyph'>\</span> <span class='layout'>(</span><span class='varid'>nc</span><span class='layout'>,</span> <span class='varid'>liste</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>not</span> <span class='varop'>$</span> <span class='varid'>elem</span> <span class='varid'>nc</span> <span class='varid'>liste</span><span class='layout'>)</span>-<a name="line-190"></a> <span class='layout'>)</span>-<a name="line-191"></a> <span class='layout'>(</span> <span class='comment'>-- element in status aufnehmen, wird dann nicht mehr vom erste kind ausgegeben</span>-<a name="line-192"></a> <span class='varid'>arr</span> <span class='varid'>getChildrenPattern</span>-<a name="line-193"></a> <span class='varop'>>>></span>-<a name="line-194"></a> <span class='varid'>changeState</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>s</span> <span class='varid'>p</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='varid'>getNameClassFromPattern</span> <span class='layout'>(</span><span class='varid'>last</span> <span class='varid'>p</span><span class='layout'>)</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>s</span><span class='layout'>)</span>-<a name="line-195"></a> <span class='varop'>>>></span>-<a name="line-196"></a> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>head</span> <span class='varop'>^>></span> <span class='varid'>pattern2PatternTree</span> <span class='layout'>)</span> <span class='comment'>-- erstes kind normal verarbeiten</span>-<a name="line-197"></a> <span class='varop'>&&&</span> <span class='comment'>-- zweites kind, das element, verarbeiten</span>-<a name="line-198"></a> <span class='layout'>(</span> <span class='varid'>last</span> <span class='varop'>^>></span> <span class='varid'>createPatternTreeFromElement</span> <span class='str'>"element"</span> <span class='layout'>)</span>-<a name="line-199"></a> <span class='layout'>)</span>-<a name="line-200"></a> <span class='varop'>>>></span>-<a name="line-201"></a> <span class='varid'>arr2</span> <span class='layout'>(</span> <span class='keyglyph'>\</span> <span class='varid'>l1</span> <span class='varid'>l2</span> <span class='keyglyph'>-></span> <span class='conid'>NTree</span> <span class='str'>"choice"</span> <span class='keyglyph'>[</span><span class='varid'>l1</span><span class='layout'>,</span> <span class='varid'>l2</span><span class='keyglyph'>]</span> <span class='layout'>)</span>-<a name="line-202"></a> <span class='layout'>)</span>-<a name="line-203"></a> <span class='layout'>(</span> <span class='varid'>children2PatternTree</span> <span class='str'>"choice"</span> <span class='layout'>)</span>-<a name="line-204"></a>-<a name="line-205"></a> -<a name="line-206"></a><a name="element2PatternTree"></a><span class='definition'>element2PatternTree</span> <span class='keyglyph'>::</span> <span class='conid'>SLA</span> <span class='keyglyph'>[</span><span class='conid'>NameClass</span><span class='keyglyph'>]</span> <span class='conid'>Pattern</span> <span class='conid'>PatternTree</span>-<a name="line-207"></a><span class='definition'>element2PatternTree</span> -<a name="line-208"></a> <span class='keyglyph'>=</span> <span class='varid'>ifA</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>arr</span> <span class='varid'>getNameClassFromPattern</span> <span class='varop'>&&&</span> <span class='varid'>getState</span><span class='layout'>)</span>-<a name="line-209"></a> <span class='varop'>>>></span> -<a name="line-210"></a> <span class='varid'>isA</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='layout'>(</span><span class='varid'>nc</span><span class='layout'>,</span> <span class='varid'>liste</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>elem</span> <span class='varid'>nc</span> <span class='varid'>liste</span><span class='layout'>)</span>-<a name="line-211"></a> <span class='layout'>)</span>-<a name="line-212"></a> <span class='layout'>(</span> <span class='varid'>arr</span> <span class='varid'>getNameClassFromPattern</span>-<a name="line-213"></a> <span class='varop'>>>></span> -<a name="line-214"></a> <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>nc</span> <span class='keyglyph'>-></span> <span class='conid'>NTree</span> <span class='layout'>(</span><span class='str'>"reference to element "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>nc</span><span class='layout'>)</span> <span class='conid'>[]</span><span class='layout'>)</span>-<a name="line-215"></a> <span class='layout'>)</span>-<a name="line-216"></a> <span class='layout'>(</span> <span class='varid'>changeState</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='varid'>p</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='varid'>getNameClassFromPattern</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>s</span><span class='layout'>)</span>-<a name="line-217"></a> <span class='varop'>>>></span>-<a name="line-218"></a> <span class='varid'>createPatternTreeFromElement</span> <span class='str'>"element"</span>-<a name="line-219"></a> <span class='layout'>)</span>-<a name="line-220"></a>-<a name="line-221"></a>-<a name="line-222"></a><a name="mapping2PatternTree"></a><span class='definition'>mapping2PatternTree</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>Prefix</span><span class='layout'>,</span> <span class='conid'>Uri</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>PatternTree</span>-<a name="line-223"></a><span class='definition'>mapping2PatternTree</span> <span class='varid'>name</span> <span class='varid'>mapping</span>-<a name="line-224"></a> <span class='keyglyph'>=</span> <span class='conid'>NTree</span> <span class='varid'>name</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>NTree</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='varop'>++</span> <span class='str'>" = "</span> <span class='varop'>++</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='conid'>[]</span><span class='layout'>)</span> <span class='varid'>mapping</span><span class='layout'>)</span>-<a name="line-225"></a>-<a name="line-226"></a>-<a name="line-227"></a><a name="datatype2PatternTree"></a><span class='definition'>datatype2PatternTree</span> <span class='keyglyph'>::</span> <span class='conid'>Datatype</span> <span class='keyglyph'>-></span> <span class='conid'>PatternTree</span>-<a name="line-228"></a><span class='definition'>datatype2PatternTree</span> <span class='varid'>dt</span>-<a name="line-229"></a> <span class='keyglyph'>=</span> <span class='conid'>NTree</span> <span class='layout'>(</span><span class='varid'>datatype2String</span> <span class='varid'>dt</span><span class='layout'>)</span> <span class='conid'>[]</span>-<a name="line-230"></a>-<a name="line-231"></a>-<a name="line-232"></a><a name="context2PatternTree"></a><span class='definition'>context2PatternTree</span> <span class='keyglyph'>::</span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='conid'>PatternTree</span>-<a name="line-233"></a><span class='definition'>context2PatternTree</span> <span class='layout'>(</span><span class='varid'>base</span><span class='layout'>,</span> <span class='varid'>mapping</span><span class='layout'>)</span>-<a name="line-234"></a> <span class='keyglyph'>=</span> <span class='conid'>NTree</span> <span class='str'>"context"</span> <span class='keyglyph'>[</span> <span class='conid'>NTree</span> <span class='layout'>(</span><span class='str'>"base-uri = "</span> <span class='varop'>++</span> <span class='varid'>base</span><span class='layout'>)</span> <span class='conid'>[]</span>-<a name="line-235"></a> <span class='layout'>,</span> <span class='varid'>mapping2PatternTree</span> <span class='str'>"namespace environment"</span> <span class='varid'>mapping</span>-<a name="line-236"></a> <span class='keyglyph'>]</span>-<a name="line-237"></a>-<a name="line-238"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-239"></a>-<a name="line-240"></a><a name="xmlTreeToPatternFormatedString"></a><span class='comment'>-- | Returns a formated string representation of the pattern structure.</span>-<a name="line-241"></a><span class='comment'>-- (see also: 'createPatternFromXmlTree' and 'patternToFormatedString')</span>-<a name="line-242"></a><span class='definition'>xmlTreeToPatternFormatedString</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>-<a name="line-243"></a><span class='definition'>xmlTreeToPatternFormatedString</span>-<a name="line-244"></a> <span class='keyglyph'>=</span> <span class='varid'>createPatternFromXmlTree</span> -<a name="line-245"></a> <span class='varop'>>>></span>-<a name="line-246"></a> <span class='varid'>fromSLA</span> <span class='conid'>[]</span> <span class='varid'>patternToFormatedString</span>-<a name="line-247"></a>-<a name="line-248"></a>-<a name="line-249"></a><span class='comment'>{- |-<a name="line-250"></a>Returns a formated string representation of the pattern structure.-<a name="line-251"></a>-<a name="line-252"></a>Example:-<a name="line-253"></a>-<a name="line-254"></a>> Element {}foo (Choice (Choice ( Value = abc, -<a name="line-255"></a>> datatypelibrary = <a href="http://relaxng.org/ns/structure/1.0,">http://relaxng.org/ns/structure/1.0,</a> type = token, -<a name="line-256"></a>> context (base-uri =file://test.rng, -<a name="line-257"></a>> parameter: xml = <a href="http://www.w3.org/XML/1998/namespaces,">http://www.w3.org/XML/1998/namespaces,</a> foo = www.bar.baz), -<a name="line-258"></a>-<a name="line-259"></a>The function can be used to display circular ref-pattern structures.-<a name="line-260"></a>-}</span>-<a name="line-261"></a>-<a name="line-262"></a><a name="patternToFormatedString"></a><span class='definition'>patternToFormatedString</span> <span class='keyglyph'>::</span> <span class='conid'>SLA</span> <span class='keyglyph'>[</span><span class='conid'>NameClass</span><span class='keyglyph'>]</span> <span class='conid'>Pattern</span> <span class='conid'>String</span>-<a name="line-263"></a><span class='definition'>patternToFormatedString</span>-<a name="line-264"></a> <span class='keyglyph'>=</span> <span class='varid'>choiceA</span>-<a name="line-265"></a> <span class='keyglyph'>[</span> <span class='varid'>isA</span> <span class='varid'>isRelaxEmpty</span> <span class='conop'>:-></span> <span class='layout'>(</span><span class='varid'>constA</span> <span class='str'>" empty "</span><span class='layout'>)</span>-<a name="line-266"></a> <span class='layout'>,</span> <span class='varid'>isA</span> <span class='varid'>isRelaxNotAllowed</span> <span class='conop'>:-></span> <span class='layout'>(</span><span class='varid'>arr</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='layout'>(</span><span class='conid'>NotAllowed</span> <span class='varid'>errorEnv</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>show</span> <span class='varid'>errorEnv</span><span class='layout'>)</span>-<a name="line-267"></a> <span class='layout'>,</span> <span class='varid'>isA</span> <span class='varid'>isRelaxText</span> <span class='conop'>:-></span> <span class='layout'>(</span><span class='varid'>constA</span> <span class='str'>" text "</span><span class='layout'>)</span>-<a name="line-268"></a> <span class='layout'>,</span> <span class='varid'>isA</span> <span class='varid'>isRelaxChoice</span> <span class='conop'>:-></span> <span class='varid'>children2FormatedString</span> <span class='str'>"choice"</span>-<a name="line-269"></a> <span class='layout'>,</span> <span class='varid'>isA</span> <span class='varid'>isRelaxInterleave</span> <span class='conop'>:-></span> <span class='varid'>children2FormatedString</span> <span class='str'>"interleave"</span>-<a name="line-270"></a> <span class='layout'>,</span> <span class='varid'>isA</span> <span class='varid'>isRelaxGroup</span> <span class='conop'>:-></span> <span class='varid'>children2FormatedString</span> <span class='str'>"group"</span>-<a name="line-271"></a> <span class='layout'>,</span> <span class='varid'>isA</span> <span class='varid'>isRelaxOneOrMore</span> <span class='conop'>:-></span> <span class='varid'>children2FormatedString</span> <span class='str'>"oneOrMore"</span>-<a name="line-272"></a> <span class='layout'>,</span> <span class='varid'>isA</span> <span class='varid'>isRelaxList</span> <span class='conop'>:-></span> <span class='varid'>children2FormatedString</span> <span class='str'>"list"</span>-<a name="line-273"></a> <span class='layout'>,</span> <span class='varid'>isA</span> <span class='varid'>isRelaxData</span> <span class='conop'>:-></span> <span class='varid'>data2FormatedString</span>-<a name="line-274"></a> <span class='layout'>,</span> <span class='varid'>isA</span> <span class='varid'>isRelaxDataExcept</span> <span class='conop'>:-></span> <span class='varid'>dataExcept2FormatedString</span>-<a name="line-275"></a> <span class='layout'>,</span> <span class='varid'>isA</span> <span class='varid'>isRelaxValue</span> <span class='conop'>:-></span> <span class='varid'>value2FormatedString</span>-<a name="line-276"></a> <span class='layout'>,</span> <span class='varid'>isA</span> <span class='varid'>isRelaxAttribute</span> <span class='conop'>:-></span> <span class='varid'>createFormatedStringFromElement</span> <span class='str'>"attribute"</span>-<a name="line-277"></a> <span class='layout'>,</span> <span class='varid'>isA</span> <span class='varid'>isRelaxElement</span> <span class='conop'>:-></span> <span class='varid'>element2FormatedString</span>-<a name="line-278"></a> <span class='layout'>,</span> <span class='varid'>isA</span> <span class='varid'>isRelaxAfter</span> <span class='conop'>:-></span> <span class='varid'>children2FormatedString</span> <span class='str'>"after"</span>-<a name="line-279"></a> <span class='keyglyph'>]</span>-<a name="line-280"></a>-<a name="line-281"></a><a name="children2FormatedString"></a><span class='definition'>children2FormatedString</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>SLA</span> <span class='keyglyph'>[</span><span class='conid'>NameClass</span><span class='keyglyph'>]</span> <span class='conid'>Pattern</span> <span class='conid'>String</span>-<a name="line-282"></a><span class='definition'>children2FormatedString</span> <span class='varid'>name</span>-<a name="line-283"></a> <span class='keyglyph'>=</span> <span class='varid'>listA</span> <span class='layout'>(</span><span class='varid'>arrL</span> <span class='varid'>getChildrenPattern</span> <span class='varop'>>>></span> <span class='varid'>patternToFormatedString</span><span class='layout'>)</span> -<a name="line-284"></a> <span class='varop'>>>^</span>-<a name="line-285"></a> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>l</span> <span class='keyglyph'>-></span> <span class='varid'>name</span> <span class='varop'>++</span> <span class='str'>" ("</span> <span class='varop'>++</span> <span class='varid'>formatStringListPatt</span> <span class='varid'>l</span> <span class='varop'>++</span> <span class='str'>") "</span> <span class='layout'>)</span>-<a name="line-286"></a>-<a name="line-287"></a><a name="data2FormatedString"></a><span class='definition'>data2FormatedString</span> <span class='keyglyph'>::</span> <span class='conid'>SLA</span> <span class='keyglyph'>[</span><span class='conid'>NameClass</span><span class='keyglyph'>]</span> <span class='conid'>Pattern</span> <span class='conid'>String</span>-<a name="line-288"></a><span class='definition'>data2FormatedString</span>-<a name="line-289"></a> <span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='layout'>(</span> <span class='keyglyph'>\</span> <span class='layout'>(</span><span class='conid'>Data</span> <span class='varid'>datatype</span> <span class='varid'>paramList</span><span class='layout'>)</span> <span class='keyglyph'>-></span>-<a name="line-290"></a> <span class='str'>"Data "</span> <span class='varop'>++</span> <span class='varid'>datatype2String</span> <span class='varid'>datatype</span> <span class='varop'>++</span> <span class='str'>"\n "</span> <span class='varop'>++</span> -<a name="line-291"></a> <span class='varid'>mapping2String</span> <span class='str'>"parameter"</span> <span class='varid'>paramList</span> <span class='varop'>++</span> <span class='str'>"\n"</span>-<a name="line-292"></a> <span class='layout'>)</span>-<a name="line-293"></a>-<a name="line-294"></a><a name="dataExcept2FormatedString"></a><span class='definition'>dataExcept2FormatedString</span> <span class='keyglyph'>::</span> <span class='conid'>SLA</span> <span class='keyglyph'>[</span><span class='conid'>NameClass</span><span class='keyglyph'>]</span> <span class='conid'>Pattern</span> <span class='conid'>String</span>-<a name="line-295"></a><span class='definition'>dataExcept2FormatedString</span> -<a name="line-296"></a> <span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='layout'>(</span> <span class='keyglyph'>\</span> <span class='layout'>(</span><span class='conid'>DataExcept</span> <span class='varid'>datatype</span> <span class='varid'>paramList</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>-></span>-<a name="line-297"></a> <span class='str'>"DataExcept "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>datatype</span> <span class='varop'>++</span> <span class='str'>"\n "</span> <span class='varop'>++</span> -<a name="line-298"></a> <span class='varid'>mapping2String</span> <span class='str'>"parameter"</span> <span class='varid'>paramList</span> <span class='varop'>++</span> <span class='str'>"\n "</span>-<a name="line-299"></a> <span class='layout'>)</span>-<a name="line-300"></a> <span class='varop'>&&&</span>-<a name="line-301"></a> <span class='layout'>(</span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='layout'>(</span><span class='conid'>DataExcept</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>p</span><span class='layout'>)</span> <span class='varop'>>>></span> <span class='varid'>patternToFormatedString</span> <span class='layout'>)</span>-<a name="line-302"></a> <span class='varop'>>>></span>-<a name="line-303"></a> <span class='varid'>arr2</span> <span class='layout'>(</span><span class='varop'>++</span><span class='layout'>)</span>-<a name="line-304"></a>-<a name="line-305"></a>-<a name="line-306"></a><a name="value2FormatedString"></a><span class='definition'>value2FormatedString</span> <span class='keyglyph'>::</span> <span class='conid'>SLA</span> <span class='keyglyph'>[</span><span class='conid'>NameClass</span><span class='keyglyph'>]</span> <span class='conid'>Pattern</span> <span class='conid'>String</span>-<a name="line-307"></a><span class='definition'>value2FormatedString</span> -<a name="line-308"></a> <span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='varop'>$</span> <span class='keyglyph'>\</span><span class='layout'>(</span><span class='conid'>Value</span> <span class='varid'>datatype</span> <span class='varid'>val</span> <span class='varid'>context</span><span class='layout'>)</span> <span class='keyglyph'>-></span>-<a name="line-309"></a> <span class='str'>"Value = "</span> <span class='varop'>++</span> <span class='varid'>val</span> <span class='varop'>++</span> <span class='str'>", "</span> <span class='varop'>++</span> <span class='varid'>datatype2String</span> <span class='varid'>datatype</span> <span class='varop'>++</span> -<a name="line-310"></a> <span class='str'>"\n "</span> <span class='varop'>++</span> <span class='varid'>context2String</span> <span class='varid'>context</span> <span class='varop'>++</span> <span class='str'>"\n"</span>-<a name="line-311"></a>-<a name="line-312"></a>-<a name="line-313"></a><a name="element2FormatedString"></a><span class='definition'>element2FormatedString</span> <span class='keyglyph'>::</span> <span class='conid'>SLA</span> <span class='keyglyph'>[</span><span class='conid'>NameClass</span><span class='keyglyph'>]</span> <span class='conid'>Pattern</span> <span class='conid'>String</span>-<a name="line-314"></a><span class='definition'>element2FormatedString</span>-<a name="line-315"></a> <span class='keyglyph'>=</span> <span class='varid'>ifA</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>arr</span> <span class='varid'>getNameClassFromPattern</span> <span class='varop'>&&&</span> <span class='varid'>getState</span><span class='layout'>)</span>-<a name="line-316"></a> <span class='varop'>>>></span>-<a name="line-317"></a> <span class='varid'>isA</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='layout'>(</span><span class='varid'>nc</span><span class='layout'>,</span> <span class='varid'>liste</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>elem</span> <span class='varid'>nc</span> <span class='varid'>liste</span><span class='layout'>)</span>-<a name="line-318"></a> <span class='layout'>)</span>-<a name="line-319"></a> <span class='layout'>(</span> <span class='varid'>arr</span> <span class='varid'>getNameClassFromPattern</span>-<a name="line-320"></a> <span class='varop'>>>^</span> -<a name="line-321"></a> <span class='layout'>(</span> <span class='keyglyph'>\</span><span class='varid'>nc</span> <span class='keyglyph'>-></span> <span class='str'>"reference to element "</span> <span class='varop'>++</span> <span class='varid'>nameClassToString</span> <span class='varid'>nc</span> <span class='varop'>++</span> <span class='str'>" "</span> <span class='layout'>)</span>-<a name="line-322"></a> <span class='layout'>)</span>-<a name="line-323"></a> <span class='layout'>(</span> <span class='varid'>changeState</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='varid'>p</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='varid'>getNameClassFromPattern</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>s</span><span class='layout'>)</span>-<a name="line-324"></a> <span class='varop'>>>></span>-<a name="line-325"></a> <span class='varid'>createFormatedStringFromElement</span> <span class='str'>"element"</span>-<a name="line-326"></a> <span class='layout'>)</span>-<a name="line-327"></a>-<a name="line-328"></a>-<a name="line-329"></a><a name="createFormatedStringFromElement"></a><span class='definition'>createFormatedStringFromElement</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>SLA</span> <span class='keyglyph'>[</span><span class='conid'>NameClass</span><span class='keyglyph'>]</span> <span class='conid'>Pattern</span> <span class='conid'>String</span>-<a name="line-330"></a><span class='definition'>createFormatedStringFromElement</span> <span class='varid'>name</span>-<a name="line-331"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>arr</span> <span class='varid'>getNameClassFromPattern</span>-<a name="line-332"></a> <span class='varop'>&&&</span>-<a name="line-333"></a> <span class='layout'>(</span> <span class='varid'>listA</span> <span class='layout'>(</span><span class='varid'>arrL</span> <span class='varid'>getChildrenPattern</span> <span class='varop'>>>></span> <span class='varid'>patternToFormatedString</span><span class='layout'>)</span>-<a name="line-334"></a> <span class='varop'>>>^</span>-<a name="line-335"></a> <span class='varid'>formatStringListId</span>-<a name="line-336"></a> <span class='layout'>)</span>-<a name="line-337"></a> <span class='layout'>)</span>-<a name="line-338"></a> <span class='varop'>>>></span>-<a name="line-339"></a> <span class='varid'>arr2</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>nc</span> <span class='varid'>rl</span> <span class='keyglyph'>-></span> <span class='varid'>name</span> <span class='varop'>++</span> <span class='str'>" "</span> <span class='varop'>++</span> <span class='varid'>nameClassToString</span> <span class='varid'>nc</span> <span class='varop'>++</span> <span class='str'>" ("</span> <span class='varop'>++</span> <span class='varid'>rl</span> <span class='varop'>++</span> <span class='str'>")"</span><span class='layout'>)</span>-<a name="line-340"></a>-<a name="line-341"></a>-<a name="line-342"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-343"></a>-<a name="line-344"></a><a name="mapping2String"></a><span class='definition'>mapping2String</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>Prefix</span><span class='layout'>,</span> <span class='conid'>Uri</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-345"></a><span class='definition'>mapping2String</span> <span class='varid'>name</span> <span class='varid'>mapping</span>-<a name="line-346"></a> <span class='keyglyph'>=</span> <span class='varid'>name</span> <span class='varop'>++</span> <span class='str'>": "</span> <span class='varop'>++</span> -<a name="line-347"></a> <span class='varid'>formatStringList</span> <span class='varid'>id</span> <span class='str'>", "</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varop'>++</span> <span class='str'>" = "</span> <span class='varop'>++</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='varid'>mapping</span><span class='layout'>)</span>-<a name="line-348"></a>-<a name="line-349"></a><a name="datatype2String"></a><span class='definition'>datatype2String</span> <span class='keyglyph'>::</span> <span class='conid'>Datatype</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-350"></a><span class='definition'>datatype2String</span> <span class='layout'>(</span><span class='varid'>lib</span><span class='layout'>,</span> <span class='varid'>localName</span><span class='layout'>)</span>-<a name="line-351"></a> <span class='keyglyph'>=</span> <span class='str'>"datatypelibrary = "</span> <span class='varop'>++</span> <span class='varid'>getLib</span> <span class='varop'>++</span> <span class='str'>", type = "</span> <span class='varop'>++</span> <span class='varid'>localName</span>-<a name="line-352"></a> <span class='keyword'>where</span>-<a name="line-353"></a> <span class='varid'>getLib</span> <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>lib</span> <span class='varop'>==</span> <span class='str'>""</span> <span class='keyword'>then</span> <span class='varid'>relaxNamespace</span> <span class='keyword'>else</span> <span class='varid'>lib</span>-<a name="line-354"></a> -<a name="line-355"></a><a name="context2String"></a><span class='definition'>context2String</span> <span class='keyglyph'>::</span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-356"></a><span class='definition'>context2String</span> <span class='layout'>(</span><span class='varid'>base</span><span class='layout'>,</span> <span class='varid'>mapping</span><span class='layout'>)</span>-<a name="line-357"></a> <span class='keyglyph'>=</span> <span class='str'>"context (base-uri = "</span> <span class='varop'>++</span> <span class='varid'>base</span> <span class='varop'>++</span> <span class='str'>", "</span> <span class='varop'>++</span>-<a name="line-358"></a> <span class='varid'>mapping2String</span> <span class='str'>"namespace environment"</span> <span class='varid'>mapping</span> <span class='varop'>++</span> <span class='str'>")"</span>-<a name="line-359"></a> -<a name="line-360"></a><span class='comment'>-- ------------------------------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-RelaxNG-Schema.html
@@ -1,3931 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>{- |-<a name="line-2"></a> Module : Text.HXT.RelaxNG.Schema-<a name="line-3"></a>-<a name="line-4"></a> Don't edit this module, it's generated by RelaxSchemaToXmlTree-<a name="line-5"></a>-<a name="line-6"></a>-}</span>-<a name="line-7"></a>-<a name="line-8"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>Schema</span>-<a name="line-9"></a> <span class='layout'>(</span> <span class='varid'>relaxSchemaTree</span><span class='layout'>,</span> <span class='varid'>relaxSchemaArrow</span> <span class='layout'>)</span>-<a name="line-10"></a><span class='keyword'>where</span>-<a name="line-11"></a>-<a name="line-12"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>TypeDefs</span>-<a name="line-13"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlNode</span> <span class='layout'>(</span><span class='varid'>mkRoot</span><span class='layout'>,</span> <span class='varid'>mkElement</span><span class='layout'>,</span> <span class='varid'>mkAttr</span><span class='layout'>,</span> <span class='varid'>mkText</span><span class='layout'>)</span>-<a name="line-14"></a>-<a name="line-15"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ListArrows</span>-<a name="line-16"></a>-<a name="line-17"></a><a name="relaxSchemaArrow"></a><span class='definition'>relaxSchemaArrow</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='conid'>XmlTree</span>-<a name="line-18"></a><span class='definition'>relaxSchemaArrow</span> <span class='keyglyph'>=</span> <span class='varid'>constA</span> <span class='varid'>relaxSchemaTree</span>-<a name="line-19"></a>-<a name="line-20"></a><a name="relaxSchemaTree"></a><span class='definition'>relaxSchemaTree</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span>-<a name="line-21"></a><span class='definition'>relaxSchemaTree</span> <span class='keyglyph'>=</span>-<a name="line-22"></a> <span class='keyword'>let</span>-<a name="line-23"></a> <span class='varid'>ns1</span> <span class='keyglyph'>=</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span>-<a name="line-24"></a> <span class='varid'>qn1</span> <span class='keyglyph'>=</span> <span class='varid'>mkSNsName</span> <span class='str'>"RelaxContext:xml"</span>-<a name="line-25"></a> <span class='varid'>qn2</span> <span class='keyglyph'>=</span> <span class='varid'>mkSNsName</span> <span class='str'>"RelaxContextBaseURI"</span>-<a name="line-26"></a> <span class='varid'>qn3</span> <span class='keyglyph'>=</span> <span class='varid'>mkSNsName</span> <span class='str'>"RelaxContextDefault"</span>-<a name="line-27"></a> <span class='varid'>qn4</span> <span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"anyName"</span> <span class='varid'>ns1</span>-<a name="line-28"></a> <span class='varid'>qn5</span> <span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"attribute"</span> <span class='varid'>ns1</span>-<a name="line-29"></a> <span class='varid'>qn6</span> <span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"choice"</span> <span class='varid'>ns1</span>-<a name="line-30"></a> <span class='varid'>qn7</span> <span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"data"</span> <span class='varid'>ns1</span>-<a name="line-31"></a> <span class='varid'>qn8</span> <span class='keyglyph'>=</span> <span class='varid'>mkSNsName</span> <span class='str'>"datatypeLibrary"</span>-<a name="line-32"></a> <span class='varid'>qn9</span> <span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"define"</span> <span class='varid'>ns1</span>-<a name="line-33"></a> <span class='varid'>qn10</span> <span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"element"</span> <span class='varid'>ns1</span>-<a name="line-34"></a> <span class='varid'>qn11</span> <span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"empty"</span> <span class='varid'>ns1</span>-<a name="line-35"></a> <span class='varid'>qn12</span> <span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"except"</span> <span class='varid'>ns1</span>-<a name="line-36"></a> <span class='varid'>qn13</span> <span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"grammar"</span> <span class='varid'>ns1</span>-<a name="line-37"></a> <span class='varid'>qn14</span> <span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"group"</span> <span class='varid'>ns1</span>-<a name="line-38"></a> <span class='varid'>qn15</span> <span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"interleave"</span> <span class='varid'>ns1</span>-<a name="line-39"></a> <span class='varid'>qn16</span> <span class='keyglyph'>=</span> <span class='varid'>mkSNsName</span> <span class='str'>"name"</span>-<a name="line-40"></a> <span class='varid'>qn17</span> <span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"name"</span> <span class='varid'>ns1</span>-<a name="line-41"></a> <span class='varid'>qn18</span> <span class='keyglyph'>=</span> <span class='varid'>mkSNsName</span> <span class='str'>"ns"</span>-<a name="line-42"></a> <span class='varid'>qn19</span> <span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"nsName"</span> <span class='varid'>ns1</span>-<a name="line-43"></a> <span class='varid'>qn20</span> <span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"oneOrMore"</span> <span class='varid'>ns1</span>-<a name="line-44"></a> <span class='varid'>qn21</span> <span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"ref"</span> <span class='varid'>ns1</span>-<a name="line-45"></a> <span class='varid'>qn22</span> <span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"start"</span> <span class='varid'>ns1</span>-<a name="line-46"></a> <span class='varid'>qn23</span> <span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"text"</span> <span class='varid'>ns1</span>-<a name="line-47"></a> <span class='varid'>qn24</span> <span class='keyglyph'>=</span> <span class='varid'>mkSNsName</span> <span class='str'>"type"</span>-<a name="line-48"></a> <span class='varid'>qn25</span> <span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"value"</span> <span class='varid'>ns1</span>-<a name="line-49"></a> <span class='keyword'>in</span>-<a name="line-50"></a> <span class='varid'>mkRoot</span> <span class='conid'>[]</span>-<a name="line-51"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn13</span> <span class='conid'>[]</span>-<a name="line-52"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn22</span> <span class='conid'>[]</span>-<a name="line-53"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-54"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-55"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-56"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-57"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-58"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-59"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-60"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-61"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-62"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-63"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-64"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-65"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-66"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-67"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-68"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-69"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-70"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-71"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-72"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"24"</span> <span class='keyglyph'>]</span>-<a name="line-73"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-74"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-75"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"25"</span> <span class='keyglyph'>]</span>-<a name="line-76"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-77"></a> <span class='keyglyph'>]</span>-<a name="line-78"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-79"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"26"</span> <span class='keyglyph'>]</span>-<a name="line-80"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-81"></a> <span class='keyglyph'>]</span>-<a name="line-82"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-83"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"27"</span> <span class='keyglyph'>]</span>-<a name="line-84"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-85"></a> <span class='keyglyph'>]</span>-<a name="line-86"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-87"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"28"</span> <span class='keyglyph'>]</span>-<a name="line-88"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-89"></a> <span class='keyglyph'>]</span>-<a name="line-90"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-91"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"29"</span> <span class='keyglyph'>]</span>-<a name="line-92"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-93"></a> <span class='keyglyph'>]</span>-<a name="line-94"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-95"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"30"</span> <span class='keyglyph'>]</span>-<a name="line-96"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-97"></a> <span class='keyglyph'>]</span>-<a name="line-98"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-99"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"31"</span> <span class='keyglyph'>]</span>-<a name="line-100"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-101"></a> <span class='keyglyph'>]</span>-<a name="line-102"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-103"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"32"</span> <span class='keyglyph'>]</span>-<a name="line-104"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-105"></a> <span class='keyglyph'>]</span>-<a name="line-106"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-107"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"33"</span> <span class='keyglyph'>]</span>-<a name="line-108"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-109"></a> <span class='keyglyph'>]</span>-<a name="line-110"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-111"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"34"</span> <span class='keyglyph'>]</span>-<a name="line-112"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-113"></a> <span class='keyglyph'>]</span>-<a name="line-114"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-115"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"35"</span> <span class='keyglyph'>]</span>-<a name="line-116"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-117"></a> <span class='keyglyph'>]</span>-<a name="line-118"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-119"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"36"</span> <span class='keyglyph'>]</span>-<a name="line-120"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-121"></a> <span class='keyglyph'>]</span>-<a name="line-122"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-123"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"37"</span> <span class='keyglyph'>]</span>-<a name="line-124"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-125"></a> <span class='keyglyph'>]</span>-<a name="line-126"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-127"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"38"</span> <span class='keyglyph'>]</span>-<a name="line-128"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-129"></a> <span class='keyglyph'>]</span>-<a name="line-130"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-131"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"39"</span> <span class='keyglyph'>]</span>-<a name="line-132"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-133"></a> <span class='keyglyph'>]</span>-<a name="line-134"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-135"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"42"</span> <span class='keyglyph'>]</span>-<a name="line-136"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-137"></a> <span class='keyglyph'>]</span>-<a name="line-138"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-139"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"43"</span> <span class='keyglyph'>]</span>-<a name="line-140"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-141"></a> <span class='keyglyph'>]</span>-<a name="line-142"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-143"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"44"</span> <span class='keyglyph'>]</span>-<a name="line-144"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-145"></a> <span class='keyglyph'>]</span>-<a name="line-146"></a> <span class='keyglyph'>]</span>-<a name="line-147"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>-<a name="line-148"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"44"</span> <span class='keyglyph'>]</span>-<a name="line-149"></a> <span class='keyglyph'>]</span>-<a name="line-150"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>-<a name="line-151"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-152"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-153"></a> <span class='keyglyph'>]</span>-<a name="line-154"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"grammar"</span>-<a name="line-155"></a> <span class='keyglyph'>]</span>-<a name="line-156"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-157"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-158"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-159"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-160"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-161"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-162"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-163"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-164"></a> <span class='keyglyph'>]</span>-<a name="line-165"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>-<a name="line-166"></a> <span class='keyglyph'>]</span>-<a name="line-167"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-168"></a> <span class='keyglyph'>]</span>-<a name="line-169"></a> <span class='keyglyph'>]</span>-<a name="line-170"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-171"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-172"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-173"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-174"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-175"></a> <span class='keyglyph'>]</span>-<a name="line-176"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>-<a name="line-177"></a> <span class='keyglyph'>]</span>-<a name="line-178"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-179"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>-<a name="line-180"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-181"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-182"></a> <span class='keyglyph'>]</span>-<a name="line-183"></a> <span class='keyglyph'>]</span>-<a name="line-184"></a> <span class='keyglyph'>]</span>-<a name="line-185"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-186"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-187"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-188"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-189"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>-<a name="line-190"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>-<a name="line-191"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-192"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-193"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-194"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-195"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-196"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-197"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-198"></a> <span class='keyglyph'>]</span>-<a name="line-199"></a> <span class='keyglyph'>]</span>-<a name="line-200"></a> <span class='keyglyph'>]</span>-<a name="line-201"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-202"></a> <span class='keyglyph'>]</span>-<a name="line-203"></a> <span class='keyglyph'>]</span>-<a name="line-204"></a> <span class='keyglyph'>]</span>-<a name="line-205"></a> <span class='keyglyph'>]</span>-<a name="line-206"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>-<a name="line-207"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-208"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-209"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-210"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-211"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"15"</span> <span class='keyglyph'>]</span>-<a name="line-212"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-213"></a> <span class='keyglyph'>]</span>-<a name="line-214"></a> <span class='keyglyph'>]</span>-<a name="line-215"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-216"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-217"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-218"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-219"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-220"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-221"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-222"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"11"</span> <span class='keyglyph'>]</span>-<a name="line-223"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-224"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-225"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"10"</span> <span class='keyglyph'>]</span>-<a name="line-226"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-227"></a> <span class='keyglyph'>]</span>-<a name="line-228"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-229"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"22"</span> <span class='keyglyph'>]</span>-<a name="line-230"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-231"></a> <span class='keyglyph'>]</span>-<a name="line-232"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-233"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"23"</span> <span class='keyglyph'>]</span>-<a name="line-234"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-235"></a> <span class='keyglyph'>]</span>-<a name="line-236"></a> <span class='keyglyph'>]</span>-<a name="line-237"></a> <span class='keyglyph'>]</span>-<a name="line-238"></a> <span class='keyglyph'>]</span>-<a name="line-239"></a> <span class='keyglyph'>]</span>-<a name="line-240"></a> <span class='keyglyph'>]</span>-<a name="line-241"></a> <span class='keyglyph'>]</span>-<a name="line-242"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>-<a name="line-243"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"43"</span> <span class='keyglyph'>]</span>-<a name="line-244"></a> <span class='keyglyph'>]</span>-<a name="line-245"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>-<a name="line-246"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-247"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-248"></a> <span class='keyglyph'>]</span>-<a name="line-249"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"externalRef"</span>-<a name="line-250"></a> <span class='keyglyph'>]</span>-<a name="line-251"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-252"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-253"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-254"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-255"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-256"></a> <span class='keyglyph'>]</span>-<a name="line-257"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"href"</span>-<a name="line-258"></a> <span class='keyglyph'>]</span>-<a name="line-259"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-260"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>-<a name="line-261"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-262"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-263"></a> <span class='keyglyph'>]</span>-<a name="line-264"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-265"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-266"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-267"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-268"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-269"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-270"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-271"></a> <span class='keyglyph'>]</span>-<a name="line-272"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>-<a name="line-273"></a> <span class='keyglyph'>]</span>-<a name="line-274"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-275"></a> <span class='keyglyph'>]</span>-<a name="line-276"></a> <span class='keyglyph'>]</span>-<a name="line-277"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-278"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-279"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-280"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-281"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-282"></a> <span class='keyglyph'>]</span>-<a name="line-283"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>-<a name="line-284"></a> <span class='keyglyph'>]</span>-<a name="line-285"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-286"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>-<a name="line-287"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-288"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-289"></a> <span class='keyglyph'>]</span>-<a name="line-290"></a> <span class='keyglyph'>]</span>-<a name="line-291"></a> <span class='keyglyph'>]</span>-<a name="line-292"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-293"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-294"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-295"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-296"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>-<a name="line-297"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>-<a name="line-298"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-299"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-300"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-301"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-302"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-303"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-304"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-305"></a> <span class='keyglyph'>]</span>-<a name="line-306"></a> <span class='keyglyph'>]</span>-<a name="line-307"></a> <span class='keyglyph'>]</span>-<a name="line-308"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-309"></a> <span class='keyglyph'>]</span>-<a name="line-310"></a> <span class='keyglyph'>]</span>-<a name="line-311"></a> <span class='keyglyph'>]</span>-<a name="line-312"></a> <span class='keyglyph'>]</span>-<a name="line-313"></a> <span class='keyglyph'>]</span>-<a name="line-314"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-315"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-316"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-317"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-318"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"15"</span> <span class='keyglyph'>]</span>-<a name="line-319"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-320"></a> <span class='keyglyph'>]</span>-<a name="line-321"></a> <span class='keyglyph'>]</span>-<a name="line-322"></a> <span class='keyglyph'>]</span>-<a name="line-323"></a> <span class='keyglyph'>]</span>-<a name="line-324"></a> <span class='keyglyph'>]</span>-<a name="line-325"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>-<a name="line-326"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"42"</span> <span class='keyglyph'>]</span>-<a name="line-327"></a> <span class='keyglyph'>]</span>-<a name="line-328"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>-<a name="line-329"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-330"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-331"></a> <span class='keyglyph'>]</span>-<a name="line-332"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"notAllowed"</span>-<a name="line-333"></a> <span class='keyglyph'>]</span>-<a name="line-334"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-335"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-336"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-337"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-338"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-339"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-340"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-341"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-342"></a> <span class='keyglyph'>]</span>-<a name="line-343"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>-<a name="line-344"></a> <span class='keyglyph'>]</span>-<a name="line-345"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-346"></a> <span class='keyglyph'>]</span>-<a name="line-347"></a> <span class='keyglyph'>]</span>-<a name="line-348"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-349"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-350"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-351"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-352"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-353"></a> <span class='keyglyph'>]</span>-<a name="line-354"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>-<a name="line-355"></a> <span class='keyglyph'>]</span>-<a name="line-356"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-357"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>-<a name="line-358"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-359"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-360"></a> <span class='keyglyph'>]</span>-<a name="line-361"></a> <span class='keyglyph'>]</span>-<a name="line-362"></a> <span class='keyglyph'>]</span>-<a name="line-363"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-364"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-365"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-366"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-367"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>-<a name="line-368"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>-<a name="line-369"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-370"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-371"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-372"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-373"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-374"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-375"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-376"></a> <span class='keyglyph'>]</span>-<a name="line-377"></a> <span class='keyglyph'>]</span>-<a name="line-378"></a> <span class='keyglyph'>]</span>-<a name="line-379"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-380"></a> <span class='keyglyph'>]</span>-<a name="line-381"></a> <span class='keyglyph'>]</span>-<a name="line-382"></a> <span class='keyglyph'>]</span>-<a name="line-383"></a> <span class='keyglyph'>]</span>-<a name="line-384"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-385"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-386"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-387"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-388"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"15"</span> <span class='keyglyph'>]</span>-<a name="line-389"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-390"></a> <span class='keyglyph'>]</span>-<a name="line-391"></a> <span class='keyglyph'>]</span>-<a name="line-392"></a> <span class='keyglyph'>]</span>-<a name="line-393"></a> <span class='keyglyph'>]</span>-<a name="line-394"></a> <span class='keyglyph'>]</span>-<a name="line-395"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>-<a name="line-396"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"39"</span> <span class='keyglyph'>]</span>-<a name="line-397"></a> <span class='keyglyph'>]</span>-<a name="line-398"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>-<a name="line-399"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-400"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-401"></a> <span class='keyglyph'>]</span>-<a name="line-402"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"data"</span>-<a name="line-403"></a> <span class='keyglyph'>]</span>-<a name="line-404"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-405"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-406"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-407"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-408"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-409"></a> <span class='keyglyph'>]</span>-<a name="line-410"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"type"</span>-<a name="line-411"></a> <span class='keyglyph'>]</span>-<a name="line-412"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-413"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"NCName"</span> <span class='keyglyph'>]</span>-<a name="line-414"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-415"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-416"></a> <span class='keyglyph'>]</span>-<a name="line-417"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-418"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-419"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-420"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-421"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-422"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-423"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-424"></a> <span class='keyglyph'>]</span>-<a name="line-425"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>-<a name="line-426"></a> <span class='keyglyph'>]</span>-<a name="line-427"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-428"></a> <span class='keyglyph'>]</span>-<a name="line-429"></a> <span class='keyglyph'>]</span>-<a name="line-430"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-431"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-432"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-433"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-434"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-435"></a> <span class='keyglyph'>]</span>-<a name="line-436"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>-<a name="line-437"></a> <span class='keyglyph'>]</span>-<a name="line-438"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-439"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>-<a name="line-440"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-441"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-442"></a> <span class='keyglyph'>]</span>-<a name="line-443"></a> <span class='keyglyph'>]</span>-<a name="line-444"></a> <span class='keyglyph'>]</span>-<a name="line-445"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-446"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-447"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-448"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-449"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>-<a name="line-450"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>-<a name="line-451"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-452"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-453"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-454"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-455"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-456"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-457"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-458"></a> <span class='keyglyph'>]</span>-<a name="line-459"></a> <span class='keyglyph'>]</span>-<a name="line-460"></a> <span class='keyglyph'>]</span>-<a name="line-461"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-462"></a> <span class='keyglyph'>]</span>-<a name="line-463"></a> <span class='keyglyph'>]</span>-<a name="line-464"></a> <span class='keyglyph'>]</span>-<a name="line-465"></a> <span class='keyglyph'>]</span>-<a name="line-466"></a> <span class='keyglyph'>]</span>-<a name="line-467"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>-<a name="line-468"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-469"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-470"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-471"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-472"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"15"</span> <span class='keyglyph'>]</span>-<a name="line-473"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-474"></a> <span class='keyglyph'>]</span>-<a name="line-475"></a> <span class='keyglyph'>]</span>-<a name="line-476"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-477"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-478"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-479"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-480"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-481"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"40"</span> <span class='keyglyph'>]</span>-<a name="line-482"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-483"></a> <span class='keyglyph'>]</span>-<a name="line-484"></a> <span class='keyglyph'>]</span>-<a name="line-485"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-486"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-487"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-488"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"41"</span> <span class='keyglyph'>]</span>-<a name="line-489"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-490"></a> <span class='keyglyph'>]</span>-<a name="line-491"></a> <span class='keyglyph'>]</span>-<a name="line-492"></a> <span class='keyglyph'>]</span>-<a name="line-493"></a> <span class='keyglyph'>]</span>-<a name="line-494"></a> <span class='keyglyph'>]</span>-<a name="line-495"></a> <span class='keyglyph'>]</span>-<a name="line-496"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>-<a name="line-497"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"41"</span> <span class='keyglyph'>]</span>-<a name="line-498"></a> <span class='keyglyph'>]</span>-<a name="line-499"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>-<a name="line-500"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-501"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-502"></a> <span class='keyglyph'>]</span>-<a name="line-503"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"except"</span>-<a name="line-504"></a> <span class='keyglyph'>]</span>-<a name="line-505"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-506"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-507"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-508"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-509"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-510"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-511"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-512"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-513"></a> <span class='keyglyph'>]</span>-<a name="line-514"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>-<a name="line-515"></a> <span class='keyglyph'>]</span>-<a name="line-516"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-517"></a> <span class='keyglyph'>]</span>-<a name="line-518"></a> <span class='keyglyph'>]</span>-<a name="line-519"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-520"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-521"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-522"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-523"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-524"></a> <span class='keyglyph'>]</span>-<a name="line-525"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>-<a name="line-526"></a> <span class='keyglyph'>]</span>-<a name="line-527"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-528"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>-<a name="line-529"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-530"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-531"></a> <span class='keyglyph'>]</span>-<a name="line-532"></a> <span class='keyglyph'>]</span>-<a name="line-533"></a> <span class='keyglyph'>]</span>-<a name="line-534"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-535"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-536"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-537"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-538"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>-<a name="line-539"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>-<a name="line-540"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-541"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-542"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-543"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-544"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-545"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-546"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-547"></a> <span class='keyglyph'>]</span>-<a name="line-548"></a> <span class='keyglyph'>]</span>-<a name="line-549"></a> <span class='keyglyph'>]</span>-<a name="line-550"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-551"></a> <span class='keyglyph'>]</span>-<a name="line-552"></a> <span class='keyglyph'>]</span>-<a name="line-553"></a> <span class='keyglyph'>]</span>-<a name="line-554"></a> <span class='keyglyph'>]</span>-<a name="line-555"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>-<a name="line-556"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-557"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-558"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-559"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-560"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"15"</span> <span class='keyglyph'>]</span>-<a name="line-561"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-562"></a> <span class='keyglyph'>]</span>-<a name="line-563"></a> <span class='keyglyph'>]</span>-<a name="line-564"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-565"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-566"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-567"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-568"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-569"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-570"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-571"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-572"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-573"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-574"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-575"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-576"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-577"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-578"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-579"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-580"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-581"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-582"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-583"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-584"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"24"</span> <span class='keyglyph'>]</span>-<a name="line-585"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-586"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-587"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"25"</span> <span class='keyglyph'>]</span>-<a name="line-588"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-589"></a> <span class='keyglyph'>]</span>-<a name="line-590"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-591"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"26"</span> <span class='keyglyph'>]</span>-<a name="line-592"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-593"></a> <span class='keyglyph'>]</span>-<a name="line-594"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-595"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"27"</span> <span class='keyglyph'>]</span>-<a name="line-596"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-597"></a> <span class='keyglyph'>]</span>-<a name="line-598"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-599"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"28"</span> <span class='keyglyph'>]</span>-<a name="line-600"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-601"></a> <span class='keyglyph'>]</span>-<a name="line-602"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-603"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"29"</span> <span class='keyglyph'>]</span>-<a name="line-604"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-605"></a> <span class='keyglyph'>]</span>-<a name="line-606"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-607"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"30"</span> <span class='keyglyph'>]</span>-<a name="line-608"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-609"></a> <span class='keyglyph'>]</span>-<a name="line-610"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-611"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"31"</span> <span class='keyglyph'>]</span>-<a name="line-612"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-613"></a> <span class='keyglyph'>]</span>-<a name="line-614"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-615"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"32"</span> <span class='keyglyph'>]</span>-<a name="line-616"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-617"></a> <span class='keyglyph'>]</span>-<a name="line-618"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-619"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"33"</span> <span class='keyglyph'>]</span>-<a name="line-620"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-621"></a> <span class='keyglyph'>]</span>-<a name="line-622"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-623"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"34"</span> <span class='keyglyph'>]</span>-<a name="line-624"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-625"></a> <span class='keyglyph'>]</span>-<a name="line-626"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-627"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"35"</span> <span class='keyglyph'>]</span>-<a name="line-628"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-629"></a> <span class='keyglyph'>]</span>-<a name="line-630"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-631"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"36"</span> <span class='keyglyph'>]</span>-<a name="line-632"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-633"></a> <span class='keyglyph'>]</span>-<a name="line-634"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-635"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"37"</span> <span class='keyglyph'>]</span>-<a name="line-636"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-637"></a> <span class='keyglyph'>]</span>-<a name="line-638"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-639"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"38"</span> <span class='keyglyph'>]</span>-<a name="line-640"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-641"></a> <span class='keyglyph'>]</span>-<a name="line-642"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-643"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"39"</span> <span class='keyglyph'>]</span>-<a name="line-644"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-645"></a> <span class='keyglyph'>]</span>-<a name="line-646"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-647"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"42"</span> <span class='keyglyph'>]</span>-<a name="line-648"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-649"></a> <span class='keyglyph'>]</span>-<a name="line-650"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-651"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"43"</span> <span class='keyglyph'>]</span>-<a name="line-652"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-653"></a> <span class='keyglyph'>]</span>-<a name="line-654"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-655"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"44"</span> <span class='keyglyph'>]</span>-<a name="line-656"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-657"></a> <span class='keyglyph'>]</span>-<a name="line-658"></a> <span class='keyglyph'>]</span>-<a name="line-659"></a> <span class='keyglyph'>]</span>-<a name="line-660"></a> <span class='keyglyph'>]</span>-<a name="line-661"></a> <span class='keyglyph'>]</span>-<a name="line-662"></a> <span class='keyglyph'>]</span>-<a name="line-663"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>-<a name="line-664"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"40"</span> <span class='keyglyph'>]</span>-<a name="line-665"></a> <span class='keyglyph'>]</span>-<a name="line-666"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>-<a name="line-667"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-668"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-669"></a> <span class='keyglyph'>]</span>-<a name="line-670"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"param"</span>-<a name="line-671"></a> <span class='keyglyph'>]</span>-<a name="line-672"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-673"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-674"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-675"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-676"></a> <span class='keyglyph'>]</span>-<a name="line-677"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"name"</span>-<a name="line-678"></a> <span class='keyglyph'>]</span>-<a name="line-679"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-680"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"NCName"</span> <span class='keyglyph'>]</span>-<a name="line-681"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-682"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-683"></a> <span class='keyglyph'>]</span>-<a name="line-684"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-685"></a> <span class='keyglyph'>]</span>-<a name="line-686"></a> <span class='keyglyph'>]</span>-<a name="line-687"></a> <span class='keyglyph'>]</span>-<a name="line-688"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>-<a name="line-689"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"38"</span> <span class='keyglyph'>]</span>-<a name="line-690"></a> <span class='keyglyph'>]</span>-<a name="line-691"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>-<a name="line-692"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-693"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-694"></a> <span class='keyglyph'>]</span>-<a name="line-695"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"value"</span>-<a name="line-696"></a> <span class='keyglyph'>]</span>-<a name="line-697"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-698"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-699"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-700"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-701"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-702"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-703"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-704"></a> <span class='keyglyph'>]</span>-<a name="line-705"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"type"</span>-<a name="line-706"></a> <span class='keyglyph'>]</span>-<a name="line-707"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-708"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"NCName"</span> <span class='keyglyph'>]</span>-<a name="line-709"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-710"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-711"></a> <span class='keyglyph'>]</span>-<a name="line-712"></a> <span class='keyglyph'>]</span>-<a name="line-713"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-714"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-715"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-716"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-717"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-718"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-719"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-720"></a> <span class='keyglyph'>]</span>-<a name="line-721"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>-<a name="line-722"></a> <span class='keyglyph'>]</span>-<a name="line-723"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-724"></a> <span class='keyglyph'>]</span>-<a name="line-725"></a> <span class='keyglyph'>]</span>-<a name="line-726"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-727"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-728"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-729"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-730"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-731"></a> <span class='keyglyph'>]</span>-<a name="line-732"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>-<a name="line-733"></a> <span class='keyglyph'>]</span>-<a name="line-734"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-735"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>-<a name="line-736"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-737"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-738"></a> <span class='keyglyph'>]</span>-<a name="line-739"></a> <span class='keyglyph'>]</span>-<a name="line-740"></a> <span class='keyglyph'>]</span>-<a name="line-741"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-742"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-743"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-744"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-745"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>-<a name="line-746"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>-<a name="line-747"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-748"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-749"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-750"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-751"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-752"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-753"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-754"></a> <span class='keyglyph'>]</span>-<a name="line-755"></a> <span class='keyglyph'>]</span>-<a name="line-756"></a> <span class='keyglyph'>]</span>-<a name="line-757"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-758"></a> <span class='keyglyph'>]</span>-<a name="line-759"></a> <span class='keyglyph'>]</span>-<a name="line-760"></a> <span class='keyglyph'>]</span>-<a name="line-761"></a> <span class='keyglyph'>]</span>-<a name="line-762"></a> <span class='keyglyph'>]</span>-<a name="line-763"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-764"></a> <span class='keyglyph'>]</span>-<a name="line-765"></a> <span class='keyglyph'>]</span>-<a name="line-766"></a> <span class='keyglyph'>]</span>-<a name="line-767"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>-<a name="line-768"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"37"</span> <span class='keyglyph'>]</span>-<a name="line-769"></a> <span class='keyglyph'>]</span>-<a name="line-770"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>-<a name="line-771"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-772"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-773"></a> <span class='keyglyph'>]</span>-<a name="line-774"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"text"</span>-<a name="line-775"></a> <span class='keyglyph'>]</span>-<a name="line-776"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-777"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-778"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-779"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-780"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-781"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-782"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-783"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-784"></a> <span class='keyglyph'>]</span>-<a name="line-785"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>-<a name="line-786"></a> <span class='keyglyph'>]</span>-<a name="line-787"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-788"></a> <span class='keyglyph'>]</span>-<a name="line-789"></a> <span class='keyglyph'>]</span>-<a name="line-790"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-791"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-792"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-793"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-794"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-795"></a> <span class='keyglyph'>]</span>-<a name="line-796"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>-<a name="line-797"></a> <span class='keyglyph'>]</span>-<a name="line-798"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-799"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>-<a name="line-800"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-801"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-802"></a> <span class='keyglyph'>]</span>-<a name="line-803"></a> <span class='keyglyph'>]</span>-<a name="line-804"></a> <span class='keyglyph'>]</span>-<a name="line-805"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-806"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-807"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-808"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-809"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>-<a name="line-810"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>-<a name="line-811"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-812"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-813"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-814"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-815"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-816"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-817"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-818"></a> <span class='keyglyph'>]</span>-<a name="line-819"></a> <span class='keyglyph'>]</span>-<a name="line-820"></a> <span class='keyglyph'>]</span>-<a name="line-821"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-822"></a> <span class='keyglyph'>]</span>-<a name="line-823"></a> <span class='keyglyph'>]</span>-<a name="line-824"></a> <span class='keyglyph'>]</span>-<a name="line-825"></a> <span class='keyglyph'>]</span>-<a name="line-826"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-827"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-828"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-829"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-830"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"15"</span> <span class='keyglyph'>]</span>-<a name="line-831"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-832"></a> <span class='keyglyph'>]</span>-<a name="line-833"></a> <span class='keyglyph'>]</span>-<a name="line-834"></a> <span class='keyglyph'>]</span>-<a name="line-835"></a> <span class='keyglyph'>]</span>-<a name="line-836"></a> <span class='keyglyph'>]</span>-<a name="line-837"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>-<a name="line-838"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"36"</span> <span class='keyglyph'>]</span>-<a name="line-839"></a> <span class='keyglyph'>]</span>-<a name="line-840"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>-<a name="line-841"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-842"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-843"></a> <span class='keyglyph'>]</span>-<a name="line-844"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"empty"</span>-<a name="line-845"></a> <span class='keyglyph'>]</span>-<a name="line-846"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-847"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-848"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-849"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-850"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-851"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-852"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-853"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-854"></a> <span class='keyglyph'>]</span>-<a name="line-855"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>-<a name="line-856"></a> <span class='keyglyph'>]</span>-<a name="line-857"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-858"></a> <span class='keyglyph'>]</span>-<a name="line-859"></a> <span class='keyglyph'>]</span>-<a name="line-860"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-861"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-862"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-863"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-864"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-865"></a> <span class='keyglyph'>]</span>-<a name="line-866"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>-<a name="line-867"></a> <span class='keyglyph'>]</span>-<a name="line-868"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-869"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>-<a name="line-870"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-871"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-872"></a> <span class='keyglyph'>]</span>-<a name="line-873"></a> <span class='keyglyph'>]</span>-<a name="line-874"></a> <span class='keyglyph'>]</span>-<a name="line-875"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-876"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-877"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-878"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-879"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>-<a name="line-880"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>-<a name="line-881"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-882"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-883"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-884"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-885"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-886"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-887"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-888"></a> <span class='keyglyph'>]</span>-<a name="line-889"></a> <span class='keyglyph'>]</span>-<a name="line-890"></a> <span class='keyglyph'>]</span>-<a name="line-891"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-892"></a> <span class='keyglyph'>]</span>-<a name="line-893"></a> <span class='keyglyph'>]</span>-<a name="line-894"></a> <span class='keyglyph'>]</span>-<a name="line-895"></a> <span class='keyglyph'>]</span>-<a name="line-896"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-897"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-898"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-899"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-900"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"15"</span> <span class='keyglyph'>]</span>-<a name="line-901"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-902"></a> <span class='keyglyph'>]</span>-<a name="line-903"></a> <span class='keyglyph'>]</span>-<a name="line-904"></a> <span class='keyglyph'>]</span>-<a name="line-905"></a> <span class='keyglyph'>]</span>-<a name="line-906"></a> <span class='keyglyph'>]</span>-<a name="line-907"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>-<a name="line-908"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"35"</span> <span class='keyglyph'>]</span>-<a name="line-909"></a> <span class='keyglyph'>]</span>-<a name="line-910"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>-<a name="line-911"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-912"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-913"></a> <span class='keyglyph'>]</span>-<a name="line-914"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"parentRef"</span>-<a name="line-915"></a> <span class='keyglyph'>]</span>-<a name="line-916"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-917"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-918"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-919"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-920"></a> <span class='keyglyph'>]</span>-<a name="line-921"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"name"</span>-<a name="line-922"></a> <span class='keyglyph'>]</span>-<a name="line-923"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-924"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"NCName"</span> <span class='keyglyph'>]</span>-<a name="line-925"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-926"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-927"></a> <span class='keyglyph'>]</span>-<a name="line-928"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-929"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-930"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-931"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-932"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-933"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-934"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-935"></a> <span class='keyglyph'>]</span>-<a name="line-936"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>-<a name="line-937"></a> <span class='keyglyph'>]</span>-<a name="line-938"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-939"></a> <span class='keyglyph'>]</span>-<a name="line-940"></a> <span class='keyglyph'>]</span>-<a name="line-941"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-942"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-943"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-944"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-945"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-946"></a> <span class='keyglyph'>]</span>-<a name="line-947"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>-<a name="line-948"></a> <span class='keyglyph'>]</span>-<a name="line-949"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-950"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>-<a name="line-951"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-952"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-953"></a> <span class='keyglyph'>]</span>-<a name="line-954"></a> <span class='keyglyph'>]</span>-<a name="line-955"></a> <span class='keyglyph'>]</span>-<a name="line-956"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-957"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-958"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-959"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-960"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>-<a name="line-961"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>-<a name="line-962"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-963"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-964"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-965"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-966"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-967"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-968"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-969"></a> <span class='keyglyph'>]</span>-<a name="line-970"></a> <span class='keyglyph'>]</span>-<a name="line-971"></a> <span class='keyglyph'>]</span>-<a name="line-972"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-973"></a> <span class='keyglyph'>]</span>-<a name="line-974"></a> <span class='keyglyph'>]</span>-<a name="line-975"></a> <span class='keyglyph'>]</span>-<a name="line-976"></a> <span class='keyglyph'>]</span>-<a name="line-977"></a> <span class='keyglyph'>]</span>-<a name="line-978"></a> <span class='keyglyph'>]</span>-<a name="line-979"></a> <span class='keyglyph'>]</span>-<a name="line-980"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>-<a name="line-981"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"34"</span> <span class='keyglyph'>]</span>-<a name="line-982"></a> <span class='keyglyph'>]</span>-<a name="line-983"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>-<a name="line-984"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-985"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-986"></a> <span class='keyglyph'>]</span>-<a name="line-987"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ref"</span>-<a name="line-988"></a> <span class='keyglyph'>]</span>-<a name="line-989"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-990"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-991"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-992"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-993"></a> <span class='keyglyph'>]</span>-<a name="line-994"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"name"</span>-<a name="line-995"></a> <span class='keyglyph'>]</span>-<a name="line-996"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-997"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"NCName"</span> <span class='keyglyph'>]</span>-<a name="line-998"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-999"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1000"></a> <span class='keyglyph'>]</span>-<a name="line-1001"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-1002"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-1003"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1004"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1005"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-1006"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-1007"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-1008"></a> <span class='keyglyph'>]</span>-<a name="line-1009"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>-<a name="line-1010"></a> <span class='keyglyph'>]</span>-<a name="line-1011"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1012"></a> <span class='keyglyph'>]</span>-<a name="line-1013"></a> <span class='keyglyph'>]</span>-<a name="line-1014"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1015"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1016"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-1017"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-1018"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-1019"></a> <span class='keyglyph'>]</span>-<a name="line-1020"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>-<a name="line-1021"></a> <span class='keyglyph'>]</span>-<a name="line-1022"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-1023"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>-<a name="line-1024"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-1025"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1026"></a> <span class='keyglyph'>]</span>-<a name="line-1027"></a> <span class='keyglyph'>]</span>-<a name="line-1028"></a> <span class='keyglyph'>]</span>-<a name="line-1029"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1030"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1031"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-1032"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-1033"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>-<a name="line-1034"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>-<a name="line-1035"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1036"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-1037"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-1038"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1039"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-1040"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-1041"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1042"></a> <span class='keyglyph'>]</span>-<a name="line-1043"></a> <span class='keyglyph'>]</span>-<a name="line-1044"></a> <span class='keyglyph'>]</span>-<a name="line-1045"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1046"></a> <span class='keyglyph'>]</span>-<a name="line-1047"></a> <span class='keyglyph'>]</span>-<a name="line-1048"></a> <span class='keyglyph'>]</span>-<a name="line-1049"></a> <span class='keyglyph'>]</span>-<a name="line-1050"></a> <span class='keyglyph'>]</span>-<a name="line-1051"></a> <span class='keyglyph'>]</span>-<a name="line-1052"></a> <span class='keyglyph'>]</span>-<a name="line-1053"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>-<a name="line-1054"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"33"</span> <span class='keyglyph'>]</span>-<a name="line-1055"></a> <span class='keyglyph'>]</span>-<a name="line-1056"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>-<a name="line-1057"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-1058"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-1059"></a> <span class='keyglyph'>]</span>-<a name="line-1060"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"mixed"</span>-<a name="line-1061"></a> <span class='keyglyph'>]</span>-<a name="line-1062"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-1063"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-1064"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-1065"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1066"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1067"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-1068"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-1069"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-1070"></a> <span class='keyglyph'>]</span>-<a name="line-1071"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>-<a name="line-1072"></a> <span class='keyglyph'>]</span>-<a name="line-1073"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1074"></a> <span class='keyglyph'>]</span>-<a name="line-1075"></a> <span class='keyglyph'>]</span>-<a name="line-1076"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1077"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1078"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-1079"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-1080"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-1081"></a> <span class='keyglyph'>]</span>-<a name="line-1082"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>-<a name="line-1083"></a> <span class='keyglyph'>]</span>-<a name="line-1084"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-1085"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>-<a name="line-1086"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-1087"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1088"></a> <span class='keyglyph'>]</span>-<a name="line-1089"></a> <span class='keyglyph'>]</span>-<a name="line-1090"></a> <span class='keyglyph'>]</span>-<a name="line-1091"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1092"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1093"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-1094"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-1095"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>-<a name="line-1096"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>-<a name="line-1097"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1098"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-1099"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-1100"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1101"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-1102"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-1103"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1104"></a> <span class='keyglyph'>]</span>-<a name="line-1105"></a> <span class='keyglyph'>]</span>-<a name="line-1106"></a> <span class='keyglyph'>]</span>-<a name="line-1107"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1108"></a> <span class='keyglyph'>]</span>-<a name="line-1109"></a> <span class='keyglyph'>]</span>-<a name="line-1110"></a> <span class='keyglyph'>]</span>-<a name="line-1111"></a> <span class='keyglyph'>]</span>-<a name="line-1112"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>-<a name="line-1113"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1114"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1115"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-1116"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1117"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"15"</span> <span class='keyglyph'>]</span>-<a name="line-1118"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1119"></a> <span class='keyglyph'>]</span>-<a name="line-1120"></a> <span class='keyglyph'>]</span>-<a name="line-1121"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-1122"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1123"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1124"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1125"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1126"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1127"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1128"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1129"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1130"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1131"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1132"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1133"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1134"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1135"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1136"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1137"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1138"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1139"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1140"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1141"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"24"</span> <span class='keyglyph'>]</span>-<a name="line-1142"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1143"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1144"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"25"</span> <span class='keyglyph'>]</span>-<a name="line-1145"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1146"></a> <span class='keyglyph'>]</span>-<a name="line-1147"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1148"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"26"</span> <span class='keyglyph'>]</span>-<a name="line-1149"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1150"></a> <span class='keyglyph'>]</span>-<a name="line-1151"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1152"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"27"</span> <span class='keyglyph'>]</span>-<a name="line-1153"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1154"></a> <span class='keyglyph'>]</span>-<a name="line-1155"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1156"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"28"</span> <span class='keyglyph'>]</span>-<a name="line-1157"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1158"></a> <span class='keyglyph'>]</span>-<a name="line-1159"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1160"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"29"</span> <span class='keyglyph'>]</span>-<a name="line-1161"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1162"></a> <span class='keyglyph'>]</span>-<a name="line-1163"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1164"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"30"</span> <span class='keyglyph'>]</span>-<a name="line-1165"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1166"></a> <span class='keyglyph'>]</span>-<a name="line-1167"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1168"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"31"</span> <span class='keyglyph'>]</span>-<a name="line-1169"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1170"></a> <span class='keyglyph'>]</span>-<a name="line-1171"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1172"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"32"</span> <span class='keyglyph'>]</span>-<a name="line-1173"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1174"></a> <span class='keyglyph'>]</span>-<a name="line-1175"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1176"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"33"</span> <span class='keyglyph'>]</span>-<a name="line-1177"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1178"></a> <span class='keyglyph'>]</span>-<a name="line-1179"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1180"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"34"</span> <span class='keyglyph'>]</span>-<a name="line-1181"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1182"></a> <span class='keyglyph'>]</span>-<a name="line-1183"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1184"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"35"</span> <span class='keyglyph'>]</span>-<a name="line-1185"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1186"></a> <span class='keyglyph'>]</span>-<a name="line-1187"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1188"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"36"</span> <span class='keyglyph'>]</span>-<a name="line-1189"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1190"></a> <span class='keyglyph'>]</span>-<a name="line-1191"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1192"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"37"</span> <span class='keyglyph'>]</span>-<a name="line-1193"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1194"></a> <span class='keyglyph'>]</span>-<a name="line-1195"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1196"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"38"</span> <span class='keyglyph'>]</span>-<a name="line-1197"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1198"></a> <span class='keyglyph'>]</span>-<a name="line-1199"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1200"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"39"</span> <span class='keyglyph'>]</span>-<a name="line-1201"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1202"></a> <span class='keyglyph'>]</span>-<a name="line-1203"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1204"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"42"</span> <span class='keyglyph'>]</span>-<a name="line-1205"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1206"></a> <span class='keyglyph'>]</span>-<a name="line-1207"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1208"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"43"</span> <span class='keyglyph'>]</span>-<a name="line-1209"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1210"></a> <span class='keyglyph'>]</span>-<a name="line-1211"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1212"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"44"</span> <span class='keyglyph'>]</span>-<a name="line-1213"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1214"></a> <span class='keyglyph'>]</span>-<a name="line-1215"></a> <span class='keyglyph'>]</span>-<a name="line-1216"></a> <span class='keyglyph'>]</span>-<a name="line-1217"></a> <span class='keyglyph'>]</span>-<a name="line-1218"></a> <span class='keyglyph'>]</span>-<a name="line-1219"></a> <span class='keyglyph'>]</span>-<a name="line-1220"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>-<a name="line-1221"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"32"</span> <span class='keyglyph'>]</span>-<a name="line-1222"></a> <span class='keyglyph'>]</span>-<a name="line-1223"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>-<a name="line-1224"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-1225"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-1226"></a> <span class='keyglyph'>]</span>-<a name="line-1227"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"list"</span>-<a name="line-1228"></a> <span class='keyglyph'>]</span>-<a name="line-1229"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-1230"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-1231"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-1232"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1233"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1234"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-1235"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-1236"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-1237"></a> <span class='keyglyph'>]</span>-<a name="line-1238"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>-<a name="line-1239"></a> <span class='keyglyph'>]</span>-<a name="line-1240"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1241"></a> <span class='keyglyph'>]</span>-<a name="line-1242"></a> <span class='keyglyph'>]</span>-<a name="line-1243"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1244"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1245"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-1246"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-1247"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-1248"></a> <span class='keyglyph'>]</span>-<a name="line-1249"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>-<a name="line-1250"></a> <span class='keyglyph'>]</span>-<a name="line-1251"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-1252"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>-<a name="line-1253"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-1254"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1255"></a> <span class='keyglyph'>]</span>-<a name="line-1256"></a> <span class='keyglyph'>]</span>-<a name="line-1257"></a> <span class='keyglyph'>]</span>-<a name="line-1258"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1259"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1260"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-1261"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-1262"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>-<a name="line-1263"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>-<a name="line-1264"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1265"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-1266"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-1267"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1268"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-1269"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-1270"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1271"></a> <span class='keyglyph'>]</span>-<a name="line-1272"></a> <span class='keyglyph'>]</span>-<a name="line-1273"></a> <span class='keyglyph'>]</span>-<a name="line-1274"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1275"></a> <span class='keyglyph'>]</span>-<a name="line-1276"></a> <span class='keyglyph'>]</span>-<a name="line-1277"></a> <span class='keyglyph'>]</span>-<a name="line-1278"></a> <span class='keyglyph'>]</span>-<a name="line-1279"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>-<a name="line-1280"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1281"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1282"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-1283"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1284"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"15"</span> <span class='keyglyph'>]</span>-<a name="line-1285"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1286"></a> <span class='keyglyph'>]</span>-<a name="line-1287"></a> <span class='keyglyph'>]</span>-<a name="line-1288"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-1289"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1290"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1291"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1292"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1293"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1294"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1295"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1296"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1297"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1298"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1299"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1300"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1301"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1302"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1303"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1304"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1305"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1306"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1307"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1308"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"24"</span> <span class='keyglyph'>]</span>-<a name="line-1309"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1310"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1311"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"25"</span> <span class='keyglyph'>]</span>-<a name="line-1312"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1313"></a> <span class='keyglyph'>]</span>-<a name="line-1314"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1315"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"26"</span> <span class='keyglyph'>]</span>-<a name="line-1316"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1317"></a> <span class='keyglyph'>]</span>-<a name="line-1318"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1319"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"27"</span> <span class='keyglyph'>]</span>-<a name="line-1320"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1321"></a> <span class='keyglyph'>]</span>-<a name="line-1322"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1323"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"28"</span> <span class='keyglyph'>]</span>-<a name="line-1324"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1325"></a> <span class='keyglyph'>]</span>-<a name="line-1326"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1327"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"29"</span> <span class='keyglyph'>]</span>-<a name="line-1328"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1329"></a> <span class='keyglyph'>]</span>-<a name="line-1330"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1331"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"30"</span> <span class='keyglyph'>]</span>-<a name="line-1332"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1333"></a> <span class='keyglyph'>]</span>-<a name="line-1334"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1335"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"31"</span> <span class='keyglyph'>]</span>-<a name="line-1336"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1337"></a> <span class='keyglyph'>]</span>-<a name="line-1338"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1339"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"32"</span> <span class='keyglyph'>]</span>-<a name="line-1340"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1341"></a> <span class='keyglyph'>]</span>-<a name="line-1342"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1343"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"33"</span> <span class='keyglyph'>]</span>-<a name="line-1344"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1345"></a> <span class='keyglyph'>]</span>-<a name="line-1346"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1347"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"34"</span> <span class='keyglyph'>]</span>-<a name="line-1348"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1349"></a> <span class='keyglyph'>]</span>-<a name="line-1350"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1351"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"35"</span> <span class='keyglyph'>]</span>-<a name="line-1352"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1353"></a> <span class='keyglyph'>]</span>-<a name="line-1354"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1355"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"36"</span> <span class='keyglyph'>]</span>-<a name="line-1356"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1357"></a> <span class='keyglyph'>]</span>-<a name="line-1358"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1359"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"37"</span> <span class='keyglyph'>]</span>-<a name="line-1360"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1361"></a> <span class='keyglyph'>]</span>-<a name="line-1362"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1363"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"38"</span> <span class='keyglyph'>]</span>-<a name="line-1364"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1365"></a> <span class='keyglyph'>]</span>-<a name="line-1366"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1367"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"39"</span> <span class='keyglyph'>]</span>-<a name="line-1368"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1369"></a> <span class='keyglyph'>]</span>-<a name="line-1370"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1371"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"42"</span> <span class='keyglyph'>]</span>-<a name="line-1372"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1373"></a> <span class='keyglyph'>]</span>-<a name="line-1374"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1375"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"43"</span> <span class='keyglyph'>]</span>-<a name="line-1376"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1377"></a> <span class='keyglyph'>]</span>-<a name="line-1378"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1379"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"44"</span> <span class='keyglyph'>]</span>-<a name="line-1380"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1381"></a> <span class='keyglyph'>]</span>-<a name="line-1382"></a> <span class='keyglyph'>]</span>-<a name="line-1383"></a> <span class='keyglyph'>]</span>-<a name="line-1384"></a> <span class='keyglyph'>]</span>-<a name="line-1385"></a> <span class='keyglyph'>]</span>-<a name="line-1386"></a> <span class='keyglyph'>]</span>-<a name="line-1387"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>-<a name="line-1388"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"31"</span> <span class='keyglyph'>]</span>-<a name="line-1389"></a> <span class='keyglyph'>]</span>-<a name="line-1390"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>-<a name="line-1391"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-1392"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-1393"></a> <span class='keyglyph'>]</span>-<a name="line-1394"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"oneOrMore"</span>-<a name="line-1395"></a> <span class='keyglyph'>]</span>-<a name="line-1396"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-1397"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-1398"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-1399"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1400"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1401"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-1402"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-1403"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-1404"></a> <span class='keyglyph'>]</span>-<a name="line-1405"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>-<a name="line-1406"></a> <span class='keyglyph'>]</span>-<a name="line-1407"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1408"></a> <span class='keyglyph'>]</span>-<a name="line-1409"></a> <span class='keyglyph'>]</span>-<a name="line-1410"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1411"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1412"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-1413"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-1414"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-1415"></a> <span class='keyglyph'>]</span>-<a name="line-1416"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>-<a name="line-1417"></a> <span class='keyglyph'>]</span>-<a name="line-1418"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-1419"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>-<a name="line-1420"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-1421"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1422"></a> <span class='keyglyph'>]</span>-<a name="line-1423"></a> <span class='keyglyph'>]</span>-<a name="line-1424"></a> <span class='keyglyph'>]</span>-<a name="line-1425"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1426"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1427"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-1428"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-1429"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>-<a name="line-1430"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>-<a name="line-1431"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1432"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-1433"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-1434"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1435"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-1436"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-1437"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1438"></a> <span class='keyglyph'>]</span>-<a name="line-1439"></a> <span class='keyglyph'>]</span>-<a name="line-1440"></a> <span class='keyglyph'>]</span>-<a name="line-1441"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1442"></a> <span class='keyglyph'>]</span>-<a name="line-1443"></a> <span class='keyglyph'>]</span>-<a name="line-1444"></a> <span class='keyglyph'>]</span>-<a name="line-1445"></a> <span class='keyglyph'>]</span>-<a name="line-1446"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>-<a name="line-1447"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1448"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1449"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-1450"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1451"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"15"</span> <span class='keyglyph'>]</span>-<a name="line-1452"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1453"></a> <span class='keyglyph'>]</span>-<a name="line-1454"></a> <span class='keyglyph'>]</span>-<a name="line-1455"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-1456"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1457"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1458"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1459"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1460"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1461"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1462"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1463"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1464"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1465"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1466"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1467"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1468"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1469"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1470"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1471"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1472"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1473"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1474"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1475"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"24"</span> <span class='keyglyph'>]</span>-<a name="line-1476"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1477"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1478"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"25"</span> <span class='keyglyph'>]</span>-<a name="line-1479"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1480"></a> <span class='keyglyph'>]</span>-<a name="line-1481"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1482"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"26"</span> <span class='keyglyph'>]</span>-<a name="line-1483"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1484"></a> <span class='keyglyph'>]</span>-<a name="line-1485"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1486"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"27"</span> <span class='keyglyph'>]</span>-<a name="line-1487"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1488"></a> <span class='keyglyph'>]</span>-<a name="line-1489"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1490"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"28"</span> <span class='keyglyph'>]</span>-<a name="line-1491"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1492"></a> <span class='keyglyph'>]</span>-<a name="line-1493"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1494"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"29"</span> <span class='keyglyph'>]</span>-<a name="line-1495"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1496"></a> <span class='keyglyph'>]</span>-<a name="line-1497"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1498"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"30"</span> <span class='keyglyph'>]</span>-<a name="line-1499"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1500"></a> <span class='keyglyph'>]</span>-<a name="line-1501"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1502"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"31"</span> <span class='keyglyph'>]</span>-<a name="line-1503"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1504"></a> <span class='keyglyph'>]</span>-<a name="line-1505"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1506"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"32"</span> <span class='keyglyph'>]</span>-<a name="line-1507"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1508"></a> <span class='keyglyph'>]</span>-<a name="line-1509"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1510"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"33"</span> <span class='keyglyph'>]</span>-<a name="line-1511"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1512"></a> <span class='keyglyph'>]</span>-<a name="line-1513"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1514"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"34"</span> <span class='keyglyph'>]</span>-<a name="line-1515"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1516"></a> <span class='keyglyph'>]</span>-<a name="line-1517"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1518"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"35"</span> <span class='keyglyph'>]</span>-<a name="line-1519"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1520"></a> <span class='keyglyph'>]</span>-<a name="line-1521"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1522"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"36"</span> <span class='keyglyph'>]</span>-<a name="line-1523"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1524"></a> <span class='keyglyph'>]</span>-<a name="line-1525"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1526"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"37"</span> <span class='keyglyph'>]</span>-<a name="line-1527"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1528"></a> <span class='keyglyph'>]</span>-<a name="line-1529"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1530"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"38"</span> <span class='keyglyph'>]</span>-<a name="line-1531"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1532"></a> <span class='keyglyph'>]</span>-<a name="line-1533"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1534"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"39"</span> <span class='keyglyph'>]</span>-<a name="line-1535"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1536"></a> <span class='keyglyph'>]</span>-<a name="line-1537"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1538"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"42"</span> <span class='keyglyph'>]</span>-<a name="line-1539"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1540"></a> <span class='keyglyph'>]</span>-<a name="line-1541"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1542"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"43"</span> <span class='keyglyph'>]</span>-<a name="line-1543"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1544"></a> <span class='keyglyph'>]</span>-<a name="line-1545"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1546"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"44"</span> <span class='keyglyph'>]</span>-<a name="line-1547"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1548"></a> <span class='keyglyph'>]</span>-<a name="line-1549"></a> <span class='keyglyph'>]</span>-<a name="line-1550"></a> <span class='keyglyph'>]</span>-<a name="line-1551"></a> <span class='keyglyph'>]</span>-<a name="line-1552"></a> <span class='keyglyph'>]</span>-<a name="line-1553"></a> <span class='keyglyph'>]</span>-<a name="line-1554"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>-<a name="line-1555"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"30"</span> <span class='keyglyph'>]</span>-<a name="line-1556"></a> <span class='keyglyph'>]</span>-<a name="line-1557"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>-<a name="line-1558"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-1559"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-1560"></a> <span class='keyglyph'>]</span>-<a name="line-1561"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"zeroOrMore"</span>-<a name="line-1562"></a> <span class='keyglyph'>]</span>-<a name="line-1563"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-1564"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-1565"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-1566"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1567"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1568"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-1569"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-1570"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-1571"></a> <span class='keyglyph'>]</span>-<a name="line-1572"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>-<a name="line-1573"></a> <span class='keyglyph'>]</span>-<a name="line-1574"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1575"></a> <span class='keyglyph'>]</span>-<a name="line-1576"></a> <span class='keyglyph'>]</span>-<a name="line-1577"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1578"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1579"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-1580"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-1581"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-1582"></a> <span class='keyglyph'>]</span>-<a name="line-1583"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>-<a name="line-1584"></a> <span class='keyglyph'>]</span>-<a name="line-1585"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-1586"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>-<a name="line-1587"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-1588"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1589"></a> <span class='keyglyph'>]</span>-<a name="line-1590"></a> <span class='keyglyph'>]</span>-<a name="line-1591"></a> <span class='keyglyph'>]</span>-<a name="line-1592"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1593"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1594"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-1595"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-1596"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>-<a name="line-1597"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>-<a name="line-1598"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1599"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-1600"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-1601"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1602"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-1603"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-1604"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1605"></a> <span class='keyglyph'>]</span>-<a name="line-1606"></a> <span class='keyglyph'>]</span>-<a name="line-1607"></a> <span class='keyglyph'>]</span>-<a name="line-1608"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1609"></a> <span class='keyglyph'>]</span>-<a name="line-1610"></a> <span class='keyglyph'>]</span>-<a name="line-1611"></a> <span class='keyglyph'>]</span>-<a name="line-1612"></a> <span class='keyglyph'>]</span>-<a name="line-1613"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>-<a name="line-1614"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1615"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1616"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-1617"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1618"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"15"</span> <span class='keyglyph'>]</span>-<a name="line-1619"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1620"></a> <span class='keyglyph'>]</span>-<a name="line-1621"></a> <span class='keyglyph'>]</span>-<a name="line-1622"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-1623"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1624"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1625"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1626"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1627"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1628"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1629"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1630"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1631"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1632"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1633"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1634"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1635"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1636"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1637"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1638"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1639"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1640"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1641"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1642"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"24"</span> <span class='keyglyph'>]</span>-<a name="line-1643"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1644"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1645"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"25"</span> <span class='keyglyph'>]</span>-<a name="line-1646"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1647"></a> <span class='keyglyph'>]</span>-<a name="line-1648"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1649"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"26"</span> <span class='keyglyph'>]</span>-<a name="line-1650"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1651"></a> <span class='keyglyph'>]</span>-<a name="line-1652"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1653"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"27"</span> <span class='keyglyph'>]</span>-<a name="line-1654"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1655"></a> <span class='keyglyph'>]</span>-<a name="line-1656"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1657"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"28"</span> <span class='keyglyph'>]</span>-<a name="line-1658"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1659"></a> <span class='keyglyph'>]</span>-<a name="line-1660"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1661"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"29"</span> <span class='keyglyph'>]</span>-<a name="line-1662"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1663"></a> <span class='keyglyph'>]</span>-<a name="line-1664"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1665"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"30"</span> <span class='keyglyph'>]</span>-<a name="line-1666"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1667"></a> <span class='keyglyph'>]</span>-<a name="line-1668"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1669"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"31"</span> <span class='keyglyph'>]</span>-<a name="line-1670"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1671"></a> <span class='keyglyph'>]</span>-<a name="line-1672"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1673"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"32"</span> <span class='keyglyph'>]</span>-<a name="line-1674"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1675"></a> <span class='keyglyph'>]</span>-<a name="line-1676"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1677"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"33"</span> <span class='keyglyph'>]</span>-<a name="line-1678"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1679"></a> <span class='keyglyph'>]</span>-<a name="line-1680"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1681"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"34"</span> <span class='keyglyph'>]</span>-<a name="line-1682"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1683"></a> <span class='keyglyph'>]</span>-<a name="line-1684"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1685"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"35"</span> <span class='keyglyph'>]</span>-<a name="line-1686"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1687"></a> <span class='keyglyph'>]</span>-<a name="line-1688"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1689"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"36"</span> <span class='keyglyph'>]</span>-<a name="line-1690"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1691"></a> <span class='keyglyph'>]</span>-<a name="line-1692"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1693"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"37"</span> <span class='keyglyph'>]</span>-<a name="line-1694"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1695"></a> <span class='keyglyph'>]</span>-<a name="line-1696"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1697"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"38"</span> <span class='keyglyph'>]</span>-<a name="line-1698"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1699"></a> <span class='keyglyph'>]</span>-<a name="line-1700"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1701"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"39"</span> <span class='keyglyph'>]</span>-<a name="line-1702"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1703"></a> <span class='keyglyph'>]</span>-<a name="line-1704"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1705"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"42"</span> <span class='keyglyph'>]</span>-<a name="line-1706"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1707"></a> <span class='keyglyph'>]</span>-<a name="line-1708"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1709"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"43"</span> <span class='keyglyph'>]</span>-<a name="line-1710"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1711"></a> <span class='keyglyph'>]</span>-<a name="line-1712"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1713"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"44"</span> <span class='keyglyph'>]</span>-<a name="line-1714"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1715"></a> <span class='keyglyph'>]</span>-<a name="line-1716"></a> <span class='keyglyph'>]</span>-<a name="line-1717"></a> <span class='keyglyph'>]</span>-<a name="line-1718"></a> <span class='keyglyph'>]</span>-<a name="line-1719"></a> <span class='keyglyph'>]</span>-<a name="line-1720"></a> <span class='keyglyph'>]</span>-<a name="line-1721"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>-<a name="line-1722"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"29"</span> <span class='keyglyph'>]</span>-<a name="line-1723"></a> <span class='keyglyph'>]</span>-<a name="line-1724"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>-<a name="line-1725"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-1726"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-1727"></a> <span class='keyglyph'>]</span>-<a name="line-1728"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"optional"</span>-<a name="line-1729"></a> <span class='keyglyph'>]</span>-<a name="line-1730"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-1731"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-1732"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-1733"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1734"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1735"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-1736"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-1737"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-1738"></a> <span class='keyglyph'>]</span>-<a name="line-1739"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>-<a name="line-1740"></a> <span class='keyglyph'>]</span>-<a name="line-1741"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1742"></a> <span class='keyglyph'>]</span>-<a name="line-1743"></a> <span class='keyglyph'>]</span>-<a name="line-1744"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1745"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1746"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-1747"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-1748"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-1749"></a> <span class='keyglyph'>]</span>-<a name="line-1750"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>-<a name="line-1751"></a> <span class='keyglyph'>]</span>-<a name="line-1752"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-1753"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>-<a name="line-1754"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-1755"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1756"></a> <span class='keyglyph'>]</span>-<a name="line-1757"></a> <span class='keyglyph'>]</span>-<a name="line-1758"></a> <span class='keyglyph'>]</span>-<a name="line-1759"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1760"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1761"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-1762"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-1763"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>-<a name="line-1764"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>-<a name="line-1765"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1766"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-1767"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-1768"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1769"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-1770"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-1771"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1772"></a> <span class='keyglyph'>]</span>-<a name="line-1773"></a> <span class='keyglyph'>]</span>-<a name="line-1774"></a> <span class='keyglyph'>]</span>-<a name="line-1775"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1776"></a> <span class='keyglyph'>]</span>-<a name="line-1777"></a> <span class='keyglyph'>]</span>-<a name="line-1778"></a> <span class='keyglyph'>]</span>-<a name="line-1779"></a> <span class='keyglyph'>]</span>-<a name="line-1780"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>-<a name="line-1781"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1782"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1783"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-1784"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1785"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"15"</span> <span class='keyglyph'>]</span>-<a name="line-1786"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1787"></a> <span class='keyglyph'>]</span>-<a name="line-1788"></a> <span class='keyglyph'>]</span>-<a name="line-1789"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-1790"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1791"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1792"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1793"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1794"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1795"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1796"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1797"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1798"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1799"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1800"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1801"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1802"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1803"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1804"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1805"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1806"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1807"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1808"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1809"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"24"</span> <span class='keyglyph'>]</span>-<a name="line-1810"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1811"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1812"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"25"</span> <span class='keyglyph'>]</span>-<a name="line-1813"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1814"></a> <span class='keyglyph'>]</span>-<a name="line-1815"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1816"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"26"</span> <span class='keyglyph'>]</span>-<a name="line-1817"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1818"></a> <span class='keyglyph'>]</span>-<a name="line-1819"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1820"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"27"</span> <span class='keyglyph'>]</span>-<a name="line-1821"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1822"></a> <span class='keyglyph'>]</span>-<a name="line-1823"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1824"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"28"</span> <span class='keyglyph'>]</span>-<a name="line-1825"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1826"></a> <span class='keyglyph'>]</span>-<a name="line-1827"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1828"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"29"</span> <span class='keyglyph'>]</span>-<a name="line-1829"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1830"></a> <span class='keyglyph'>]</span>-<a name="line-1831"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1832"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"30"</span> <span class='keyglyph'>]</span>-<a name="line-1833"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1834"></a> <span class='keyglyph'>]</span>-<a name="line-1835"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1836"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"31"</span> <span class='keyglyph'>]</span>-<a name="line-1837"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1838"></a> <span class='keyglyph'>]</span>-<a name="line-1839"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1840"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"32"</span> <span class='keyglyph'>]</span>-<a name="line-1841"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1842"></a> <span class='keyglyph'>]</span>-<a name="line-1843"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1844"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"33"</span> <span class='keyglyph'>]</span>-<a name="line-1845"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1846"></a> <span class='keyglyph'>]</span>-<a name="line-1847"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1848"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"34"</span> <span class='keyglyph'>]</span>-<a name="line-1849"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1850"></a> <span class='keyglyph'>]</span>-<a name="line-1851"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1852"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"35"</span> <span class='keyglyph'>]</span>-<a name="line-1853"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1854"></a> <span class='keyglyph'>]</span>-<a name="line-1855"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1856"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"36"</span> <span class='keyglyph'>]</span>-<a name="line-1857"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1858"></a> <span class='keyglyph'>]</span>-<a name="line-1859"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1860"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"37"</span> <span class='keyglyph'>]</span>-<a name="line-1861"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1862"></a> <span class='keyglyph'>]</span>-<a name="line-1863"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1864"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"38"</span> <span class='keyglyph'>]</span>-<a name="line-1865"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1866"></a> <span class='keyglyph'>]</span>-<a name="line-1867"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1868"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"39"</span> <span class='keyglyph'>]</span>-<a name="line-1869"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1870"></a> <span class='keyglyph'>]</span>-<a name="line-1871"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1872"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"42"</span> <span class='keyglyph'>]</span>-<a name="line-1873"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1874"></a> <span class='keyglyph'>]</span>-<a name="line-1875"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1876"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"43"</span> <span class='keyglyph'>]</span>-<a name="line-1877"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1878"></a> <span class='keyglyph'>]</span>-<a name="line-1879"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1880"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"44"</span> <span class='keyglyph'>]</span>-<a name="line-1881"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1882"></a> <span class='keyglyph'>]</span>-<a name="line-1883"></a> <span class='keyglyph'>]</span>-<a name="line-1884"></a> <span class='keyglyph'>]</span>-<a name="line-1885"></a> <span class='keyglyph'>]</span>-<a name="line-1886"></a> <span class='keyglyph'>]</span>-<a name="line-1887"></a> <span class='keyglyph'>]</span>-<a name="line-1888"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>-<a name="line-1889"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"28"</span> <span class='keyglyph'>]</span>-<a name="line-1890"></a> <span class='keyglyph'>]</span>-<a name="line-1891"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>-<a name="line-1892"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-1893"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-1894"></a> <span class='keyglyph'>]</span>-<a name="line-1895"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"choice"</span>-<a name="line-1896"></a> <span class='keyglyph'>]</span>-<a name="line-1897"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-1898"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-1899"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-1900"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1901"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1902"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-1903"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-1904"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-1905"></a> <span class='keyglyph'>]</span>-<a name="line-1906"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>-<a name="line-1907"></a> <span class='keyglyph'>]</span>-<a name="line-1908"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1909"></a> <span class='keyglyph'>]</span>-<a name="line-1910"></a> <span class='keyglyph'>]</span>-<a name="line-1911"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1912"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1913"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-1914"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-1915"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-1916"></a> <span class='keyglyph'>]</span>-<a name="line-1917"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>-<a name="line-1918"></a> <span class='keyglyph'>]</span>-<a name="line-1919"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-1920"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>-<a name="line-1921"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-1922"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1923"></a> <span class='keyglyph'>]</span>-<a name="line-1924"></a> <span class='keyglyph'>]</span>-<a name="line-1925"></a> <span class='keyglyph'>]</span>-<a name="line-1926"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1927"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1928"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-1929"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-1930"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>-<a name="line-1931"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>-<a name="line-1932"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1933"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-1934"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-1935"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1936"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-1937"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-1938"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1939"></a> <span class='keyglyph'>]</span>-<a name="line-1940"></a> <span class='keyglyph'>]</span>-<a name="line-1941"></a> <span class='keyglyph'>]</span>-<a name="line-1942"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1943"></a> <span class='keyglyph'>]</span>-<a name="line-1944"></a> <span class='keyglyph'>]</span>-<a name="line-1945"></a> <span class='keyglyph'>]</span>-<a name="line-1946"></a> <span class='keyglyph'>]</span>-<a name="line-1947"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>-<a name="line-1948"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1949"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1950"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-1951"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1952"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"15"</span> <span class='keyglyph'>]</span>-<a name="line-1953"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1954"></a> <span class='keyglyph'>]</span>-<a name="line-1955"></a> <span class='keyglyph'>]</span>-<a name="line-1956"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-1957"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1958"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1959"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1960"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1961"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1962"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1963"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1964"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1965"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1966"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1967"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1968"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1969"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1970"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1971"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1972"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1973"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1974"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1975"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1976"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"24"</span> <span class='keyglyph'>]</span>-<a name="line-1977"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1978"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1979"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"25"</span> <span class='keyglyph'>]</span>-<a name="line-1980"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1981"></a> <span class='keyglyph'>]</span>-<a name="line-1982"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1983"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"26"</span> <span class='keyglyph'>]</span>-<a name="line-1984"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1985"></a> <span class='keyglyph'>]</span>-<a name="line-1986"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1987"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"27"</span> <span class='keyglyph'>]</span>-<a name="line-1988"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1989"></a> <span class='keyglyph'>]</span>-<a name="line-1990"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1991"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"28"</span> <span class='keyglyph'>]</span>-<a name="line-1992"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1993"></a> <span class='keyglyph'>]</span>-<a name="line-1994"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1995"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"29"</span> <span class='keyglyph'>]</span>-<a name="line-1996"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1997"></a> <span class='keyglyph'>]</span>-<a name="line-1998"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1999"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"30"</span> <span class='keyglyph'>]</span>-<a name="line-2000"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2001"></a> <span class='keyglyph'>]</span>-<a name="line-2002"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2003"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"31"</span> <span class='keyglyph'>]</span>-<a name="line-2004"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2005"></a> <span class='keyglyph'>]</span>-<a name="line-2006"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2007"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"32"</span> <span class='keyglyph'>]</span>-<a name="line-2008"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2009"></a> <span class='keyglyph'>]</span>-<a name="line-2010"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2011"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"33"</span> <span class='keyglyph'>]</span>-<a name="line-2012"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2013"></a> <span class='keyglyph'>]</span>-<a name="line-2014"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2015"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"34"</span> <span class='keyglyph'>]</span>-<a name="line-2016"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2017"></a> <span class='keyglyph'>]</span>-<a name="line-2018"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2019"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"35"</span> <span class='keyglyph'>]</span>-<a name="line-2020"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2021"></a> <span class='keyglyph'>]</span>-<a name="line-2022"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2023"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"36"</span> <span class='keyglyph'>]</span>-<a name="line-2024"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2025"></a> <span class='keyglyph'>]</span>-<a name="line-2026"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2027"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"37"</span> <span class='keyglyph'>]</span>-<a name="line-2028"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2029"></a> <span class='keyglyph'>]</span>-<a name="line-2030"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2031"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"38"</span> <span class='keyglyph'>]</span>-<a name="line-2032"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2033"></a> <span class='keyglyph'>]</span>-<a name="line-2034"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2035"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"39"</span> <span class='keyglyph'>]</span>-<a name="line-2036"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2037"></a> <span class='keyglyph'>]</span>-<a name="line-2038"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2039"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"42"</span> <span class='keyglyph'>]</span>-<a name="line-2040"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2041"></a> <span class='keyglyph'>]</span>-<a name="line-2042"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2043"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"43"</span> <span class='keyglyph'>]</span>-<a name="line-2044"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2045"></a> <span class='keyglyph'>]</span>-<a name="line-2046"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2047"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"44"</span> <span class='keyglyph'>]</span>-<a name="line-2048"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2049"></a> <span class='keyglyph'>]</span>-<a name="line-2050"></a> <span class='keyglyph'>]</span>-<a name="line-2051"></a> <span class='keyglyph'>]</span>-<a name="line-2052"></a> <span class='keyglyph'>]</span>-<a name="line-2053"></a> <span class='keyglyph'>]</span>-<a name="line-2054"></a> <span class='keyglyph'>]</span>-<a name="line-2055"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>-<a name="line-2056"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"27"</span> <span class='keyglyph'>]</span>-<a name="line-2057"></a> <span class='keyglyph'>]</span>-<a name="line-2058"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>-<a name="line-2059"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-2060"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-2061"></a> <span class='keyglyph'>]</span>-<a name="line-2062"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"interleave"</span>-<a name="line-2063"></a> <span class='keyglyph'>]</span>-<a name="line-2064"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-2065"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-2066"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-2067"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2068"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2069"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-2070"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-2071"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-2072"></a> <span class='keyglyph'>]</span>-<a name="line-2073"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>-<a name="line-2074"></a> <span class='keyglyph'>]</span>-<a name="line-2075"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2076"></a> <span class='keyglyph'>]</span>-<a name="line-2077"></a> <span class='keyglyph'>]</span>-<a name="line-2078"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2079"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2080"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-2081"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-2082"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-2083"></a> <span class='keyglyph'>]</span>-<a name="line-2084"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>-<a name="line-2085"></a> <span class='keyglyph'>]</span>-<a name="line-2086"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-2087"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>-<a name="line-2088"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-2089"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2090"></a> <span class='keyglyph'>]</span>-<a name="line-2091"></a> <span class='keyglyph'>]</span>-<a name="line-2092"></a> <span class='keyglyph'>]</span>-<a name="line-2093"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2094"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2095"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-2096"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-2097"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>-<a name="line-2098"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>-<a name="line-2099"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2100"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-2101"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-2102"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2103"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-2104"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-2105"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2106"></a> <span class='keyglyph'>]</span>-<a name="line-2107"></a> <span class='keyglyph'>]</span>-<a name="line-2108"></a> <span class='keyglyph'>]</span>-<a name="line-2109"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2110"></a> <span class='keyglyph'>]</span>-<a name="line-2111"></a> <span class='keyglyph'>]</span>-<a name="line-2112"></a> <span class='keyglyph'>]</span>-<a name="line-2113"></a> <span class='keyglyph'>]</span>-<a name="line-2114"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>-<a name="line-2115"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2116"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2117"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-2118"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2119"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"15"</span> <span class='keyglyph'>]</span>-<a name="line-2120"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2121"></a> <span class='keyglyph'>]</span>-<a name="line-2122"></a> <span class='keyglyph'>]</span>-<a name="line-2123"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-2124"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2125"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2126"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2127"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2128"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2129"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2130"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2131"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2132"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2133"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2134"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2135"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2136"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2137"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2138"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2139"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2140"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2141"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2142"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2143"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"24"</span> <span class='keyglyph'>]</span>-<a name="line-2144"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2145"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2146"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"25"</span> <span class='keyglyph'>]</span>-<a name="line-2147"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2148"></a> <span class='keyglyph'>]</span>-<a name="line-2149"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2150"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"26"</span> <span class='keyglyph'>]</span>-<a name="line-2151"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2152"></a> <span class='keyglyph'>]</span>-<a name="line-2153"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2154"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"27"</span> <span class='keyglyph'>]</span>-<a name="line-2155"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2156"></a> <span class='keyglyph'>]</span>-<a name="line-2157"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2158"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"28"</span> <span class='keyglyph'>]</span>-<a name="line-2159"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2160"></a> <span class='keyglyph'>]</span>-<a name="line-2161"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2162"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"29"</span> <span class='keyglyph'>]</span>-<a name="line-2163"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2164"></a> <span class='keyglyph'>]</span>-<a name="line-2165"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2166"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"30"</span> <span class='keyglyph'>]</span>-<a name="line-2167"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2168"></a> <span class='keyglyph'>]</span>-<a name="line-2169"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2170"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"31"</span> <span class='keyglyph'>]</span>-<a name="line-2171"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2172"></a> <span class='keyglyph'>]</span>-<a name="line-2173"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2174"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"32"</span> <span class='keyglyph'>]</span>-<a name="line-2175"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2176"></a> <span class='keyglyph'>]</span>-<a name="line-2177"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2178"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"33"</span> <span class='keyglyph'>]</span>-<a name="line-2179"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2180"></a> <span class='keyglyph'>]</span>-<a name="line-2181"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2182"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"34"</span> <span class='keyglyph'>]</span>-<a name="line-2183"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2184"></a> <span class='keyglyph'>]</span>-<a name="line-2185"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2186"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"35"</span> <span class='keyglyph'>]</span>-<a name="line-2187"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2188"></a> <span class='keyglyph'>]</span>-<a name="line-2189"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2190"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"36"</span> <span class='keyglyph'>]</span>-<a name="line-2191"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2192"></a> <span class='keyglyph'>]</span>-<a name="line-2193"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2194"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"37"</span> <span class='keyglyph'>]</span>-<a name="line-2195"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2196"></a> <span class='keyglyph'>]</span>-<a name="line-2197"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2198"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"38"</span> <span class='keyglyph'>]</span>-<a name="line-2199"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2200"></a> <span class='keyglyph'>]</span>-<a name="line-2201"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2202"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"39"</span> <span class='keyglyph'>]</span>-<a name="line-2203"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2204"></a> <span class='keyglyph'>]</span>-<a name="line-2205"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2206"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"42"</span> <span class='keyglyph'>]</span>-<a name="line-2207"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2208"></a> <span class='keyglyph'>]</span>-<a name="line-2209"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2210"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"43"</span> <span class='keyglyph'>]</span>-<a name="line-2211"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2212"></a> <span class='keyglyph'>]</span>-<a name="line-2213"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2214"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"44"</span> <span class='keyglyph'>]</span>-<a name="line-2215"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2216"></a> <span class='keyglyph'>]</span>-<a name="line-2217"></a> <span class='keyglyph'>]</span>-<a name="line-2218"></a> <span class='keyglyph'>]</span>-<a name="line-2219"></a> <span class='keyglyph'>]</span>-<a name="line-2220"></a> <span class='keyglyph'>]</span>-<a name="line-2221"></a> <span class='keyglyph'>]</span>-<a name="line-2222"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>-<a name="line-2223"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"26"</span> <span class='keyglyph'>]</span>-<a name="line-2224"></a> <span class='keyglyph'>]</span>-<a name="line-2225"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>-<a name="line-2226"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-2227"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-2228"></a> <span class='keyglyph'>]</span>-<a name="line-2229"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"group"</span>-<a name="line-2230"></a> <span class='keyglyph'>]</span>-<a name="line-2231"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-2232"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-2233"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-2234"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2235"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2236"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-2237"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-2238"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-2239"></a> <span class='keyglyph'>]</span>-<a name="line-2240"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>-<a name="line-2241"></a> <span class='keyglyph'>]</span>-<a name="line-2242"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2243"></a> <span class='keyglyph'>]</span>-<a name="line-2244"></a> <span class='keyglyph'>]</span>-<a name="line-2245"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2246"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2247"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-2248"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-2249"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-2250"></a> <span class='keyglyph'>]</span>-<a name="line-2251"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>-<a name="line-2252"></a> <span class='keyglyph'>]</span>-<a name="line-2253"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-2254"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>-<a name="line-2255"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-2256"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2257"></a> <span class='keyglyph'>]</span>-<a name="line-2258"></a> <span class='keyglyph'>]</span>-<a name="line-2259"></a> <span class='keyglyph'>]</span>-<a name="line-2260"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2261"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2262"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-2263"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-2264"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>-<a name="line-2265"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>-<a name="line-2266"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2267"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-2268"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-2269"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2270"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-2271"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-2272"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2273"></a> <span class='keyglyph'>]</span>-<a name="line-2274"></a> <span class='keyglyph'>]</span>-<a name="line-2275"></a> <span class='keyglyph'>]</span>-<a name="line-2276"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2277"></a> <span class='keyglyph'>]</span>-<a name="line-2278"></a> <span class='keyglyph'>]</span>-<a name="line-2279"></a> <span class='keyglyph'>]</span>-<a name="line-2280"></a> <span class='keyglyph'>]</span>-<a name="line-2281"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>-<a name="line-2282"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2283"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2284"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-2285"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2286"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"15"</span> <span class='keyglyph'>]</span>-<a name="line-2287"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2288"></a> <span class='keyglyph'>]</span>-<a name="line-2289"></a> <span class='keyglyph'>]</span>-<a name="line-2290"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-2291"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2292"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2293"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2294"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2295"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2296"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2297"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2298"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2299"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2300"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2301"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2302"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2303"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2304"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2305"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2306"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2307"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2308"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2309"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2310"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"24"</span> <span class='keyglyph'>]</span>-<a name="line-2311"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2312"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2313"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"25"</span> <span class='keyglyph'>]</span>-<a name="line-2314"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2315"></a> <span class='keyglyph'>]</span>-<a name="line-2316"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2317"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"26"</span> <span class='keyglyph'>]</span>-<a name="line-2318"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2319"></a> <span class='keyglyph'>]</span>-<a name="line-2320"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2321"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"27"</span> <span class='keyglyph'>]</span>-<a name="line-2322"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2323"></a> <span class='keyglyph'>]</span>-<a name="line-2324"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2325"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"28"</span> <span class='keyglyph'>]</span>-<a name="line-2326"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2327"></a> <span class='keyglyph'>]</span>-<a name="line-2328"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2329"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"29"</span> <span class='keyglyph'>]</span>-<a name="line-2330"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2331"></a> <span class='keyglyph'>]</span>-<a name="line-2332"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2333"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"30"</span> <span class='keyglyph'>]</span>-<a name="line-2334"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2335"></a> <span class='keyglyph'>]</span>-<a name="line-2336"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2337"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"31"</span> <span class='keyglyph'>]</span>-<a name="line-2338"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2339"></a> <span class='keyglyph'>]</span>-<a name="line-2340"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2341"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"32"</span> <span class='keyglyph'>]</span>-<a name="line-2342"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2343"></a> <span class='keyglyph'>]</span>-<a name="line-2344"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2345"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"33"</span> <span class='keyglyph'>]</span>-<a name="line-2346"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2347"></a> <span class='keyglyph'>]</span>-<a name="line-2348"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2349"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"34"</span> <span class='keyglyph'>]</span>-<a name="line-2350"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2351"></a> <span class='keyglyph'>]</span>-<a name="line-2352"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2353"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"35"</span> <span class='keyglyph'>]</span>-<a name="line-2354"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2355"></a> <span class='keyglyph'>]</span>-<a name="line-2356"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2357"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"36"</span> <span class='keyglyph'>]</span>-<a name="line-2358"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2359"></a> <span class='keyglyph'>]</span>-<a name="line-2360"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2361"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"37"</span> <span class='keyglyph'>]</span>-<a name="line-2362"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2363"></a> <span class='keyglyph'>]</span>-<a name="line-2364"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2365"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"38"</span> <span class='keyglyph'>]</span>-<a name="line-2366"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2367"></a> <span class='keyglyph'>]</span>-<a name="line-2368"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2369"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"39"</span> <span class='keyglyph'>]</span>-<a name="line-2370"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2371"></a> <span class='keyglyph'>]</span>-<a name="line-2372"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2373"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"42"</span> <span class='keyglyph'>]</span>-<a name="line-2374"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2375"></a> <span class='keyglyph'>]</span>-<a name="line-2376"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2377"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"43"</span> <span class='keyglyph'>]</span>-<a name="line-2378"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2379"></a> <span class='keyglyph'>]</span>-<a name="line-2380"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2381"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"44"</span> <span class='keyglyph'>]</span>-<a name="line-2382"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2383"></a> <span class='keyglyph'>]</span>-<a name="line-2384"></a> <span class='keyglyph'>]</span>-<a name="line-2385"></a> <span class='keyglyph'>]</span>-<a name="line-2386"></a> <span class='keyglyph'>]</span>-<a name="line-2387"></a> <span class='keyglyph'>]</span>-<a name="line-2388"></a> <span class='keyglyph'>]</span>-<a name="line-2389"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>-<a name="line-2390"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"25"</span> <span class='keyglyph'>]</span>-<a name="line-2391"></a> <span class='keyglyph'>]</span>-<a name="line-2392"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>-<a name="line-2393"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-2394"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-2395"></a> <span class='keyglyph'>]</span>-<a name="line-2396"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"attribute"</span>-<a name="line-2397"></a> <span class='keyglyph'>]</span>-<a name="line-2398"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-2399"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-2400"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-2401"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-2402"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2403"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2404"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-2405"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-2406"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-2407"></a> <span class='keyglyph'>]</span>-<a name="line-2408"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>-<a name="line-2409"></a> <span class='keyglyph'>]</span>-<a name="line-2410"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2411"></a> <span class='keyglyph'>]</span>-<a name="line-2412"></a> <span class='keyglyph'>]</span>-<a name="line-2413"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2414"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2415"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-2416"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-2417"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-2418"></a> <span class='keyglyph'>]</span>-<a name="line-2419"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>-<a name="line-2420"></a> <span class='keyglyph'>]</span>-<a name="line-2421"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-2422"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>-<a name="line-2423"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-2424"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2425"></a> <span class='keyglyph'>]</span>-<a name="line-2426"></a> <span class='keyglyph'>]</span>-<a name="line-2427"></a> <span class='keyglyph'>]</span>-<a name="line-2428"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2429"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2430"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-2431"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-2432"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>-<a name="line-2433"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>-<a name="line-2434"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2435"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-2436"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-2437"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2438"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-2439"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-2440"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2441"></a> <span class='keyglyph'>]</span>-<a name="line-2442"></a> <span class='keyglyph'>]</span>-<a name="line-2443"></a> <span class='keyglyph'>]</span>-<a name="line-2444"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2445"></a> <span class='keyglyph'>]</span>-<a name="line-2446"></a> <span class='keyglyph'>]</span>-<a name="line-2447"></a> <span class='keyglyph'>]</span>-<a name="line-2448"></a> <span class='keyglyph'>]</span>-<a name="line-2449"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2450"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-2451"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-2452"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-2453"></a> <span class='keyglyph'>]</span>-<a name="line-2454"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"name"</span>-<a name="line-2455"></a> <span class='keyglyph'>]</span>-<a name="line-2456"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-2457"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"QName"</span> <span class='keyglyph'>]</span>-<a name="line-2458"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-2459"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2460"></a> <span class='keyglyph'>]</span>-<a name="line-2461"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>-<a name="line-2462"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2463"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2464"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-2465"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2466"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"15"</span> <span class='keyglyph'>]</span>-<a name="line-2467"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2468"></a> <span class='keyglyph'>]</span>-<a name="line-2469"></a> <span class='keyglyph'>]</span>-<a name="line-2470"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2471"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2472"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2473"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2474"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"17"</span> <span class='keyglyph'>]</span>-<a name="line-2475"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2476"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2477"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"18"</span> <span class='keyglyph'>]</span>-<a name="line-2478"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2479"></a> <span class='keyglyph'>]</span>-<a name="line-2480"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2481"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"19"</span> <span class='keyglyph'>]</span>-<a name="line-2482"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2483"></a> <span class='keyglyph'>]</span>-<a name="line-2484"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2485"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"20"</span> <span class='keyglyph'>]</span>-<a name="line-2486"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2487"></a> <span class='keyglyph'>]</span>-<a name="line-2488"></a> <span class='keyglyph'>]</span>-<a name="line-2489"></a> <span class='keyglyph'>]</span>-<a name="line-2490"></a> <span class='keyglyph'>]</span>-<a name="line-2491"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>-<a name="line-2492"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2493"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2494"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-2495"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2496"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"15"</span> <span class='keyglyph'>]</span>-<a name="line-2497"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2498"></a> <span class='keyglyph'>]</span>-<a name="line-2499"></a> <span class='keyglyph'>]</span>-<a name="line-2500"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2501"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2502"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2503"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2504"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2505"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2506"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2507"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2508"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2509"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2510"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2511"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2512"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2513"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2514"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2515"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2516"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2517"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2518"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2519"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2520"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2521"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"24"</span> <span class='keyglyph'>]</span>-<a name="line-2522"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2523"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2524"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"25"</span> <span class='keyglyph'>]</span>-<a name="line-2525"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2526"></a> <span class='keyglyph'>]</span>-<a name="line-2527"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2528"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"26"</span> <span class='keyglyph'>]</span>-<a name="line-2529"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2530"></a> <span class='keyglyph'>]</span>-<a name="line-2531"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2532"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"27"</span> <span class='keyglyph'>]</span>-<a name="line-2533"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2534"></a> <span class='keyglyph'>]</span>-<a name="line-2535"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2536"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"28"</span> <span class='keyglyph'>]</span>-<a name="line-2537"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2538"></a> <span class='keyglyph'>]</span>-<a name="line-2539"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2540"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"29"</span> <span class='keyglyph'>]</span>-<a name="line-2541"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2542"></a> <span class='keyglyph'>]</span>-<a name="line-2543"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2544"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"30"</span> <span class='keyglyph'>]</span>-<a name="line-2545"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2546"></a> <span class='keyglyph'>]</span>-<a name="line-2547"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2548"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"31"</span> <span class='keyglyph'>]</span>-<a name="line-2549"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2550"></a> <span class='keyglyph'>]</span>-<a name="line-2551"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2552"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"32"</span> <span class='keyglyph'>]</span>-<a name="line-2553"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2554"></a> <span class='keyglyph'>]</span>-<a name="line-2555"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2556"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"33"</span> <span class='keyglyph'>]</span>-<a name="line-2557"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2558"></a> <span class='keyglyph'>]</span>-<a name="line-2559"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2560"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"34"</span> <span class='keyglyph'>]</span>-<a name="line-2561"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2562"></a> <span class='keyglyph'>]</span>-<a name="line-2563"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2564"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"35"</span> <span class='keyglyph'>]</span>-<a name="line-2565"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2566"></a> <span class='keyglyph'>]</span>-<a name="line-2567"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2568"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"36"</span> <span class='keyglyph'>]</span>-<a name="line-2569"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2570"></a> <span class='keyglyph'>]</span>-<a name="line-2571"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2572"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"37"</span> <span class='keyglyph'>]</span>-<a name="line-2573"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2574"></a> <span class='keyglyph'>]</span>-<a name="line-2575"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2576"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"38"</span> <span class='keyglyph'>]</span>-<a name="line-2577"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2578"></a> <span class='keyglyph'>]</span>-<a name="line-2579"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2580"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"39"</span> <span class='keyglyph'>]</span>-<a name="line-2581"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2582"></a> <span class='keyglyph'>]</span>-<a name="line-2583"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2584"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"42"</span> <span class='keyglyph'>]</span>-<a name="line-2585"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2586"></a> <span class='keyglyph'>]</span>-<a name="line-2587"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2588"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"43"</span> <span class='keyglyph'>]</span>-<a name="line-2589"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2590"></a> <span class='keyglyph'>]</span>-<a name="line-2591"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2592"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"44"</span> <span class='keyglyph'>]</span>-<a name="line-2593"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2594"></a> <span class='keyglyph'>]</span>-<a name="line-2595"></a> <span class='keyglyph'>]</span>-<a name="line-2596"></a> <span class='keyglyph'>]</span>-<a name="line-2597"></a> <span class='keyglyph'>]</span>-<a name="line-2598"></a> <span class='keyglyph'>]</span>-<a name="line-2599"></a> <span class='keyglyph'>]</span>-<a name="line-2600"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>-<a name="line-2601"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"24"</span> <span class='keyglyph'>]</span>-<a name="line-2602"></a> <span class='keyglyph'>]</span>-<a name="line-2603"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>-<a name="line-2604"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-2605"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-2606"></a> <span class='keyglyph'>]</span>-<a name="line-2607"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"element"</span>-<a name="line-2608"></a> <span class='keyglyph'>]</span>-<a name="line-2609"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-2610"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-2611"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2612"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-2613"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-2614"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-2615"></a> <span class='keyglyph'>]</span>-<a name="line-2616"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"name"</span>-<a name="line-2617"></a> <span class='keyglyph'>]</span>-<a name="line-2618"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-2619"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"QName"</span> <span class='keyglyph'>]</span>-<a name="line-2620"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-2621"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2622"></a> <span class='keyglyph'>]</span>-<a name="line-2623"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>-<a name="line-2624"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2625"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2626"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-2627"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2628"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"15"</span> <span class='keyglyph'>]</span>-<a name="line-2629"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2630"></a> <span class='keyglyph'>]</span>-<a name="line-2631"></a> <span class='keyglyph'>]</span>-<a name="line-2632"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2633"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2634"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2635"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2636"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"17"</span> <span class='keyglyph'>]</span>-<a name="line-2637"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2638"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2639"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"18"</span> <span class='keyglyph'>]</span>-<a name="line-2640"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2641"></a> <span class='keyglyph'>]</span>-<a name="line-2642"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2643"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"19"</span> <span class='keyglyph'>]</span>-<a name="line-2644"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2645"></a> <span class='keyglyph'>]</span>-<a name="line-2646"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2647"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"20"</span> <span class='keyglyph'>]</span>-<a name="line-2648"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2649"></a> <span class='keyglyph'>]</span>-<a name="line-2650"></a> <span class='keyglyph'>]</span>-<a name="line-2651"></a> <span class='keyglyph'>]</span>-<a name="line-2652"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-2653"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-2654"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2655"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2656"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-2657"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-2658"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-2659"></a> <span class='keyglyph'>]</span>-<a name="line-2660"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>-<a name="line-2661"></a> <span class='keyglyph'>]</span>-<a name="line-2662"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2663"></a> <span class='keyglyph'>]</span>-<a name="line-2664"></a> <span class='keyglyph'>]</span>-<a name="line-2665"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2666"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2667"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-2668"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-2669"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-2670"></a> <span class='keyglyph'>]</span>-<a name="line-2671"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>-<a name="line-2672"></a> <span class='keyglyph'>]</span>-<a name="line-2673"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-2674"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>-<a name="line-2675"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-2676"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2677"></a> <span class='keyglyph'>]</span>-<a name="line-2678"></a> <span class='keyglyph'>]</span>-<a name="line-2679"></a> <span class='keyglyph'>]</span>-<a name="line-2680"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2681"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2682"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-2683"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-2684"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>-<a name="line-2685"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>-<a name="line-2686"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2687"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-2688"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-2689"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2690"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-2691"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-2692"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2693"></a> <span class='keyglyph'>]</span>-<a name="line-2694"></a> <span class='keyglyph'>]</span>-<a name="line-2695"></a> <span class='keyglyph'>]</span>-<a name="line-2696"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2697"></a> <span class='keyglyph'>]</span>-<a name="line-2698"></a> <span class='keyglyph'>]</span>-<a name="line-2699"></a> <span class='keyglyph'>]</span>-<a name="line-2700"></a> <span class='keyglyph'>]</span>-<a name="line-2701"></a> <span class='keyglyph'>]</span>-<a name="line-2702"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>-<a name="line-2703"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2704"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2705"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-2706"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2707"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"15"</span> <span class='keyglyph'>]</span>-<a name="line-2708"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2709"></a> <span class='keyglyph'>]</span>-<a name="line-2710"></a> <span class='keyglyph'>]</span>-<a name="line-2711"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-2712"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2713"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2714"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2715"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2716"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2717"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2718"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2719"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2720"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2721"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2722"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2723"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2724"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2725"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2726"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2727"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2728"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2729"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2730"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2731"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"24"</span> <span class='keyglyph'>]</span>-<a name="line-2732"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2733"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2734"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"25"</span> <span class='keyglyph'>]</span>-<a name="line-2735"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2736"></a> <span class='keyglyph'>]</span>-<a name="line-2737"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2738"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"26"</span> <span class='keyglyph'>]</span>-<a name="line-2739"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2740"></a> <span class='keyglyph'>]</span>-<a name="line-2741"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2742"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"27"</span> <span class='keyglyph'>]</span>-<a name="line-2743"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2744"></a> <span class='keyglyph'>]</span>-<a name="line-2745"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2746"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"28"</span> <span class='keyglyph'>]</span>-<a name="line-2747"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2748"></a> <span class='keyglyph'>]</span>-<a name="line-2749"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2750"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"29"</span> <span class='keyglyph'>]</span>-<a name="line-2751"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2752"></a> <span class='keyglyph'>]</span>-<a name="line-2753"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2754"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"30"</span> <span class='keyglyph'>]</span>-<a name="line-2755"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2756"></a> <span class='keyglyph'>]</span>-<a name="line-2757"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2758"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"31"</span> <span class='keyglyph'>]</span>-<a name="line-2759"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2760"></a> <span class='keyglyph'>]</span>-<a name="line-2761"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2762"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"32"</span> <span class='keyglyph'>]</span>-<a name="line-2763"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2764"></a> <span class='keyglyph'>]</span>-<a name="line-2765"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2766"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"33"</span> <span class='keyglyph'>]</span>-<a name="line-2767"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2768"></a> <span class='keyglyph'>]</span>-<a name="line-2769"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2770"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"34"</span> <span class='keyglyph'>]</span>-<a name="line-2771"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2772"></a> <span class='keyglyph'>]</span>-<a name="line-2773"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2774"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"35"</span> <span class='keyglyph'>]</span>-<a name="line-2775"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2776"></a> <span class='keyglyph'>]</span>-<a name="line-2777"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2778"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"36"</span> <span class='keyglyph'>]</span>-<a name="line-2779"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2780"></a> <span class='keyglyph'>]</span>-<a name="line-2781"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2782"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"37"</span> <span class='keyglyph'>]</span>-<a name="line-2783"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2784"></a> <span class='keyglyph'>]</span>-<a name="line-2785"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2786"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"38"</span> <span class='keyglyph'>]</span>-<a name="line-2787"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2788"></a> <span class='keyglyph'>]</span>-<a name="line-2789"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2790"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"39"</span> <span class='keyglyph'>]</span>-<a name="line-2791"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2792"></a> <span class='keyglyph'>]</span>-<a name="line-2793"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2794"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"42"</span> <span class='keyglyph'>]</span>-<a name="line-2795"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2796"></a> <span class='keyglyph'>]</span>-<a name="line-2797"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2798"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"43"</span> <span class='keyglyph'>]</span>-<a name="line-2799"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2800"></a> <span class='keyglyph'>]</span>-<a name="line-2801"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2802"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"44"</span> <span class='keyglyph'>]</span>-<a name="line-2803"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2804"></a> <span class='keyglyph'>]</span>-<a name="line-2805"></a> <span class='keyglyph'>]</span>-<a name="line-2806"></a> <span class='keyglyph'>]</span>-<a name="line-2807"></a> <span class='keyglyph'>]</span>-<a name="line-2808"></a> <span class='keyglyph'>]</span>-<a name="line-2809"></a> <span class='keyglyph'>]</span>-<a name="line-2810"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>-<a name="line-2811"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"23"</span> <span class='keyglyph'>]</span>-<a name="line-2812"></a> <span class='keyglyph'>]</span>-<a name="line-2813"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>-<a name="line-2814"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-2815"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-2816"></a> <span class='keyglyph'>]</span>-<a name="line-2817"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"include"</span>-<a name="line-2818"></a> <span class='keyglyph'>]</span>-<a name="line-2819"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-2820"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-2821"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-2822"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-2823"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-2824"></a> <span class='keyglyph'>]</span>-<a name="line-2825"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"href"</span>-<a name="line-2826"></a> <span class='keyglyph'>]</span>-<a name="line-2827"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-2828"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>-<a name="line-2829"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-2830"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2831"></a> <span class='keyglyph'>]</span>-<a name="line-2832"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-2833"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-2834"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2835"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2836"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-2837"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-2838"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-2839"></a> <span class='keyglyph'>]</span>-<a name="line-2840"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>-<a name="line-2841"></a> <span class='keyglyph'>]</span>-<a name="line-2842"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2843"></a> <span class='keyglyph'>]</span>-<a name="line-2844"></a> <span class='keyglyph'>]</span>-<a name="line-2845"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2846"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2847"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-2848"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-2849"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-2850"></a> <span class='keyglyph'>]</span>-<a name="line-2851"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>-<a name="line-2852"></a> <span class='keyglyph'>]</span>-<a name="line-2853"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-2854"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>-<a name="line-2855"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-2856"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2857"></a> <span class='keyglyph'>]</span>-<a name="line-2858"></a> <span class='keyglyph'>]</span>-<a name="line-2859"></a> <span class='keyglyph'>]</span>-<a name="line-2860"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2861"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2862"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-2863"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-2864"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>-<a name="line-2865"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>-<a name="line-2866"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2867"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-2868"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-2869"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2870"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-2871"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-2872"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2873"></a> <span class='keyglyph'>]</span>-<a name="line-2874"></a> <span class='keyglyph'>]</span>-<a name="line-2875"></a> <span class='keyglyph'>]</span>-<a name="line-2876"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2877"></a> <span class='keyglyph'>]</span>-<a name="line-2878"></a> <span class='keyglyph'>]</span>-<a name="line-2879"></a> <span class='keyglyph'>]</span>-<a name="line-2880"></a> <span class='keyglyph'>]</span>-<a name="line-2881"></a> <span class='keyglyph'>]</span>-<a name="line-2882"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>-<a name="line-2883"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2884"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2885"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-2886"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2887"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"15"</span> <span class='keyglyph'>]</span>-<a name="line-2888"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2889"></a> <span class='keyglyph'>]</span>-<a name="line-2890"></a> <span class='keyglyph'>]</span>-<a name="line-2891"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2892"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2893"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-2894"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2895"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2896"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2897"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"11"</span> <span class='keyglyph'>]</span>-<a name="line-2898"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2899"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2900"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"10"</span> <span class='keyglyph'>]</span>-<a name="line-2901"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2902"></a> <span class='keyglyph'>]</span>-<a name="line-2903"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2904"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"21"</span> <span class='keyglyph'>]</span>-<a name="line-2905"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2906"></a> <span class='keyglyph'>]</span>-<a name="line-2907"></a> <span class='keyglyph'>]</span>-<a name="line-2908"></a> <span class='keyglyph'>]</span>-<a name="line-2909"></a> <span class='keyglyph'>]</span>-<a name="line-2910"></a> <span class='keyglyph'>]</span>-<a name="line-2911"></a> <span class='keyglyph'>]</span>-<a name="line-2912"></a> <span class='keyglyph'>]</span>-<a name="line-2913"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>-<a name="line-2914"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"22"</span> <span class='keyglyph'>]</span>-<a name="line-2915"></a> <span class='keyglyph'>]</span>-<a name="line-2916"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>-<a name="line-2917"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-2918"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-2919"></a> <span class='keyglyph'>]</span>-<a name="line-2920"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"div"</span>-<a name="line-2921"></a> <span class='keyglyph'>]</span>-<a name="line-2922"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-2923"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-2924"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-2925"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2926"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2927"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-2928"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-2929"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-2930"></a> <span class='keyglyph'>]</span>-<a name="line-2931"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>-<a name="line-2932"></a> <span class='keyglyph'>]</span>-<a name="line-2933"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2934"></a> <span class='keyglyph'>]</span>-<a name="line-2935"></a> <span class='keyglyph'>]</span>-<a name="line-2936"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2937"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2938"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-2939"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-2940"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-2941"></a> <span class='keyglyph'>]</span>-<a name="line-2942"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>-<a name="line-2943"></a> <span class='keyglyph'>]</span>-<a name="line-2944"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-2945"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>-<a name="line-2946"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-2947"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2948"></a> <span class='keyglyph'>]</span>-<a name="line-2949"></a> <span class='keyglyph'>]</span>-<a name="line-2950"></a> <span class='keyglyph'>]</span>-<a name="line-2951"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2952"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2953"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-2954"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-2955"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>-<a name="line-2956"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>-<a name="line-2957"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2958"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-2959"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-2960"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2961"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-2962"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-2963"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2964"></a> <span class='keyglyph'>]</span>-<a name="line-2965"></a> <span class='keyglyph'>]</span>-<a name="line-2966"></a> <span class='keyglyph'>]</span>-<a name="line-2967"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2968"></a> <span class='keyglyph'>]</span>-<a name="line-2969"></a> <span class='keyglyph'>]</span>-<a name="line-2970"></a> <span class='keyglyph'>]</span>-<a name="line-2971"></a> <span class='keyglyph'>]</span>-<a name="line-2972"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>-<a name="line-2973"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2974"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2975"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-2976"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2977"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"15"</span> <span class='keyglyph'>]</span>-<a name="line-2978"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2979"></a> <span class='keyglyph'>]</span>-<a name="line-2980"></a> <span class='keyglyph'>]</span>-<a name="line-2981"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2982"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2983"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-2984"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2985"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2986"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2987"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2988"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"11"</span> <span class='keyglyph'>]</span>-<a name="line-2989"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2990"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2991"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"10"</span> <span class='keyglyph'>]</span>-<a name="line-2992"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2993"></a> <span class='keyglyph'>]</span>-<a name="line-2994"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2995"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"22"</span> <span class='keyglyph'>]</span>-<a name="line-2996"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2997"></a> <span class='keyglyph'>]</span>-<a name="line-2998"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2999"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"23"</span> <span class='keyglyph'>]</span>-<a name="line-3000"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3001"></a> <span class='keyglyph'>]</span>-<a name="line-3002"></a> <span class='keyglyph'>]</span>-<a name="line-3003"></a> <span class='keyglyph'>]</span>-<a name="line-3004"></a> <span class='keyglyph'>]</span>-<a name="line-3005"></a> <span class='keyglyph'>]</span>-<a name="line-3006"></a> <span class='keyglyph'>]</span>-<a name="line-3007"></a> <span class='keyglyph'>]</span>-<a name="line-3008"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>-<a name="line-3009"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"21"</span> <span class='keyglyph'>]</span>-<a name="line-3010"></a> <span class='keyglyph'>]</span>-<a name="line-3011"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>-<a name="line-3012"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-3013"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-3014"></a> <span class='keyglyph'>]</span>-<a name="line-3015"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"div"</span>-<a name="line-3016"></a> <span class='keyglyph'>]</span>-<a name="line-3017"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-3018"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-3019"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-3020"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3021"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3022"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-3023"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-3024"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-3025"></a> <span class='keyglyph'>]</span>-<a name="line-3026"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>-<a name="line-3027"></a> <span class='keyglyph'>]</span>-<a name="line-3028"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3029"></a> <span class='keyglyph'>]</span>-<a name="line-3030"></a> <span class='keyglyph'>]</span>-<a name="line-3031"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3032"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3033"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-3034"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-3035"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-3036"></a> <span class='keyglyph'>]</span>-<a name="line-3037"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>-<a name="line-3038"></a> <span class='keyglyph'>]</span>-<a name="line-3039"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-3040"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>-<a name="line-3041"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-3042"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3043"></a> <span class='keyglyph'>]</span>-<a name="line-3044"></a> <span class='keyglyph'>]</span>-<a name="line-3045"></a> <span class='keyglyph'>]</span>-<a name="line-3046"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3047"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3048"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-3049"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-3050"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>-<a name="line-3051"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>-<a name="line-3052"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3053"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-3054"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-3055"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3056"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-3057"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-3058"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3059"></a> <span class='keyglyph'>]</span>-<a name="line-3060"></a> <span class='keyglyph'>]</span>-<a name="line-3061"></a> <span class='keyglyph'>]</span>-<a name="line-3062"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3063"></a> <span class='keyglyph'>]</span>-<a name="line-3064"></a> <span class='keyglyph'>]</span>-<a name="line-3065"></a> <span class='keyglyph'>]</span>-<a name="line-3066"></a> <span class='keyglyph'>]</span>-<a name="line-3067"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>-<a name="line-3068"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3069"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3070"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-3071"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3072"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"15"</span> <span class='keyglyph'>]</span>-<a name="line-3073"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3074"></a> <span class='keyglyph'>]</span>-<a name="line-3075"></a> <span class='keyglyph'>]</span>-<a name="line-3076"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3077"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3078"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-3079"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3080"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3081"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3082"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"11"</span> <span class='keyglyph'>]</span>-<a name="line-3083"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3084"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3085"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"10"</span> <span class='keyglyph'>]</span>-<a name="line-3086"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3087"></a> <span class='keyglyph'>]</span>-<a name="line-3088"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3089"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"21"</span> <span class='keyglyph'>]</span>-<a name="line-3090"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3091"></a> <span class='keyglyph'>]</span>-<a name="line-3092"></a> <span class='keyglyph'>]</span>-<a name="line-3093"></a> <span class='keyglyph'>]</span>-<a name="line-3094"></a> <span class='keyglyph'>]</span>-<a name="line-3095"></a> <span class='keyglyph'>]</span>-<a name="line-3096"></a> <span class='keyglyph'>]</span>-<a name="line-3097"></a> <span class='keyglyph'>]</span>-<a name="line-3098"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>-<a name="line-3099"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"20"</span> <span class='keyglyph'>]</span>-<a name="line-3100"></a> <span class='keyglyph'>]</span>-<a name="line-3101"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>-<a name="line-3102"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-3103"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-3104"></a> <span class='keyglyph'>]</span>-<a name="line-3105"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"choice"</span>-<a name="line-3106"></a> <span class='keyglyph'>]</span>-<a name="line-3107"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-3108"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-3109"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-3110"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3111"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3112"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-3113"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-3114"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-3115"></a> <span class='keyglyph'>]</span>-<a name="line-3116"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>-<a name="line-3117"></a> <span class='keyglyph'>]</span>-<a name="line-3118"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3119"></a> <span class='keyglyph'>]</span>-<a name="line-3120"></a> <span class='keyglyph'>]</span>-<a name="line-3121"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3122"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3123"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-3124"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-3125"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-3126"></a> <span class='keyglyph'>]</span>-<a name="line-3127"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>-<a name="line-3128"></a> <span class='keyglyph'>]</span>-<a name="line-3129"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-3130"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>-<a name="line-3131"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-3132"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3133"></a> <span class='keyglyph'>]</span>-<a name="line-3134"></a> <span class='keyglyph'>]</span>-<a name="line-3135"></a> <span class='keyglyph'>]</span>-<a name="line-3136"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3137"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3138"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-3139"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-3140"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>-<a name="line-3141"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>-<a name="line-3142"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3143"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-3144"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-3145"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3146"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-3147"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-3148"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3149"></a> <span class='keyglyph'>]</span>-<a name="line-3150"></a> <span class='keyglyph'>]</span>-<a name="line-3151"></a> <span class='keyglyph'>]</span>-<a name="line-3152"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3153"></a> <span class='keyglyph'>]</span>-<a name="line-3154"></a> <span class='keyglyph'>]</span>-<a name="line-3155"></a> <span class='keyglyph'>]</span>-<a name="line-3156"></a> <span class='keyglyph'>]</span>-<a name="line-3157"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>-<a name="line-3158"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3159"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3160"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-3161"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3162"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"15"</span> <span class='keyglyph'>]</span>-<a name="line-3163"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3164"></a> <span class='keyglyph'>]</span>-<a name="line-3165"></a> <span class='keyglyph'>]</span>-<a name="line-3166"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-3167"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3168"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3169"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3170"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3171"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"17"</span> <span class='keyglyph'>]</span>-<a name="line-3172"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3173"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3174"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"18"</span> <span class='keyglyph'>]</span>-<a name="line-3175"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3176"></a> <span class='keyglyph'>]</span>-<a name="line-3177"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3178"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"19"</span> <span class='keyglyph'>]</span>-<a name="line-3179"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3180"></a> <span class='keyglyph'>]</span>-<a name="line-3181"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3182"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"20"</span> <span class='keyglyph'>]</span>-<a name="line-3183"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3184"></a> <span class='keyglyph'>]</span>-<a name="line-3185"></a> <span class='keyglyph'>]</span>-<a name="line-3186"></a> <span class='keyglyph'>]</span>-<a name="line-3187"></a> <span class='keyglyph'>]</span>-<a name="line-3188"></a> <span class='keyglyph'>]</span>-<a name="line-3189"></a> <span class='keyglyph'>]</span>-<a name="line-3190"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>-<a name="line-3191"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"19"</span> <span class='keyglyph'>]</span>-<a name="line-3192"></a> <span class='keyglyph'>]</span>-<a name="line-3193"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>-<a name="line-3194"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-3195"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-3196"></a> <span class='keyglyph'>]</span>-<a name="line-3197"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"nsName"</span>-<a name="line-3198"></a> <span class='keyglyph'>]</span>-<a name="line-3199"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-3200"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-3201"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-3202"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3203"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3204"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-3205"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-3206"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-3207"></a> <span class='keyglyph'>]</span>-<a name="line-3208"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>-<a name="line-3209"></a> <span class='keyglyph'>]</span>-<a name="line-3210"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3211"></a> <span class='keyglyph'>]</span>-<a name="line-3212"></a> <span class='keyglyph'>]</span>-<a name="line-3213"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3214"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3215"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-3216"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-3217"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-3218"></a> <span class='keyglyph'>]</span>-<a name="line-3219"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>-<a name="line-3220"></a> <span class='keyglyph'>]</span>-<a name="line-3221"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-3222"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>-<a name="line-3223"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-3224"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3225"></a> <span class='keyglyph'>]</span>-<a name="line-3226"></a> <span class='keyglyph'>]</span>-<a name="line-3227"></a> <span class='keyglyph'>]</span>-<a name="line-3228"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3229"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3230"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-3231"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-3232"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>-<a name="line-3233"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>-<a name="line-3234"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3235"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-3236"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-3237"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3238"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-3239"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-3240"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3241"></a> <span class='keyglyph'>]</span>-<a name="line-3242"></a> <span class='keyglyph'>]</span>-<a name="line-3243"></a> <span class='keyglyph'>]</span>-<a name="line-3244"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3245"></a> <span class='keyglyph'>]</span>-<a name="line-3246"></a> <span class='keyglyph'>]</span>-<a name="line-3247"></a> <span class='keyglyph'>]</span>-<a name="line-3248"></a> <span class='keyglyph'>]</span>-<a name="line-3249"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>-<a name="line-3250"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3251"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3252"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-3253"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3254"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"15"</span> <span class='keyglyph'>]</span>-<a name="line-3255"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3256"></a> <span class='keyglyph'>]</span>-<a name="line-3257"></a> <span class='keyglyph'>]</span>-<a name="line-3258"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3259"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3260"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3261"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"16"</span> <span class='keyglyph'>]</span>-<a name="line-3262"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3263"></a> <span class='keyglyph'>]</span>-<a name="line-3264"></a> <span class='keyglyph'>]</span>-<a name="line-3265"></a> <span class='keyglyph'>]</span>-<a name="line-3266"></a> <span class='keyglyph'>]</span>-<a name="line-3267"></a> <span class='keyglyph'>]</span>-<a name="line-3268"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>-<a name="line-3269"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"18"</span> <span class='keyglyph'>]</span>-<a name="line-3270"></a> <span class='keyglyph'>]</span>-<a name="line-3271"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>-<a name="line-3272"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-3273"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-3274"></a> <span class='keyglyph'>]</span>-<a name="line-3275"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyName"</span>-<a name="line-3276"></a> <span class='keyglyph'>]</span>-<a name="line-3277"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-3278"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-3279"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-3280"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3281"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3282"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-3283"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-3284"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-3285"></a> <span class='keyglyph'>]</span>-<a name="line-3286"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>-<a name="line-3287"></a> <span class='keyglyph'>]</span>-<a name="line-3288"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3289"></a> <span class='keyglyph'>]</span>-<a name="line-3290"></a> <span class='keyglyph'>]</span>-<a name="line-3291"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3292"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3293"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-3294"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-3295"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-3296"></a> <span class='keyglyph'>]</span>-<a name="line-3297"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>-<a name="line-3298"></a> <span class='keyglyph'>]</span>-<a name="line-3299"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-3300"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>-<a name="line-3301"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-3302"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3303"></a> <span class='keyglyph'>]</span>-<a name="line-3304"></a> <span class='keyglyph'>]</span>-<a name="line-3305"></a> <span class='keyglyph'>]</span>-<a name="line-3306"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3307"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3308"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-3309"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-3310"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>-<a name="line-3311"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>-<a name="line-3312"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3313"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-3314"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-3315"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3316"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-3317"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-3318"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3319"></a> <span class='keyglyph'>]</span>-<a name="line-3320"></a> <span class='keyglyph'>]</span>-<a name="line-3321"></a> <span class='keyglyph'>]</span>-<a name="line-3322"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3323"></a> <span class='keyglyph'>]</span>-<a name="line-3324"></a> <span class='keyglyph'>]</span>-<a name="line-3325"></a> <span class='keyglyph'>]</span>-<a name="line-3326"></a> <span class='keyglyph'>]</span>-<a name="line-3327"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>-<a name="line-3328"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3329"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3330"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-3331"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3332"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"15"</span> <span class='keyglyph'>]</span>-<a name="line-3333"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3334"></a> <span class='keyglyph'>]</span>-<a name="line-3335"></a> <span class='keyglyph'>]</span>-<a name="line-3336"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3337"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3338"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3339"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"16"</span> <span class='keyglyph'>]</span>-<a name="line-3340"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3341"></a> <span class='keyglyph'>]</span>-<a name="line-3342"></a> <span class='keyglyph'>]</span>-<a name="line-3343"></a> <span class='keyglyph'>]</span>-<a name="line-3344"></a> <span class='keyglyph'>]</span>-<a name="line-3345"></a> <span class='keyglyph'>]</span>-<a name="line-3346"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>-<a name="line-3347"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"17"</span> <span class='keyglyph'>]</span>-<a name="line-3348"></a> <span class='keyglyph'>]</span>-<a name="line-3349"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>-<a name="line-3350"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-3351"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-3352"></a> <span class='keyglyph'>]</span>-<a name="line-3353"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"name"</span>-<a name="line-3354"></a> <span class='keyglyph'>]</span>-<a name="line-3355"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-3356"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-3357"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-3358"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3359"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3360"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-3361"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-3362"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-3363"></a> <span class='keyglyph'>]</span>-<a name="line-3364"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>-<a name="line-3365"></a> <span class='keyglyph'>]</span>-<a name="line-3366"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3367"></a> <span class='keyglyph'>]</span>-<a name="line-3368"></a> <span class='keyglyph'>]</span>-<a name="line-3369"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3370"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3371"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-3372"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-3373"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-3374"></a> <span class='keyglyph'>]</span>-<a name="line-3375"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>-<a name="line-3376"></a> <span class='keyglyph'>]</span>-<a name="line-3377"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-3378"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>-<a name="line-3379"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-3380"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3381"></a> <span class='keyglyph'>]</span>-<a name="line-3382"></a> <span class='keyglyph'>]</span>-<a name="line-3383"></a> <span class='keyglyph'>]</span>-<a name="line-3384"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3385"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3386"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-3387"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-3388"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>-<a name="line-3389"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>-<a name="line-3390"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3391"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-3392"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-3393"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3394"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-3395"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-3396"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3397"></a> <span class='keyglyph'>]</span>-<a name="line-3398"></a> <span class='keyglyph'>]</span>-<a name="line-3399"></a> <span class='keyglyph'>]</span>-<a name="line-3400"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3401"></a> <span class='keyglyph'>]</span>-<a name="line-3402"></a> <span class='keyglyph'>]</span>-<a name="line-3403"></a> <span class='keyglyph'>]</span>-<a name="line-3404"></a> <span class='keyglyph'>]</span>-<a name="line-3405"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-3406"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"QName"</span> <span class='keyglyph'>]</span>-<a name="line-3407"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-3408"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3409"></a> <span class='keyglyph'>]</span>-<a name="line-3410"></a> <span class='keyglyph'>]</span>-<a name="line-3411"></a> <span class='keyglyph'>]</span>-<a name="line-3412"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>-<a name="line-3413"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"16"</span> <span class='keyglyph'>]</span>-<a name="line-3414"></a> <span class='keyglyph'>]</span>-<a name="line-3415"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>-<a name="line-3416"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-3417"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-3418"></a> <span class='keyglyph'>]</span>-<a name="line-3419"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"except"</span>-<a name="line-3420"></a> <span class='keyglyph'>]</span>-<a name="line-3421"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>-<a name="line-3422"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3423"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3424"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-3425"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3426"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"15"</span> <span class='keyglyph'>]</span>-<a name="line-3427"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3428"></a> <span class='keyglyph'>]</span>-<a name="line-3429"></a> <span class='keyglyph'>]</span>-<a name="line-3430"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-3431"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3432"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3433"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3434"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3435"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"17"</span> <span class='keyglyph'>]</span>-<a name="line-3436"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3437"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3438"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"18"</span> <span class='keyglyph'>]</span>-<a name="line-3439"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3440"></a> <span class='keyglyph'>]</span>-<a name="line-3441"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3442"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"19"</span> <span class='keyglyph'>]</span>-<a name="line-3443"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3444"></a> <span class='keyglyph'>]</span>-<a name="line-3445"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3446"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"20"</span> <span class='keyglyph'>]</span>-<a name="line-3447"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3448"></a> <span class='keyglyph'>]</span>-<a name="line-3449"></a> <span class='keyglyph'>]</span>-<a name="line-3450"></a> <span class='keyglyph'>]</span>-<a name="line-3451"></a> <span class='keyglyph'>]</span>-<a name="line-3452"></a> <span class='keyglyph'>]</span>-<a name="line-3453"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>-<a name="line-3454"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"15"</span> <span class='keyglyph'>]</span>-<a name="line-3455"></a> <span class='keyglyph'>]</span>-<a name="line-3456"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>-<a name="line-3457"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>-<a name="line-3458"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>-<a name="line-3459"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-3460"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-3461"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3462"></a> <span class='keyglyph'>]</span>-<a name="line-3463"></a> <span class='keyglyph'>]</span>-<a name="line-3464"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3465"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3466"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-3467"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3468"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3469"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-3470"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3471"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3472"></a> <span class='keyglyph'>]</span>-<a name="line-3473"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3474"></a> <span class='keyglyph'>]</span>-<a name="line-3475"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3476"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"0"</span> <span class='keyglyph'>]</span>-<a name="line-3477"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3478"></a> <span class='keyglyph'>]</span>-<a name="line-3479"></a> <span class='keyglyph'>]</span>-<a name="line-3480"></a> <span class='keyglyph'>]</span>-<a name="line-3481"></a> <span class='keyglyph'>]</span>-<a name="line-3482"></a> <span class='keyglyph'>]</span>-<a name="line-3483"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>-<a name="line-3484"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"0"</span> <span class='keyglyph'>]</span>-<a name="line-3485"></a> <span class='keyglyph'>]</span>-<a name="line-3486"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>-<a name="line-3487"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3488"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3489"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3490"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-3491"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3492"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3493"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-3494"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3495"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3496"></a> <span class='keyglyph'>]</span>-<a name="line-3497"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3498"></a> <span class='keyglyph'>]</span>-<a name="line-3499"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3500"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"0"</span> <span class='keyglyph'>]</span>-<a name="line-3501"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3502"></a> <span class='keyglyph'>]</span>-<a name="line-3503"></a> <span class='keyglyph'>]</span>-<a name="line-3504"></a> <span class='keyglyph'>]</span>-<a name="line-3505"></a> <span class='keyglyph'>]</span>-<a name="line-3506"></a> <span class='keyglyph'>]</span>-<a name="line-3507"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>-<a name="line-3508"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"10"</span> <span class='keyglyph'>]</span>-<a name="line-3509"></a> <span class='keyglyph'>]</span>-<a name="line-3510"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>-<a name="line-3511"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-3512"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-3513"></a> <span class='keyglyph'>]</span>-<a name="line-3514"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"define"</span>-<a name="line-3515"></a> <span class='keyglyph'>]</span>-<a name="line-3516"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-3517"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-3518"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-3519"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-3520"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-3521"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-3522"></a> <span class='keyglyph'>]</span>-<a name="line-3523"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"name"</span>-<a name="line-3524"></a> <span class='keyglyph'>]</span>-<a name="line-3525"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-3526"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"NCName"</span> <span class='keyglyph'>]</span>-<a name="line-3527"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-3528"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3529"></a> <span class='keyglyph'>]</span>-<a name="line-3530"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3531"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3532"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-3533"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-3534"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-3535"></a> <span class='keyglyph'>]</span>-<a name="line-3536"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"combine"</span>-<a name="line-3537"></a> <span class='keyglyph'>]</span>-<a name="line-3538"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3539"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn25</span>-<a name="line-3540"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn1</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/XML/1998/namespace"</span> <span class='keyglyph'>]</span>-<a name="line-3541"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn3</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-3542"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn2</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"file:///home/uwe/haskell/hxt/curr/src/Text/XML/HXT/RelaxNG/schema2hs/Schema.rng"</span> <span class='keyglyph'>]</span>-<a name="line-3543"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-3544"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"token"</span> <span class='keyglyph'>]</span>-<a name="line-3545"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-3546"></a> <span class='keyglyph'>]</span>-<a name="line-3547"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"choice"</span>-<a name="line-3548"></a> <span class='keyglyph'>]</span>-<a name="line-3549"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn25</span>-<a name="line-3550"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn1</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/XML/1998/namespace"</span> <span class='keyglyph'>]</span>-<a name="line-3551"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn3</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-3552"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn2</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"file:///home/uwe/haskell/hxt/curr/src/Text/XML/HXT/RelaxNG/schema2hs/Schema.rng"</span> <span class='keyglyph'>]</span>-<a name="line-3553"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-3554"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"token"</span> <span class='keyglyph'>]</span>-<a name="line-3555"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-3556"></a> <span class='keyglyph'>]</span>-<a name="line-3557"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"interleave"</span>-<a name="line-3558"></a> <span class='keyglyph'>]</span>-<a name="line-3559"></a> <span class='keyglyph'>]</span>-<a name="line-3560"></a> <span class='keyglyph'>]</span>-<a name="line-3561"></a> <span class='keyglyph'>]</span>-<a name="line-3562"></a> <span class='keyglyph'>]</span>-<a name="line-3563"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-3564"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-3565"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3566"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3567"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-3568"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-3569"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-3570"></a> <span class='keyglyph'>]</span>-<a name="line-3571"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>-<a name="line-3572"></a> <span class='keyglyph'>]</span>-<a name="line-3573"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3574"></a> <span class='keyglyph'>]</span>-<a name="line-3575"></a> <span class='keyglyph'>]</span>-<a name="line-3576"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3577"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3578"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-3579"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-3580"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-3581"></a> <span class='keyglyph'>]</span>-<a name="line-3582"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>-<a name="line-3583"></a> <span class='keyglyph'>]</span>-<a name="line-3584"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-3585"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>-<a name="line-3586"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-3587"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3588"></a> <span class='keyglyph'>]</span>-<a name="line-3589"></a> <span class='keyglyph'>]</span>-<a name="line-3590"></a> <span class='keyglyph'>]</span>-<a name="line-3591"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3592"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3593"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-3594"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-3595"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>-<a name="line-3596"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>-<a name="line-3597"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3598"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-3599"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-3600"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3601"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-3602"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-3603"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3604"></a> <span class='keyglyph'>]</span>-<a name="line-3605"></a> <span class='keyglyph'>]</span>-<a name="line-3606"></a> <span class='keyglyph'>]</span>-<a name="line-3607"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3608"></a> <span class='keyglyph'>]</span>-<a name="line-3609"></a> <span class='keyglyph'>]</span>-<a name="line-3610"></a> <span class='keyglyph'>]</span>-<a name="line-3611"></a> <span class='keyglyph'>]</span>-<a name="line-3612"></a> <span class='keyglyph'>]</span>-<a name="line-3613"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>-<a name="line-3614"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3615"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3616"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-3617"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3618"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"15"</span> <span class='keyglyph'>]</span>-<a name="line-3619"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3620"></a> <span class='keyglyph'>]</span>-<a name="line-3621"></a> <span class='keyglyph'>]</span>-<a name="line-3622"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-3623"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3624"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3625"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3626"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3627"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3628"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3629"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3630"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3631"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3632"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3633"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3634"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3635"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3636"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3637"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3638"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3639"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3640"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3641"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3642"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"24"</span> <span class='keyglyph'>]</span>-<a name="line-3643"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3644"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3645"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"25"</span> <span class='keyglyph'>]</span>-<a name="line-3646"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3647"></a> <span class='keyglyph'>]</span>-<a name="line-3648"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3649"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"26"</span> <span class='keyglyph'>]</span>-<a name="line-3650"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3651"></a> <span class='keyglyph'>]</span>-<a name="line-3652"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3653"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"27"</span> <span class='keyglyph'>]</span>-<a name="line-3654"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3655"></a> <span class='keyglyph'>]</span>-<a name="line-3656"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3657"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"28"</span> <span class='keyglyph'>]</span>-<a name="line-3658"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3659"></a> <span class='keyglyph'>]</span>-<a name="line-3660"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3661"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"29"</span> <span class='keyglyph'>]</span>-<a name="line-3662"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3663"></a> <span class='keyglyph'>]</span>-<a name="line-3664"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3665"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"30"</span> <span class='keyglyph'>]</span>-<a name="line-3666"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3667"></a> <span class='keyglyph'>]</span>-<a name="line-3668"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3669"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"31"</span> <span class='keyglyph'>]</span>-<a name="line-3670"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3671"></a> <span class='keyglyph'>]</span>-<a name="line-3672"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3673"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"32"</span> <span class='keyglyph'>]</span>-<a name="line-3674"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3675"></a> <span class='keyglyph'>]</span>-<a name="line-3676"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3677"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"33"</span> <span class='keyglyph'>]</span>-<a name="line-3678"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3679"></a> <span class='keyglyph'>]</span>-<a name="line-3680"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3681"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"34"</span> <span class='keyglyph'>]</span>-<a name="line-3682"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3683"></a> <span class='keyglyph'>]</span>-<a name="line-3684"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3685"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"35"</span> <span class='keyglyph'>]</span>-<a name="line-3686"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3687"></a> <span class='keyglyph'>]</span>-<a name="line-3688"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3689"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"36"</span> <span class='keyglyph'>]</span>-<a name="line-3690"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3691"></a> <span class='keyglyph'>]</span>-<a name="line-3692"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3693"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"37"</span> <span class='keyglyph'>]</span>-<a name="line-3694"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3695"></a> <span class='keyglyph'>]</span>-<a name="line-3696"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3697"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"38"</span> <span class='keyglyph'>]</span>-<a name="line-3698"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3699"></a> <span class='keyglyph'>]</span>-<a name="line-3700"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3701"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"39"</span> <span class='keyglyph'>]</span>-<a name="line-3702"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3703"></a> <span class='keyglyph'>]</span>-<a name="line-3704"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3705"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"42"</span> <span class='keyglyph'>]</span>-<a name="line-3706"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3707"></a> <span class='keyglyph'>]</span>-<a name="line-3708"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3709"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"43"</span> <span class='keyglyph'>]</span>-<a name="line-3710"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3711"></a> <span class='keyglyph'>]</span>-<a name="line-3712"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3713"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"44"</span> <span class='keyglyph'>]</span>-<a name="line-3714"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3715"></a> <span class='keyglyph'>]</span>-<a name="line-3716"></a> <span class='keyglyph'>]</span>-<a name="line-3717"></a> <span class='keyglyph'>]</span>-<a name="line-3718"></a> <span class='keyglyph'>]</span>-<a name="line-3719"></a> <span class='keyglyph'>]</span>-<a name="line-3720"></a> <span class='keyglyph'>]</span>-<a name="line-3721"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>-<a name="line-3722"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"11"</span> <span class='keyglyph'>]</span>-<a name="line-3723"></a> <span class='keyglyph'>]</span>-<a name="line-3724"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>-<a name="line-3725"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-3726"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-3727"></a> <span class='keyglyph'>]</span>-<a name="line-3728"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"start"</span>-<a name="line-3729"></a> <span class='keyglyph'>]</span>-<a name="line-3730"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-3731"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-3732"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3733"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3734"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-3735"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-3736"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-3737"></a> <span class='keyglyph'>]</span>-<a name="line-3738"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"combine"</span>-<a name="line-3739"></a> <span class='keyglyph'>]</span>-<a name="line-3740"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3741"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn25</span>-<a name="line-3742"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn1</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/XML/1998/namespace"</span> <span class='keyglyph'>]</span>-<a name="line-3743"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn3</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-3744"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn2</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"file:///home/uwe/haskell/hxt/curr/src/Text/XML/HXT/RelaxNG/schema2hs/Schema.rng"</span> <span class='keyglyph'>]</span>-<a name="line-3745"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-3746"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"token"</span> <span class='keyglyph'>]</span>-<a name="line-3747"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-3748"></a> <span class='keyglyph'>]</span>-<a name="line-3749"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"choice"</span>-<a name="line-3750"></a> <span class='keyglyph'>]</span>-<a name="line-3751"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn25</span>-<a name="line-3752"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn1</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/XML/1998/namespace"</span> <span class='keyglyph'>]</span>-<a name="line-3753"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn3</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-3754"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn2</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"file:///home/uwe/haskell/hxt/curr/src/Text/XML/HXT/RelaxNG/schema2hs/Schema.rng"</span> <span class='keyglyph'>]</span>-<a name="line-3755"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-3756"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"token"</span> <span class='keyglyph'>]</span>-<a name="line-3757"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-3758"></a> <span class='keyglyph'>]</span>-<a name="line-3759"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"interleave"</span>-<a name="line-3760"></a> <span class='keyglyph'>]</span>-<a name="line-3761"></a> <span class='keyglyph'>]</span>-<a name="line-3762"></a> <span class='keyglyph'>]</span>-<a name="line-3763"></a> <span class='keyglyph'>]</span>-<a name="line-3764"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-3765"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-3766"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3767"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3768"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-3769"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-3770"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-3771"></a> <span class='keyglyph'>]</span>-<a name="line-3772"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>-<a name="line-3773"></a> <span class='keyglyph'>]</span>-<a name="line-3774"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3775"></a> <span class='keyglyph'>]</span>-<a name="line-3776"></a> <span class='keyglyph'>]</span>-<a name="line-3777"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3778"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3779"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-3780"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-3781"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-3782"></a> <span class='keyglyph'>]</span>-<a name="line-3783"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>-<a name="line-3784"></a> <span class='keyglyph'>]</span>-<a name="line-3785"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-3786"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>-<a name="line-3787"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-3788"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3789"></a> <span class='keyglyph'>]</span>-<a name="line-3790"></a> <span class='keyglyph'>]</span>-<a name="line-3791"></a> <span class='keyglyph'>]</span>-<a name="line-3792"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3793"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3794"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-3795"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-3796"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>-<a name="line-3797"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>-<a name="line-3798"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3799"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-3800"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-3801"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3802"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-3803"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-3804"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3805"></a> <span class='keyglyph'>]</span>-<a name="line-3806"></a> <span class='keyglyph'>]</span>-<a name="line-3807"></a> <span class='keyglyph'>]</span>-<a name="line-3808"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3809"></a> <span class='keyglyph'>]</span>-<a name="line-3810"></a> <span class='keyglyph'>]</span>-<a name="line-3811"></a> <span class='keyglyph'>]</span>-<a name="line-3812"></a> <span class='keyglyph'>]</span>-<a name="line-3813"></a> <span class='keyglyph'>]</span>-<a name="line-3814"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>-<a name="line-3815"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3816"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3817"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-3818"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3819"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"15"</span> <span class='keyglyph'>]</span>-<a name="line-3820"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3821"></a> <span class='keyglyph'>]</span>-<a name="line-3822"></a> <span class='keyglyph'>]</span>-<a name="line-3823"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3824"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3825"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3826"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3827"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3828"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3829"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3830"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3831"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3832"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3833"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3834"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3835"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3836"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3837"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3838"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3839"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3840"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3841"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3842"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"24"</span> <span class='keyglyph'>]</span>-<a name="line-3843"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3844"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3845"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"25"</span> <span class='keyglyph'>]</span>-<a name="line-3846"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3847"></a> <span class='keyglyph'>]</span>-<a name="line-3848"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3849"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"26"</span> <span class='keyglyph'>]</span>-<a name="line-3850"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3851"></a> <span class='keyglyph'>]</span>-<a name="line-3852"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3853"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"27"</span> <span class='keyglyph'>]</span>-<a name="line-3854"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3855"></a> <span class='keyglyph'>]</span>-<a name="line-3856"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3857"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"28"</span> <span class='keyglyph'>]</span>-<a name="line-3858"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3859"></a> <span class='keyglyph'>]</span>-<a name="line-3860"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3861"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"29"</span> <span class='keyglyph'>]</span>-<a name="line-3862"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3863"></a> <span class='keyglyph'>]</span>-<a name="line-3864"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3865"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"30"</span> <span class='keyglyph'>]</span>-<a name="line-3866"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3867"></a> <span class='keyglyph'>]</span>-<a name="line-3868"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3869"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"31"</span> <span class='keyglyph'>]</span>-<a name="line-3870"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3871"></a> <span class='keyglyph'>]</span>-<a name="line-3872"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3873"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"32"</span> <span class='keyglyph'>]</span>-<a name="line-3874"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3875"></a> <span class='keyglyph'>]</span>-<a name="line-3876"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3877"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"33"</span> <span class='keyglyph'>]</span>-<a name="line-3878"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3879"></a> <span class='keyglyph'>]</span>-<a name="line-3880"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3881"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"34"</span> <span class='keyglyph'>]</span>-<a name="line-3882"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3883"></a> <span class='keyglyph'>]</span>-<a name="line-3884"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3885"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"35"</span> <span class='keyglyph'>]</span>-<a name="line-3886"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3887"></a> <span class='keyglyph'>]</span>-<a name="line-3888"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3889"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"36"</span> <span class='keyglyph'>]</span>-<a name="line-3890"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3891"></a> <span class='keyglyph'>]</span>-<a name="line-3892"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3893"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"37"</span> <span class='keyglyph'>]</span>-<a name="line-3894"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3895"></a> <span class='keyglyph'>]</span>-<a name="line-3896"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3897"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"38"</span> <span class='keyglyph'>]</span>-<a name="line-3898"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3899"></a> <span class='keyglyph'>]</span>-<a name="line-3900"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3901"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"39"</span> <span class='keyglyph'>]</span>-<a name="line-3902"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3903"></a> <span class='keyglyph'>]</span>-<a name="line-3904"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3905"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"42"</span> <span class='keyglyph'>]</span>-<a name="line-3906"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3907"></a> <span class='keyglyph'>]</span>-<a name="line-3908"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3909"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"43"</span> <span class='keyglyph'>]</span>-<a name="line-3910"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3911"></a> <span class='keyglyph'>]</span>-<a name="line-3912"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3913"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"44"</span> <span class='keyglyph'>]</span>-<a name="line-3914"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3915"></a> <span class='keyglyph'>]</span>-<a name="line-3916"></a> <span class='keyglyph'>]</span>-<a name="line-3917"></a> <span class='keyglyph'>]</span>-<a name="line-3918"></a> <span class='keyglyph'>]</span>-<a name="line-3919"></a> <span class='keyglyph'>]</span>-<a name="line-3920"></a> <span class='keyglyph'>]</span>-<a name="line-3921"></a> <span class='keyglyph'>]</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-RelaxNG-SchemaGrammar.html
@@ -1,3841 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>{- |-<a name="line-2"></a> Module : Text.HXT.RelaxNG.SchemaGrammar-<a name="line-3"></a>-<a name="line-4"></a> Don't edit this module, it's generated by RelaxSchemaToXmlTree-<a name="line-5"></a>-<a name="line-6"></a>-}</span>-<a name="line-7"></a>-<a name="line-8"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>SchemaGrammar</span>-<a name="line-9"></a> <span class='layout'>(</span> <span class='varid'>relaxSchemaTree</span><span class='layout'>,</span> <span class='varid'>relaxSchemaArrow</span> <span class='layout'>)</span>-<a name="line-10"></a><span class='keyword'>where</span>-<a name="line-11"></a>-<a name="line-12"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>TypeDefs</span>-<a name="line-13"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlNode</span> <span class='layout'>(</span><span class='varid'>mkRoot</span><span class='layout'>,</span> <span class='varid'>mkElement</span><span class='layout'>,</span> <span class='varid'>mkAttr</span><span class='layout'>,</span> <span class='varid'>mkText</span><span class='layout'>)</span>-<a name="line-14"></a>-<a name="line-15"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ListArrows</span>-<a name="line-16"></a>-<a name="line-17"></a><a name="relaxSchemaArrow"></a><span class='definition'>relaxSchemaArrow</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowList</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='conid'>XmlTree</span>-<a name="line-18"></a><span class='definition'>relaxSchemaArrow</span> <span class='keyglyph'>=</span> <span class='varid'>constA</span> <span class='varid'>relaxSchemaTree</span>-<a name="line-19"></a>-<a name="line-20"></a><a name="relaxSchemaTree"></a><span class='definition'>relaxSchemaTree</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span>-<a name="line-21"></a><span class='definition'>relaxSchemaTree</span> <span class='keyglyph'>=</span>-<a name="line-22"></a> <span class='keyword'>let</span>-<a name="line-23"></a> <span class='varid'>ns1</span> <span class='keyglyph'>=</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span>-<a name="line-24"></a> <span class='varid'>qn1</span> <span class='keyglyph'>=</span> <span class='varid'>mkSNsName</span> <span class='str'>"RelaxContext:xml"</span>-<a name="line-25"></a> <span class='varid'>qn2</span> <span class='keyglyph'>=</span> <span class='varid'>mkSNsName</span> <span class='str'>"RelaxContextBaseURI"</span>-<a name="line-26"></a> <span class='varid'>qn3</span> <span class='keyglyph'>=</span> <span class='varid'>mkSNsName</span> <span class='str'>"RelaxContextDefault"</span>-<a name="line-27"></a> <span class='varid'>qn4</span> <span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"anyName"</span> <span class='varid'>ns1</span>-<a name="line-28"></a> <span class='varid'>qn5</span> <span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"attribute"</span> <span class='varid'>ns1</span>-<a name="line-29"></a> <span class='varid'>qn6</span> <span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"choice"</span> <span class='varid'>ns1</span>-<a name="line-30"></a> <span class='varid'>qn7</span> <span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"data"</span> <span class='varid'>ns1</span>-<a name="line-31"></a> <span class='varid'>qn8</span> <span class='keyglyph'>=</span> <span class='varid'>mkSNsName</span> <span class='str'>"datatypeLibrary"</span>-<a name="line-32"></a> <span class='varid'>qn9</span> <span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"define"</span> <span class='varid'>ns1</span>-<a name="line-33"></a> <span class='varid'>qn10</span> <span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"element"</span> <span class='varid'>ns1</span>-<a name="line-34"></a> <span class='varid'>qn11</span> <span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"empty"</span> <span class='varid'>ns1</span>-<a name="line-35"></a> <span class='varid'>qn12</span> <span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"except"</span> <span class='varid'>ns1</span>-<a name="line-36"></a> <span class='varid'>qn13</span> <span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"grammar"</span> <span class='varid'>ns1</span>-<a name="line-37"></a> <span class='varid'>qn14</span> <span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"group"</span> <span class='varid'>ns1</span>-<a name="line-38"></a> <span class='varid'>qn15</span> <span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"interleave"</span> <span class='varid'>ns1</span>-<a name="line-39"></a> <span class='varid'>qn16</span> <span class='keyglyph'>=</span> <span class='varid'>mkSNsName</span> <span class='str'>"name"</span>-<a name="line-40"></a> <span class='varid'>qn17</span> <span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"name"</span> <span class='varid'>ns1</span>-<a name="line-41"></a> <span class='varid'>qn18</span> <span class='keyglyph'>=</span> <span class='varid'>mkSNsName</span> <span class='str'>"ns"</span>-<a name="line-42"></a> <span class='varid'>qn19</span> <span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"nsName"</span> <span class='varid'>ns1</span>-<a name="line-43"></a> <span class='varid'>qn20</span> <span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"oneOrMore"</span> <span class='varid'>ns1</span>-<a name="line-44"></a> <span class='varid'>qn21</span> <span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"ref"</span> <span class='varid'>ns1</span>-<a name="line-45"></a> <span class='varid'>qn22</span> <span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"start"</span> <span class='varid'>ns1</span>-<a name="line-46"></a> <span class='varid'>qn23</span> <span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"text"</span> <span class='varid'>ns1</span>-<a name="line-47"></a> <span class='varid'>qn24</span> <span class='keyglyph'>=</span> <span class='varid'>mkSNsName</span> <span class='str'>"type"</span>-<a name="line-48"></a> <span class='varid'>qn25</span> <span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='str'>"value"</span> <span class='varid'>ns1</span>-<a name="line-49"></a> <span class='keyword'>in</span>-<a name="line-50"></a> <span class='varid'>mkRoot</span> <span class='conid'>[]</span>-<a name="line-51"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn13</span> <span class='conid'>[]</span>-<a name="line-52"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn22</span> <span class='conid'>[]</span>-<a name="line-53"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-54"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"14"</span> <span class='keyglyph'>]</span>-<a name="line-55"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-56"></a> <span class='keyglyph'>]</span>-<a name="line-57"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>-<a name="line-58"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"44"</span> <span class='keyglyph'>]</span>-<a name="line-59"></a> <span class='keyglyph'>]</span>-<a name="line-60"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>-<a name="line-61"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-62"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-63"></a> <span class='keyglyph'>]</span>-<a name="line-64"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"externalRef"</span>-<a name="line-65"></a> <span class='keyglyph'>]</span>-<a name="line-66"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-67"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-68"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-69"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-70"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-71"></a> <span class='keyglyph'>]</span>-<a name="line-72"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"href"</span>-<a name="line-73"></a> <span class='keyglyph'>]</span>-<a name="line-74"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-75"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>-<a name="line-76"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-77"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-78"></a> <span class='keyglyph'>]</span>-<a name="line-79"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-80"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-81"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-82"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-83"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-84"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-85"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-86"></a> <span class='keyglyph'>]</span>-<a name="line-87"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>-<a name="line-88"></a> <span class='keyglyph'>]</span>-<a name="line-89"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-90"></a> <span class='keyglyph'>]</span>-<a name="line-91"></a> <span class='keyglyph'>]</span>-<a name="line-92"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-93"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-94"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-95"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-96"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-97"></a> <span class='keyglyph'>]</span>-<a name="line-98"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>-<a name="line-99"></a> <span class='keyglyph'>]</span>-<a name="line-100"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-101"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>-<a name="line-102"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-103"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-104"></a> <span class='keyglyph'>]</span>-<a name="line-105"></a> <span class='keyglyph'>]</span>-<a name="line-106"></a> <span class='keyglyph'>]</span>-<a name="line-107"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-108"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-109"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-110"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-111"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>-<a name="line-112"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>-<a name="line-113"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-114"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-115"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-116"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-117"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-118"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-119"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-120"></a> <span class='keyglyph'>]</span>-<a name="line-121"></a> <span class='keyglyph'>]</span>-<a name="line-122"></a> <span class='keyglyph'>]</span>-<a name="line-123"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-124"></a> <span class='keyglyph'>]</span>-<a name="line-125"></a> <span class='keyglyph'>]</span>-<a name="line-126"></a> <span class='keyglyph'>]</span>-<a name="line-127"></a> <span class='keyglyph'>]</span>-<a name="line-128"></a> <span class='keyglyph'>]</span>-<a name="line-129"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-130"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-131"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-132"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-133"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"16"</span> <span class='keyglyph'>]</span>-<a name="line-134"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-135"></a> <span class='keyglyph'>]</span>-<a name="line-136"></a> <span class='keyglyph'>]</span>-<a name="line-137"></a> <span class='keyglyph'>]</span>-<a name="line-138"></a> <span class='keyglyph'>]</span>-<a name="line-139"></a> <span class='keyglyph'>]</span>-<a name="line-140"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>-<a name="line-141"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"43"</span> <span class='keyglyph'>]</span>-<a name="line-142"></a> <span class='keyglyph'>]</span>-<a name="line-143"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>-<a name="line-144"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-145"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-146"></a> <span class='keyglyph'>]</span>-<a name="line-147"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"notAllowed"</span>-<a name="line-148"></a> <span class='keyglyph'>]</span>-<a name="line-149"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-150"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-151"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-152"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-153"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-154"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-155"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-156"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-157"></a> <span class='keyglyph'>]</span>-<a name="line-158"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>-<a name="line-159"></a> <span class='keyglyph'>]</span>-<a name="line-160"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-161"></a> <span class='keyglyph'>]</span>-<a name="line-162"></a> <span class='keyglyph'>]</span>-<a name="line-163"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-164"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-165"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-166"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-167"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-168"></a> <span class='keyglyph'>]</span>-<a name="line-169"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>-<a name="line-170"></a> <span class='keyglyph'>]</span>-<a name="line-171"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-172"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>-<a name="line-173"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-174"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-175"></a> <span class='keyglyph'>]</span>-<a name="line-176"></a> <span class='keyglyph'>]</span>-<a name="line-177"></a> <span class='keyglyph'>]</span>-<a name="line-178"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-179"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-180"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-181"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-182"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>-<a name="line-183"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>-<a name="line-184"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-185"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-186"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-187"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-188"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-189"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-190"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-191"></a> <span class='keyglyph'>]</span>-<a name="line-192"></a> <span class='keyglyph'>]</span>-<a name="line-193"></a> <span class='keyglyph'>]</span>-<a name="line-194"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-195"></a> <span class='keyglyph'>]</span>-<a name="line-196"></a> <span class='keyglyph'>]</span>-<a name="line-197"></a> <span class='keyglyph'>]</span>-<a name="line-198"></a> <span class='keyglyph'>]</span>-<a name="line-199"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-200"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-201"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-202"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-203"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"16"</span> <span class='keyglyph'>]</span>-<a name="line-204"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-205"></a> <span class='keyglyph'>]</span>-<a name="line-206"></a> <span class='keyglyph'>]</span>-<a name="line-207"></a> <span class='keyglyph'>]</span>-<a name="line-208"></a> <span class='keyglyph'>]</span>-<a name="line-209"></a> <span class='keyglyph'>]</span>-<a name="line-210"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>-<a name="line-211"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"40"</span> <span class='keyglyph'>]</span>-<a name="line-212"></a> <span class='keyglyph'>]</span>-<a name="line-213"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>-<a name="line-214"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-215"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-216"></a> <span class='keyglyph'>]</span>-<a name="line-217"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"data"</span>-<a name="line-218"></a> <span class='keyglyph'>]</span>-<a name="line-219"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-220"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-221"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-222"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-223"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-224"></a> <span class='keyglyph'>]</span>-<a name="line-225"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"type"</span>-<a name="line-226"></a> <span class='keyglyph'>]</span>-<a name="line-227"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-228"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"NCName"</span> <span class='keyglyph'>]</span>-<a name="line-229"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-230"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-231"></a> <span class='keyglyph'>]</span>-<a name="line-232"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-233"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-234"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-235"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-236"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-237"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-238"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-239"></a> <span class='keyglyph'>]</span>-<a name="line-240"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>-<a name="line-241"></a> <span class='keyglyph'>]</span>-<a name="line-242"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-243"></a> <span class='keyglyph'>]</span>-<a name="line-244"></a> <span class='keyglyph'>]</span>-<a name="line-245"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-246"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-247"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-248"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-249"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-250"></a> <span class='keyglyph'>]</span>-<a name="line-251"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>-<a name="line-252"></a> <span class='keyglyph'>]</span>-<a name="line-253"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-254"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>-<a name="line-255"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-256"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-257"></a> <span class='keyglyph'>]</span>-<a name="line-258"></a> <span class='keyglyph'>]</span>-<a name="line-259"></a> <span class='keyglyph'>]</span>-<a name="line-260"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-261"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-262"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-263"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-264"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>-<a name="line-265"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>-<a name="line-266"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-267"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-268"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-269"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-270"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-271"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-272"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-273"></a> <span class='keyglyph'>]</span>-<a name="line-274"></a> <span class='keyglyph'>]</span>-<a name="line-275"></a> <span class='keyglyph'>]</span>-<a name="line-276"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-277"></a> <span class='keyglyph'>]</span>-<a name="line-278"></a> <span class='keyglyph'>]</span>-<a name="line-279"></a> <span class='keyglyph'>]</span>-<a name="line-280"></a> <span class='keyglyph'>]</span>-<a name="line-281"></a> <span class='keyglyph'>]</span>-<a name="line-282"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>-<a name="line-283"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-284"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-285"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-286"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-287"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"16"</span> <span class='keyglyph'>]</span>-<a name="line-288"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-289"></a> <span class='keyglyph'>]</span>-<a name="line-290"></a> <span class='keyglyph'>]</span>-<a name="line-291"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-292"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-293"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-294"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-295"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-296"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"41"</span> <span class='keyglyph'>]</span>-<a name="line-297"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-298"></a> <span class='keyglyph'>]</span>-<a name="line-299"></a> <span class='keyglyph'>]</span>-<a name="line-300"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-301"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-302"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-303"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"42"</span> <span class='keyglyph'>]</span>-<a name="line-304"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-305"></a> <span class='keyglyph'>]</span>-<a name="line-306"></a> <span class='keyglyph'>]</span>-<a name="line-307"></a> <span class='keyglyph'>]</span>-<a name="line-308"></a> <span class='keyglyph'>]</span>-<a name="line-309"></a> <span class='keyglyph'>]</span>-<a name="line-310"></a> <span class='keyglyph'>]</span>-<a name="line-311"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>-<a name="line-312"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"42"</span> <span class='keyglyph'>]</span>-<a name="line-313"></a> <span class='keyglyph'>]</span>-<a name="line-314"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>-<a name="line-315"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-316"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-317"></a> <span class='keyglyph'>]</span>-<a name="line-318"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"except"</span>-<a name="line-319"></a> <span class='keyglyph'>]</span>-<a name="line-320"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-321"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-322"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-323"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-324"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-325"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-326"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-327"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-328"></a> <span class='keyglyph'>]</span>-<a name="line-329"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>-<a name="line-330"></a> <span class='keyglyph'>]</span>-<a name="line-331"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-332"></a> <span class='keyglyph'>]</span>-<a name="line-333"></a> <span class='keyglyph'>]</span>-<a name="line-334"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-335"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-336"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-337"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-338"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-339"></a> <span class='keyglyph'>]</span>-<a name="line-340"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>-<a name="line-341"></a> <span class='keyglyph'>]</span>-<a name="line-342"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-343"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>-<a name="line-344"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-345"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-346"></a> <span class='keyglyph'>]</span>-<a name="line-347"></a> <span class='keyglyph'>]</span>-<a name="line-348"></a> <span class='keyglyph'>]</span>-<a name="line-349"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-350"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-351"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-352"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-353"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>-<a name="line-354"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>-<a name="line-355"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-356"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-357"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-358"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-359"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-360"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-361"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-362"></a> <span class='keyglyph'>]</span>-<a name="line-363"></a> <span class='keyglyph'>]</span>-<a name="line-364"></a> <span class='keyglyph'>]</span>-<a name="line-365"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-366"></a> <span class='keyglyph'>]</span>-<a name="line-367"></a> <span class='keyglyph'>]</span>-<a name="line-368"></a> <span class='keyglyph'>]</span>-<a name="line-369"></a> <span class='keyglyph'>]</span>-<a name="line-370"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>-<a name="line-371"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-372"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-373"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-374"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-375"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"16"</span> <span class='keyglyph'>]</span>-<a name="line-376"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-377"></a> <span class='keyglyph'>]</span>-<a name="line-378"></a> <span class='keyglyph'>]</span>-<a name="line-379"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-380"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-381"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-382"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-383"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-384"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-385"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-386"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-387"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-388"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-389"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-390"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-391"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-392"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-393"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-394"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-395"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-396"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-397"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-398"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-399"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"25"</span> <span class='keyglyph'>]</span>-<a name="line-400"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-401"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-402"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"26"</span> <span class='keyglyph'>]</span>-<a name="line-403"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-404"></a> <span class='keyglyph'>]</span>-<a name="line-405"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-406"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"27"</span> <span class='keyglyph'>]</span>-<a name="line-407"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-408"></a> <span class='keyglyph'>]</span>-<a name="line-409"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-410"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"28"</span> <span class='keyglyph'>]</span>-<a name="line-411"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-412"></a> <span class='keyglyph'>]</span>-<a name="line-413"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-414"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"29"</span> <span class='keyglyph'>]</span>-<a name="line-415"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-416"></a> <span class='keyglyph'>]</span>-<a name="line-417"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-418"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"30"</span> <span class='keyglyph'>]</span>-<a name="line-419"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-420"></a> <span class='keyglyph'>]</span>-<a name="line-421"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-422"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"31"</span> <span class='keyglyph'>]</span>-<a name="line-423"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-424"></a> <span class='keyglyph'>]</span>-<a name="line-425"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-426"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"32"</span> <span class='keyglyph'>]</span>-<a name="line-427"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-428"></a> <span class='keyglyph'>]</span>-<a name="line-429"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-430"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"33"</span> <span class='keyglyph'>]</span>-<a name="line-431"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-432"></a> <span class='keyglyph'>]</span>-<a name="line-433"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-434"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"34"</span> <span class='keyglyph'>]</span>-<a name="line-435"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-436"></a> <span class='keyglyph'>]</span>-<a name="line-437"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-438"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"35"</span> <span class='keyglyph'>]</span>-<a name="line-439"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-440"></a> <span class='keyglyph'>]</span>-<a name="line-441"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-442"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"36"</span> <span class='keyglyph'>]</span>-<a name="line-443"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-444"></a> <span class='keyglyph'>]</span>-<a name="line-445"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-446"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"37"</span> <span class='keyglyph'>]</span>-<a name="line-447"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-448"></a> <span class='keyglyph'>]</span>-<a name="line-449"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-450"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"38"</span> <span class='keyglyph'>]</span>-<a name="line-451"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-452"></a> <span class='keyglyph'>]</span>-<a name="line-453"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-454"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"39"</span> <span class='keyglyph'>]</span>-<a name="line-455"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-456"></a> <span class='keyglyph'>]</span>-<a name="line-457"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-458"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"40"</span> <span class='keyglyph'>]</span>-<a name="line-459"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-460"></a> <span class='keyglyph'>]</span>-<a name="line-461"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-462"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"43"</span> <span class='keyglyph'>]</span>-<a name="line-463"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-464"></a> <span class='keyglyph'>]</span>-<a name="line-465"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-466"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"44"</span> <span class='keyglyph'>]</span>-<a name="line-467"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-468"></a> <span class='keyglyph'>]</span>-<a name="line-469"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-470"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"14"</span> <span class='keyglyph'>]</span>-<a name="line-471"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-472"></a> <span class='keyglyph'>]</span>-<a name="line-473"></a> <span class='keyglyph'>]</span>-<a name="line-474"></a> <span class='keyglyph'>]</span>-<a name="line-475"></a> <span class='keyglyph'>]</span>-<a name="line-476"></a> <span class='keyglyph'>]</span>-<a name="line-477"></a> <span class='keyglyph'>]</span>-<a name="line-478"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>-<a name="line-479"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"41"</span> <span class='keyglyph'>]</span>-<a name="line-480"></a> <span class='keyglyph'>]</span>-<a name="line-481"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>-<a name="line-482"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-483"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-484"></a> <span class='keyglyph'>]</span>-<a name="line-485"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"param"</span>-<a name="line-486"></a> <span class='keyglyph'>]</span>-<a name="line-487"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-488"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-489"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-490"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-491"></a> <span class='keyglyph'>]</span>-<a name="line-492"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"name"</span>-<a name="line-493"></a> <span class='keyglyph'>]</span>-<a name="line-494"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-495"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"NCName"</span> <span class='keyglyph'>]</span>-<a name="line-496"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-497"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-498"></a> <span class='keyglyph'>]</span>-<a name="line-499"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-500"></a> <span class='keyglyph'>]</span>-<a name="line-501"></a> <span class='keyglyph'>]</span>-<a name="line-502"></a> <span class='keyglyph'>]</span>-<a name="line-503"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>-<a name="line-504"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"39"</span> <span class='keyglyph'>]</span>-<a name="line-505"></a> <span class='keyglyph'>]</span>-<a name="line-506"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>-<a name="line-507"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-508"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-509"></a> <span class='keyglyph'>]</span>-<a name="line-510"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"value"</span>-<a name="line-511"></a> <span class='keyglyph'>]</span>-<a name="line-512"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-513"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-514"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-515"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-516"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-517"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-518"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-519"></a> <span class='keyglyph'>]</span>-<a name="line-520"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"type"</span>-<a name="line-521"></a> <span class='keyglyph'>]</span>-<a name="line-522"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-523"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"NCName"</span> <span class='keyglyph'>]</span>-<a name="line-524"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-525"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-526"></a> <span class='keyglyph'>]</span>-<a name="line-527"></a> <span class='keyglyph'>]</span>-<a name="line-528"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-529"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-530"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-531"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-532"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-533"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-534"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-535"></a> <span class='keyglyph'>]</span>-<a name="line-536"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>-<a name="line-537"></a> <span class='keyglyph'>]</span>-<a name="line-538"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-539"></a> <span class='keyglyph'>]</span>-<a name="line-540"></a> <span class='keyglyph'>]</span>-<a name="line-541"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-542"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-543"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-544"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-545"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-546"></a> <span class='keyglyph'>]</span>-<a name="line-547"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>-<a name="line-548"></a> <span class='keyglyph'>]</span>-<a name="line-549"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-550"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>-<a name="line-551"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-552"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-553"></a> <span class='keyglyph'>]</span>-<a name="line-554"></a> <span class='keyglyph'>]</span>-<a name="line-555"></a> <span class='keyglyph'>]</span>-<a name="line-556"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-557"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-558"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-559"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-560"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>-<a name="line-561"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>-<a name="line-562"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-563"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-564"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-565"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-566"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-567"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-568"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-569"></a> <span class='keyglyph'>]</span>-<a name="line-570"></a> <span class='keyglyph'>]</span>-<a name="line-571"></a> <span class='keyglyph'>]</span>-<a name="line-572"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-573"></a> <span class='keyglyph'>]</span>-<a name="line-574"></a> <span class='keyglyph'>]</span>-<a name="line-575"></a> <span class='keyglyph'>]</span>-<a name="line-576"></a> <span class='keyglyph'>]</span>-<a name="line-577"></a> <span class='keyglyph'>]</span>-<a name="line-578"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-579"></a> <span class='keyglyph'>]</span>-<a name="line-580"></a> <span class='keyglyph'>]</span>-<a name="line-581"></a> <span class='keyglyph'>]</span>-<a name="line-582"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>-<a name="line-583"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"38"</span> <span class='keyglyph'>]</span>-<a name="line-584"></a> <span class='keyglyph'>]</span>-<a name="line-585"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>-<a name="line-586"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-587"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-588"></a> <span class='keyglyph'>]</span>-<a name="line-589"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"text"</span>-<a name="line-590"></a> <span class='keyglyph'>]</span>-<a name="line-591"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-592"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-593"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-594"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-595"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-596"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-597"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-598"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-599"></a> <span class='keyglyph'>]</span>-<a name="line-600"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>-<a name="line-601"></a> <span class='keyglyph'>]</span>-<a name="line-602"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-603"></a> <span class='keyglyph'>]</span>-<a name="line-604"></a> <span class='keyglyph'>]</span>-<a name="line-605"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-606"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-607"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-608"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-609"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-610"></a> <span class='keyglyph'>]</span>-<a name="line-611"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>-<a name="line-612"></a> <span class='keyglyph'>]</span>-<a name="line-613"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-614"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>-<a name="line-615"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-616"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-617"></a> <span class='keyglyph'>]</span>-<a name="line-618"></a> <span class='keyglyph'>]</span>-<a name="line-619"></a> <span class='keyglyph'>]</span>-<a name="line-620"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-621"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-622"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-623"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-624"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>-<a name="line-625"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>-<a name="line-626"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-627"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-628"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-629"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-630"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-631"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-632"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-633"></a> <span class='keyglyph'>]</span>-<a name="line-634"></a> <span class='keyglyph'>]</span>-<a name="line-635"></a> <span class='keyglyph'>]</span>-<a name="line-636"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-637"></a> <span class='keyglyph'>]</span>-<a name="line-638"></a> <span class='keyglyph'>]</span>-<a name="line-639"></a> <span class='keyglyph'>]</span>-<a name="line-640"></a> <span class='keyglyph'>]</span>-<a name="line-641"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-642"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-643"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-644"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-645"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"16"</span> <span class='keyglyph'>]</span>-<a name="line-646"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-647"></a> <span class='keyglyph'>]</span>-<a name="line-648"></a> <span class='keyglyph'>]</span>-<a name="line-649"></a> <span class='keyglyph'>]</span>-<a name="line-650"></a> <span class='keyglyph'>]</span>-<a name="line-651"></a> <span class='keyglyph'>]</span>-<a name="line-652"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>-<a name="line-653"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"37"</span> <span class='keyglyph'>]</span>-<a name="line-654"></a> <span class='keyglyph'>]</span>-<a name="line-655"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>-<a name="line-656"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-657"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-658"></a> <span class='keyglyph'>]</span>-<a name="line-659"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"empty"</span>-<a name="line-660"></a> <span class='keyglyph'>]</span>-<a name="line-661"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-662"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-663"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-664"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-665"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-666"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-667"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-668"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-669"></a> <span class='keyglyph'>]</span>-<a name="line-670"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>-<a name="line-671"></a> <span class='keyglyph'>]</span>-<a name="line-672"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-673"></a> <span class='keyglyph'>]</span>-<a name="line-674"></a> <span class='keyglyph'>]</span>-<a name="line-675"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-676"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-677"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-678"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-679"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-680"></a> <span class='keyglyph'>]</span>-<a name="line-681"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>-<a name="line-682"></a> <span class='keyglyph'>]</span>-<a name="line-683"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-684"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>-<a name="line-685"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-686"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-687"></a> <span class='keyglyph'>]</span>-<a name="line-688"></a> <span class='keyglyph'>]</span>-<a name="line-689"></a> <span class='keyglyph'>]</span>-<a name="line-690"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-691"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-692"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-693"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-694"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>-<a name="line-695"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>-<a name="line-696"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-697"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-698"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-699"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-700"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-701"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-702"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-703"></a> <span class='keyglyph'>]</span>-<a name="line-704"></a> <span class='keyglyph'>]</span>-<a name="line-705"></a> <span class='keyglyph'>]</span>-<a name="line-706"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-707"></a> <span class='keyglyph'>]</span>-<a name="line-708"></a> <span class='keyglyph'>]</span>-<a name="line-709"></a> <span class='keyglyph'>]</span>-<a name="line-710"></a> <span class='keyglyph'>]</span>-<a name="line-711"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-712"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-713"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-714"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-715"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"16"</span> <span class='keyglyph'>]</span>-<a name="line-716"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-717"></a> <span class='keyglyph'>]</span>-<a name="line-718"></a> <span class='keyglyph'>]</span>-<a name="line-719"></a> <span class='keyglyph'>]</span>-<a name="line-720"></a> <span class='keyglyph'>]</span>-<a name="line-721"></a> <span class='keyglyph'>]</span>-<a name="line-722"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>-<a name="line-723"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"36"</span> <span class='keyglyph'>]</span>-<a name="line-724"></a> <span class='keyglyph'>]</span>-<a name="line-725"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>-<a name="line-726"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-727"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-728"></a> <span class='keyglyph'>]</span>-<a name="line-729"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"parentRef"</span>-<a name="line-730"></a> <span class='keyglyph'>]</span>-<a name="line-731"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-732"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-733"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-734"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-735"></a> <span class='keyglyph'>]</span>-<a name="line-736"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"name"</span>-<a name="line-737"></a> <span class='keyglyph'>]</span>-<a name="line-738"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-739"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"NCName"</span> <span class='keyglyph'>]</span>-<a name="line-740"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-741"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-742"></a> <span class='keyglyph'>]</span>-<a name="line-743"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-744"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-745"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-746"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-747"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-748"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-749"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-750"></a> <span class='keyglyph'>]</span>-<a name="line-751"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>-<a name="line-752"></a> <span class='keyglyph'>]</span>-<a name="line-753"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-754"></a> <span class='keyglyph'>]</span>-<a name="line-755"></a> <span class='keyglyph'>]</span>-<a name="line-756"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-757"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-758"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-759"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-760"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-761"></a> <span class='keyglyph'>]</span>-<a name="line-762"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>-<a name="line-763"></a> <span class='keyglyph'>]</span>-<a name="line-764"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-765"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>-<a name="line-766"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-767"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-768"></a> <span class='keyglyph'>]</span>-<a name="line-769"></a> <span class='keyglyph'>]</span>-<a name="line-770"></a> <span class='keyglyph'>]</span>-<a name="line-771"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-772"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-773"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-774"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-775"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>-<a name="line-776"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>-<a name="line-777"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-778"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-779"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-780"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-781"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-782"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-783"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-784"></a> <span class='keyglyph'>]</span>-<a name="line-785"></a> <span class='keyglyph'>]</span>-<a name="line-786"></a> <span class='keyglyph'>]</span>-<a name="line-787"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-788"></a> <span class='keyglyph'>]</span>-<a name="line-789"></a> <span class='keyglyph'>]</span>-<a name="line-790"></a> <span class='keyglyph'>]</span>-<a name="line-791"></a> <span class='keyglyph'>]</span>-<a name="line-792"></a> <span class='keyglyph'>]</span>-<a name="line-793"></a> <span class='keyglyph'>]</span>-<a name="line-794"></a> <span class='keyglyph'>]</span>-<a name="line-795"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>-<a name="line-796"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"35"</span> <span class='keyglyph'>]</span>-<a name="line-797"></a> <span class='keyglyph'>]</span>-<a name="line-798"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>-<a name="line-799"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-800"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-801"></a> <span class='keyglyph'>]</span>-<a name="line-802"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ref"</span>-<a name="line-803"></a> <span class='keyglyph'>]</span>-<a name="line-804"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-805"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-806"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-807"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-808"></a> <span class='keyglyph'>]</span>-<a name="line-809"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"name"</span>-<a name="line-810"></a> <span class='keyglyph'>]</span>-<a name="line-811"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-812"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"NCName"</span> <span class='keyglyph'>]</span>-<a name="line-813"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-814"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-815"></a> <span class='keyglyph'>]</span>-<a name="line-816"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-817"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-818"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-819"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-820"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-821"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-822"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-823"></a> <span class='keyglyph'>]</span>-<a name="line-824"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>-<a name="line-825"></a> <span class='keyglyph'>]</span>-<a name="line-826"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-827"></a> <span class='keyglyph'>]</span>-<a name="line-828"></a> <span class='keyglyph'>]</span>-<a name="line-829"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-830"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-831"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-832"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-833"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-834"></a> <span class='keyglyph'>]</span>-<a name="line-835"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>-<a name="line-836"></a> <span class='keyglyph'>]</span>-<a name="line-837"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-838"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>-<a name="line-839"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-840"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-841"></a> <span class='keyglyph'>]</span>-<a name="line-842"></a> <span class='keyglyph'>]</span>-<a name="line-843"></a> <span class='keyglyph'>]</span>-<a name="line-844"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-845"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-846"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-847"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-848"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>-<a name="line-849"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>-<a name="line-850"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-851"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-852"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-853"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-854"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-855"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-856"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-857"></a> <span class='keyglyph'>]</span>-<a name="line-858"></a> <span class='keyglyph'>]</span>-<a name="line-859"></a> <span class='keyglyph'>]</span>-<a name="line-860"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-861"></a> <span class='keyglyph'>]</span>-<a name="line-862"></a> <span class='keyglyph'>]</span>-<a name="line-863"></a> <span class='keyglyph'>]</span>-<a name="line-864"></a> <span class='keyglyph'>]</span>-<a name="line-865"></a> <span class='keyglyph'>]</span>-<a name="line-866"></a> <span class='keyglyph'>]</span>-<a name="line-867"></a> <span class='keyglyph'>]</span>-<a name="line-868"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>-<a name="line-869"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"34"</span> <span class='keyglyph'>]</span>-<a name="line-870"></a> <span class='keyglyph'>]</span>-<a name="line-871"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>-<a name="line-872"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-873"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-874"></a> <span class='keyglyph'>]</span>-<a name="line-875"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"mixed"</span>-<a name="line-876"></a> <span class='keyglyph'>]</span>-<a name="line-877"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-878"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-879"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-880"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-881"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-882"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-883"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-884"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-885"></a> <span class='keyglyph'>]</span>-<a name="line-886"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>-<a name="line-887"></a> <span class='keyglyph'>]</span>-<a name="line-888"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-889"></a> <span class='keyglyph'>]</span>-<a name="line-890"></a> <span class='keyglyph'>]</span>-<a name="line-891"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-892"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-893"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-894"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-895"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-896"></a> <span class='keyglyph'>]</span>-<a name="line-897"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>-<a name="line-898"></a> <span class='keyglyph'>]</span>-<a name="line-899"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-900"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>-<a name="line-901"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-902"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-903"></a> <span class='keyglyph'>]</span>-<a name="line-904"></a> <span class='keyglyph'>]</span>-<a name="line-905"></a> <span class='keyglyph'>]</span>-<a name="line-906"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-907"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-908"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-909"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-910"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>-<a name="line-911"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>-<a name="line-912"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-913"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-914"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-915"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-916"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-917"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-918"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-919"></a> <span class='keyglyph'>]</span>-<a name="line-920"></a> <span class='keyglyph'>]</span>-<a name="line-921"></a> <span class='keyglyph'>]</span>-<a name="line-922"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-923"></a> <span class='keyglyph'>]</span>-<a name="line-924"></a> <span class='keyglyph'>]</span>-<a name="line-925"></a> <span class='keyglyph'>]</span>-<a name="line-926"></a> <span class='keyglyph'>]</span>-<a name="line-927"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>-<a name="line-928"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-929"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-930"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-931"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-932"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"16"</span> <span class='keyglyph'>]</span>-<a name="line-933"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-934"></a> <span class='keyglyph'>]</span>-<a name="line-935"></a> <span class='keyglyph'>]</span>-<a name="line-936"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-937"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-938"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-939"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-940"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-941"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-942"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-943"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-944"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-945"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-946"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-947"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-948"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-949"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-950"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-951"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-952"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-953"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-954"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-955"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-956"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"25"</span> <span class='keyglyph'>]</span>-<a name="line-957"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-958"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-959"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"26"</span> <span class='keyglyph'>]</span>-<a name="line-960"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-961"></a> <span class='keyglyph'>]</span>-<a name="line-962"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-963"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"27"</span> <span class='keyglyph'>]</span>-<a name="line-964"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-965"></a> <span class='keyglyph'>]</span>-<a name="line-966"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-967"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"28"</span> <span class='keyglyph'>]</span>-<a name="line-968"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-969"></a> <span class='keyglyph'>]</span>-<a name="line-970"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-971"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"29"</span> <span class='keyglyph'>]</span>-<a name="line-972"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-973"></a> <span class='keyglyph'>]</span>-<a name="line-974"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-975"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"30"</span> <span class='keyglyph'>]</span>-<a name="line-976"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-977"></a> <span class='keyglyph'>]</span>-<a name="line-978"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-979"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"31"</span> <span class='keyglyph'>]</span>-<a name="line-980"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-981"></a> <span class='keyglyph'>]</span>-<a name="line-982"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-983"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"32"</span> <span class='keyglyph'>]</span>-<a name="line-984"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-985"></a> <span class='keyglyph'>]</span>-<a name="line-986"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-987"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"33"</span> <span class='keyglyph'>]</span>-<a name="line-988"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-989"></a> <span class='keyglyph'>]</span>-<a name="line-990"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-991"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"34"</span> <span class='keyglyph'>]</span>-<a name="line-992"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-993"></a> <span class='keyglyph'>]</span>-<a name="line-994"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-995"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"35"</span> <span class='keyglyph'>]</span>-<a name="line-996"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-997"></a> <span class='keyglyph'>]</span>-<a name="line-998"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-999"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"36"</span> <span class='keyglyph'>]</span>-<a name="line-1000"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1001"></a> <span class='keyglyph'>]</span>-<a name="line-1002"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1003"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"37"</span> <span class='keyglyph'>]</span>-<a name="line-1004"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1005"></a> <span class='keyglyph'>]</span>-<a name="line-1006"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1007"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"38"</span> <span class='keyglyph'>]</span>-<a name="line-1008"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1009"></a> <span class='keyglyph'>]</span>-<a name="line-1010"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1011"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"39"</span> <span class='keyglyph'>]</span>-<a name="line-1012"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1013"></a> <span class='keyglyph'>]</span>-<a name="line-1014"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1015"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"40"</span> <span class='keyglyph'>]</span>-<a name="line-1016"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1017"></a> <span class='keyglyph'>]</span>-<a name="line-1018"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1019"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"43"</span> <span class='keyglyph'>]</span>-<a name="line-1020"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1021"></a> <span class='keyglyph'>]</span>-<a name="line-1022"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1023"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"44"</span> <span class='keyglyph'>]</span>-<a name="line-1024"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1025"></a> <span class='keyglyph'>]</span>-<a name="line-1026"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1027"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"14"</span> <span class='keyglyph'>]</span>-<a name="line-1028"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1029"></a> <span class='keyglyph'>]</span>-<a name="line-1030"></a> <span class='keyglyph'>]</span>-<a name="line-1031"></a> <span class='keyglyph'>]</span>-<a name="line-1032"></a> <span class='keyglyph'>]</span>-<a name="line-1033"></a> <span class='keyglyph'>]</span>-<a name="line-1034"></a> <span class='keyglyph'>]</span>-<a name="line-1035"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>-<a name="line-1036"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"33"</span> <span class='keyglyph'>]</span>-<a name="line-1037"></a> <span class='keyglyph'>]</span>-<a name="line-1038"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>-<a name="line-1039"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-1040"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-1041"></a> <span class='keyglyph'>]</span>-<a name="line-1042"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"list"</span>-<a name="line-1043"></a> <span class='keyglyph'>]</span>-<a name="line-1044"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-1045"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-1046"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-1047"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1048"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1049"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-1050"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-1051"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-1052"></a> <span class='keyglyph'>]</span>-<a name="line-1053"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>-<a name="line-1054"></a> <span class='keyglyph'>]</span>-<a name="line-1055"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1056"></a> <span class='keyglyph'>]</span>-<a name="line-1057"></a> <span class='keyglyph'>]</span>-<a name="line-1058"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1059"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1060"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-1061"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-1062"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-1063"></a> <span class='keyglyph'>]</span>-<a name="line-1064"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>-<a name="line-1065"></a> <span class='keyglyph'>]</span>-<a name="line-1066"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-1067"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>-<a name="line-1068"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-1069"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1070"></a> <span class='keyglyph'>]</span>-<a name="line-1071"></a> <span class='keyglyph'>]</span>-<a name="line-1072"></a> <span class='keyglyph'>]</span>-<a name="line-1073"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1074"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1075"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-1076"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-1077"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>-<a name="line-1078"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>-<a name="line-1079"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1080"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-1081"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-1082"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1083"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-1084"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-1085"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1086"></a> <span class='keyglyph'>]</span>-<a name="line-1087"></a> <span class='keyglyph'>]</span>-<a name="line-1088"></a> <span class='keyglyph'>]</span>-<a name="line-1089"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1090"></a> <span class='keyglyph'>]</span>-<a name="line-1091"></a> <span class='keyglyph'>]</span>-<a name="line-1092"></a> <span class='keyglyph'>]</span>-<a name="line-1093"></a> <span class='keyglyph'>]</span>-<a name="line-1094"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>-<a name="line-1095"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1096"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1097"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-1098"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1099"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"16"</span> <span class='keyglyph'>]</span>-<a name="line-1100"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1101"></a> <span class='keyglyph'>]</span>-<a name="line-1102"></a> <span class='keyglyph'>]</span>-<a name="line-1103"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-1104"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1105"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1106"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1107"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1108"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1109"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1110"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1111"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1112"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1113"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1114"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1115"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1116"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1117"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1118"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1119"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1120"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1121"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1122"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1123"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"25"</span> <span class='keyglyph'>]</span>-<a name="line-1124"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1125"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1126"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"26"</span> <span class='keyglyph'>]</span>-<a name="line-1127"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1128"></a> <span class='keyglyph'>]</span>-<a name="line-1129"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1130"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"27"</span> <span class='keyglyph'>]</span>-<a name="line-1131"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1132"></a> <span class='keyglyph'>]</span>-<a name="line-1133"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1134"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"28"</span> <span class='keyglyph'>]</span>-<a name="line-1135"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1136"></a> <span class='keyglyph'>]</span>-<a name="line-1137"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1138"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"29"</span> <span class='keyglyph'>]</span>-<a name="line-1139"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1140"></a> <span class='keyglyph'>]</span>-<a name="line-1141"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1142"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"30"</span> <span class='keyglyph'>]</span>-<a name="line-1143"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1144"></a> <span class='keyglyph'>]</span>-<a name="line-1145"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1146"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"31"</span> <span class='keyglyph'>]</span>-<a name="line-1147"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1148"></a> <span class='keyglyph'>]</span>-<a name="line-1149"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1150"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"32"</span> <span class='keyglyph'>]</span>-<a name="line-1151"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1152"></a> <span class='keyglyph'>]</span>-<a name="line-1153"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1154"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"33"</span> <span class='keyglyph'>]</span>-<a name="line-1155"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1156"></a> <span class='keyglyph'>]</span>-<a name="line-1157"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1158"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"34"</span> <span class='keyglyph'>]</span>-<a name="line-1159"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1160"></a> <span class='keyglyph'>]</span>-<a name="line-1161"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1162"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"35"</span> <span class='keyglyph'>]</span>-<a name="line-1163"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1164"></a> <span class='keyglyph'>]</span>-<a name="line-1165"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1166"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"36"</span> <span class='keyglyph'>]</span>-<a name="line-1167"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1168"></a> <span class='keyglyph'>]</span>-<a name="line-1169"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1170"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"37"</span> <span class='keyglyph'>]</span>-<a name="line-1171"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1172"></a> <span class='keyglyph'>]</span>-<a name="line-1173"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1174"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"38"</span> <span class='keyglyph'>]</span>-<a name="line-1175"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1176"></a> <span class='keyglyph'>]</span>-<a name="line-1177"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1178"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"39"</span> <span class='keyglyph'>]</span>-<a name="line-1179"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1180"></a> <span class='keyglyph'>]</span>-<a name="line-1181"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1182"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"40"</span> <span class='keyglyph'>]</span>-<a name="line-1183"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1184"></a> <span class='keyglyph'>]</span>-<a name="line-1185"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1186"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"43"</span> <span class='keyglyph'>]</span>-<a name="line-1187"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1188"></a> <span class='keyglyph'>]</span>-<a name="line-1189"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1190"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"44"</span> <span class='keyglyph'>]</span>-<a name="line-1191"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1192"></a> <span class='keyglyph'>]</span>-<a name="line-1193"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1194"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"14"</span> <span class='keyglyph'>]</span>-<a name="line-1195"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1196"></a> <span class='keyglyph'>]</span>-<a name="line-1197"></a> <span class='keyglyph'>]</span>-<a name="line-1198"></a> <span class='keyglyph'>]</span>-<a name="line-1199"></a> <span class='keyglyph'>]</span>-<a name="line-1200"></a> <span class='keyglyph'>]</span>-<a name="line-1201"></a> <span class='keyglyph'>]</span>-<a name="line-1202"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>-<a name="line-1203"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"32"</span> <span class='keyglyph'>]</span>-<a name="line-1204"></a> <span class='keyglyph'>]</span>-<a name="line-1205"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>-<a name="line-1206"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-1207"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-1208"></a> <span class='keyglyph'>]</span>-<a name="line-1209"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"oneOrMore"</span>-<a name="line-1210"></a> <span class='keyglyph'>]</span>-<a name="line-1211"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-1212"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-1213"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-1214"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1215"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1216"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-1217"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-1218"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-1219"></a> <span class='keyglyph'>]</span>-<a name="line-1220"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>-<a name="line-1221"></a> <span class='keyglyph'>]</span>-<a name="line-1222"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1223"></a> <span class='keyglyph'>]</span>-<a name="line-1224"></a> <span class='keyglyph'>]</span>-<a name="line-1225"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1226"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1227"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-1228"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-1229"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-1230"></a> <span class='keyglyph'>]</span>-<a name="line-1231"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>-<a name="line-1232"></a> <span class='keyglyph'>]</span>-<a name="line-1233"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-1234"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>-<a name="line-1235"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-1236"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1237"></a> <span class='keyglyph'>]</span>-<a name="line-1238"></a> <span class='keyglyph'>]</span>-<a name="line-1239"></a> <span class='keyglyph'>]</span>-<a name="line-1240"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1241"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1242"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-1243"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-1244"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>-<a name="line-1245"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>-<a name="line-1246"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1247"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-1248"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-1249"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1250"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-1251"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-1252"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1253"></a> <span class='keyglyph'>]</span>-<a name="line-1254"></a> <span class='keyglyph'>]</span>-<a name="line-1255"></a> <span class='keyglyph'>]</span>-<a name="line-1256"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1257"></a> <span class='keyglyph'>]</span>-<a name="line-1258"></a> <span class='keyglyph'>]</span>-<a name="line-1259"></a> <span class='keyglyph'>]</span>-<a name="line-1260"></a> <span class='keyglyph'>]</span>-<a name="line-1261"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>-<a name="line-1262"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1263"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1264"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-1265"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1266"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"16"</span> <span class='keyglyph'>]</span>-<a name="line-1267"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1268"></a> <span class='keyglyph'>]</span>-<a name="line-1269"></a> <span class='keyglyph'>]</span>-<a name="line-1270"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-1271"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1272"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1273"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1274"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1275"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1276"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1277"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1278"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1279"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1280"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1281"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1282"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1283"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1284"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1285"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1286"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1287"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1288"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1289"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1290"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"25"</span> <span class='keyglyph'>]</span>-<a name="line-1291"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1292"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1293"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"26"</span> <span class='keyglyph'>]</span>-<a name="line-1294"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1295"></a> <span class='keyglyph'>]</span>-<a name="line-1296"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1297"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"27"</span> <span class='keyglyph'>]</span>-<a name="line-1298"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1299"></a> <span class='keyglyph'>]</span>-<a name="line-1300"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1301"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"28"</span> <span class='keyglyph'>]</span>-<a name="line-1302"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1303"></a> <span class='keyglyph'>]</span>-<a name="line-1304"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1305"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"29"</span> <span class='keyglyph'>]</span>-<a name="line-1306"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1307"></a> <span class='keyglyph'>]</span>-<a name="line-1308"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1309"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"30"</span> <span class='keyglyph'>]</span>-<a name="line-1310"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1311"></a> <span class='keyglyph'>]</span>-<a name="line-1312"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1313"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"31"</span> <span class='keyglyph'>]</span>-<a name="line-1314"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1315"></a> <span class='keyglyph'>]</span>-<a name="line-1316"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1317"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"32"</span> <span class='keyglyph'>]</span>-<a name="line-1318"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1319"></a> <span class='keyglyph'>]</span>-<a name="line-1320"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1321"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"33"</span> <span class='keyglyph'>]</span>-<a name="line-1322"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1323"></a> <span class='keyglyph'>]</span>-<a name="line-1324"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1325"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"34"</span> <span class='keyglyph'>]</span>-<a name="line-1326"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1327"></a> <span class='keyglyph'>]</span>-<a name="line-1328"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1329"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"35"</span> <span class='keyglyph'>]</span>-<a name="line-1330"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1331"></a> <span class='keyglyph'>]</span>-<a name="line-1332"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1333"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"36"</span> <span class='keyglyph'>]</span>-<a name="line-1334"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1335"></a> <span class='keyglyph'>]</span>-<a name="line-1336"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1337"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"37"</span> <span class='keyglyph'>]</span>-<a name="line-1338"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1339"></a> <span class='keyglyph'>]</span>-<a name="line-1340"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1341"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"38"</span> <span class='keyglyph'>]</span>-<a name="line-1342"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1343"></a> <span class='keyglyph'>]</span>-<a name="line-1344"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1345"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"39"</span> <span class='keyglyph'>]</span>-<a name="line-1346"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1347"></a> <span class='keyglyph'>]</span>-<a name="line-1348"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1349"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"40"</span> <span class='keyglyph'>]</span>-<a name="line-1350"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1351"></a> <span class='keyglyph'>]</span>-<a name="line-1352"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1353"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"43"</span> <span class='keyglyph'>]</span>-<a name="line-1354"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1355"></a> <span class='keyglyph'>]</span>-<a name="line-1356"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1357"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"44"</span> <span class='keyglyph'>]</span>-<a name="line-1358"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1359"></a> <span class='keyglyph'>]</span>-<a name="line-1360"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1361"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"14"</span> <span class='keyglyph'>]</span>-<a name="line-1362"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1363"></a> <span class='keyglyph'>]</span>-<a name="line-1364"></a> <span class='keyglyph'>]</span>-<a name="line-1365"></a> <span class='keyglyph'>]</span>-<a name="line-1366"></a> <span class='keyglyph'>]</span>-<a name="line-1367"></a> <span class='keyglyph'>]</span>-<a name="line-1368"></a> <span class='keyglyph'>]</span>-<a name="line-1369"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>-<a name="line-1370"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"31"</span> <span class='keyglyph'>]</span>-<a name="line-1371"></a> <span class='keyglyph'>]</span>-<a name="line-1372"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>-<a name="line-1373"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-1374"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-1375"></a> <span class='keyglyph'>]</span>-<a name="line-1376"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"zeroOrMore"</span>-<a name="line-1377"></a> <span class='keyglyph'>]</span>-<a name="line-1378"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-1379"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-1380"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-1381"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1382"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1383"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-1384"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-1385"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-1386"></a> <span class='keyglyph'>]</span>-<a name="line-1387"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>-<a name="line-1388"></a> <span class='keyglyph'>]</span>-<a name="line-1389"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1390"></a> <span class='keyglyph'>]</span>-<a name="line-1391"></a> <span class='keyglyph'>]</span>-<a name="line-1392"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1393"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1394"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-1395"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-1396"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-1397"></a> <span class='keyglyph'>]</span>-<a name="line-1398"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>-<a name="line-1399"></a> <span class='keyglyph'>]</span>-<a name="line-1400"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-1401"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>-<a name="line-1402"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-1403"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1404"></a> <span class='keyglyph'>]</span>-<a name="line-1405"></a> <span class='keyglyph'>]</span>-<a name="line-1406"></a> <span class='keyglyph'>]</span>-<a name="line-1407"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1408"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1409"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-1410"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-1411"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>-<a name="line-1412"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>-<a name="line-1413"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1414"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-1415"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-1416"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1417"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-1418"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-1419"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1420"></a> <span class='keyglyph'>]</span>-<a name="line-1421"></a> <span class='keyglyph'>]</span>-<a name="line-1422"></a> <span class='keyglyph'>]</span>-<a name="line-1423"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1424"></a> <span class='keyglyph'>]</span>-<a name="line-1425"></a> <span class='keyglyph'>]</span>-<a name="line-1426"></a> <span class='keyglyph'>]</span>-<a name="line-1427"></a> <span class='keyglyph'>]</span>-<a name="line-1428"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>-<a name="line-1429"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1430"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1431"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-1432"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1433"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"16"</span> <span class='keyglyph'>]</span>-<a name="line-1434"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1435"></a> <span class='keyglyph'>]</span>-<a name="line-1436"></a> <span class='keyglyph'>]</span>-<a name="line-1437"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-1438"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1439"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1440"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1441"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1442"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1443"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1444"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1445"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1446"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1447"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1448"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1449"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1450"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1451"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1452"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1453"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1454"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1455"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1456"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1457"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"25"</span> <span class='keyglyph'>]</span>-<a name="line-1458"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1459"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1460"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"26"</span> <span class='keyglyph'>]</span>-<a name="line-1461"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1462"></a> <span class='keyglyph'>]</span>-<a name="line-1463"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1464"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"27"</span> <span class='keyglyph'>]</span>-<a name="line-1465"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1466"></a> <span class='keyglyph'>]</span>-<a name="line-1467"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1468"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"28"</span> <span class='keyglyph'>]</span>-<a name="line-1469"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1470"></a> <span class='keyglyph'>]</span>-<a name="line-1471"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1472"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"29"</span> <span class='keyglyph'>]</span>-<a name="line-1473"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1474"></a> <span class='keyglyph'>]</span>-<a name="line-1475"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1476"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"30"</span> <span class='keyglyph'>]</span>-<a name="line-1477"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1478"></a> <span class='keyglyph'>]</span>-<a name="line-1479"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1480"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"31"</span> <span class='keyglyph'>]</span>-<a name="line-1481"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1482"></a> <span class='keyglyph'>]</span>-<a name="line-1483"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1484"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"32"</span> <span class='keyglyph'>]</span>-<a name="line-1485"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1486"></a> <span class='keyglyph'>]</span>-<a name="line-1487"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1488"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"33"</span> <span class='keyglyph'>]</span>-<a name="line-1489"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1490"></a> <span class='keyglyph'>]</span>-<a name="line-1491"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1492"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"34"</span> <span class='keyglyph'>]</span>-<a name="line-1493"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1494"></a> <span class='keyglyph'>]</span>-<a name="line-1495"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1496"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"35"</span> <span class='keyglyph'>]</span>-<a name="line-1497"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1498"></a> <span class='keyglyph'>]</span>-<a name="line-1499"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1500"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"36"</span> <span class='keyglyph'>]</span>-<a name="line-1501"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1502"></a> <span class='keyglyph'>]</span>-<a name="line-1503"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1504"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"37"</span> <span class='keyglyph'>]</span>-<a name="line-1505"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1506"></a> <span class='keyglyph'>]</span>-<a name="line-1507"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1508"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"38"</span> <span class='keyglyph'>]</span>-<a name="line-1509"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1510"></a> <span class='keyglyph'>]</span>-<a name="line-1511"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1512"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"39"</span> <span class='keyglyph'>]</span>-<a name="line-1513"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1514"></a> <span class='keyglyph'>]</span>-<a name="line-1515"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1516"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"40"</span> <span class='keyglyph'>]</span>-<a name="line-1517"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1518"></a> <span class='keyglyph'>]</span>-<a name="line-1519"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1520"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"43"</span> <span class='keyglyph'>]</span>-<a name="line-1521"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1522"></a> <span class='keyglyph'>]</span>-<a name="line-1523"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1524"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"44"</span> <span class='keyglyph'>]</span>-<a name="line-1525"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1526"></a> <span class='keyglyph'>]</span>-<a name="line-1527"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1528"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"14"</span> <span class='keyglyph'>]</span>-<a name="line-1529"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1530"></a> <span class='keyglyph'>]</span>-<a name="line-1531"></a> <span class='keyglyph'>]</span>-<a name="line-1532"></a> <span class='keyglyph'>]</span>-<a name="line-1533"></a> <span class='keyglyph'>]</span>-<a name="line-1534"></a> <span class='keyglyph'>]</span>-<a name="line-1535"></a> <span class='keyglyph'>]</span>-<a name="line-1536"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>-<a name="line-1537"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"30"</span> <span class='keyglyph'>]</span>-<a name="line-1538"></a> <span class='keyglyph'>]</span>-<a name="line-1539"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>-<a name="line-1540"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-1541"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-1542"></a> <span class='keyglyph'>]</span>-<a name="line-1543"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"optional"</span>-<a name="line-1544"></a> <span class='keyglyph'>]</span>-<a name="line-1545"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-1546"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-1547"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-1548"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1549"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1550"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-1551"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-1552"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-1553"></a> <span class='keyglyph'>]</span>-<a name="line-1554"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>-<a name="line-1555"></a> <span class='keyglyph'>]</span>-<a name="line-1556"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1557"></a> <span class='keyglyph'>]</span>-<a name="line-1558"></a> <span class='keyglyph'>]</span>-<a name="line-1559"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1560"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1561"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-1562"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-1563"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-1564"></a> <span class='keyglyph'>]</span>-<a name="line-1565"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>-<a name="line-1566"></a> <span class='keyglyph'>]</span>-<a name="line-1567"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-1568"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>-<a name="line-1569"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-1570"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1571"></a> <span class='keyglyph'>]</span>-<a name="line-1572"></a> <span class='keyglyph'>]</span>-<a name="line-1573"></a> <span class='keyglyph'>]</span>-<a name="line-1574"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1575"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1576"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-1577"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-1578"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>-<a name="line-1579"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>-<a name="line-1580"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1581"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-1582"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-1583"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1584"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-1585"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-1586"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1587"></a> <span class='keyglyph'>]</span>-<a name="line-1588"></a> <span class='keyglyph'>]</span>-<a name="line-1589"></a> <span class='keyglyph'>]</span>-<a name="line-1590"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1591"></a> <span class='keyglyph'>]</span>-<a name="line-1592"></a> <span class='keyglyph'>]</span>-<a name="line-1593"></a> <span class='keyglyph'>]</span>-<a name="line-1594"></a> <span class='keyglyph'>]</span>-<a name="line-1595"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>-<a name="line-1596"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1597"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1598"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-1599"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1600"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"16"</span> <span class='keyglyph'>]</span>-<a name="line-1601"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1602"></a> <span class='keyglyph'>]</span>-<a name="line-1603"></a> <span class='keyglyph'>]</span>-<a name="line-1604"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-1605"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1606"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1607"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1608"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1609"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1610"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1611"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1612"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1613"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1614"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1615"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1616"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1617"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1618"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1619"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1620"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1621"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1622"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1623"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1624"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"25"</span> <span class='keyglyph'>]</span>-<a name="line-1625"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1626"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1627"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"26"</span> <span class='keyglyph'>]</span>-<a name="line-1628"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1629"></a> <span class='keyglyph'>]</span>-<a name="line-1630"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1631"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"27"</span> <span class='keyglyph'>]</span>-<a name="line-1632"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1633"></a> <span class='keyglyph'>]</span>-<a name="line-1634"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1635"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"28"</span> <span class='keyglyph'>]</span>-<a name="line-1636"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1637"></a> <span class='keyglyph'>]</span>-<a name="line-1638"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1639"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"29"</span> <span class='keyglyph'>]</span>-<a name="line-1640"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1641"></a> <span class='keyglyph'>]</span>-<a name="line-1642"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1643"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"30"</span> <span class='keyglyph'>]</span>-<a name="line-1644"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1645"></a> <span class='keyglyph'>]</span>-<a name="line-1646"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1647"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"31"</span> <span class='keyglyph'>]</span>-<a name="line-1648"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1649"></a> <span class='keyglyph'>]</span>-<a name="line-1650"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1651"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"32"</span> <span class='keyglyph'>]</span>-<a name="line-1652"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1653"></a> <span class='keyglyph'>]</span>-<a name="line-1654"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1655"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"33"</span> <span class='keyglyph'>]</span>-<a name="line-1656"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1657"></a> <span class='keyglyph'>]</span>-<a name="line-1658"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1659"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"34"</span> <span class='keyglyph'>]</span>-<a name="line-1660"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1661"></a> <span class='keyglyph'>]</span>-<a name="line-1662"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1663"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"35"</span> <span class='keyglyph'>]</span>-<a name="line-1664"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1665"></a> <span class='keyglyph'>]</span>-<a name="line-1666"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1667"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"36"</span> <span class='keyglyph'>]</span>-<a name="line-1668"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1669"></a> <span class='keyglyph'>]</span>-<a name="line-1670"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1671"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"37"</span> <span class='keyglyph'>]</span>-<a name="line-1672"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1673"></a> <span class='keyglyph'>]</span>-<a name="line-1674"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1675"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"38"</span> <span class='keyglyph'>]</span>-<a name="line-1676"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1677"></a> <span class='keyglyph'>]</span>-<a name="line-1678"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1679"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"39"</span> <span class='keyglyph'>]</span>-<a name="line-1680"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1681"></a> <span class='keyglyph'>]</span>-<a name="line-1682"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1683"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"40"</span> <span class='keyglyph'>]</span>-<a name="line-1684"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1685"></a> <span class='keyglyph'>]</span>-<a name="line-1686"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1687"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"43"</span> <span class='keyglyph'>]</span>-<a name="line-1688"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1689"></a> <span class='keyglyph'>]</span>-<a name="line-1690"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1691"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"44"</span> <span class='keyglyph'>]</span>-<a name="line-1692"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1693"></a> <span class='keyglyph'>]</span>-<a name="line-1694"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1695"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"14"</span> <span class='keyglyph'>]</span>-<a name="line-1696"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1697"></a> <span class='keyglyph'>]</span>-<a name="line-1698"></a> <span class='keyglyph'>]</span>-<a name="line-1699"></a> <span class='keyglyph'>]</span>-<a name="line-1700"></a> <span class='keyglyph'>]</span>-<a name="line-1701"></a> <span class='keyglyph'>]</span>-<a name="line-1702"></a> <span class='keyglyph'>]</span>-<a name="line-1703"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>-<a name="line-1704"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"29"</span> <span class='keyglyph'>]</span>-<a name="line-1705"></a> <span class='keyglyph'>]</span>-<a name="line-1706"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>-<a name="line-1707"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-1708"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-1709"></a> <span class='keyglyph'>]</span>-<a name="line-1710"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"choice"</span>-<a name="line-1711"></a> <span class='keyglyph'>]</span>-<a name="line-1712"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-1713"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-1714"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-1715"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1716"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1717"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-1718"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-1719"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-1720"></a> <span class='keyglyph'>]</span>-<a name="line-1721"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>-<a name="line-1722"></a> <span class='keyglyph'>]</span>-<a name="line-1723"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1724"></a> <span class='keyglyph'>]</span>-<a name="line-1725"></a> <span class='keyglyph'>]</span>-<a name="line-1726"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1727"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1728"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-1729"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-1730"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-1731"></a> <span class='keyglyph'>]</span>-<a name="line-1732"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>-<a name="line-1733"></a> <span class='keyglyph'>]</span>-<a name="line-1734"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-1735"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>-<a name="line-1736"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-1737"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1738"></a> <span class='keyglyph'>]</span>-<a name="line-1739"></a> <span class='keyglyph'>]</span>-<a name="line-1740"></a> <span class='keyglyph'>]</span>-<a name="line-1741"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1742"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1743"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-1744"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-1745"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>-<a name="line-1746"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>-<a name="line-1747"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1748"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-1749"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-1750"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1751"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-1752"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-1753"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1754"></a> <span class='keyglyph'>]</span>-<a name="line-1755"></a> <span class='keyglyph'>]</span>-<a name="line-1756"></a> <span class='keyglyph'>]</span>-<a name="line-1757"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1758"></a> <span class='keyglyph'>]</span>-<a name="line-1759"></a> <span class='keyglyph'>]</span>-<a name="line-1760"></a> <span class='keyglyph'>]</span>-<a name="line-1761"></a> <span class='keyglyph'>]</span>-<a name="line-1762"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>-<a name="line-1763"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1764"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1765"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-1766"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1767"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"16"</span> <span class='keyglyph'>]</span>-<a name="line-1768"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1769"></a> <span class='keyglyph'>]</span>-<a name="line-1770"></a> <span class='keyglyph'>]</span>-<a name="line-1771"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-1772"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1773"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1774"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1775"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1776"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1777"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1778"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1779"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1780"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1781"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1782"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1783"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1784"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1785"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1786"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1787"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1788"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1789"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1790"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1791"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"25"</span> <span class='keyglyph'>]</span>-<a name="line-1792"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1793"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1794"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"26"</span> <span class='keyglyph'>]</span>-<a name="line-1795"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1796"></a> <span class='keyglyph'>]</span>-<a name="line-1797"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1798"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"27"</span> <span class='keyglyph'>]</span>-<a name="line-1799"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1800"></a> <span class='keyglyph'>]</span>-<a name="line-1801"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1802"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"28"</span> <span class='keyglyph'>]</span>-<a name="line-1803"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1804"></a> <span class='keyglyph'>]</span>-<a name="line-1805"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1806"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"29"</span> <span class='keyglyph'>]</span>-<a name="line-1807"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1808"></a> <span class='keyglyph'>]</span>-<a name="line-1809"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1810"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"30"</span> <span class='keyglyph'>]</span>-<a name="line-1811"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1812"></a> <span class='keyglyph'>]</span>-<a name="line-1813"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1814"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"31"</span> <span class='keyglyph'>]</span>-<a name="line-1815"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1816"></a> <span class='keyglyph'>]</span>-<a name="line-1817"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1818"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"32"</span> <span class='keyglyph'>]</span>-<a name="line-1819"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1820"></a> <span class='keyglyph'>]</span>-<a name="line-1821"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1822"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"33"</span> <span class='keyglyph'>]</span>-<a name="line-1823"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1824"></a> <span class='keyglyph'>]</span>-<a name="line-1825"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1826"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"34"</span> <span class='keyglyph'>]</span>-<a name="line-1827"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1828"></a> <span class='keyglyph'>]</span>-<a name="line-1829"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1830"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"35"</span> <span class='keyglyph'>]</span>-<a name="line-1831"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1832"></a> <span class='keyglyph'>]</span>-<a name="line-1833"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1834"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"36"</span> <span class='keyglyph'>]</span>-<a name="line-1835"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1836"></a> <span class='keyglyph'>]</span>-<a name="line-1837"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1838"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"37"</span> <span class='keyglyph'>]</span>-<a name="line-1839"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1840"></a> <span class='keyglyph'>]</span>-<a name="line-1841"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1842"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"38"</span> <span class='keyglyph'>]</span>-<a name="line-1843"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1844"></a> <span class='keyglyph'>]</span>-<a name="line-1845"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1846"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"39"</span> <span class='keyglyph'>]</span>-<a name="line-1847"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1848"></a> <span class='keyglyph'>]</span>-<a name="line-1849"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1850"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"40"</span> <span class='keyglyph'>]</span>-<a name="line-1851"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1852"></a> <span class='keyglyph'>]</span>-<a name="line-1853"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1854"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"43"</span> <span class='keyglyph'>]</span>-<a name="line-1855"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1856"></a> <span class='keyglyph'>]</span>-<a name="line-1857"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1858"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"44"</span> <span class='keyglyph'>]</span>-<a name="line-1859"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1860"></a> <span class='keyglyph'>]</span>-<a name="line-1861"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1862"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"14"</span> <span class='keyglyph'>]</span>-<a name="line-1863"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1864"></a> <span class='keyglyph'>]</span>-<a name="line-1865"></a> <span class='keyglyph'>]</span>-<a name="line-1866"></a> <span class='keyglyph'>]</span>-<a name="line-1867"></a> <span class='keyglyph'>]</span>-<a name="line-1868"></a> <span class='keyglyph'>]</span>-<a name="line-1869"></a> <span class='keyglyph'>]</span>-<a name="line-1870"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>-<a name="line-1871"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"28"</span> <span class='keyglyph'>]</span>-<a name="line-1872"></a> <span class='keyglyph'>]</span>-<a name="line-1873"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>-<a name="line-1874"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-1875"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-1876"></a> <span class='keyglyph'>]</span>-<a name="line-1877"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"interleave"</span>-<a name="line-1878"></a> <span class='keyglyph'>]</span>-<a name="line-1879"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-1880"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-1881"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-1882"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1883"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1884"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-1885"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-1886"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-1887"></a> <span class='keyglyph'>]</span>-<a name="line-1888"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>-<a name="line-1889"></a> <span class='keyglyph'>]</span>-<a name="line-1890"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1891"></a> <span class='keyglyph'>]</span>-<a name="line-1892"></a> <span class='keyglyph'>]</span>-<a name="line-1893"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1894"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1895"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-1896"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-1897"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-1898"></a> <span class='keyglyph'>]</span>-<a name="line-1899"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>-<a name="line-1900"></a> <span class='keyglyph'>]</span>-<a name="line-1901"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-1902"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>-<a name="line-1903"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-1904"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1905"></a> <span class='keyglyph'>]</span>-<a name="line-1906"></a> <span class='keyglyph'>]</span>-<a name="line-1907"></a> <span class='keyglyph'>]</span>-<a name="line-1908"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1909"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1910"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-1911"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-1912"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>-<a name="line-1913"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>-<a name="line-1914"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1915"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-1916"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-1917"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1918"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-1919"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-1920"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1921"></a> <span class='keyglyph'>]</span>-<a name="line-1922"></a> <span class='keyglyph'>]</span>-<a name="line-1923"></a> <span class='keyglyph'>]</span>-<a name="line-1924"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1925"></a> <span class='keyglyph'>]</span>-<a name="line-1926"></a> <span class='keyglyph'>]</span>-<a name="line-1927"></a> <span class='keyglyph'>]</span>-<a name="line-1928"></a> <span class='keyglyph'>]</span>-<a name="line-1929"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>-<a name="line-1930"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1931"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-1932"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-1933"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1934"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"16"</span> <span class='keyglyph'>]</span>-<a name="line-1935"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1936"></a> <span class='keyglyph'>]</span>-<a name="line-1937"></a> <span class='keyglyph'>]</span>-<a name="line-1938"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-1939"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1940"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1941"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1942"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1943"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1944"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1945"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1946"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1947"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1948"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1949"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1950"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1951"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1952"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1953"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1954"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1955"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1956"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-1957"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1958"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"25"</span> <span class='keyglyph'>]</span>-<a name="line-1959"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1960"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1961"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"26"</span> <span class='keyglyph'>]</span>-<a name="line-1962"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1963"></a> <span class='keyglyph'>]</span>-<a name="line-1964"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1965"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"27"</span> <span class='keyglyph'>]</span>-<a name="line-1966"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1967"></a> <span class='keyglyph'>]</span>-<a name="line-1968"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1969"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"28"</span> <span class='keyglyph'>]</span>-<a name="line-1970"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1971"></a> <span class='keyglyph'>]</span>-<a name="line-1972"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1973"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"29"</span> <span class='keyglyph'>]</span>-<a name="line-1974"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1975"></a> <span class='keyglyph'>]</span>-<a name="line-1976"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1977"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"30"</span> <span class='keyglyph'>]</span>-<a name="line-1978"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1979"></a> <span class='keyglyph'>]</span>-<a name="line-1980"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1981"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"31"</span> <span class='keyglyph'>]</span>-<a name="line-1982"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1983"></a> <span class='keyglyph'>]</span>-<a name="line-1984"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1985"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"32"</span> <span class='keyglyph'>]</span>-<a name="line-1986"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1987"></a> <span class='keyglyph'>]</span>-<a name="line-1988"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1989"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"33"</span> <span class='keyglyph'>]</span>-<a name="line-1990"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1991"></a> <span class='keyglyph'>]</span>-<a name="line-1992"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1993"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"34"</span> <span class='keyglyph'>]</span>-<a name="line-1994"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1995"></a> <span class='keyglyph'>]</span>-<a name="line-1996"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-1997"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"35"</span> <span class='keyglyph'>]</span>-<a name="line-1998"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-1999"></a> <span class='keyglyph'>]</span>-<a name="line-2000"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2001"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"36"</span> <span class='keyglyph'>]</span>-<a name="line-2002"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2003"></a> <span class='keyglyph'>]</span>-<a name="line-2004"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2005"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"37"</span> <span class='keyglyph'>]</span>-<a name="line-2006"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2007"></a> <span class='keyglyph'>]</span>-<a name="line-2008"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2009"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"38"</span> <span class='keyglyph'>]</span>-<a name="line-2010"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2011"></a> <span class='keyglyph'>]</span>-<a name="line-2012"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2013"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"39"</span> <span class='keyglyph'>]</span>-<a name="line-2014"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2015"></a> <span class='keyglyph'>]</span>-<a name="line-2016"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2017"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"40"</span> <span class='keyglyph'>]</span>-<a name="line-2018"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2019"></a> <span class='keyglyph'>]</span>-<a name="line-2020"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2021"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"43"</span> <span class='keyglyph'>]</span>-<a name="line-2022"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2023"></a> <span class='keyglyph'>]</span>-<a name="line-2024"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2025"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"44"</span> <span class='keyglyph'>]</span>-<a name="line-2026"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2027"></a> <span class='keyglyph'>]</span>-<a name="line-2028"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2029"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"14"</span> <span class='keyglyph'>]</span>-<a name="line-2030"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2031"></a> <span class='keyglyph'>]</span>-<a name="line-2032"></a> <span class='keyglyph'>]</span>-<a name="line-2033"></a> <span class='keyglyph'>]</span>-<a name="line-2034"></a> <span class='keyglyph'>]</span>-<a name="line-2035"></a> <span class='keyglyph'>]</span>-<a name="line-2036"></a> <span class='keyglyph'>]</span>-<a name="line-2037"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>-<a name="line-2038"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"27"</span> <span class='keyglyph'>]</span>-<a name="line-2039"></a> <span class='keyglyph'>]</span>-<a name="line-2040"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>-<a name="line-2041"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-2042"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-2043"></a> <span class='keyglyph'>]</span>-<a name="line-2044"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"group"</span>-<a name="line-2045"></a> <span class='keyglyph'>]</span>-<a name="line-2046"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-2047"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-2048"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-2049"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2050"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2051"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-2052"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-2053"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-2054"></a> <span class='keyglyph'>]</span>-<a name="line-2055"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>-<a name="line-2056"></a> <span class='keyglyph'>]</span>-<a name="line-2057"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2058"></a> <span class='keyglyph'>]</span>-<a name="line-2059"></a> <span class='keyglyph'>]</span>-<a name="line-2060"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2061"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2062"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-2063"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-2064"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-2065"></a> <span class='keyglyph'>]</span>-<a name="line-2066"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>-<a name="line-2067"></a> <span class='keyglyph'>]</span>-<a name="line-2068"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-2069"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>-<a name="line-2070"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-2071"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2072"></a> <span class='keyglyph'>]</span>-<a name="line-2073"></a> <span class='keyglyph'>]</span>-<a name="line-2074"></a> <span class='keyglyph'>]</span>-<a name="line-2075"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2076"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2077"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-2078"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-2079"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>-<a name="line-2080"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>-<a name="line-2081"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2082"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-2083"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-2084"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2085"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-2086"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-2087"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2088"></a> <span class='keyglyph'>]</span>-<a name="line-2089"></a> <span class='keyglyph'>]</span>-<a name="line-2090"></a> <span class='keyglyph'>]</span>-<a name="line-2091"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2092"></a> <span class='keyglyph'>]</span>-<a name="line-2093"></a> <span class='keyglyph'>]</span>-<a name="line-2094"></a> <span class='keyglyph'>]</span>-<a name="line-2095"></a> <span class='keyglyph'>]</span>-<a name="line-2096"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>-<a name="line-2097"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2098"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2099"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-2100"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2101"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"16"</span> <span class='keyglyph'>]</span>-<a name="line-2102"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2103"></a> <span class='keyglyph'>]</span>-<a name="line-2104"></a> <span class='keyglyph'>]</span>-<a name="line-2105"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-2106"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2107"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2108"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2109"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2110"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2111"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2112"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2113"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2114"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2115"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2116"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2117"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2118"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2119"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2120"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2121"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2122"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2123"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2124"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2125"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"25"</span> <span class='keyglyph'>]</span>-<a name="line-2126"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2127"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2128"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"26"</span> <span class='keyglyph'>]</span>-<a name="line-2129"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2130"></a> <span class='keyglyph'>]</span>-<a name="line-2131"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2132"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"27"</span> <span class='keyglyph'>]</span>-<a name="line-2133"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2134"></a> <span class='keyglyph'>]</span>-<a name="line-2135"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2136"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"28"</span> <span class='keyglyph'>]</span>-<a name="line-2137"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2138"></a> <span class='keyglyph'>]</span>-<a name="line-2139"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2140"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"29"</span> <span class='keyglyph'>]</span>-<a name="line-2141"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2142"></a> <span class='keyglyph'>]</span>-<a name="line-2143"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2144"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"30"</span> <span class='keyglyph'>]</span>-<a name="line-2145"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2146"></a> <span class='keyglyph'>]</span>-<a name="line-2147"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2148"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"31"</span> <span class='keyglyph'>]</span>-<a name="line-2149"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2150"></a> <span class='keyglyph'>]</span>-<a name="line-2151"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2152"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"32"</span> <span class='keyglyph'>]</span>-<a name="line-2153"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2154"></a> <span class='keyglyph'>]</span>-<a name="line-2155"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2156"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"33"</span> <span class='keyglyph'>]</span>-<a name="line-2157"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2158"></a> <span class='keyglyph'>]</span>-<a name="line-2159"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2160"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"34"</span> <span class='keyglyph'>]</span>-<a name="line-2161"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2162"></a> <span class='keyglyph'>]</span>-<a name="line-2163"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2164"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"35"</span> <span class='keyglyph'>]</span>-<a name="line-2165"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2166"></a> <span class='keyglyph'>]</span>-<a name="line-2167"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2168"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"36"</span> <span class='keyglyph'>]</span>-<a name="line-2169"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2170"></a> <span class='keyglyph'>]</span>-<a name="line-2171"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2172"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"37"</span> <span class='keyglyph'>]</span>-<a name="line-2173"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2174"></a> <span class='keyglyph'>]</span>-<a name="line-2175"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2176"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"38"</span> <span class='keyglyph'>]</span>-<a name="line-2177"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2178"></a> <span class='keyglyph'>]</span>-<a name="line-2179"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2180"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"39"</span> <span class='keyglyph'>]</span>-<a name="line-2181"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2182"></a> <span class='keyglyph'>]</span>-<a name="line-2183"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2184"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"40"</span> <span class='keyglyph'>]</span>-<a name="line-2185"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2186"></a> <span class='keyglyph'>]</span>-<a name="line-2187"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2188"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"43"</span> <span class='keyglyph'>]</span>-<a name="line-2189"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2190"></a> <span class='keyglyph'>]</span>-<a name="line-2191"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2192"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"44"</span> <span class='keyglyph'>]</span>-<a name="line-2193"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2194"></a> <span class='keyglyph'>]</span>-<a name="line-2195"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2196"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"14"</span> <span class='keyglyph'>]</span>-<a name="line-2197"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2198"></a> <span class='keyglyph'>]</span>-<a name="line-2199"></a> <span class='keyglyph'>]</span>-<a name="line-2200"></a> <span class='keyglyph'>]</span>-<a name="line-2201"></a> <span class='keyglyph'>]</span>-<a name="line-2202"></a> <span class='keyglyph'>]</span>-<a name="line-2203"></a> <span class='keyglyph'>]</span>-<a name="line-2204"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>-<a name="line-2205"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"26"</span> <span class='keyglyph'>]</span>-<a name="line-2206"></a> <span class='keyglyph'>]</span>-<a name="line-2207"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>-<a name="line-2208"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-2209"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-2210"></a> <span class='keyglyph'>]</span>-<a name="line-2211"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"attribute"</span>-<a name="line-2212"></a> <span class='keyglyph'>]</span>-<a name="line-2213"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-2214"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-2215"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-2216"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-2217"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2218"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2219"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-2220"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-2221"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-2222"></a> <span class='keyglyph'>]</span>-<a name="line-2223"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>-<a name="line-2224"></a> <span class='keyglyph'>]</span>-<a name="line-2225"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2226"></a> <span class='keyglyph'>]</span>-<a name="line-2227"></a> <span class='keyglyph'>]</span>-<a name="line-2228"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2229"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2230"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-2231"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-2232"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-2233"></a> <span class='keyglyph'>]</span>-<a name="line-2234"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>-<a name="line-2235"></a> <span class='keyglyph'>]</span>-<a name="line-2236"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-2237"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>-<a name="line-2238"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-2239"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2240"></a> <span class='keyglyph'>]</span>-<a name="line-2241"></a> <span class='keyglyph'>]</span>-<a name="line-2242"></a> <span class='keyglyph'>]</span>-<a name="line-2243"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2244"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2245"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-2246"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-2247"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>-<a name="line-2248"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>-<a name="line-2249"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2250"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-2251"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-2252"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2253"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-2254"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-2255"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2256"></a> <span class='keyglyph'>]</span>-<a name="line-2257"></a> <span class='keyglyph'>]</span>-<a name="line-2258"></a> <span class='keyglyph'>]</span>-<a name="line-2259"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2260"></a> <span class='keyglyph'>]</span>-<a name="line-2261"></a> <span class='keyglyph'>]</span>-<a name="line-2262"></a> <span class='keyglyph'>]</span>-<a name="line-2263"></a> <span class='keyglyph'>]</span>-<a name="line-2264"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2265"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-2266"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-2267"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-2268"></a> <span class='keyglyph'>]</span>-<a name="line-2269"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"name"</span>-<a name="line-2270"></a> <span class='keyglyph'>]</span>-<a name="line-2271"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-2272"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"QName"</span> <span class='keyglyph'>]</span>-<a name="line-2273"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-2274"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2275"></a> <span class='keyglyph'>]</span>-<a name="line-2276"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>-<a name="line-2277"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2278"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2279"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-2280"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2281"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"16"</span> <span class='keyglyph'>]</span>-<a name="line-2282"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2283"></a> <span class='keyglyph'>]</span>-<a name="line-2284"></a> <span class='keyglyph'>]</span>-<a name="line-2285"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2286"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2287"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2288"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2289"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"18"</span> <span class='keyglyph'>]</span>-<a name="line-2290"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2291"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2292"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"19"</span> <span class='keyglyph'>]</span>-<a name="line-2293"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2294"></a> <span class='keyglyph'>]</span>-<a name="line-2295"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2296"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"20"</span> <span class='keyglyph'>]</span>-<a name="line-2297"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2298"></a> <span class='keyglyph'>]</span>-<a name="line-2299"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2300"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"21"</span> <span class='keyglyph'>]</span>-<a name="line-2301"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2302"></a> <span class='keyglyph'>]</span>-<a name="line-2303"></a> <span class='keyglyph'>]</span>-<a name="line-2304"></a> <span class='keyglyph'>]</span>-<a name="line-2305"></a> <span class='keyglyph'>]</span>-<a name="line-2306"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>-<a name="line-2307"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2308"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2309"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-2310"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2311"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"16"</span> <span class='keyglyph'>]</span>-<a name="line-2312"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2313"></a> <span class='keyglyph'>]</span>-<a name="line-2314"></a> <span class='keyglyph'>]</span>-<a name="line-2315"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2316"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2317"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2318"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2319"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2320"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2321"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2322"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2323"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2324"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2325"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2326"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2327"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2328"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2329"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2330"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2331"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2332"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2333"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2334"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2335"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2336"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"25"</span> <span class='keyglyph'>]</span>-<a name="line-2337"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2338"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2339"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"26"</span> <span class='keyglyph'>]</span>-<a name="line-2340"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2341"></a> <span class='keyglyph'>]</span>-<a name="line-2342"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2343"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"27"</span> <span class='keyglyph'>]</span>-<a name="line-2344"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2345"></a> <span class='keyglyph'>]</span>-<a name="line-2346"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2347"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"28"</span> <span class='keyglyph'>]</span>-<a name="line-2348"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2349"></a> <span class='keyglyph'>]</span>-<a name="line-2350"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2351"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"29"</span> <span class='keyglyph'>]</span>-<a name="line-2352"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2353"></a> <span class='keyglyph'>]</span>-<a name="line-2354"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2355"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"30"</span> <span class='keyglyph'>]</span>-<a name="line-2356"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2357"></a> <span class='keyglyph'>]</span>-<a name="line-2358"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2359"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"31"</span> <span class='keyglyph'>]</span>-<a name="line-2360"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2361"></a> <span class='keyglyph'>]</span>-<a name="line-2362"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2363"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"32"</span> <span class='keyglyph'>]</span>-<a name="line-2364"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2365"></a> <span class='keyglyph'>]</span>-<a name="line-2366"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2367"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"33"</span> <span class='keyglyph'>]</span>-<a name="line-2368"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2369"></a> <span class='keyglyph'>]</span>-<a name="line-2370"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2371"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"34"</span> <span class='keyglyph'>]</span>-<a name="line-2372"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2373"></a> <span class='keyglyph'>]</span>-<a name="line-2374"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2375"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"35"</span> <span class='keyglyph'>]</span>-<a name="line-2376"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2377"></a> <span class='keyglyph'>]</span>-<a name="line-2378"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2379"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"36"</span> <span class='keyglyph'>]</span>-<a name="line-2380"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2381"></a> <span class='keyglyph'>]</span>-<a name="line-2382"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2383"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"37"</span> <span class='keyglyph'>]</span>-<a name="line-2384"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2385"></a> <span class='keyglyph'>]</span>-<a name="line-2386"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2387"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"38"</span> <span class='keyglyph'>]</span>-<a name="line-2388"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2389"></a> <span class='keyglyph'>]</span>-<a name="line-2390"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2391"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"39"</span> <span class='keyglyph'>]</span>-<a name="line-2392"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2393"></a> <span class='keyglyph'>]</span>-<a name="line-2394"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2395"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"40"</span> <span class='keyglyph'>]</span>-<a name="line-2396"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2397"></a> <span class='keyglyph'>]</span>-<a name="line-2398"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2399"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"43"</span> <span class='keyglyph'>]</span>-<a name="line-2400"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2401"></a> <span class='keyglyph'>]</span>-<a name="line-2402"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2403"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"44"</span> <span class='keyglyph'>]</span>-<a name="line-2404"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2405"></a> <span class='keyglyph'>]</span>-<a name="line-2406"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2407"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"14"</span> <span class='keyglyph'>]</span>-<a name="line-2408"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2409"></a> <span class='keyglyph'>]</span>-<a name="line-2410"></a> <span class='keyglyph'>]</span>-<a name="line-2411"></a> <span class='keyglyph'>]</span>-<a name="line-2412"></a> <span class='keyglyph'>]</span>-<a name="line-2413"></a> <span class='keyglyph'>]</span>-<a name="line-2414"></a> <span class='keyglyph'>]</span>-<a name="line-2415"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>-<a name="line-2416"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"25"</span> <span class='keyglyph'>]</span>-<a name="line-2417"></a> <span class='keyglyph'>]</span>-<a name="line-2418"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>-<a name="line-2419"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-2420"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-2421"></a> <span class='keyglyph'>]</span>-<a name="line-2422"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"element"</span>-<a name="line-2423"></a> <span class='keyglyph'>]</span>-<a name="line-2424"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-2425"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-2426"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2427"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-2428"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-2429"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-2430"></a> <span class='keyglyph'>]</span>-<a name="line-2431"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"name"</span>-<a name="line-2432"></a> <span class='keyglyph'>]</span>-<a name="line-2433"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-2434"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"QName"</span> <span class='keyglyph'>]</span>-<a name="line-2435"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-2436"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2437"></a> <span class='keyglyph'>]</span>-<a name="line-2438"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>-<a name="line-2439"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2440"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2441"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-2442"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2443"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"16"</span> <span class='keyglyph'>]</span>-<a name="line-2444"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2445"></a> <span class='keyglyph'>]</span>-<a name="line-2446"></a> <span class='keyglyph'>]</span>-<a name="line-2447"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2448"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2449"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2450"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2451"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"18"</span> <span class='keyglyph'>]</span>-<a name="line-2452"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2453"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2454"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"19"</span> <span class='keyglyph'>]</span>-<a name="line-2455"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2456"></a> <span class='keyglyph'>]</span>-<a name="line-2457"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2458"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"20"</span> <span class='keyglyph'>]</span>-<a name="line-2459"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2460"></a> <span class='keyglyph'>]</span>-<a name="line-2461"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2462"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"21"</span> <span class='keyglyph'>]</span>-<a name="line-2463"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2464"></a> <span class='keyglyph'>]</span>-<a name="line-2465"></a> <span class='keyglyph'>]</span>-<a name="line-2466"></a> <span class='keyglyph'>]</span>-<a name="line-2467"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-2468"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-2469"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2470"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2471"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-2472"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-2473"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-2474"></a> <span class='keyglyph'>]</span>-<a name="line-2475"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>-<a name="line-2476"></a> <span class='keyglyph'>]</span>-<a name="line-2477"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2478"></a> <span class='keyglyph'>]</span>-<a name="line-2479"></a> <span class='keyglyph'>]</span>-<a name="line-2480"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2481"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2482"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-2483"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-2484"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-2485"></a> <span class='keyglyph'>]</span>-<a name="line-2486"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>-<a name="line-2487"></a> <span class='keyglyph'>]</span>-<a name="line-2488"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-2489"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>-<a name="line-2490"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-2491"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2492"></a> <span class='keyglyph'>]</span>-<a name="line-2493"></a> <span class='keyglyph'>]</span>-<a name="line-2494"></a> <span class='keyglyph'>]</span>-<a name="line-2495"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2496"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2497"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-2498"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-2499"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>-<a name="line-2500"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>-<a name="line-2501"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2502"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-2503"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-2504"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2505"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-2506"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-2507"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2508"></a> <span class='keyglyph'>]</span>-<a name="line-2509"></a> <span class='keyglyph'>]</span>-<a name="line-2510"></a> <span class='keyglyph'>]</span>-<a name="line-2511"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2512"></a> <span class='keyglyph'>]</span>-<a name="line-2513"></a> <span class='keyglyph'>]</span>-<a name="line-2514"></a> <span class='keyglyph'>]</span>-<a name="line-2515"></a> <span class='keyglyph'>]</span>-<a name="line-2516"></a> <span class='keyglyph'>]</span>-<a name="line-2517"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>-<a name="line-2518"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2519"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2520"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-2521"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2522"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"16"</span> <span class='keyglyph'>]</span>-<a name="line-2523"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2524"></a> <span class='keyglyph'>]</span>-<a name="line-2525"></a> <span class='keyglyph'>]</span>-<a name="line-2526"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-2527"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2528"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2529"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2530"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2531"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2532"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2533"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2534"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2535"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2536"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2537"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2538"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2539"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2540"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2541"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2542"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2543"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2544"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2545"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2546"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"25"</span> <span class='keyglyph'>]</span>-<a name="line-2547"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2548"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2549"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"26"</span> <span class='keyglyph'>]</span>-<a name="line-2550"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2551"></a> <span class='keyglyph'>]</span>-<a name="line-2552"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2553"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"27"</span> <span class='keyglyph'>]</span>-<a name="line-2554"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2555"></a> <span class='keyglyph'>]</span>-<a name="line-2556"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2557"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"28"</span> <span class='keyglyph'>]</span>-<a name="line-2558"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2559"></a> <span class='keyglyph'>]</span>-<a name="line-2560"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2561"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"29"</span> <span class='keyglyph'>]</span>-<a name="line-2562"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2563"></a> <span class='keyglyph'>]</span>-<a name="line-2564"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2565"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"30"</span> <span class='keyglyph'>]</span>-<a name="line-2566"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2567"></a> <span class='keyglyph'>]</span>-<a name="line-2568"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2569"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"31"</span> <span class='keyglyph'>]</span>-<a name="line-2570"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2571"></a> <span class='keyglyph'>]</span>-<a name="line-2572"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2573"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"32"</span> <span class='keyglyph'>]</span>-<a name="line-2574"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2575"></a> <span class='keyglyph'>]</span>-<a name="line-2576"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2577"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"33"</span> <span class='keyglyph'>]</span>-<a name="line-2578"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2579"></a> <span class='keyglyph'>]</span>-<a name="line-2580"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2581"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"34"</span> <span class='keyglyph'>]</span>-<a name="line-2582"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2583"></a> <span class='keyglyph'>]</span>-<a name="line-2584"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2585"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"35"</span> <span class='keyglyph'>]</span>-<a name="line-2586"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2587"></a> <span class='keyglyph'>]</span>-<a name="line-2588"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2589"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"36"</span> <span class='keyglyph'>]</span>-<a name="line-2590"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2591"></a> <span class='keyglyph'>]</span>-<a name="line-2592"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2593"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"37"</span> <span class='keyglyph'>]</span>-<a name="line-2594"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2595"></a> <span class='keyglyph'>]</span>-<a name="line-2596"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2597"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"38"</span> <span class='keyglyph'>]</span>-<a name="line-2598"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2599"></a> <span class='keyglyph'>]</span>-<a name="line-2600"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2601"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"39"</span> <span class='keyglyph'>]</span>-<a name="line-2602"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2603"></a> <span class='keyglyph'>]</span>-<a name="line-2604"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2605"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"40"</span> <span class='keyglyph'>]</span>-<a name="line-2606"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2607"></a> <span class='keyglyph'>]</span>-<a name="line-2608"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2609"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"43"</span> <span class='keyglyph'>]</span>-<a name="line-2610"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2611"></a> <span class='keyglyph'>]</span>-<a name="line-2612"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2613"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"44"</span> <span class='keyglyph'>]</span>-<a name="line-2614"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2615"></a> <span class='keyglyph'>]</span>-<a name="line-2616"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2617"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"14"</span> <span class='keyglyph'>]</span>-<a name="line-2618"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2619"></a> <span class='keyglyph'>]</span>-<a name="line-2620"></a> <span class='keyglyph'>]</span>-<a name="line-2621"></a> <span class='keyglyph'>]</span>-<a name="line-2622"></a> <span class='keyglyph'>]</span>-<a name="line-2623"></a> <span class='keyglyph'>]</span>-<a name="line-2624"></a> <span class='keyglyph'>]</span>-<a name="line-2625"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>-<a name="line-2626"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"24"</span> <span class='keyglyph'>]</span>-<a name="line-2627"></a> <span class='keyglyph'>]</span>-<a name="line-2628"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>-<a name="line-2629"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-2630"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-2631"></a> <span class='keyglyph'>]</span>-<a name="line-2632"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"include"</span>-<a name="line-2633"></a> <span class='keyglyph'>]</span>-<a name="line-2634"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-2635"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-2636"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-2637"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-2638"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-2639"></a> <span class='keyglyph'>]</span>-<a name="line-2640"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"href"</span>-<a name="line-2641"></a> <span class='keyglyph'>]</span>-<a name="line-2642"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-2643"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>-<a name="line-2644"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-2645"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2646"></a> <span class='keyglyph'>]</span>-<a name="line-2647"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-2648"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-2649"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2650"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2651"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-2652"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-2653"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-2654"></a> <span class='keyglyph'>]</span>-<a name="line-2655"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>-<a name="line-2656"></a> <span class='keyglyph'>]</span>-<a name="line-2657"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2658"></a> <span class='keyglyph'>]</span>-<a name="line-2659"></a> <span class='keyglyph'>]</span>-<a name="line-2660"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2661"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2662"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-2663"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-2664"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-2665"></a> <span class='keyglyph'>]</span>-<a name="line-2666"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>-<a name="line-2667"></a> <span class='keyglyph'>]</span>-<a name="line-2668"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-2669"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>-<a name="line-2670"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-2671"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2672"></a> <span class='keyglyph'>]</span>-<a name="line-2673"></a> <span class='keyglyph'>]</span>-<a name="line-2674"></a> <span class='keyglyph'>]</span>-<a name="line-2675"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2676"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2677"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-2678"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-2679"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>-<a name="line-2680"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>-<a name="line-2681"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2682"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-2683"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-2684"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2685"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-2686"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-2687"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2688"></a> <span class='keyglyph'>]</span>-<a name="line-2689"></a> <span class='keyglyph'>]</span>-<a name="line-2690"></a> <span class='keyglyph'>]</span>-<a name="line-2691"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2692"></a> <span class='keyglyph'>]</span>-<a name="line-2693"></a> <span class='keyglyph'>]</span>-<a name="line-2694"></a> <span class='keyglyph'>]</span>-<a name="line-2695"></a> <span class='keyglyph'>]</span>-<a name="line-2696"></a> <span class='keyglyph'>]</span>-<a name="line-2697"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>-<a name="line-2698"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2699"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2700"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-2701"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2702"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"16"</span> <span class='keyglyph'>]</span>-<a name="line-2703"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2704"></a> <span class='keyglyph'>]</span>-<a name="line-2705"></a> <span class='keyglyph'>]</span>-<a name="line-2706"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2707"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2708"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-2709"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2710"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2711"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2712"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"11"</span> <span class='keyglyph'>]</span>-<a name="line-2713"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2714"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2715"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"10"</span> <span class='keyglyph'>]</span>-<a name="line-2716"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2717"></a> <span class='keyglyph'>]</span>-<a name="line-2718"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2719"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"22"</span> <span class='keyglyph'>]</span>-<a name="line-2720"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2721"></a> <span class='keyglyph'>]</span>-<a name="line-2722"></a> <span class='keyglyph'>]</span>-<a name="line-2723"></a> <span class='keyglyph'>]</span>-<a name="line-2724"></a> <span class='keyglyph'>]</span>-<a name="line-2725"></a> <span class='keyglyph'>]</span>-<a name="line-2726"></a> <span class='keyglyph'>]</span>-<a name="line-2727"></a> <span class='keyglyph'>]</span>-<a name="line-2728"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>-<a name="line-2729"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"23"</span> <span class='keyglyph'>]</span>-<a name="line-2730"></a> <span class='keyglyph'>]</span>-<a name="line-2731"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>-<a name="line-2732"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-2733"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-2734"></a> <span class='keyglyph'>]</span>-<a name="line-2735"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"div"</span>-<a name="line-2736"></a> <span class='keyglyph'>]</span>-<a name="line-2737"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-2738"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-2739"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-2740"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2741"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2742"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-2743"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-2744"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-2745"></a> <span class='keyglyph'>]</span>-<a name="line-2746"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>-<a name="line-2747"></a> <span class='keyglyph'>]</span>-<a name="line-2748"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2749"></a> <span class='keyglyph'>]</span>-<a name="line-2750"></a> <span class='keyglyph'>]</span>-<a name="line-2751"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2752"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2753"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-2754"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-2755"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-2756"></a> <span class='keyglyph'>]</span>-<a name="line-2757"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>-<a name="line-2758"></a> <span class='keyglyph'>]</span>-<a name="line-2759"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-2760"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>-<a name="line-2761"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-2762"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2763"></a> <span class='keyglyph'>]</span>-<a name="line-2764"></a> <span class='keyglyph'>]</span>-<a name="line-2765"></a> <span class='keyglyph'>]</span>-<a name="line-2766"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2767"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2768"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-2769"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-2770"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>-<a name="line-2771"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>-<a name="line-2772"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2773"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-2774"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-2775"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2776"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-2777"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-2778"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2779"></a> <span class='keyglyph'>]</span>-<a name="line-2780"></a> <span class='keyglyph'>]</span>-<a name="line-2781"></a> <span class='keyglyph'>]</span>-<a name="line-2782"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2783"></a> <span class='keyglyph'>]</span>-<a name="line-2784"></a> <span class='keyglyph'>]</span>-<a name="line-2785"></a> <span class='keyglyph'>]</span>-<a name="line-2786"></a> <span class='keyglyph'>]</span>-<a name="line-2787"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>-<a name="line-2788"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2789"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2790"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-2791"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2792"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"16"</span> <span class='keyglyph'>]</span>-<a name="line-2793"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2794"></a> <span class='keyglyph'>]</span>-<a name="line-2795"></a> <span class='keyglyph'>]</span>-<a name="line-2796"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2797"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2798"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-2799"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2800"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2801"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2802"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2803"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"11"</span> <span class='keyglyph'>]</span>-<a name="line-2804"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2805"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2806"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"10"</span> <span class='keyglyph'>]</span>-<a name="line-2807"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2808"></a> <span class='keyglyph'>]</span>-<a name="line-2809"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2810"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"23"</span> <span class='keyglyph'>]</span>-<a name="line-2811"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2812"></a> <span class='keyglyph'>]</span>-<a name="line-2813"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2814"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"24"</span> <span class='keyglyph'>]</span>-<a name="line-2815"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2816"></a> <span class='keyglyph'>]</span>-<a name="line-2817"></a> <span class='keyglyph'>]</span>-<a name="line-2818"></a> <span class='keyglyph'>]</span>-<a name="line-2819"></a> <span class='keyglyph'>]</span>-<a name="line-2820"></a> <span class='keyglyph'>]</span>-<a name="line-2821"></a> <span class='keyglyph'>]</span>-<a name="line-2822"></a> <span class='keyglyph'>]</span>-<a name="line-2823"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>-<a name="line-2824"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"22"</span> <span class='keyglyph'>]</span>-<a name="line-2825"></a> <span class='keyglyph'>]</span>-<a name="line-2826"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>-<a name="line-2827"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-2828"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-2829"></a> <span class='keyglyph'>]</span>-<a name="line-2830"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"div"</span>-<a name="line-2831"></a> <span class='keyglyph'>]</span>-<a name="line-2832"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-2833"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-2834"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-2835"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2836"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2837"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-2838"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-2839"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-2840"></a> <span class='keyglyph'>]</span>-<a name="line-2841"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>-<a name="line-2842"></a> <span class='keyglyph'>]</span>-<a name="line-2843"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2844"></a> <span class='keyglyph'>]</span>-<a name="line-2845"></a> <span class='keyglyph'>]</span>-<a name="line-2846"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2847"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2848"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-2849"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-2850"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-2851"></a> <span class='keyglyph'>]</span>-<a name="line-2852"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>-<a name="line-2853"></a> <span class='keyglyph'>]</span>-<a name="line-2854"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-2855"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>-<a name="line-2856"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-2857"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2858"></a> <span class='keyglyph'>]</span>-<a name="line-2859"></a> <span class='keyglyph'>]</span>-<a name="line-2860"></a> <span class='keyglyph'>]</span>-<a name="line-2861"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2862"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2863"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-2864"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-2865"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>-<a name="line-2866"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>-<a name="line-2867"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2868"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-2869"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-2870"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2871"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-2872"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-2873"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2874"></a> <span class='keyglyph'>]</span>-<a name="line-2875"></a> <span class='keyglyph'>]</span>-<a name="line-2876"></a> <span class='keyglyph'>]</span>-<a name="line-2877"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2878"></a> <span class='keyglyph'>]</span>-<a name="line-2879"></a> <span class='keyglyph'>]</span>-<a name="line-2880"></a> <span class='keyglyph'>]</span>-<a name="line-2881"></a> <span class='keyglyph'>]</span>-<a name="line-2882"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>-<a name="line-2883"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2884"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2885"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-2886"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2887"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"16"</span> <span class='keyglyph'>]</span>-<a name="line-2888"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2889"></a> <span class='keyglyph'>]</span>-<a name="line-2890"></a> <span class='keyglyph'>]</span>-<a name="line-2891"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2892"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2893"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-2894"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2895"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2896"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2897"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"11"</span> <span class='keyglyph'>]</span>-<a name="line-2898"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2899"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2900"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"10"</span> <span class='keyglyph'>]</span>-<a name="line-2901"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2902"></a> <span class='keyglyph'>]</span>-<a name="line-2903"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2904"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"22"</span> <span class='keyglyph'>]</span>-<a name="line-2905"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2906"></a> <span class='keyglyph'>]</span>-<a name="line-2907"></a> <span class='keyglyph'>]</span>-<a name="line-2908"></a> <span class='keyglyph'>]</span>-<a name="line-2909"></a> <span class='keyglyph'>]</span>-<a name="line-2910"></a> <span class='keyglyph'>]</span>-<a name="line-2911"></a> <span class='keyglyph'>]</span>-<a name="line-2912"></a> <span class='keyglyph'>]</span>-<a name="line-2913"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>-<a name="line-2914"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"21"</span> <span class='keyglyph'>]</span>-<a name="line-2915"></a> <span class='keyglyph'>]</span>-<a name="line-2916"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>-<a name="line-2917"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-2918"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-2919"></a> <span class='keyglyph'>]</span>-<a name="line-2920"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"choice"</span>-<a name="line-2921"></a> <span class='keyglyph'>]</span>-<a name="line-2922"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-2923"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-2924"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-2925"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2926"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2927"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-2928"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-2929"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-2930"></a> <span class='keyglyph'>]</span>-<a name="line-2931"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>-<a name="line-2932"></a> <span class='keyglyph'>]</span>-<a name="line-2933"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2934"></a> <span class='keyglyph'>]</span>-<a name="line-2935"></a> <span class='keyglyph'>]</span>-<a name="line-2936"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2937"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2938"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-2939"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-2940"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-2941"></a> <span class='keyglyph'>]</span>-<a name="line-2942"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>-<a name="line-2943"></a> <span class='keyglyph'>]</span>-<a name="line-2944"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-2945"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>-<a name="line-2946"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-2947"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2948"></a> <span class='keyglyph'>]</span>-<a name="line-2949"></a> <span class='keyglyph'>]</span>-<a name="line-2950"></a> <span class='keyglyph'>]</span>-<a name="line-2951"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2952"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2953"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-2954"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-2955"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>-<a name="line-2956"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>-<a name="line-2957"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2958"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-2959"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-2960"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2961"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-2962"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-2963"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2964"></a> <span class='keyglyph'>]</span>-<a name="line-2965"></a> <span class='keyglyph'>]</span>-<a name="line-2966"></a> <span class='keyglyph'>]</span>-<a name="line-2967"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2968"></a> <span class='keyglyph'>]</span>-<a name="line-2969"></a> <span class='keyglyph'>]</span>-<a name="line-2970"></a> <span class='keyglyph'>]</span>-<a name="line-2971"></a> <span class='keyglyph'>]</span>-<a name="line-2972"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>-<a name="line-2973"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2974"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2975"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-2976"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2977"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"16"</span> <span class='keyglyph'>]</span>-<a name="line-2978"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2979"></a> <span class='keyglyph'>]</span>-<a name="line-2980"></a> <span class='keyglyph'>]</span>-<a name="line-2981"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-2982"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2983"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2984"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-2985"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2986"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"18"</span> <span class='keyglyph'>]</span>-<a name="line-2987"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2988"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2989"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"19"</span> <span class='keyglyph'>]</span>-<a name="line-2990"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2991"></a> <span class='keyglyph'>]</span>-<a name="line-2992"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2993"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"20"</span> <span class='keyglyph'>]</span>-<a name="line-2994"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2995"></a> <span class='keyglyph'>]</span>-<a name="line-2996"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-2997"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"21"</span> <span class='keyglyph'>]</span>-<a name="line-2998"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-2999"></a> <span class='keyglyph'>]</span>-<a name="line-3000"></a> <span class='keyglyph'>]</span>-<a name="line-3001"></a> <span class='keyglyph'>]</span>-<a name="line-3002"></a> <span class='keyglyph'>]</span>-<a name="line-3003"></a> <span class='keyglyph'>]</span>-<a name="line-3004"></a> <span class='keyglyph'>]</span>-<a name="line-3005"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>-<a name="line-3006"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"20"</span> <span class='keyglyph'>]</span>-<a name="line-3007"></a> <span class='keyglyph'>]</span>-<a name="line-3008"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>-<a name="line-3009"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-3010"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-3011"></a> <span class='keyglyph'>]</span>-<a name="line-3012"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"nsName"</span>-<a name="line-3013"></a> <span class='keyglyph'>]</span>-<a name="line-3014"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-3015"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-3016"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-3017"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3018"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3019"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-3020"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-3021"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-3022"></a> <span class='keyglyph'>]</span>-<a name="line-3023"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>-<a name="line-3024"></a> <span class='keyglyph'>]</span>-<a name="line-3025"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3026"></a> <span class='keyglyph'>]</span>-<a name="line-3027"></a> <span class='keyglyph'>]</span>-<a name="line-3028"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3029"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3030"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-3031"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-3032"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-3033"></a> <span class='keyglyph'>]</span>-<a name="line-3034"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>-<a name="line-3035"></a> <span class='keyglyph'>]</span>-<a name="line-3036"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-3037"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>-<a name="line-3038"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-3039"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3040"></a> <span class='keyglyph'>]</span>-<a name="line-3041"></a> <span class='keyglyph'>]</span>-<a name="line-3042"></a> <span class='keyglyph'>]</span>-<a name="line-3043"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3044"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3045"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-3046"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-3047"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>-<a name="line-3048"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>-<a name="line-3049"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3050"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-3051"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-3052"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3053"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-3054"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-3055"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3056"></a> <span class='keyglyph'>]</span>-<a name="line-3057"></a> <span class='keyglyph'>]</span>-<a name="line-3058"></a> <span class='keyglyph'>]</span>-<a name="line-3059"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3060"></a> <span class='keyglyph'>]</span>-<a name="line-3061"></a> <span class='keyglyph'>]</span>-<a name="line-3062"></a> <span class='keyglyph'>]</span>-<a name="line-3063"></a> <span class='keyglyph'>]</span>-<a name="line-3064"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>-<a name="line-3065"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3066"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3067"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-3068"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3069"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"16"</span> <span class='keyglyph'>]</span>-<a name="line-3070"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3071"></a> <span class='keyglyph'>]</span>-<a name="line-3072"></a> <span class='keyglyph'>]</span>-<a name="line-3073"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3074"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3075"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3076"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"17"</span> <span class='keyglyph'>]</span>-<a name="line-3077"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3078"></a> <span class='keyglyph'>]</span>-<a name="line-3079"></a> <span class='keyglyph'>]</span>-<a name="line-3080"></a> <span class='keyglyph'>]</span>-<a name="line-3081"></a> <span class='keyglyph'>]</span>-<a name="line-3082"></a> <span class='keyglyph'>]</span>-<a name="line-3083"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>-<a name="line-3084"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"19"</span> <span class='keyglyph'>]</span>-<a name="line-3085"></a> <span class='keyglyph'>]</span>-<a name="line-3086"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>-<a name="line-3087"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-3088"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-3089"></a> <span class='keyglyph'>]</span>-<a name="line-3090"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyName"</span>-<a name="line-3091"></a> <span class='keyglyph'>]</span>-<a name="line-3092"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-3093"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-3094"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-3095"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3096"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3097"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-3098"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-3099"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-3100"></a> <span class='keyglyph'>]</span>-<a name="line-3101"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>-<a name="line-3102"></a> <span class='keyglyph'>]</span>-<a name="line-3103"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3104"></a> <span class='keyglyph'>]</span>-<a name="line-3105"></a> <span class='keyglyph'>]</span>-<a name="line-3106"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3107"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3108"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-3109"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-3110"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-3111"></a> <span class='keyglyph'>]</span>-<a name="line-3112"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>-<a name="line-3113"></a> <span class='keyglyph'>]</span>-<a name="line-3114"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-3115"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>-<a name="line-3116"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-3117"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3118"></a> <span class='keyglyph'>]</span>-<a name="line-3119"></a> <span class='keyglyph'>]</span>-<a name="line-3120"></a> <span class='keyglyph'>]</span>-<a name="line-3121"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3122"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3123"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-3124"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-3125"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>-<a name="line-3126"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>-<a name="line-3127"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3128"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-3129"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-3130"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3131"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-3132"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-3133"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3134"></a> <span class='keyglyph'>]</span>-<a name="line-3135"></a> <span class='keyglyph'>]</span>-<a name="line-3136"></a> <span class='keyglyph'>]</span>-<a name="line-3137"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3138"></a> <span class='keyglyph'>]</span>-<a name="line-3139"></a> <span class='keyglyph'>]</span>-<a name="line-3140"></a> <span class='keyglyph'>]</span>-<a name="line-3141"></a> <span class='keyglyph'>]</span>-<a name="line-3142"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>-<a name="line-3143"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3144"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3145"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-3146"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3147"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"16"</span> <span class='keyglyph'>]</span>-<a name="line-3148"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3149"></a> <span class='keyglyph'>]</span>-<a name="line-3150"></a> <span class='keyglyph'>]</span>-<a name="line-3151"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3152"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3153"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3154"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"17"</span> <span class='keyglyph'>]</span>-<a name="line-3155"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3156"></a> <span class='keyglyph'>]</span>-<a name="line-3157"></a> <span class='keyglyph'>]</span>-<a name="line-3158"></a> <span class='keyglyph'>]</span>-<a name="line-3159"></a> <span class='keyglyph'>]</span>-<a name="line-3160"></a> <span class='keyglyph'>]</span>-<a name="line-3161"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>-<a name="line-3162"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"18"</span> <span class='keyglyph'>]</span>-<a name="line-3163"></a> <span class='keyglyph'>]</span>-<a name="line-3164"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>-<a name="line-3165"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-3166"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-3167"></a> <span class='keyglyph'>]</span>-<a name="line-3168"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"name"</span>-<a name="line-3169"></a> <span class='keyglyph'>]</span>-<a name="line-3170"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-3171"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-3172"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-3173"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3174"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3175"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-3176"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-3177"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-3178"></a> <span class='keyglyph'>]</span>-<a name="line-3179"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>-<a name="line-3180"></a> <span class='keyglyph'>]</span>-<a name="line-3181"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3182"></a> <span class='keyglyph'>]</span>-<a name="line-3183"></a> <span class='keyglyph'>]</span>-<a name="line-3184"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3185"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3186"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-3187"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-3188"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-3189"></a> <span class='keyglyph'>]</span>-<a name="line-3190"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>-<a name="line-3191"></a> <span class='keyglyph'>]</span>-<a name="line-3192"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-3193"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>-<a name="line-3194"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-3195"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3196"></a> <span class='keyglyph'>]</span>-<a name="line-3197"></a> <span class='keyglyph'>]</span>-<a name="line-3198"></a> <span class='keyglyph'>]</span>-<a name="line-3199"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3200"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3201"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-3202"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-3203"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>-<a name="line-3204"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>-<a name="line-3205"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3206"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-3207"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-3208"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3209"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-3210"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-3211"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3212"></a> <span class='keyglyph'>]</span>-<a name="line-3213"></a> <span class='keyglyph'>]</span>-<a name="line-3214"></a> <span class='keyglyph'>]</span>-<a name="line-3215"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3216"></a> <span class='keyglyph'>]</span>-<a name="line-3217"></a> <span class='keyglyph'>]</span>-<a name="line-3218"></a> <span class='keyglyph'>]</span>-<a name="line-3219"></a> <span class='keyglyph'>]</span>-<a name="line-3220"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-3221"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"QName"</span> <span class='keyglyph'>]</span>-<a name="line-3222"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-3223"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3224"></a> <span class='keyglyph'>]</span>-<a name="line-3225"></a> <span class='keyglyph'>]</span>-<a name="line-3226"></a> <span class='keyglyph'>]</span>-<a name="line-3227"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>-<a name="line-3228"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"17"</span> <span class='keyglyph'>]</span>-<a name="line-3229"></a> <span class='keyglyph'>]</span>-<a name="line-3230"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>-<a name="line-3231"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-3232"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-3233"></a> <span class='keyglyph'>]</span>-<a name="line-3234"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"except"</span>-<a name="line-3235"></a> <span class='keyglyph'>]</span>-<a name="line-3236"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>-<a name="line-3237"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3238"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3239"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-3240"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3241"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"16"</span> <span class='keyglyph'>]</span>-<a name="line-3242"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3243"></a> <span class='keyglyph'>]</span>-<a name="line-3244"></a> <span class='keyglyph'>]</span>-<a name="line-3245"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-3246"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3247"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3248"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3249"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3250"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"18"</span> <span class='keyglyph'>]</span>-<a name="line-3251"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3252"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3253"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"19"</span> <span class='keyglyph'>]</span>-<a name="line-3254"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3255"></a> <span class='keyglyph'>]</span>-<a name="line-3256"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3257"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"20"</span> <span class='keyglyph'>]</span>-<a name="line-3258"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3259"></a> <span class='keyglyph'>]</span>-<a name="line-3260"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3261"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"21"</span> <span class='keyglyph'>]</span>-<a name="line-3262"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3263"></a> <span class='keyglyph'>]</span>-<a name="line-3264"></a> <span class='keyglyph'>]</span>-<a name="line-3265"></a> <span class='keyglyph'>]</span>-<a name="line-3266"></a> <span class='keyglyph'>]</span>-<a name="line-3267"></a> <span class='keyglyph'>]</span>-<a name="line-3268"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>-<a name="line-3269"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"16"</span> <span class='keyglyph'>]</span>-<a name="line-3270"></a> <span class='keyglyph'>]</span>-<a name="line-3271"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>-<a name="line-3272"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>-<a name="line-3273"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>-<a name="line-3274"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-3275"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-3276"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3277"></a> <span class='keyglyph'>]</span>-<a name="line-3278"></a> <span class='keyglyph'>]</span>-<a name="line-3279"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3280"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3281"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-3282"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3283"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3284"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-3285"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3286"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3287"></a> <span class='keyglyph'>]</span>-<a name="line-3288"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3289"></a> <span class='keyglyph'>]</span>-<a name="line-3290"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3291"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"0"</span> <span class='keyglyph'>]</span>-<a name="line-3292"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3293"></a> <span class='keyglyph'>]</span>-<a name="line-3294"></a> <span class='keyglyph'>]</span>-<a name="line-3295"></a> <span class='keyglyph'>]</span>-<a name="line-3296"></a> <span class='keyglyph'>]</span>-<a name="line-3297"></a> <span class='keyglyph'>]</span>-<a name="line-3298"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>-<a name="line-3299"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"0"</span> <span class='keyglyph'>]</span>-<a name="line-3300"></a> <span class='keyglyph'>]</span>-<a name="line-3301"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>-<a name="line-3302"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3303"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3304"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3305"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-3306"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3307"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3308"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-3309"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3310"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3311"></a> <span class='keyglyph'>]</span>-<a name="line-3312"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3313"></a> <span class='keyglyph'>]</span>-<a name="line-3314"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3315"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"0"</span> <span class='keyglyph'>]</span>-<a name="line-3316"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3317"></a> <span class='keyglyph'>]</span>-<a name="line-3318"></a> <span class='keyglyph'>]</span>-<a name="line-3319"></a> <span class='keyglyph'>]</span>-<a name="line-3320"></a> <span class='keyglyph'>]</span>-<a name="line-3321"></a> <span class='keyglyph'>]</span>-<a name="line-3322"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>-<a name="line-3323"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"10"</span> <span class='keyglyph'>]</span>-<a name="line-3324"></a> <span class='keyglyph'>]</span>-<a name="line-3325"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>-<a name="line-3326"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-3327"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-3328"></a> <span class='keyglyph'>]</span>-<a name="line-3329"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"define"</span>-<a name="line-3330"></a> <span class='keyglyph'>]</span>-<a name="line-3331"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-3332"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-3333"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-3334"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-3335"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-3336"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-3337"></a> <span class='keyglyph'>]</span>-<a name="line-3338"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"name"</span>-<a name="line-3339"></a> <span class='keyglyph'>]</span>-<a name="line-3340"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-3341"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"NCName"</span> <span class='keyglyph'>]</span>-<a name="line-3342"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-3343"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3344"></a> <span class='keyglyph'>]</span>-<a name="line-3345"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3346"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3347"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-3348"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-3349"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-3350"></a> <span class='keyglyph'>]</span>-<a name="line-3351"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"combine"</span>-<a name="line-3352"></a> <span class='keyglyph'>]</span>-<a name="line-3353"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3354"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn25</span>-<a name="line-3355"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn1</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/XML/1998/namespace"</span> <span class='keyglyph'>]</span>-<a name="line-3356"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn3</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-3357"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn2</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"file:///home/uwe/haskell/hxt/curr/src/Text/XML/HXT/RelaxNG/schema2hs/SchemaGrammar.rng"</span> <span class='keyglyph'>]</span>-<a name="line-3358"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-3359"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"token"</span> <span class='keyglyph'>]</span>-<a name="line-3360"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-3361"></a> <span class='keyglyph'>]</span>-<a name="line-3362"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"choice"</span>-<a name="line-3363"></a> <span class='keyglyph'>]</span>-<a name="line-3364"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn25</span>-<a name="line-3365"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn1</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/XML/1998/namespace"</span> <span class='keyglyph'>]</span>-<a name="line-3366"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn3</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-3367"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn2</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"file:///home/uwe/haskell/hxt/curr/src/Text/XML/HXT/RelaxNG/schema2hs/SchemaGrammar.rng"</span> <span class='keyglyph'>]</span>-<a name="line-3368"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-3369"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"token"</span> <span class='keyglyph'>]</span>-<a name="line-3370"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-3371"></a> <span class='keyglyph'>]</span>-<a name="line-3372"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"interleave"</span>-<a name="line-3373"></a> <span class='keyglyph'>]</span>-<a name="line-3374"></a> <span class='keyglyph'>]</span>-<a name="line-3375"></a> <span class='keyglyph'>]</span>-<a name="line-3376"></a> <span class='keyglyph'>]</span>-<a name="line-3377"></a> <span class='keyglyph'>]</span>-<a name="line-3378"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-3379"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-3380"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3381"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3382"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-3383"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-3384"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-3385"></a> <span class='keyglyph'>]</span>-<a name="line-3386"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>-<a name="line-3387"></a> <span class='keyglyph'>]</span>-<a name="line-3388"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3389"></a> <span class='keyglyph'>]</span>-<a name="line-3390"></a> <span class='keyglyph'>]</span>-<a name="line-3391"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3392"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3393"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-3394"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-3395"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-3396"></a> <span class='keyglyph'>]</span>-<a name="line-3397"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>-<a name="line-3398"></a> <span class='keyglyph'>]</span>-<a name="line-3399"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-3400"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>-<a name="line-3401"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-3402"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3403"></a> <span class='keyglyph'>]</span>-<a name="line-3404"></a> <span class='keyglyph'>]</span>-<a name="line-3405"></a> <span class='keyglyph'>]</span>-<a name="line-3406"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3407"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3408"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-3409"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-3410"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>-<a name="line-3411"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>-<a name="line-3412"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3413"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-3414"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-3415"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3416"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-3417"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-3418"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3419"></a> <span class='keyglyph'>]</span>-<a name="line-3420"></a> <span class='keyglyph'>]</span>-<a name="line-3421"></a> <span class='keyglyph'>]</span>-<a name="line-3422"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3423"></a> <span class='keyglyph'>]</span>-<a name="line-3424"></a> <span class='keyglyph'>]</span>-<a name="line-3425"></a> <span class='keyglyph'>]</span>-<a name="line-3426"></a> <span class='keyglyph'>]</span>-<a name="line-3427"></a> <span class='keyglyph'>]</span>-<a name="line-3428"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>-<a name="line-3429"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3430"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3431"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-3432"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3433"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"16"</span> <span class='keyglyph'>]</span>-<a name="line-3434"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3435"></a> <span class='keyglyph'>]</span>-<a name="line-3436"></a> <span class='keyglyph'>]</span>-<a name="line-3437"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-3438"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3439"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3440"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3441"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3442"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3443"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3444"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3445"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3446"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3447"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3448"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3449"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3450"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3451"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3452"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3453"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3454"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3455"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3456"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3457"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"25"</span> <span class='keyglyph'>]</span>-<a name="line-3458"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3459"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3460"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"26"</span> <span class='keyglyph'>]</span>-<a name="line-3461"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3462"></a> <span class='keyglyph'>]</span>-<a name="line-3463"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3464"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"27"</span> <span class='keyglyph'>]</span>-<a name="line-3465"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3466"></a> <span class='keyglyph'>]</span>-<a name="line-3467"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3468"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"28"</span> <span class='keyglyph'>]</span>-<a name="line-3469"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3470"></a> <span class='keyglyph'>]</span>-<a name="line-3471"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3472"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"29"</span> <span class='keyglyph'>]</span>-<a name="line-3473"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3474"></a> <span class='keyglyph'>]</span>-<a name="line-3475"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3476"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"30"</span> <span class='keyglyph'>]</span>-<a name="line-3477"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3478"></a> <span class='keyglyph'>]</span>-<a name="line-3479"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3480"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"31"</span> <span class='keyglyph'>]</span>-<a name="line-3481"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3482"></a> <span class='keyglyph'>]</span>-<a name="line-3483"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3484"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"32"</span> <span class='keyglyph'>]</span>-<a name="line-3485"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3486"></a> <span class='keyglyph'>]</span>-<a name="line-3487"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3488"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"33"</span> <span class='keyglyph'>]</span>-<a name="line-3489"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3490"></a> <span class='keyglyph'>]</span>-<a name="line-3491"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3492"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"34"</span> <span class='keyglyph'>]</span>-<a name="line-3493"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3494"></a> <span class='keyglyph'>]</span>-<a name="line-3495"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3496"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"35"</span> <span class='keyglyph'>]</span>-<a name="line-3497"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3498"></a> <span class='keyglyph'>]</span>-<a name="line-3499"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3500"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"36"</span> <span class='keyglyph'>]</span>-<a name="line-3501"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3502"></a> <span class='keyglyph'>]</span>-<a name="line-3503"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3504"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"37"</span> <span class='keyglyph'>]</span>-<a name="line-3505"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3506"></a> <span class='keyglyph'>]</span>-<a name="line-3507"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3508"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"38"</span> <span class='keyglyph'>]</span>-<a name="line-3509"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3510"></a> <span class='keyglyph'>]</span>-<a name="line-3511"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3512"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"39"</span> <span class='keyglyph'>]</span>-<a name="line-3513"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3514"></a> <span class='keyglyph'>]</span>-<a name="line-3515"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3516"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"40"</span> <span class='keyglyph'>]</span>-<a name="line-3517"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3518"></a> <span class='keyglyph'>]</span>-<a name="line-3519"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3520"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"43"</span> <span class='keyglyph'>]</span>-<a name="line-3521"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3522"></a> <span class='keyglyph'>]</span>-<a name="line-3523"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3524"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"44"</span> <span class='keyglyph'>]</span>-<a name="line-3525"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3526"></a> <span class='keyglyph'>]</span>-<a name="line-3527"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3528"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"14"</span> <span class='keyglyph'>]</span>-<a name="line-3529"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3530"></a> <span class='keyglyph'>]</span>-<a name="line-3531"></a> <span class='keyglyph'>]</span>-<a name="line-3532"></a> <span class='keyglyph'>]</span>-<a name="line-3533"></a> <span class='keyglyph'>]</span>-<a name="line-3534"></a> <span class='keyglyph'>]</span>-<a name="line-3535"></a> <span class='keyglyph'>]</span>-<a name="line-3536"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>-<a name="line-3537"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"11"</span> <span class='keyglyph'>]</span>-<a name="line-3538"></a> <span class='keyglyph'>]</span>-<a name="line-3539"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>-<a name="line-3540"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-3541"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-3542"></a> <span class='keyglyph'>]</span>-<a name="line-3543"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"start"</span>-<a name="line-3544"></a> <span class='keyglyph'>]</span>-<a name="line-3545"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-3546"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-3547"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3548"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3549"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-3550"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-3551"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-3552"></a> <span class='keyglyph'>]</span>-<a name="line-3553"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"combine"</span>-<a name="line-3554"></a> <span class='keyglyph'>]</span>-<a name="line-3555"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3556"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn25</span>-<a name="line-3557"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn1</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/XML/1998/namespace"</span> <span class='keyglyph'>]</span>-<a name="line-3558"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn3</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-3559"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn2</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"file:///home/uwe/haskell/hxt/curr/src/Text/XML/HXT/RelaxNG/schema2hs/SchemaGrammar.rng"</span> <span class='keyglyph'>]</span>-<a name="line-3560"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-3561"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"token"</span> <span class='keyglyph'>]</span>-<a name="line-3562"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-3563"></a> <span class='keyglyph'>]</span>-<a name="line-3564"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"choice"</span>-<a name="line-3565"></a> <span class='keyglyph'>]</span>-<a name="line-3566"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn25</span>-<a name="line-3567"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn1</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/XML/1998/namespace"</span> <span class='keyglyph'>]</span>-<a name="line-3568"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn3</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-3569"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn2</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"file:///home/uwe/haskell/hxt/curr/src/Text/XML/HXT/RelaxNG/schema2hs/SchemaGrammar.rng"</span> <span class='keyglyph'>]</span>-<a name="line-3570"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-3571"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"token"</span> <span class='keyglyph'>]</span>-<a name="line-3572"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-3573"></a> <span class='keyglyph'>]</span>-<a name="line-3574"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"interleave"</span>-<a name="line-3575"></a> <span class='keyglyph'>]</span>-<a name="line-3576"></a> <span class='keyglyph'>]</span>-<a name="line-3577"></a> <span class='keyglyph'>]</span>-<a name="line-3578"></a> <span class='keyglyph'>]</span>-<a name="line-3579"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-3580"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-3581"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3582"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3583"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-3584"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-3585"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-3586"></a> <span class='keyglyph'>]</span>-<a name="line-3587"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>-<a name="line-3588"></a> <span class='keyglyph'>]</span>-<a name="line-3589"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3590"></a> <span class='keyglyph'>]</span>-<a name="line-3591"></a> <span class='keyglyph'>]</span>-<a name="line-3592"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3593"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3594"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-3595"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-3596"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-3597"></a> <span class='keyglyph'>]</span>-<a name="line-3598"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>-<a name="line-3599"></a> <span class='keyglyph'>]</span>-<a name="line-3600"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-3601"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>-<a name="line-3602"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-3603"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3604"></a> <span class='keyglyph'>]</span>-<a name="line-3605"></a> <span class='keyglyph'>]</span>-<a name="line-3606"></a> <span class='keyglyph'>]</span>-<a name="line-3607"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3608"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3609"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-3610"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-3611"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>-<a name="line-3612"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>-<a name="line-3613"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3614"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-3615"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-3616"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3617"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-3618"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-3619"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3620"></a> <span class='keyglyph'>]</span>-<a name="line-3621"></a> <span class='keyglyph'>]</span>-<a name="line-3622"></a> <span class='keyglyph'>]</span>-<a name="line-3623"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3624"></a> <span class='keyglyph'>]</span>-<a name="line-3625"></a> <span class='keyglyph'>]</span>-<a name="line-3626"></a> <span class='keyglyph'>]</span>-<a name="line-3627"></a> <span class='keyglyph'>]</span>-<a name="line-3628"></a> <span class='keyglyph'>]</span>-<a name="line-3629"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>-<a name="line-3630"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3631"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3632"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-3633"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3634"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"16"</span> <span class='keyglyph'>]</span>-<a name="line-3635"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3636"></a> <span class='keyglyph'>]</span>-<a name="line-3637"></a> <span class='keyglyph'>]</span>-<a name="line-3638"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3639"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3640"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3641"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3642"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3643"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3644"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3645"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3646"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3647"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3648"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3649"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3650"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3651"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3652"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3653"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3654"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3655"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3656"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3657"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"25"</span> <span class='keyglyph'>]</span>-<a name="line-3658"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3659"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3660"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"26"</span> <span class='keyglyph'>]</span>-<a name="line-3661"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3662"></a> <span class='keyglyph'>]</span>-<a name="line-3663"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3664"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"27"</span> <span class='keyglyph'>]</span>-<a name="line-3665"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3666"></a> <span class='keyglyph'>]</span>-<a name="line-3667"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3668"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"28"</span> <span class='keyglyph'>]</span>-<a name="line-3669"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3670"></a> <span class='keyglyph'>]</span>-<a name="line-3671"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3672"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"29"</span> <span class='keyglyph'>]</span>-<a name="line-3673"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3674"></a> <span class='keyglyph'>]</span>-<a name="line-3675"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3676"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"30"</span> <span class='keyglyph'>]</span>-<a name="line-3677"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3678"></a> <span class='keyglyph'>]</span>-<a name="line-3679"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3680"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"31"</span> <span class='keyglyph'>]</span>-<a name="line-3681"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3682"></a> <span class='keyglyph'>]</span>-<a name="line-3683"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3684"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"32"</span> <span class='keyglyph'>]</span>-<a name="line-3685"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3686"></a> <span class='keyglyph'>]</span>-<a name="line-3687"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3688"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"33"</span> <span class='keyglyph'>]</span>-<a name="line-3689"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3690"></a> <span class='keyglyph'>]</span>-<a name="line-3691"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3692"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"34"</span> <span class='keyglyph'>]</span>-<a name="line-3693"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3694"></a> <span class='keyglyph'>]</span>-<a name="line-3695"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3696"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"35"</span> <span class='keyglyph'>]</span>-<a name="line-3697"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3698"></a> <span class='keyglyph'>]</span>-<a name="line-3699"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3700"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"36"</span> <span class='keyglyph'>]</span>-<a name="line-3701"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3702"></a> <span class='keyglyph'>]</span>-<a name="line-3703"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3704"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"37"</span> <span class='keyglyph'>]</span>-<a name="line-3705"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3706"></a> <span class='keyglyph'>]</span>-<a name="line-3707"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3708"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"38"</span> <span class='keyglyph'>]</span>-<a name="line-3709"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3710"></a> <span class='keyglyph'>]</span>-<a name="line-3711"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3712"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"39"</span> <span class='keyglyph'>]</span>-<a name="line-3713"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3714"></a> <span class='keyglyph'>]</span>-<a name="line-3715"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3716"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"40"</span> <span class='keyglyph'>]</span>-<a name="line-3717"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3718"></a> <span class='keyglyph'>]</span>-<a name="line-3719"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3720"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"43"</span> <span class='keyglyph'>]</span>-<a name="line-3721"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3722"></a> <span class='keyglyph'>]</span>-<a name="line-3723"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3724"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"44"</span> <span class='keyglyph'>]</span>-<a name="line-3725"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3726"></a> <span class='keyglyph'>]</span>-<a name="line-3727"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3728"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"14"</span> <span class='keyglyph'>]</span>-<a name="line-3729"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3730"></a> <span class='keyglyph'>]</span>-<a name="line-3731"></a> <span class='keyglyph'>]</span>-<a name="line-3732"></a> <span class='keyglyph'>]</span>-<a name="line-3733"></a> <span class='keyglyph'>]</span>-<a name="line-3734"></a> <span class='keyglyph'>]</span>-<a name="line-3735"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn9</span>-<a name="line-3736"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"14"</span> <span class='keyglyph'>]</span>-<a name="line-3737"></a> <span class='keyglyph'>]</span>-<a name="line-3738"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn10</span> <span class='conid'>[]</span>-<a name="line-3739"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-3740"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-3741"></a> <span class='keyglyph'>]</span>-<a name="line-3742"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"grammar"</span>-<a name="line-3743"></a> <span class='keyglyph'>]</span>-<a name="line-3744"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-3745"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-3746"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn14</span> <span class='conid'>[]</span>-<a name="line-3747"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3748"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3749"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-3750"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-3751"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-3752"></a> <span class='keyglyph'>]</span>-<a name="line-3753"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"ns"</span>-<a name="line-3754"></a> <span class='keyglyph'>]</span>-<a name="line-3755"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3756"></a> <span class='keyglyph'>]</span>-<a name="line-3757"></a> <span class='keyglyph'>]</span>-<a name="line-3758"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3759"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3760"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-3761"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn17</span>-<a name="line-3762"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-3763"></a> <span class='keyglyph'>]</span>-<a name="line-3764"></a> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"datatypeLibrary"</span>-<a name="line-3765"></a> <span class='keyglyph'>]</span>-<a name="line-3766"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn7</span>-<a name="line-3767"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn24</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"anyURI"</span> <span class='keyglyph'>]</span>-<a name="line-3768"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span> <span class='varid'>qn8</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span> <span class='keyglyph'>]</span>-<a name="line-3769"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3770"></a> <span class='keyglyph'>]</span>-<a name="line-3771"></a> <span class='keyglyph'>]</span>-<a name="line-3772"></a> <span class='keyglyph'>]</span>-<a name="line-3773"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3774"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3775"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-3776"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn5</span> <span class='conid'>[]</span>-<a name="line-3777"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn4</span> <span class='conid'>[]</span>-<a name="line-3778"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn12</span> <span class='conid'>[]</span>-<a name="line-3779"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3780"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-3781"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span> <span class='keyglyph'>]</span>-<a name="line-3782"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3783"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn19</span>-<a name="line-3784"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn18</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>""</span> <span class='keyglyph'>]</span>-<a name="line-3785"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3786"></a> <span class='keyglyph'>]</span>-<a name="line-3787"></a> <span class='keyglyph'>]</span>-<a name="line-3788"></a> <span class='keyglyph'>]</span>-<a name="line-3789"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn23</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3790"></a> <span class='keyglyph'>]</span>-<a name="line-3791"></a> <span class='keyglyph'>]</span>-<a name="line-3792"></a> <span class='keyglyph'>]</span>-<a name="line-3793"></a> <span class='keyglyph'>]</span>-<a name="line-3794"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn15</span> <span class='conid'>[]</span>-<a name="line-3795"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3796"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3797"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-3798"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3799"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"16"</span> <span class='keyglyph'>]</span>-<a name="line-3800"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3801"></a> <span class='keyglyph'>]</span>-<a name="line-3802"></a> <span class='keyglyph'>]</span>-<a name="line-3803"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3804"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn11</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-3805"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn20</span> <span class='conid'>[]</span>-<a name="line-3806"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3807"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3808"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn6</span> <span class='conid'>[]</span>-<a name="line-3809"></a> <span class='keyglyph'>[</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3810"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"11"</span> <span class='keyglyph'>]</span>-<a name="line-3811"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3812"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3813"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"10"</span> <span class='keyglyph'>]</span>-<a name="line-3814"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3815"></a> <span class='keyglyph'>]</span>-<a name="line-3816"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3817"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"23"</span> <span class='keyglyph'>]</span>-<a name="line-3818"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3819"></a> <span class='keyglyph'>]</span>-<a name="line-3820"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span> <span class='varid'>qn21</span>-<a name="line-3821"></a> <span class='keyglyph'>[</span> <span class='varid'>mkAttr</span> <span class='varid'>qn16</span> <span class='keyglyph'>[</span> <span class='varid'>mkText</span> <span class='str'>"24"</span> <span class='keyglyph'>]</span>-<a name="line-3822"></a> <span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-3823"></a> <span class='keyglyph'>]</span>-<a name="line-3824"></a> <span class='keyglyph'>]</span>-<a name="line-3825"></a> <span class='keyglyph'>]</span>-<a name="line-3826"></a> <span class='keyglyph'>]</span>-<a name="line-3827"></a> <span class='keyglyph'>]</span>-<a name="line-3828"></a> <span class='keyglyph'>]</span>-<a name="line-3829"></a> <span class='keyglyph'>]</span>-<a name="line-3830"></a> <span class='keyglyph'>]</span>-<a name="line-3831"></a> <span class='keyglyph'>]</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-RelaxNG-Simplification.html
@@ -1,2317 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Text.XML.HXT.RelaxNG.Simplification-<a name="line-5"></a> Copyright : Copyright (C) 2008 Torben Kuseler, Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe@fh-wedel.de)-<a name="line-9"></a> Stability : stable-<a name="line-10"></a> Portability: portable-<a name="line-11"></a>-<a name="line-12"></a> The modul creates the simplified form of a Relax NG schema.-<a name="line-13"></a> See also chapter 4 of the Relax NG specification.-<a name="line-14"></a>-<a name="line-15"></a>-}</span>-<a name="line-16"></a>-<a name="line-17"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-18"></a>-<a name="line-19"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>Simplification</span>-<a name="line-20"></a> <span class='layout'>(</span> <span class='varid'>createSimpleForm</span>-<a name="line-21"></a> <span class='layout'>,</span> <span class='varid'>getErrors</span>-<a name="line-22"></a> <span class='layout'>)</span>-<a name="line-23"></a>-<a name="line-24"></a><span class='keyword'>where</span>-<a name="line-25"></a>-<a name="line-26"></a>-<a name="line-27"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ListArrows</span>-<a name="line-28"></a>-<a name="line-29"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>-<a name="line-30"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlNode</span> <span class='keyword'>as</span> <span class='conid'>XN</span>-<a name="line-31"></a> <span class='layout'>(</span> <span class='varid'>mkAttr</span>-<a name="line-32"></a> <span class='layout'>,</span> <span class='varid'>mkText</span>-<a name="line-33"></a> <span class='layout'>)</span>-<a name="line-34"></a>-<a name="line-35"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlArrow</span>-<a name="line-36"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlIOStateArrow</span>-<a name="line-37"></a>-<a name="line-38"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>Namespace</span>-<a name="line-39"></a> <span class='layout'>(</span> <span class='varid'>processWithNsEnv</span>-<a name="line-40"></a> <span class='layout'>,</span> <span class='varid'>propagateNamespaces</span>-<a name="line-41"></a> <span class='layout'>)</span>-<a name="line-42"></a>-<a name="line-43"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>Edit</span>-<a name="line-44"></a> <span class='layout'>(</span> <span class='varid'>removeWhiteSpace</span>-<a name="line-45"></a> <span class='layout'>)</span>-<a name="line-46"></a>-<a name="line-47"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>DataTypes</span>-<a name="line-48"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>BasicArrows</span>-<a name="line-49"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>CreatePattern</span>-<a name="line-50"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>DataTypeLibraries</span>-<a name="line-51"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>Utils</span>-<a name="line-52"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>Validation</span>-<a name="line-53"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>Schema</span> <span class='keyword'>as</span> <span class='conid'>S</span>-<a name="line-54"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>SchemaGrammar</span> <span class='keyword'>as</span> <span class='conid'>SG</span>-<a name="line-55"></a>-<a name="line-56"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>-<a name="line-57"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Char</span>-<a name="line-58"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>List</span>-<a name="line-59"></a>-<a name="line-60"></a><span class='keyword'>import</span> <span class='conid'>System</span><span class='varop'>.</span><span class='conid'>Directory</span>-<a name="line-61"></a> <span class='layout'>(</span> <span class='varid'>doesFileExist</span> <span class='layout'>)</span>-<a name="line-62"></a>-<a name="line-63"></a> -<a name="line-64"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-65"></a>-<a name="line-66"></a><a name="simplificationStep1"></a><span class='comment'>{- -<a name="line-67"></a>- 4.1. Annotations: Foreign attributes and elements are removed.-<a name="line-68"></a>- 4.2. Whitespace:-<a name="line-69"></a> - For each element other than value and param, each child that is a string -<a name="line-70"></a> containing only whitespace characters is removed. -> fertig-<a name="line-71"></a> - Leading and trailing whitespace characters are removed from the value of each name,-<a name="line-72"></a> type and combine attribute and from the content of each name element. -> fertig-<a name="line-73"></a>- 4.3. datatypeLibrary attribute:-<a name="line-74"></a> - The value of each datatypeLibary attribute is transformed by escaping disallowed characters-<a name="line-75"></a> - For any data or value element that does not have a datatypeLibrary attribute, -<a name="line-76"></a> a datatypeLibrary attribute is added.-<a name="line-77"></a> - Any datatypeLibrary attribute that is on an element other than data or value is removed.-<a name="line-78"></a>- 4.4. type attribute of value element-<a name="line-79"></a>-}</span>-<a name="line-80"></a><span class='definition'>simplificationStep1</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-81"></a><span class='definition'>simplificationStep1</span>-<a name="line-82"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='comment'>{- -<a name="line-83"></a> - 4.5. href attribute-<a name="line-84"></a> - The value of the href attribute on an externalRef or include element is first -<a name="line-85"></a> - transformed by escaping disallowed characters-<a name="line-86"></a> - The URI reference is then resolved into an absolute form-<a name="line-87"></a> - The value of the href attribute will be used to construct an element.-<a name="line-88"></a> -}</span>-<a name="line-89"></a> <span class='layout'>(</span> <span class='varid'>processHref</span> <span class='varop'>$<</span> <span class='varid'>getBaseURI</span> <span class='layout'>)</span>-<a name="line-90"></a> <span class='varop'>>>></span>-<a name="line-91"></a> <span class='comment'>-- 4.10 QNames</span>-<a name="line-92"></a> <span class='varid'>processWithNsEnv</span> <span class='varid'>processEnvNames</span> <span class='layout'>(</span><span class='varid'>toNsEnv</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='str'>"xml"</span><span class='layout'>,</span><span class='varid'>xmlNamespace</span><span class='layout'>)</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-93"></a> <span class='varop'>>>></span>-<a name="line-94"></a> <span class='comment'>-- 4.4 For any data or value element that does not have a datatypeLibrary attribute,</span>-<a name="line-95"></a> <span class='comment'>-- a datatypeLibrary attribute is added.</span>-<a name="line-96"></a> <span class='comment'>-- Wird vorgezogen, da danach der Rest in einem Baumdurchlauf erledigt werden kann</span>-<a name="line-97"></a> <span class='varid'>processdatatypeLib</span> <span class='str'>""</span>-<a name="line-98"></a> <span class='varop'>>>></span>-<a name="line-99"></a> <span class='varid'>processTopDownWithAttrl</span>-<a name="line-100"></a> <span class='layout'>(</span>-<a name="line-101"></a> <span class='layout'>(</span> <span class='comment'>-- 4.1 Foreign attributes and elements are removed</span>-<a name="line-102"></a> <span class='varid'>none</span>-<a name="line-103"></a> <span class='varop'>`when`</span> -<a name="line-104"></a> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>isElem</span> <span class='varop'>>>></span> <span class='varid'>neg</span> <span class='varid'>isRoot</span> -<a name="line-105"></a> <span class='varop'>>>></span> -<a name="line-106"></a> <span class='varid'>getNamespaceUri</span>-<a name="line-107"></a> <span class='varop'>>>></span>-<a name="line-108"></a> <span class='varid'>isA</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>uri</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>$</span> <span class='varid'>compareURI</span> <span class='varid'>uri</span> <span class='varid'>relaxNamespace</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-109"></a> <span class='layout'>)</span>-<a name="line-110"></a> <span class='varop'>`orElse`</span>-<a name="line-111"></a> <span class='layout'>(</span> <span class='varid'>isAttr</span>-<a name="line-112"></a> <span class='varop'>>>></span>-<a name="line-113"></a> <span class='varid'>getNamespaceUri</span>-<a name="line-114"></a> <span class='varop'>>>></span>-<a name="line-115"></a> <span class='varid'>isA</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>uri</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='varid'>uri</span> <span class='varop'>/=</span> <span class='str'>""</span> <span class='varop'>&&</span> <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>$</span> <span class='varid'>compareURI</span> <span class='varid'>uri</span> <span class='varid'>relaxNamespace</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-116"></a> <span class='layout'>)</span>-<a name="line-117"></a> <span class='layout'>)</span>-<a name="line-118"></a> <span class='layout'>)</span>-<a name="line-119"></a> <span class='varop'>>>></span>-<a name="line-120"></a> <span class='layout'>(</span> <span class='comment'>-- 4.2 For each element other than value and param, each child that </span>-<a name="line-121"></a> <span class='comment'>-- is a string containing only whitespace characters is removed.</span>-<a name="line-122"></a> <span class='layout'>(</span> <span class='varid'>processChildren</span> <span class='varid'>removeWhiteSpace</span>-<a name="line-123"></a> <span class='varop'>`whenNot`</span> -<a name="line-124"></a> <span class='layout'>(</span><span class='varid'>isRngParam</span> <span class='varop'>`orElse`</span> <span class='varid'>isRngValue</span><span class='layout'>)</span>-<a name="line-125"></a> <span class='layout'>)</span>-<a name="line-126"></a> <span class='varop'>`when`</span> <span class='varid'>isElem</span> -<a name="line-127"></a> <span class='layout'>)</span>-<a name="line-128"></a> <span class='varop'>>>></span> -<a name="line-129"></a> <span class='layout'>(</span> <span class='comment'>-- 4.2 Leading and trailing whitespace characters are removed from the value </span>-<a name="line-130"></a> <span class='comment'>-- of each name, type and combine attribute ...</span>-<a name="line-131"></a> <span class='varid'>changeAttrValue</span> <span class='varid'>normalizeWhitespace</span>-<a name="line-132"></a> <span class='varop'>`when`</span>-<a name="line-133"></a> <span class='layout'>(</span> <span class='varid'>isRngAttrName</span> <span class='varop'>`orElse`</span> <span class='varid'>isRngAttrType</span> <span class='varop'>`orElse`</span> <span class='varid'>isRngAttrCombine</span><span class='layout'>)</span>-<a name="line-134"></a> <span class='layout'>)</span>-<a name="line-135"></a> <span class='varop'>>>></span>-<a name="line-136"></a> <span class='layout'>(</span> <span class='comment'>-- 4.2 ... and from the content of each name element.</span>-<a name="line-137"></a> <span class='varid'>processChildren</span> <span class='layout'>(</span><span class='varid'>changeText</span> <span class='varid'>normalizeWhitespace</span><span class='layout'>)</span>-<a name="line-138"></a> <span class='varop'>`when`</span>-<a name="line-139"></a> <span class='varid'>isRngName</span>-<a name="line-140"></a> <span class='layout'>)</span>-<a name="line-141"></a> <span class='varop'>>>></span>-<a name="line-142"></a> <span class='layout'>(</span> <span class='comment'>-- 4.3 The value of each datatypeLibary attribute is transformed</span>-<a name="line-143"></a> <span class='comment'>-- by escaping disallowed characters</span>-<a name="line-144"></a> <span class='varid'>changeAttrValue</span> <span class='varid'>escapeURI</span>-<a name="line-145"></a> <span class='varop'>`when`</span>-<a name="line-146"></a> <span class='varid'>isRngAttrDatatypeLibrary</span>-<a name="line-147"></a> <span class='layout'>)</span>-<a name="line-148"></a> <span class='varop'>>>></span>-<a name="line-149"></a> <span class='layout'>(</span> <span class='comment'>-- The value of the datatypeLibary attribute has to be a valid URI</span>-<a name="line-150"></a> <span class='layout'>(</span> <span class='varid'>mkRelaxError</span> <span class='str'>""</span> <span class='varop'>$<</span> <span class='layout'>(</span> <span class='varid'>getRngAttrDatatypeLibrary</span>-<a name="line-151"></a> <span class='varop'>>>></span> -<a name="line-152"></a> <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='layout'>(</span> <span class='str'>"datatypeLibrary attribute: "</span> <span class='varop'>++</span> -<a name="line-153"></a> <span class='varid'>a</span> <span class='varop'>++</span> <span class='str'>" is not a valid URI"</span>-<a name="line-154"></a> <span class='layout'>)</span>-<a name="line-155"></a> <span class='layout'>)</span>-<a name="line-156"></a> <span class='layout'>)</span>-<a name="line-157"></a> <span class='layout'>)</span>-<a name="line-158"></a> <span class='varop'>`when`</span>-<a name="line-159"></a> <span class='layout'>(</span> <span class='varid'>isElem</span>-<a name="line-160"></a> <span class='varop'>>>></span>-<a name="line-161"></a> <span class='varid'>hasRngAttrDatatypeLibrary</span>-<a name="line-162"></a> <span class='varop'>>>></span> -<a name="line-163"></a> <span class='varid'>getRngAttrDatatypeLibrary</span> <span class='varop'>>>></span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>isRelaxAnyURI</span><span class='layout'>)</span>-<a name="line-164"></a> <span class='layout'>)</span>-<a name="line-165"></a> <span class='layout'>)</span>-<a name="line-166"></a> <span class='varop'>>>></span> -<a name="line-167"></a> <span class='layout'>(</span> <span class='comment'>-- 4.3 Any datatypeLibrary attribute that is on an element </span>-<a name="line-168"></a> <span class='comment'>-- other than data or value is removed.</span>-<a name="line-169"></a> <span class='varid'>removeAttr</span> <span class='str'>"datatypeLibrary"</span>-<a name="line-170"></a> <span class='varop'>`when`</span>-<a name="line-171"></a> <span class='layout'>(</span> <span class='varid'>isElem</span>-<a name="line-172"></a> <span class='varop'>>>></span>-<a name="line-173"></a> <span class='varid'>neg</span> <span class='layout'>(</span><span class='varid'>isRngData</span> <span class='varop'>`orElse`</span> <span class='varid'>isRngValue</span><span class='layout'>)</span> -<a name="line-174"></a> <span class='varop'>>>></span> -<a name="line-175"></a> <span class='varid'>hasRngAttrDatatypeLibrary</span>-<a name="line-176"></a> <span class='layout'>)</span>-<a name="line-177"></a> <span class='layout'>)</span>-<a name="line-178"></a> <span class='varop'>>>></span> -<a name="line-179"></a> <span class='layout'>(</span> <span class='comment'>-- 4.4 For any value element that does not have a type attribute,</span>-<a name="line-180"></a> <span class='comment'>-- a type attribute is added with value token and the value of </span>-<a name="line-181"></a> <span class='comment'>-- the datatypeLibrary attribute is changed to the empty string.</span>-<a name="line-182"></a> <span class='layout'>(</span> <span class='varid'>addAttr</span> <span class='str'>"type"</span> <span class='str'>"token"</span>-<a name="line-183"></a> <span class='varop'>>>></span>-<a name="line-184"></a> <span class='varid'>addAttr</span> <span class='str'>"datatypeLibrary"</span> <span class='str'>""</span>-<a name="line-185"></a> <span class='layout'>)</span>-<a name="line-186"></a> <span class='varop'>`when`</span>-<a name="line-187"></a> <span class='layout'>(</span> <span class='varid'>isRngValue</span> <span class='varop'>>>></span> <span class='varid'>neg</span> <span class='varid'>hasRngAttrType</span> <span class='layout'>)</span>-<a name="line-188"></a> <span class='layout'>)</span> -<a name="line-189"></a> <span class='layout'>)</span> -<a name="line-190"></a> <span class='layout'>)</span> <span class='varop'>`when`</span> <span class='varid'>collectErrors</span>-<a name="line-191"></a> <span class='keyword'>where</span>-<a name="line-192"></a> <span class='varid'>processHref</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-193"></a> <span class='varid'>processHref</span> <span class='varid'>uri</span>-<a name="line-194"></a> <span class='keyglyph'>=</span> <span class='varid'>processChildren</span>-<a name="line-195"></a> <span class='layout'>(</span> <span class='varid'>choiceA</span>-<a name="line-196"></a> <span class='keyglyph'>[</span> <span class='layout'>(</span> <span class='varid'>isElem</span> <span class='varop'>>>></span> <span class='varid'>hasAttr</span> <span class='str'>"xml:base"</span> <span class='layout'>)</span>-<a name="line-197"></a> <span class='conop'>:-></span> <span class='layout'>(</span> <span class='varid'>ifA</span> <span class='layout'>(</span> <span class='varid'>isExternalRefInclude</span> <span class='varop'>>>></span> <span class='varid'>hasRngAttrHref</span> <span class='layout'>)</span>-<a name="line-198"></a> <span class='layout'>(</span> <span class='comment'>-- The value of the href attribute is transformed by</span>-<a name="line-199"></a> <span class='comment'>-- escaping disallowed characters</span>-<a name="line-200"></a> <span class='layout'>(</span><span class='varid'>processAttrl</span> <span class='layout'>(</span><span class='varid'>changeAttrValue</span> <span class='varid'>escapeURI</span> <span class='varop'>`when`</span> <span class='varid'>isRngAttrHref</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-201"></a> <span class='varop'>>>></span> <span class='comment'>-- compute the new base uri from the old uri and the href attribute</span>-<a name="line-202"></a> <span class='layout'>(</span><span class='varid'>addAttr</span> <span class='str'>"href"</span> <span class='varop'>$<</span> <span class='layout'>(</span><span class='varid'>absURI</span> <span class='str'>"href"</span> <span class='varop'>$<</span> <span class='layout'>(</span><span class='varid'>absURI</span> <span class='str'>"xml:base"</span> <span class='varid'>uri</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-203"></a> <span class='varop'>>>></span> -<a name="line-204"></a> <span class='layout'>(</span><span class='varid'>processHref</span> <span class='varop'>$<</span> <span class='varid'>absURI</span> <span class='str'>"xml:base"</span> <span class='varid'>uri</span><span class='layout'>)</span>-<a name="line-205"></a> <span class='layout'>)</span> <span class='comment'>-- element without a href attribute, just compute the new base uri</span>-<a name="line-206"></a> <span class='layout'>(</span><span class='varid'>processHref</span> <span class='varop'>$<</span> <span class='varid'>absURI</span> <span class='str'>"xml:base"</span> <span class='varid'>uri</span><span class='layout'>)</span>-<a name="line-207"></a> <span class='layout'>)</span>-<a name="line-208"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>isExternalRefInclude</span> <span class='varop'>>>></span> <span class='varid'>hasRngAttrHref</span> <span class='layout'>)</span>-<a name="line-209"></a> <span class='conop'>:-></span> <span class='layout'>(</span> <span class='comment'>-- The value of the href attribute is transformed by </span>-<a name="line-210"></a> <span class='comment'>-- escaping disallowed characters</span>-<a name="line-211"></a> <span class='layout'>(</span><span class='varid'>processAttrl</span> <span class='layout'>(</span><span class='varid'>changeAttrValue</span> <span class='varid'>escapeURI</span> <span class='varop'>`when`</span> <span class='varid'>isRngAttrHref</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-212"></a> <span class='varop'>>>></span>-<a name="line-213"></a> <span class='layout'>(</span><span class='varid'>addAttr</span> <span class='str'>"href"</span> <span class='varop'>$<</span> <span class='varid'>absURI</span> <span class='str'>"href"</span> <span class='varid'>uri</span><span class='layout'>)</span>-<a name="line-214"></a> <span class='layout'>)</span>-<a name="line-215"></a> <span class='layout'>,</span> <span class='varid'>this</span>-<a name="line-216"></a> <span class='conop'>:-></span> <span class='varid'>processHref</span> <span class='varid'>uri</span>-<a name="line-217"></a> <span class='keyglyph'>]</span>-<a name="line-218"></a> <span class='layout'>)</span>-<a name="line-219"></a> <span class='keyword'>where</span>-<a name="line-220"></a> <span class='varid'>absURI</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>-<a name="line-221"></a> <span class='varid'>absURI</span> <span class='varid'>attrName</span> <span class='varid'>u</span>-<a name="line-222"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>getAttrValue</span> <span class='varid'>attrName</span>-<a name="line-223"></a> <span class='varop'>>>></span> -<a name="line-224"></a> <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='varid'>fromMaybe</span> <span class='str'>""</span> <span class='layout'>(</span><span class='varid'>expandURIString</span> <span class='varid'>a</span> <span class='varid'>u</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-225"></a> <span class='varop'>>>></span> <span class='comment'>-- the uri should not have a fragment-identifier (4.5)</span>-<a name="line-226"></a> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>arr</span> <span class='layout'>(</span><span class='varop'>++</span> <span class='str'>", it is not a valid URI for text/xml"</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-227"></a> <span class='varop'>`whenNot`</span>-<a name="line-228"></a> <span class='layout'>(</span><span class='varid'>getFragmentFromURI</span> <span class='varop'>>>></span> <span class='varid'>isA</span> <span class='varid'>null</span><span class='layout'>)</span>-<a name="line-229"></a> <span class='layout'>)</span>-<a name="line-230"></a> <span class='layout'>)</span>-<a name="line-231"></a>-<a name="line-232"></a> <span class='varid'>processEnvNames</span> <span class='keyglyph'>::</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-></span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-233"></a> <span class='varid'>processEnvNames</span> <span class='varid'>env</span>-<a name="line-234"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>replaceQNames</span> <span class='varid'>env</span> <span class='varop'>$<</span> <span class='varid'>getAttrValue</span> <span class='str'>"name"</span><span class='layout'>)</span>-<a name="line-235"></a> <span class='varop'>`when`</span>-<a name="line-236"></a> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>isRngElement</span> <span class='varop'>`orElse`</span> <span class='varid'>isRngAttribute</span><span class='layout'>)</span>-<a name="line-237"></a> <span class='varop'>>>></span>-<a name="line-238"></a> <span class='varid'>getRngAttrName</span>-<a name="line-239"></a> <span class='varop'>>>></span>-<a name="line-240"></a> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>elem</span> <span class='chr'>':'</span><span class='layout'>)</span>-<a name="line-241"></a> <span class='layout'>)</span>-<a name="line-242"></a> <span class='layout'>)</span>-<a name="line-243"></a> <span class='varop'>>>></span>-<a name="line-244"></a> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>addAttrl</span> <span class='layout'>(</span><span class='varid'>getBaseURI</span> <span class='varop'>>>></span> <span class='varid'>createAttrL</span><span class='layout'>)</span><span class='layout'>)</span> -<a name="line-245"></a> <span class='varop'>`when`</span>-<a name="line-246"></a> <span class='varid'>isRngValue</span>-<a name="line-247"></a> <span class='layout'>)</span>-<a name="line-248"></a> <span class='layout'>)</span>-<a name="line-249"></a> <span class='keyword'>where</span>-<a name="line-250"></a> <span class='varid'>createAttrL</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>String</span> <span class='conid'>XmlTree</span>-<a name="line-251"></a> <span class='varid'>createAttrL</span>-<a name="line-252"></a> <span class='keyglyph'>=</span> <span class='varid'>setBaseUri</span> <span class='varop'>&&&</span> <span class='varid'>constA</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>createAttr</span> <span class='varid'>env</span><span class='layout'>)</span> <span class='varop'>>>></span> <span class='varid'>arr2L</span> <span class='layout'>(</span><span class='conop'>:</span><span class='layout'>)</span>-<a name="line-253"></a> <span class='keyword'>where</span>-<a name="line-254"></a>-<a name="line-255"></a> <span class='varid'>createAttr</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>XName</span><span class='layout'>,</span> <span class='conid'>XName</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span>-<a name="line-256"></a> <span class='varid'>createAttr</span> <span class='layout'>(</span><span class='varid'>pre</span><span class='layout'>,</span> <span class='varid'>uri</span><span class='layout'>)</span>-<a name="line-257"></a> <span class='keyglyph'>=</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkAttr</span> <span class='layout'>(</span><span class='varid'>mkName</span> <span class='varid'>nm</span><span class='layout'>)</span> <span class='keyglyph'>[</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkText</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>uri</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-258"></a> <span class='keyword'>where</span>-<a name="line-259"></a> <span class='varid'>nm</span> <span class='keyglyph'>|</span> <span class='varid'>isNullXName</span> <span class='varid'>pre</span> <span class='keyglyph'>=</span> <span class='str'>"RelaxContextDefault"</span>-<a name="line-260"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>contextAttributes</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>pre</span>-<a name="line-261"></a>-<a name="line-262"></a> <span class='varid'>setBaseUri</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>String</span> <span class='conid'>XmlTree</span>-<a name="line-263"></a> <span class='varid'>setBaseUri</span> <span class='keyglyph'>=</span> <span class='varid'>mkAttr</span> <span class='layout'>(</span><span class='varid'>mkName</span> <span class='varid'>contextBaseAttr</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>txt</span> <span class='varop'>$<</span> <span class='varid'>this</span><span class='layout'>)</span>-<a name="line-264"></a>-<a name="line-265"></a> <span class='varid'>replaceQNames</span> <span class='keyglyph'>::</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> -<a name="line-266"></a> <span class='varid'>replaceQNames</span> <span class='varid'>e</span> <span class='varid'>name</span>-<a name="line-267"></a> <span class='keyglyph'>|</span> <span class='varid'>isNothing</span> <span class='varid'>uri</span>-<a name="line-268"></a> <span class='keyglyph'>=</span> <span class='varid'>mkRelaxError</span> <span class='str'>""</span> <span class='layout'>(</span> <span class='str'>"No Namespace-Mapping for the prefix "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>pre</span> <span class='varop'>++</span> -<a name="line-269"></a> <span class='str'>" in the Context of Element: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>name</span>-<a name="line-270"></a> <span class='layout'>)</span>-<a name="line-271"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-272"></a> <span class='keyglyph'>=</span> <span class='varid'>addAttr</span> <span class='str'>"name"</span> <span class='layout'>(</span> <span class='str'>"{"</span> <span class='varop'>++</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varop'>.</span> <span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>uri</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='str'>"}"</span> <span class='varop'>++</span> <span class='varid'>local</span> <span class='layout'>)</span>-<a name="line-273"></a> <span class='keyword'>where</span>-<a name="line-274"></a> <span class='layout'>(</span><span class='varid'>pre</span><span class='layout'>,</span> <span class='varid'>local'</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>span</span> <span class='layout'>(</span><span class='varop'>/=</span> <span class='chr'>':'</span><span class='layout'>)</span> <span class='varid'>name</span>-<a name="line-275"></a> <span class='varid'>local</span> <span class='keyglyph'>=</span> <span class='varid'>tail</span> <span class='varid'>local'</span>-<a name="line-276"></a> <span class='varid'>uri</span> <span class='keyglyph'>::</span> <span class='conid'>Maybe</span> <span class='conid'>XName</span>-<a name="line-277"></a> <span class='varid'>uri</span> <span class='keyglyph'>=</span> <span class='varid'>lookup</span> <span class='layout'>(</span><span class='varid'>newXName</span> <span class='varid'>pre</span><span class='layout'>)</span> <span class='varid'>e</span>-<a name="line-278"></a>-<a name="line-279"></a> <span class='comment'>-- The value of the added datatypeLibrary attribute is the value of the </span>-<a name="line-280"></a> <span class='comment'>-- datatypeLibrary attribute of the nearest ancestor element that </span>-<a name="line-281"></a> <span class='comment'>-- has a datatypeLibrary attribute, or the empty string </span>-<a name="line-282"></a> <span class='comment'>-- if there is no such ancestor.</span>-<a name="line-283"></a> <span class='varid'>processdatatypeLib</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>ArrowXml</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>=></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-284"></a> <span class='varid'>processdatatypeLib</span> <span class='varid'>lib</span> -<a name="line-285"></a> <span class='keyglyph'>=</span> <span class='varid'>processChildren</span> <span class='varop'>$</span>-<a name="line-286"></a> <span class='varid'>choiceA</span>-<a name="line-287"></a> <span class='keyglyph'>[</span> <span class='layout'>(</span> <span class='varid'>isElem</span> <span class='varop'>>>></span> <span class='varid'>hasRngAttrDatatypeLibrary</span>-<a name="line-288"></a> <span class='comment'>-- set the new datatypeLibrary value</span>-<a name="line-289"></a> <span class='layout'>)</span>-<a name="line-290"></a> <span class='conop'>:-></span>-<a name="line-291"></a> <span class='layout'>(</span> <span class='varid'>processdatatypeLib</span> <span class='varop'>$<</span> <span class='varid'>getRngAttrDatatypeLibrary</span> <span class='layout'>)</span>-<a name="line-292"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>isRngData</span> <span class='varop'>`orElse`</span> <span class='varid'>isRngValue</span><span class='layout'>)</span>-<a name="line-293"></a> <span class='varop'>>>></span> -<a name="line-294"></a> <span class='varid'>neg</span> <span class='varid'>hasRngAttrDatatypeLibrary</span>-<a name="line-295"></a> <span class='comment'>-- add a datatypeLibrary attribute</span>-<a name="line-296"></a> <span class='layout'>)</span>-<a name="line-297"></a> <span class='conop'>:-></span>-<a name="line-298"></a> <span class='layout'>(</span> <span class='varid'>addAttr</span> <span class='str'>"datatypeLibrary"</span> <span class='varid'>lib</span> <span class='varop'>>>></span> <span class='varid'>processdatatypeLib</span> <span class='varid'>lib</span> <span class='layout'>)</span>-<a name="line-299"></a> <span class='layout'>,</span> <span class='varid'>this</span>-<a name="line-300"></a> <span class='conop'>:-></span>-<a name="line-301"></a> <span class='varid'>processdatatypeLib</span> <span class='varid'>lib</span>-<a name="line-302"></a> <span class='keyglyph'>]</span>-<a name="line-303"></a>-<a name="line-304"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-305"></a>-<a name="line-306"></a>-<a name="line-307"></a><span class='comment'>{- -<a name="line-308"></a>- 4.5. href attribute-<a name="line-309"></a> - see simplificationStep1-<a name="line-310"></a>- 4.6. externalRef element-<a name="line-311"></a> - An element is constructed using the URI reference -<a name="line-312"></a> that is the value of href attribute-<a name="line-313"></a> - This element must match the syntax for pattern.-<a name="line-314"></a> - The element is transformed by recursively applying the rules from -<a name="line-315"></a> this subsection and from previous subsections of this section.-<a name="line-316"></a> - This must not result in a loop.-<a name="line-317"></a> - Any ns attribute on the externalRef element is transferred -<a name="line-318"></a> to the referenced element if the referenced element does-<a name="line-319"></a> not already have an ns attribute.-<a name="line-320"></a> - The externalRef element is then replaced by the referenced element.-<a name="line-321"></a>- 4.7. include element-<a name="line-322"></a> - An element is constructed using the URI reference that is the-<a name="line-323"></a> value of href attribute-<a name="line-324"></a> - This element must be a grammar element, matching the syntax for grammar.-<a name="line-325"></a> - This grammar element is transformed by recursively applying the rules -<a name="line-326"></a> from this subsection and from previous subsections of this section.-<a name="line-327"></a> - This must not result in a loop.-<a name="line-328"></a> -<a name="line-329"></a> - If the include element has a start component, then the grammar element-<a name="line-330"></a> must have a start component.-<a name="line-331"></a> - If the include element has a start component, then all start components-<a name="line-332"></a> are removed from the grammar element.-<a name="line-333"></a> - If the include element has a define component, then the grammar element-<a name="line-334"></a> must have a define component with the same name.-<a name="line-335"></a> - For every define component of the include element, all define components-<a name="line-336"></a> with the same name are removed from the grammar element.-<a name="line-337"></a> -<a name="line-338"></a> - The include element is transformed into a div element.-<a name="line-339"></a> - The attributes of the div element are the attributes of the -<a name="line-340"></a> include element other than the href attribute.-<a name="line-341"></a> - The children of the div element are the grammar element-<a name="line-342"></a> - The grammar element is then renamed to div.-<a name="line-343"></a>-}</span>-<a name="line-344"></a>-<a name="line-345"></a><a name="simplificationStep2"></a><span class='definition'>simplificationStep2</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>Uri</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>Uri</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-346"></a><span class='definition'>simplificationStep2</span> <span class='varid'>readOptions</span> <span class='varid'>validateExternalRef</span> <span class='varid'>validateInclude</span> <span class='varid'>extHRefs</span> <span class='varid'>includeHRefs</span> <span class='keyglyph'>=</span>-<a name="line-347"></a> <span class='layout'>(</span> <span class='varid'>processTopDown</span> <span class='layout'>(</span>-<a name="line-348"></a> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>importExternalRef</span> <span class='varop'>$<<</span> <span class='layout'>(</span><span class='varid'>getRngAttrNs</span> <span class='varop'>&&&</span> <span class='varid'>getRngAttrHref</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-349"></a> <span class='varop'>`when`</span>-<a name="line-350"></a> <span class='varid'>isRngExternalRef</span>-<a name="line-351"></a> <span class='layout'>)</span>-<a name="line-352"></a> <span class='varop'>>>></span>-<a name="line-353"></a> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>importInclude</span> <span class='varop'>$<</span> <span class='varid'>getAttrValue</span> <span class='str'>"href"</span><span class='layout'>)</span>-<a name="line-354"></a> <span class='varop'>`when`</span>-<a name="line-355"></a> <span class='varid'>isRngInclude</span>-<a name="line-356"></a> <span class='layout'>)</span>-<a name="line-357"></a> <span class='layout'>)</span>-<a name="line-358"></a> <span class='layout'>)</span> <span class='varop'>`when`</span> <span class='varid'>collectErrors</span>-<a name="line-359"></a> <span class='keyword'>where</span>-<a name="line-360"></a> <span class='varid'>importExternalRef</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-361"></a> <span class='varid'>importExternalRef</span> <span class='varid'>ns</span> <span class='varid'>href</span>-<a name="line-362"></a> <span class='keyglyph'>=</span> <span class='varid'>ifA</span> <span class='layout'>(</span> <span class='comment'>-- test whether the referenced schema exists</span>-<a name="line-363"></a> <span class='varid'>neg</span> <span class='varop'>$</span> <span class='varid'>constA</span> <span class='varid'>href</span> <span class='varop'>>>></span> <span class='varid'>getPathFromURI</span> <span class='varop'>>>></span> <span class='varid'>isIOA</span> <span class='varid'>doesFileExist</span>-<a name="line-364"></a> <span class='layout'>)</span>-<a name="line-365"></a> <span class='layout'>(</span> <span class='varid'>mkRelaxError</span> <span class='str'>""</span>-<a name="line-366"></a> <span class='layout'>(</span> <span class='str'>"Can't read "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>href</span> <span class='varop'>++</span>-<a name="line-367"></a> <span class='str'>", referenced in externalRef-Pattern"</span>-<a name="line-368"></a> <span class='layout'>)</span>-<a name="line-369"></a> <span class='layout'>)</span>-<a name="line-370"></a> <span class='layout'>(</span> <span class='varid'>ifP</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varop'>$</span> <span class='varid'>elem</span> <span class='varid'>href</span> <span class='varid'>extHRefs</span><span class='layout'>)</span>-<a name="line-371"></a> <span class='comment'>-- if the referenced name already exists in the list of processed ref attributes</span>-<a name="line-372"></a> <span class='comment'>-- we have found a loop</span>-<a name="line-373"></a> <span class='layout'>(</span> <span class='varid'>mkRelaxError</span> <span class='str'>""</span>-<a name="line-374"></a> <span class='layout'>(</span> <span class='str'>"loop in externalRef-Pattern, "</span> <span class='varop'>++</span> -<a name="line-375"></a> <span class='varid'>formatStringListArr</span> <span class='layout'>(</span><span class='varid'>reverse</span> <span class='varop'>$</span> <span class='varid'>href</span><span class='conop'>:</span><span class='varid'>extHRefs</span><span class='layout'>)</span>-<a name="line-376"></a> <span class='layout'>)</span>-<a name="line-377"></a> <span class='layout'>)</span>-<a name="line-378"></a> <span class='layout'>(</span> <span class='varid'>ifA</span> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>validateExternalRef</span> <span class='comment'>-- if validation parameters are set</span>-<a name="line-379"></a> <span class='keyword'>then</span> <span class='varid'>validateDocWithRelax</span> <span class='conid'>S</span><span class='varop'>.</span><span class='varid'>relaxSchemaArrow</span> <span class='conid'>[]</span> <span class='varid'>href</span> <span class='comment'>-- the referenced schema is validated with respect to</span>-<a name="line-380"></a> <span class='keyword'>else</span> <span class='varid'>none</span> <span class='comment'>-- the Relax NG spezification</span>-<a name="line-381"></a> <span class='layout'>)</span>-<a name="line-382"></a> <span class='layout'>(</span> <span class='varid'>mkRelaxError</span> <span class='str'>""</span>-<a name="line-383"></a> <span class='layout'>(</span> <span class='str'>"The content of the schema "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>href</span> <span class='varop'>++</span> -<a name="line-384"></a> <span class='str'>", referenced in externalRef does not "</span> <span class='varop'>++</span>-<a name="line-385"></a> <span class='str'>"match the syntax for pattern"</span>-<a name="line-386"></a> <span class='layout'>)</span>-<a name="line-387"></a> <span class='layout'>)</span>-<a name="line-388"></a> <span class='layout'>(</span> <span class='varid'>readForRelax</span> <span class='varid'>readOptions</span> <span class='varid'>href</span>-<a name="line-389"></a> <span class='varop'>>>></span>-<a name="line-390"></a> <span class='varid'>simplificationStep1</span> <span class='comment'>-- perform the transformations from previous steps</span>-<a name="line-391"></a> <span class='varop'>>>></span>-<a name="line-392"></a> <span class='varid'>simplificationStep2</span> <span class='varid'>readOptions</span> <span class='varid'>validateExternalRef</span> <span class='varid'>validateInclude</span> <span class='layout'>(</span><span class='varid'>href</span><span class='conop'>:</span><span class='varid'>extHRefs</span><span class='layout'>)</span> <span class='varid'>includeHRefs</span>-<a name="line-393"></a> <span class='varop'>>>></span>-<a name="line-394"></a> <span class='varid'>getChildren</span> <span class='comment'>-- remove the root node</span>-<a name="line-395"></a> <span class='varop'>>>></span>-<a name="line-396"></a> <span class='layout'>(</span> <span class='comment'>-- Any ns attribute on the externalRef element</span>-<a name="line-397"></a> <span class='comment'>-- is transferred to the referenced element</span>-<a name="line-398"></a> <span class='varid'>addAttr</span> <span class='str'>"ns"</span> <span class='varid'>ns</span>-<a name="line-399"></a> <span class='varop'>`when`</span>-<a name="line-400"></a> <span class='layout'>(</span><span class='varid'>getRngAttrNs</span> <span class='varop'>>>></span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varop'>==</span> <span class='str'>""</span> <span class='varop'>&&</span> <span class='varid'>ns</span> <span class='varop'>/=</span> <span class='str'>""</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-401"></a> <span class='layout'>)</span>-<a name="line-402"></a> <span class='layout'>)</span>-<a name="line-403"></a> <span class='layout'>)</span>-<a name="line-404"></a> <span class='layout'>)</span>-<a name="line-405"></a> -<a name="line-406"></a> <span class='varid'>importInclude</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-407"></a> <span class='varid'>importInclude</span> <span class='varid'>href</span>-<a name="line-408"></a> <span class='keyglyph'>=</span> <span class='varid'>ifA</span> <span class='layout'>(</span> <span class='comment'>-- test whether the referenced schema exists</span>-<a name="line-409"></a> <span class='varid'>neg</span> <span class='varop'>$</span> <span class='varid'>constA</span> <span class='varid'>href</span> <span class='varop'>>>></span> <span class='varid'>getPathFromURI</span> <span class='varop'>>>></span> <span class='varid'>isIOA</span> <span class='varid'>doesFileExist</span>-<a name="line-410"></a> <span class='layout'>)</span>-<a name="line-411"></a> <span class='layout'>(</span> <span class='varid'>mkRelaxError</span> <span class='str'>""</span>-<a name="line-412"></a> <span class='layout'>(</span> <span class='str'>"Can't read "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>href</span> <span class='varop'>++</span>-<a name="line-413"></a> <span class='str'>", referenced in include-Pattern"</span>-<a name="line-414"></a> <span class='layout'>)</span>-<a name="line-415"></a> <span class='layout'>)</span>-<a name="line-416"></a> <span class='layout'>(</span> <span class='varid'>ifP</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varop'>$</span> <span class='varid'>elem</span> <span class='varid'>href</span> <span class='varid'>includeHRefs</span><span class='layout'>)</span>-<a name="line-417"></a> <span class='comment'>-- if the referenced name still exists in the list of processed</span>-<a name="line-418"></a> <span class='comment'>-- ref attributes we have found a loop</span>-<a name="line-419"></a> <span class='layout'>(</span> <span class='varid'>mkRelaxError</span> <span class='str'>""</span>-<a name="line-420"></a> <span class='layout'>(</span> <span class='str'>"loop in include-Pattern, "</span> <span class='varop'>++</span> -<a name="line-421"></a> <span class='varid'>formatStringListArr</span> <span class='layout'>(</span><span class='varid'>reverse</span> <span class='varop'>$</span> <span class='varid'>href</span><span class='conop'>:</span><span class='varid'>includeHRefs</span><span class='layout'>)</span>-<a name="line-422"></a> <span class='layout'>)</span>-<a name="line-423"></a> <span class='layout'>)</span>-<a name="line-424"></a> <span class='layout'>(</span> <span class='varid'>ifA</span> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>validateInclude</span> <span class='comment'>-- if the parameter is set</span>-<a name="line-425"></a> <span class='keyword'>then</span> <span class='varid'>validateDocWithRelax</span> <span class='conid'>SG</span><span class='varop'>.</span><span class='varid'>relaxSchemaArrow</span> <span class='conid'>[]</span> <span class='varid'>href</span> <span class='comment'>-- the referenced schema is validated with respect to</span>-<a name="line-426"></a> <span class='keyword'>else</span> <span class='varid'>none</span> <span class='comment'>-- the Relax NG grammar element</span>-<a name="line-427"></a> <span class='layout'>)</span>-<a name="line-428"></a> <span class='layout'>(</span> <span class='varid'>mkRelaxError</span> <span class='str'>""</span>-<a name="line-429"></a> <span class='layout'>(</span> <span class='str'>"The content of the schema "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>href</span> <span class='varop'>++</span> -<a name="line-430"></a> <span class='str'>", referenced in include does not match "</span> <span class='varop'>++</span>-<a name="line-431"></a> <span class='str'>"the syntax for grammar"</span>-<a name="line-432"></a> <span class='layout'>)</span>-<a name="line-433"></a> <span class='layout'>)</span>-<a name="line-434"></a> <span class='layout'>(</span> <span class='varid'>processInclude</span> <span class='varid'>href</span> <span class='varop'>$<</span> <span class='layout'>(</span> <span class='varid'>readForRelax</span> <span class='varid'>readOptions</span> <span class='varid'>href</span>-<a name="line-435"></a> <span class='varop'>>>></span>-<a name="line-436"></a> <span class='varid'>simplificationStep1</span> <span class='comment'>-- perform the transformations from previous steps</span>-<a name="line-437"></a> <span class='varop'>>>></span> -<a name="line-438"></a> <span class='varid'>simplificationStep2</span> <span class='varid'>readOptions</span> <span class='varid'>validateExternalRef</span> <span class='varid'>validateInclude</span> <span class='varid'>extHRefs</span> <span class='layout'>(</span><span class='varid'>href</span><span class='conop'>:</span><span class='varid'>includeHRefs</span><span class='layout'>)</span>-<a name="line-439"></a> <span class='varop'>>>></span>-<a name="line-440"></a> <span class='varid'>getChildren</span> <span class='comment'>-- remove the root node</span>-<a name="line-441"></a> <span class='layout'>)</span>-<a name="line-442"></a> <span class='layout'>)</span>-<a name="line-443"></a> <span class='layout'>)</span>-<a name="line-444"></a> <span class='layout'>)</span>-<a name="line-445"></a> -<a name="line-446"></a> <span class='varid'>processInclude</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-447"></a> <span class='varid'>processInclude</span> <span class='varid'>href</span> <span class='varid'>newDoc</span>-<a name="line-448"></a> <span class='keyglyph'>=</span> <span class='comment'>-- The include element is transformed into a div element.</span>-<a name="line-449"></a> <span class='varid'>setRngNameDiv</span>-<a name="line-450"></a> <span class='varop'>>>></span>-<a name="line-451"></a> <span class='comment'>-- The attributes of the div element are the attributes of </span>-<a name="line-452"></a> <span class='comment'>-- the include element other than the href attribute.</span>-<a name="line-453"></a> <span class='varid'>removeAttr</span> <span class='str'>"href"</span>-<a name="line-454"></a> <span class='varop'>>>></span> -<a name="line-455"></a> <span class='varid'>checkInclude</span> <span class='varid'>href</span> <span class='varid'>newDoc</span>-<a name="line-456"></a> -<a name="line-457"></a> -<a name="line-458"></a> <span class='varid'>insertNewDoc</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-459"></a> <span class='varid'>insertNewDoc</span> <span class='varid'>newDoc</span> <span class='varid'>hasStart</span> <span class='varid'>defNames</span>-<a name="line-460"></a> <span class='keyglyph'>=</span> <span class='varid'>insertChildrenAt</span> <span class='num'>0</span> <span class='varop'>$</span>-<a name="line-461"></a> <span class='varid'>constA</span> <span class='varid'>newDoc</span>-<a name="line-462"></a> <span class='varop'>>>></span>-<a name="line-463"></a> <span class='comment'>-- If the include element has a start component, then all start components</span>-<a name="line-464"></a> <span class='comment'>-- are removed from the grammar element. </span>-<a name="line-465"></a> <span class='layout'>(</span><span class='varid'>removeStartComponent</span> <span class='varop'>`whenP`</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varid'>hasStart</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-466"></a> <span class='varop'>>>></span>-<a name="line-467"></a> <span class='comment'>-- For every define component of the include element, all define components</span>-<a name="line-468"></a> <span class='comment'>-- with the same name are removed from the grammar element.</span>-<a name="line-469"></a> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>removeDefineComponent</span> <span class='varid'>defNames</span><span class='layout'>)</span> <span class='varop'>`whenP`</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varop'>$</span> <span class='varid'>defNames</span> <span class='varop'>/=</span> <span class='conid'>[]</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-470"></a> <span class='varop'>>>></span>-<a name="line-471"></a> <span class='comment'>-- The grammar element is then renamed to div.</span>-<a name="line-472"></a> <span class='varid'>setRngNameDiv</span>-<a name="line-473"></a>-<a name="line-474"></a> -<a name="line-475"></a> <span class='varid'>checkInclude</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-476"></a> <span class='varid'>checkInclude</span> <span class='varid'>href</span> <span class='varid'>newDoc</span>-<a name="line-477"></a> <span class='keyglyph'>=</span> <span class='varid'>ifA</span> <span class='layout'>(</span> <span class='comment'>-- If the include element has a start component, then the grammar element</span>-<a name="line-478"></a> <span class='comment'>-- must have a start component.</span>-<a name="line-479"></a> <span class='varid'>hasStartComponent</span> <span class='varop'>&&&</span> <span class='layout'>(</span><span class='varid'>constA</span> <span class='varid'>newDoc</span> <span class='varop'>>>></span> <span class='varid'>hasStartComponent</span><span class='layout'>)</span>-<a name="line-480"></a> <span class='varop'>>>></span> -<a name="line-481"></a> <span class='varid'>isA</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='keyword'>if</span> <span class='varid'>a</span> <span class='keyword'>then</span> <span class='varid'>b</span> <span class='keyword'>else</span> <span class='conid'>True</span><span class='layout'>)</span>-<a name="line-482"></a> <span class='layout'>)</span>-<a name="line-483"></a> <span class='layout'>(</span> <span class='varid'>ifA</span> <span class='layout'>(</span> <span class='comment'>-- If the include element has a define component, then the grammar element</span>-<a name="line-484"></a> <span class='comment'>-- must have a define component with the same name.</span>-<a name="line-485"></a> <span class='varid'>getDefineComponents</span> <span class='varop'>&&&</span> <span class='layout'>(</span><span class='varid'>constA</span> <span class='varid'>newDoc</span> <span class='varop'>>>></span> <span class='varid'>getDefineComponents</span><span class='layout'>)</span>-<a name="line-486"></a> <span class='varop'>>>></span> -<a name="line-487"></a> <span class='varid'>isA</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='varid'>diff</span> <span class='varid'>a</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='varop'>==</span> <span class='conid'>[]</span><span class='layout'>)</span>-<a name="line-488"></a> <span class='layout'>)</span>-<a name="line-489"></a> <span class='layout'>(</span><span class='varid'>insertNewDoc</span> <span class='varid'>newDoc</span> <span class='varop'>$<<</span> <span class='varid'>hasStartComponent</span> <span class='varop'>&&&</span> <span class='varid'>getDefineComponents</span><span class='layout'>)</span>-<a name="line-490"></a> <span class='layout'>(</span> <span class='varid'>mkRelaxError</span> <span class='str'>""</span>-<a name="line-491"></a> <span class='layout'>(</span> <span class='str'>"Define-pattern missing in schema "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>href</span> <span class='varop'>++</span> -<a name="line-492"></a> <span class='str'>", referenced in include-pattern"</span>-<a name="line-493"></a> <span class='layout'>)</span>-<a name="line-494"></a> <span class='layout'>)</span>-<a name="line-495"></a> <span class='layout'>)</span>-<a name="line-496"></a> <span class='layout'>(</span> <span class='varid'>mkRelaxError</span> <span class='str'>""</span>-<a name="line-497"></a> <span class='layout'>(</span> <span class='str'>"Grammar-element without a start-pattern in schema "</span> <span class='varop'>++</span>-<a name="line-498"></a> <span class='varid'>show</span> <span class='varid'>href</span> <span class='varop'>++</span> <span class='str'>", referenced in include-pattern"</span>-<a name="line-499"></a> <span class='layout'>)</span>-<a name="line-500"></a> <span class='layout'>)</span>-<a name="line-501"></a> <span class='keyword'>where</span>-<a name="line-502"></a> <span class='varid'>diff</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>noDoubles</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='varop'>\\</span> <span class='layout'>(</span><span class='varid'>noDoubles</span> <span class='varid'>b</span><span class='layout'>)</span>-<a name="line-503"></a>-<a name="line-504"></a> <span class='varid'>removeStartComponent</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-505"></a> <span class='varid'>removeStartComponent</span>-<a name="line-506"></a> <span class='keyglyph'>=</span> <span class='varid'>processChildren</span> <span class='varop'>$</span>-<a name="line-507"></a> <span class='varid'>choiceA</span> <span class='keyglyph'>[</span>-<a name="line-508"></a> <span class='varid'>isRngStart</span> <span class='conop'>:-></span> <span class='varid'>none</span><span class='layout'>,</span>-<a name="line-509"></a> <span class='varid'>isRngDiv</span> <span class='conop'>:-></span> <span class='varid'>removeStartComponent</span><span class='layout'>,</span>-<a name="line-510"></a> <span class='varid'>this</span> <span class='conop'>:-></span> <span class='varid'>this</span>-<a name="line-511"></a> <span class='keyglyph'>]</span>-<a name="line-512"></a>-<a name="line-513"></a> <span class='varid'>removeDefineComponent</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-514"></a> <span class='varid'>removeDefineComponent</span> <span class='varid'>defNames</span>-<a name="line-515"></a> <span class='keyglyph'>=</span> <span class='varid'>processChildren</span> <span class='varop'>$</span>-<a name="line-516"></a> <span class='varid'>choiceA</span> <span class='keyglyph'>[</span>-<a name="line-517"></a> <span class='layout'>(</span> <span class='varid'>isRngDefine</span>-<a name="line-518"></a> <span class='varop'>>>></span>-<a name="line-519"></a> <span class='varid'>getRngAttrName</span>-<a name="line-520"></a> <span class='varop'>>>></span> -<a name="line-521"></a> <span class='varid'>isA</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>n</span> <span class='keyglyph'>-></span> <span class='varid'>elem</span> <span class='varid'>n</span> <span class='varid'>defNames</span><span class='layout'>)</span><span class='layout'>)</span> <span class='conop'>:-></span> <span class='varid'>none</span><span class='layout'>,</span>-<a name="line-522"></a> <span class='layout'>(</span><span class='varid'>isElem</span> <span class='varop'>>>></span> <span class='varid'>getName</span> <span class='varop'>>>></span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='str'>"div"</span><span class='layout'>)</span><span class='layout'>)</span> <span class='conop'>:-></span> <span class='layout'>(</span><span class='varid'>removeDefineComponent</span> <span class='varid'>defNames</span><span class='layout'>)</span><span class='layout'>,</span>-<a name="line-523"></a> <span class='layout'>(</span><span class='varid'>constA</span> <span class='str'>"foo"</span> <span class='varop'>>>></span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='str'>"foo"</span><span class='layout'>)</span><span class='layout'>)</span> <span class='conop'>:-></span> <span class='varid'>this</span>-<a name="line-524"></a> <span class='keyglyph'>]</span>-<a name="line-525"></a> -<a name="line-526"></a> <span class='varid'>hasStartComponent</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>Bool</span>-<a name="line-527"></a> <span class='varid'>hasStartComponent</span> <span class='keyglyph'>=</span> <span class='varid'>listA</span> <span class='varid'>hasStartComponent'</span> <span class='varop'>>>></span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='varid'>any</span> <span class='varid'>id</span><span class='layout'>)</span>-<a name="line-528"></a> <span class='keyword'>where</span>-<a name="line-529"></a> <span class='varid'>hasStartComponent'</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>Bool</span>-<a name="line-530"></a> <span class='varid'>hasStartComponent'</span>-<a name="line-531"></a> <span class='keyglyph'>=</span> <span class='varid'>getChildren</span>-<a name="line-532"></a> <span class='varop'>>>></span>-<a name="line-533"></a> <span class='varid'>choiceA</span> <span class='keyglyph'>[</span>-<a name="line-534"></a> <span class='varid'>isRngStart</span> <span class='conop'>:-></span> <span class='layout'>(</span><span class='varid'>constA</span> <span class='conid'>True</span><span class='layout'>)</span><span class='layout'>,</span>-<a name="line-535"></a> <span class='varid'>isRngDiv</span> <span class='conop'>:-></span> <span class='varid'>hasStartComponent'</span><span class='layout'>,</span>-<a name="line-536"></a> <span class='varid'>this</span> <span class='conop'>:-></span> <span class='layout'>(</span><span class='varid'>constA</span> <span class='conid'>False</span><span class='layout'>)</span>-<a name="line-537"></a> <span class='keyglyph'>]</span>-<a name="line-538"></a>-<a name="line-539"></a> <span class='varid'>getDefineComponents</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span>-<a name="line-540"></a> <span class='varid'>getDefineComponents</span> <span class='keyglyph'>=</span> <span class='varid'>listA</span> <span class='varid'>getDefineComponents'</span>-<a name="line-541"></a> <span class='varop'>>>></span> -<a name="line-542"></a> <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>xs</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='varid'>x</span> <span class='keyglyph'>|</span> <span class='varid'>x</span> <span class='keyglyph'><-</span> <span class='varid'>xs</span><span class='layout'>,</span> <span class='varid'>x</span> <span class='varop'>/=</span> <span class='str'>""</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-543"></a> <span class='keyword'>where</span>-<a name="line-544"></a> <span class='varid'>getDefineComponents'</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>-<a name="line-545"></a> <span class='varid'>getDefineComponents'</span>-<a name="line-546"></a> <span class='keyglyph'>=</span> <span class='varid'>getChildren</span>-<a name="line-547"></a> <span class='varop'>>>></span>-<a name="line-548"></a> <span class='varid'>choiceA</span>-<a name="line-549"></a> <span class='keyglyph'>[</span> <span class='varid'>isRngDefine</span> <span class='conop'>:-></span> <span class='varid'>getRngAttrName</span>-<a name="line-550"></a> <span class='layout'>,</span> <span class='varid'>isRngDiv</span> <span class='conop'>:-></span> <span class='varid'>getDefineComponents'</span>-<a name="line-551"></a> <span class='layout'>,</span> <span class='varid'>this</span> <span class='conop'>:-></span> <span class='varid'>constA</span> <span class='str'>""</span>-<a name="line-552"></a> <span class='keyglyph'>]</span>-<a name="line-553"></a> -<a name="line-554"></a>-<a name="line-555"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-556"></a>-<a name="line-557"></a>-<a name="line-558"></a><a name="simplificationStep3"></a><span class='comment'>{--<a name="line-559"></a>- 4.8. name attribute of element and attribute elements-<a name="line-560"></a> - The name attribute on an element or attribute element-<a name="line-561"></a> is transformed into a name child element.-<a name="line-562"></a> - If an attribute element has a name attribute but no ns attribute,-<a name="line-563"></a> then an ns="" attribute is added to the name child element.-<a name="line-564"></a>- 4.9. ns attribute-<a name="line-565"></a> - For any name, nsName or value element that does not have-<a name="line-566"></a> an ns attribute, an ns attribute is added.-<a name="line-567"></a> - any ns attribute that is on an element other than name,-<a name="line-568"></a> nsName or value is removed.-<a name="line-569"></a>- 4.10. QNames-<a name="line-570"></a> - For any name element containing a prefix, the prefix is removed-<a name="line-571"></a> and an ns attribute is added replacing any existing ns attribute.-<a name="line-572"></a> - The value of the added ns attribute is the value to which the-<a name="line-573"></a> namespace map of the context of the name element maps the prefix.-<a name="line-574"></a> - The context must have a mapping for the prefix.-<a name="line-575"></a>-}</span>-<a name="line-576"></a><span class='definition'>simplificationStep3</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-577"></a><span class='definition'>simplificationStep3</span> <span class='keyglyph'>=</span>-<a name="line-578"></a> <span class='layout'>(</span> <span class='varid'>processTopDown</span> <span class='layout'>(</span> -<a name="line-579"></a> <span class='layout'>(</span> <span class='comment'>-- 4.8 The name attribute on an element or attribute</span>-<a name="line-580"></a> <span class='comment'>-- element is transformed into a name child element</span>-<a name="line-581"></a> <span class='layout'>(</span> <span class='varid'>insertChildrenAt</span> <span class='num'>0</span> <span class='layout'>(</span><span class='varid'>mkRngName</span> <span class='varid'>none</span> <span class='layout'>(</span><span class='varid'>txt</span> <span class='varop'>$<</span> <span class='varid'>getRngAttrName</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-582"></a> <span class='layout'>)</span>-<a name="line-583"></a> <span class='varop'>>>></span>-<a name="line-584"></a> <span class='layout'>(</span> <span class='comment'>-- 4.8 If an attribute element has a name attribute but no ns attribute,</span>-<a name="line-585"></a> <span class='comment'>-- then an ns="" attribute is added to the name child element</span>-<a name="line-586"></a> <span class='layout'>(</span><span class='varid'>processChildren</span> <span class='layout'>(</span><span class='varid'>addAttr</span> <span class='str'>"ns"</span> <span class='str'>""</span> <span class='varop'>`when`</span> <span class='varid'>isRngName</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-587"></a> <span class='varop'>`when`</span> -<a name="line-588"></a> <span class='layout'>(</span><span class='varid'>isRngAttribute</span> <span class='varop'>>>></span> <span class='varid'>hasRngAttrName</span> <span class='varop'>>>></span> <span class='varid'>neg</span> <span class='varid'>hasRngAttrNs</span><span class='layout'>)</span>-<a name="line-589"></a> <span class='layout'>)</span>-<a name="line-590"></a> <span class='varop'>>>></span>-<a name="line-591"></a> <span class='varid'>removeAttr</span> <span class='str'>"name"</span> -<a name="line-592"></a> <span class='layout'>)</span>-<a name="line-593"></a> <span class='varop'>`when`</span>-<a name="line-594"></a> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>isRngElement</span> <span class='varop'>`orElse`</span> <span class='varid'>isRngAttribute</span><span class='layout'>)</span> <span class='varop'>>>></span> <span class='varid'>hasRngAttrName</span> <span class='layout'>)</span>-<a name="line-595"></a> <span class='layout'>)</span>-<a name="line-596"></a> <span class='varop'>>>></span>-<a name="line-597"></a> <span class='comment'>-- 4.9 For any name, nsName or value element that does not have </span>-<a name="line-598"></a> <span class='comment'>-- an ns attribute, an ns attribute is added.</span>-<a name="line-599"></a> <span class='varid'>processnsAttribute</span> <span class='str'>""</span>-<a name="line-600"></a> <span class='varop'>>>></span>-<a name="line-601"></a> <span class='varid'>processTopDown</span> <span class='layout'>(</span> -<a name="line-602"></a> <span class='layout'>(</span> <span class='comment'>-- 4.9 any ns attribute that is on an element other than name, </span>-<a name="line-603"></a> <span class='comment'>-- nsName or value is removed.</span>-<a name="line-604"></a> <span class='layout'>(</span><span class='varid'>removeAttr</span> <span class='str'>"ns"</span><span class='layout'>)</span>-<a name="line-605"></a> <span class='varop'>`when`</span>-<a name="line-606"></a> <span class='layout'>(</span><span class='varid'>isElem</span> <span class='varop'>>>></span> <span class='varid'>neg</span> <span class='layout'>(</span><span class='varid'>isRngName</span> <span class='varop'>`orElse`</span> <span class='varid'>isRngNsName</span> <span class='varop'>`orElse`</span> <span class='varid'>isRngValue</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-607"></a> <span class='layout'>)</span>-<a name="line-608"></a> <span class='varop'>>>></span>-<a name="line-609"></a> <span class='layout'>(</span> <span class='comment'>-- 4.10 For any name element containing a prefix, the prefix is removed and an ns attribute </span>-<a name="line-610"></a> <span class='comment'>-- is added replacing any existing ns attribute.</span>-<a name="line-611"></a> <span class='layout'>(</span><span class='varid'>replaceNameAttr</span> <span class='varop'>$<</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>>>></span> <span class='varid'>isText</span> <span class='varop'>>>></span> <span class='varid'>getText</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-612"></a> <span class='varop'>`when`</span>-<a name="line-613"></a> <span class='varid'>isRngName</span>-<a name="line-614"></a> <span class='layout'>)</span>-<a name="line-615"></a> <span class='layout'>)</span>-<a name="line-616"></a> <span class='layout'>)</span> <span class='varop'>`when`</span> <span class='varid'>collectErrors</span>-<a name="line-617"></a> <span class='keyword'>where</span>-<a name="line-618"></a> <span class='varid'>replaceNameAttr</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>ArrowXml</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>=></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-619"></a> <span class='varid'>replaceNameAttr</span> <span class='varid'>name</span> -<a name="line-620"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>addAttr</span> <span class='str'>"ns"</span> <span class='varid'>pre</span> <span class='varop'>>>></span> <span class='varid'>processChildren</span> <span class='layout'>(</span><span class='varid'>changeText</span> <span class='varop'>$</span> <span class='varid'>const</span> <span class='varid'>local</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-621"></a> <span class='varop'>`whenP`</span>-<a name="line-622"></a> <span class='layout'>(</span><span class='varid'>const</span> <span class='varop'>$</span> <span class='varid'>elem</span> <span class='chr'>'}'</span> <span class='varid'>name</span><span class='layout'>)</span>-<a name="line-623"></a> <span class='keyword'>where</span> -<a name="line-624"></a> <span class='layout'>(</span><span class='varid'>pre'</span><span class='layout'>,</span> <span class='varid'>local'</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>span</span> <span class='layout'>(</span><span class='varop'>/=</span> <span class='chr'>'}'</span><span class='layout'>)</span> <span class='varid'>name</span>-<a name="line-625"></a> <span class='varid'>pre</span> <span class='keyglyph'>=</span> <span class='varid'>tail</span> <span class='varid'>pre'</span>-<a name="line-626"></a> <span class='varid'>local</span> <span class='keyglyph'>=</span> <span class='varid'>tail</span> <span class='varid'>local'</span>-<a name="line-627"></a> -<a name="line-628"></a> <span class='varid'>processnsAttribute</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> -<a name="line-629"></a> <span class='varid'>processnsAttribute</span> <span class='varid'>name</span> -<a name="line-630"></a> <span class='keyglyph'>=</span> <span class='varid'>processChildren</span> <span class='varop'>$</span>-<a name="line-631"></a> <span class='varid'>choiceA</span> <span class='keyglyph'>[</span>-<a name="line-632"></a> <span class='comment'>-- set the new ns attribute value</span>-<a name="line-633"></a> <span class='layout'>(</span><span class='varid'>isElem</span> <span class='varop'>>>></span> <span class='varid'>hasRngAttrNs</span><span class='layout'>)</span> -<a name="line-634"></a> <span class='conop'>:-></span> <span class='layout'>(</span><span class='varid'>processnsAttribute</span> <span class='varop'>$<</span> <span class='varid'>getRngAttrNs</span><span class='layout'>)</span><span class='layout'>,</span>-<a name="line-635"></a> <span class='comment'>-- For any name, nsName or value element that does not have</span>-<a name="line-636"></a> <span class='comment'>-- an ns attribute, an ns attribute is added. </span>-<a name="line-637"></a> <span class='layout'>(</span> <span class='varid'>isNameNsNameValue</span> <span class='varop'>>>></span> <span class='varid'>neg</span> <span class='varid'>hasRngAttrNs</span><span class='layout'>)</span>-<a name="line-638"></a> <span class='conop'>:-></span> <span class='layout'>(</span><span class='varid'>addAttr</span> <span class='str'>"ns"</span> <span class='varid'>name</span> <span class='varop'>>>></span> <span class='varid'>processnsAttribute</span> <span class='varid'>name</span><span class='layout'>)</span><span class='layout'>,</span>-<a name="line-639"></a> <span class='varid'>this</span> <span class='conop'>:-></span> <span class='layout'>(</span><span class='varid'>processnsAttribute</span> <span class='varid'>name</span><span class='layout'>)</span>-<a name="line-640"></a> <span class='keyglyph'>]</span>-<a name="line-641"></a>-<a name="line-642"></a>-<a name="line-643"></a><span class='comment'>-- ------------------------------------------------------------ </span>-<a name="line-644"></a>-<a name="line-645"></a>-<a name="line-646"></a><a name="simplificationStep4"></a><span class='comment'>{--<a name="line-647"></a>- 4.11 Each div element is replaced by its children-<a name="line-648"></a>- 4.12 Number of child elements-<a name="line-649"></a> - A define, oneOrMore, zeroOrMore, optional, list or mixed element -<a name="line-650"></a> is transformed so that it has exactly one child element-<a name="line-651"></a> - An element element is transformed so that it has exactly two child elements-<a name="line-652"></a> - A except element is transformed so that it has exactly one child element-<a name="line-653"></a> - If an attribute element has only one child element (a name class), then a text element is added.-<a name="line-654"></a> - A choice, group or interleave element is transformed so that it has exactly two child elements.-<a name="line-655"></a>- 4.13 A mixed element is transformed into an interleaving with a text element-<a name="line-656"></a>- 4.14 An optional element is transformed into a choice with empty-<a name="line-657"></a>- 4.15 A zeroOrMore element is transformed into a choice between oneOrMore and empty-<a name="line-658"></a>- 4.16. Constraints: no transformation is performed, but various constraints are checked.-<a name="line-659"></a> - An except element that is a child of an anyName element must not have any anyName descendant elements.-<a name="line-660"></a> - An except element that is a child of an nsName element must not have any nsName or anyName-<a name="line-661"></a> descendant elements.-<a name="line-662"></a> - A name element that occurs as the first child of an attribute element or as the descendant of the -<a name="line-663"></a> first child of an attribute element and that has an ns attribute with value equal to the empty -<a name="line-664"></a> string must not have content equal to xmlns.-<a name="line-665"></a> - A name or nsName element that occurs as the first child of an attribute element or as the -<a name="line-666"></a> descendant of the first child of an attribute element must not have an ns attribute with -<a name="line-667"></a> value <a href="http://www.w3.org/2000/xmlns.">http://www.w3.org/2000/xmlns.</a>-<a name="line-668"></a> - A data or value element must be correct in its use of datatypes.-<a name="line-669"></a>-}</span>-<a name="line-670"></a><span class='definition'>simplificationStep4</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-671"></a><span class='definition'>simplificationStep4</span> <span class='keyglyph'>=</span>-<a name="line-672"></a> <span class='layout'>(</span> <span class='varid'>processTopDown</span> <span class='layout'>(</span> -<a name="line-673"></a> <span class='layout'>(</span> <span class='comment'>-- Each div element is replaced by its children.</span>-<a name="line-674"></a> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>>>></span> <span class='varid'>simplificationStep4</span><span class='layout'>)</span>-<a name="line-675"></a> <span class='varop'>`when`</span>-<a name="line-676"></a> <span class='varid'>isRngDiv</span>-<a name="line-677"></a> <span class='layout'>)</span>-<a name="line-678"></a> <span class='varop'>>>></span>-<a name="line-679"></a> <span class='layout'>(</span> <span class='comment'>-- A define, oneOrMore, zeroOrMore, optional, list or mixed element</span>-<a name="line-680"></a> <span class='comment'>-- is transformed so that it has exactly one child element</span>-<a name="line-681"></a> <span class='layout'>(</span> <span class='varid'>replaceChildren</span>-<a name="line-682"></a> <span class='layout'>(</span> <span class='varid'>mkRngGroup</span>-<a name="line-683"></a> <span class='layout'>(</span><span class='varid'>setChangesAttr</span> <span class='varop'>$<</span> <span class='layout'>(</span><span class='varid'>getName</span> <span class='varop'>>>></span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='str'>"group-Pattern: "</span> <span class='varop'>++</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span> -<a name="line-684"></a> <span class='varid'>getChildren</span>-<a name="line-685"></a> <span class='layout'>)</span>-<a name="line-686"></a> <span class='layout'>)</span>-<a name="line-687"></a> <span class='varop'>`when`</span>-<a name="line-688"></a> <span class='layout'>(</span> <span class='varid'>isDefineOneOrMoreZeroOrMoreOptionalListMixed</span>-<a name="line-689"></a> <span class='varop'>>>></span>-<a name="line-690"></a> <span class='varid'>noOfChildren</span> <span class='layout'>(</span><span class='varop'>></span> <span class='num'>1</span><span class='layout'>)</span>-<a name="line-691"></a> <span class='layout'>)</span>-<a name="line-692"></a> <span class='layout'>)</span>-<a name="line-693"></a> <span class='varop'>>>></span>-<a name="line-694"></a> <span class='layout'>(</span> <span class='comment'>-- An element element is transformed so that it has exactly two child elements </span>-<a name="line-695"></a> <span class='layout'>(</span> <span class='varid'>replaceChildren</span>-<a name="line-696"></a> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>getChildren</span> <span class='varop'>>>></span> <span class='varid'>isNameAnyNameNsName</span> <span class='layout'>)</span>-<a name="line-697"></a> <span class='varop'><+></span> -<a name="line-698"></a> <span class='layout'>(</span> <span class='varid'>mkRngGroup</span> <span class='varid'>none</span> -<a name="line-699"></a> <span class='layout'>(</span> <span class='varid'>getChildren</span>-<a name="line-700"></a> <span class='varop'>>>></span>-<a name="line-701"></a> <span class='varid'>neg</span> <span class='varid'>isNameAnyNameNsName</span>-<a name="line-702"></a> <span class='layout'>)</span>-<a name="line-703"></a> <span class='layout'>)</span>-<a name="line-704"></a> <span class='layout'>)</span>-<a name="line-705"></a> <span class='layout'>)</span>-<a name="line-706"></a> <span class='varop'>`when`</span>-<a name="line-707"></a> <span class='layout'>(</span> <span class='varid'>isRngElement</span> <span class='varop'>>>></span> <span class='varid'>noOfChildren</span> <span class='layout'>(</span><span class='varop'>></span> <span class='num'>2</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-708"></a> <span class='layout'>)</span>-<a name="line-709"></a> <span class='varop'>>>></span>-<a name="line-710"></a> <span class='layout'>(</span> <span class='comment'>-- A except element is transformed so that it has exactly one child element.</span>-<a name="line-711"></a> <span class='varid'>replaceChildren</span> <span class='layout'>(</span> <span class='varid'>mkRngChoice</span> <span class='varid'>none</span> <span class='varid'>getChildren</span> <span class='layout'>)</span>-<a name="line-712"></a> <span class='varop'>`when`</span>-<a name="line-713"></a> <span class='layout'>(</span> <span class='varid'>isRngExcept</span> <span class='varop'>>>></span> <span class='varid'>noOfChildren</span> <span class='layout'>(</span><span class='varop'>></span> <span class='num'>1</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-714"></a> <span class='layout'>)</span>-<a name="line-715"></a> <span class='varop'>>>></span>-<a name="line-716"></a> <span class='layout'>(</span> <span class='comment'>-- If an attribute element has only one child element </span>-<a name="line-717"></a> <span class='comment'>-- (a name class), then a text element is added.</span>-<a name="line-718"></a> <span class='varid'>insertChildrenAt</span> <span class='num'>1</span> <span class='layout'>(</span><span class='varid'>mkRngText</span> <span class='varid'>none</span><span class='layout'>)</span>-<a name="line-719"></a> <span class='varop'>`when`</span>-<a name="line-720"></a> <span class='layout'>(</span> <span class='varid'>isRngAttribute</span> <span class='varop'>>>></span> <span class='varid'>noOfChildren</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='num'>1</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-721"></a> <span class='layout'>)</span>-<a name="line-722"></a> <span class='varop'>>>></span>-<a name="line-723"></a> <span class='layout'>(</span> <span class='comment'>-- A choice, group or interleave element is transformed so</span>-<a name="line-724"></a> <span class='comment'>-- that it has exactly two child elements.</span>-<a name="line-725"></a> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>wrapPattern2Two</span> <span class='varop'>$<</span> <span class='varid'>getName</span><span class='layout'>)</span> <span class='varop'>>>></span> <span class='varid'>simplificationStep4</span><span class='layout'>)</span>-<a name="line-726"></a> <span class='varop'>`when`</span> -<a name="line-727"></a> <span class='layout'>(</span> <span class='varid'>isChoiceGroupInterleave</span>-<a name="line-728"></a> <span class='varop'>>>></span>-<a name="line-729"></a> <span class='varid'>noOfChildren</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>i</span> <span class='keyglyph'>-></span> <span class='varid'>i</span> <span class='varop'>></span> <span class='num'>2</span> <span class='varop'>||</span> <span class='varid'>i</span> <span class='varop'>==</span> <span class='num'>1</span><span class='layout'>)</span>-<a name="line-730"></a> <span class='layout'>)</span>-<a name="line-731"></a> <span class='layout'>)</span>-<a name="line-732"></a> <span class='varop'>>>></span>-<a name="line-733"></a> <span class='layout'>(</span> <span class='comment'>-- A mixed element is transformed into an interleaving with a text element </span>-<a name="line-734"></a> <span class='layout'>(</span> <span class='varid'>mkRngInterleave</span> -<a name="line-735"></a> <span class='layout'>(</span> <span class='varid'>setChangesAttr</span> <span class='str'>"mixed is transformed into an interleave"</span> <span class='layout'>)</span>-<a name="line-736"></a> <span class='layout'>(</span> <span class='varid'>getChildren</span>-<a name="line-737"></a> <span class='varop'><+></span>-<a name="line-738"></a> <span class='varid'>mkRngText</span> -<a name="line-739"></a> <span class='layout'>(</span> <span class='varid'>setChangesAttr</span> <span class='layout'>(</span> <span class='str'>"new text-Pattern: mixed is transformed into "</span> <span class='varop'>++</span>-<a name="line-740"></a> <span class='str'>" an interleave with text"</span>-<a name="line-741"></a> <span class='layout'>)</span>-<a name="line-742"></a> <span class='layout'>)</span>-<a name="line-743"></a> <span class='layout'>)</span>-<a name="line-744"></a> <span class='layout'>)</span>-<a name="line-745"></a> <span class='varop'>`when`</span>-<a name="line-746"></a> <span class='varid'>isRngMixed</span>-<a name="line-747"></a> <span class='layout'>)</span>-<a name="line-748"></a> <span class='varop'>>>></span> -<a name="line-749"></a> <span class='layout'>(</span> <span class='comment'>-- An optional element is transformed into a choice with empty </span>-<a name="line-750"></a> <span class='layout'>(</span> <span class='varid'>mkRngChoice</span> -<a name="line-751"></a> <span class='layout'>(</span> <span class='varid'>setChangesAttr</span> <span class='str'>"optional is transformed into a choice"</span> <span class='layout'>)</span>-<a name="line-752"></a> <span class='layout'>(</span> <span class='varid'>getChildren</span>-<a name="line-753"></a> <span class='varop'><+></span>-<a name="line-754"></a> <span class='varid'>mkRngEmpty</span> -<a name="line-755"></a> <span class='layout'>(</span> <span class='varid'>setChangesAttr</span> <span class='layout'>(</span> <span class='str'>"new empty-Pattern: optional is transformed "</span> <span class='varop'>++</span>-<a name="line-756"></a> <span class='str'>" into a choice with empty"</span>-<a name="line-757"></a> <span class='layout'>)</span>-<a name="line-758"></a> <span class='layout'>)</span>-<a name="line-759"></a> <span class='layout'>)</span>-<a name="line-760"></a> <span class='layout'>)</span>-<a name="line-761"></a> <span class='varop'>`when`</span>-<a name="line-762"></a> <span class='varid'>isRngOptional</span>-<a name="line-763"></a> <span class='layout'>)</span>-<a name="line-764"></a> <span class='varop'>>>></span>-<a name="line-765"></a> <span class='layout'>(</span> <span class='comment'>-- A zeroOrMore element is transformed into a choice between oneOrMore and empty</span>-<a name="line-766"></a> <span class='layout'>(</span> <span class='varid'>mkRngChoice</span> -<a name="line-767"></a> <span class='layout'>(</span> <span class='varid'>setChangesAttr</span> <span class='str'>"zeroOrMore is transformed into a choice"</span> <span class='layout'>)</span>-<a name="line-768"></a> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>mkRngOneOrMore</span> -<a name="line-769"></a> <span class='layout'>(</span> <span class='varid'>setChangesAttr</span> <span class='layout'>(</span> <span class='str'>"zeroOrMore is transformed into a "</span> <span class='varop'>++</span>-<a name="line-770"></a> <span class='str'>"choice between oneOrMore and empty"</span>-<a name="line-771"></a> <span class='layout'>)</span>-<a name="line-772"></a> <span class='layout'>)</span>-<a name="line-773"></a> <span class='varid'>getChildren</span>-<a name="line-774"></a> <span class='layout'>)</span>-<a name="line-775"></a> <span class='varop'><+></span>-<a name="line-776"></a> <span class='layout'>(</span> <span class='varid'>mkRngEmpty</span> -<a name="line-777"></a> <span class='layout'>(</span> <span class='varid'>setChangesAttr</span> <span class='layout'>(</span> <span class='str'>"new empty-Pattern: zeroOrMore is transformed "</span> <span class='varop'>++</span>-<a name="line-778"></a> <span class='str'>"into a choice between oneOrMore and empty"</span>-<a name="line-779"></a> <span class='layout'>)</span>-<a name="line-780"></a> <span class='layout'>)</span>-<a name="line-781"></a> <span class='layout'>)</span>-<a name="line-782"></a> <span class='layout'>)</span>-<a name="line-783"></a> <span class='layout'>)</span>-<a name="line-784"></a> <span class='varop'>`when`</span>-<a name="line-785"></a> <span class='varid'>isRngZeroOrMore</span>-<a name="line-786"></a> <span class='layout'>)</span>-<a name="line-787"></a> <span class='layout'>)</span>-<a name="line-788"></a> <span class='layout'>)</span> <span class='varop'>`when`</span> <span class='varid'>collectErrors</span>-<a name="line-789"></a>-<a name="line-790"></a>-<a name="line-791"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-792"></a>-<a name="line-793"></a>-<a name="line-794"></a><a name="restrictionsStep1"></a><span class='definition'>restrictionsStep1</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-795"></a><span class='definition'>restrictionsStep1</span> <span class='keyglyph'>=</span>-<a name="line-796"></a> <span class='layout'>(</span> <span class='varid'>processTopDown</span> <span class='layout'>(</span>-<a name="line-797"></a> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>mkRelaxError</span> <span class='str'>""</span>-<a name="line-798"></a> <span class='layout'>(</span> <span class='str'>"An except element that is a child of an anyName "</span> <span class='varop'>++</span>-<a name="line-799"></a> <span class='str'>"element must not have any anyName descendant elements"</span>-<a name="line-800"></a> <span class='layout'>)</span>-<a name="line-801"></a> <span class='layout'>)</span>-<a name="line-802"></a> <span class='varop'>`when`</span> -<a name="line-803"></a> <span class='layout'>(</span> <span class='varid'>isRngAnyName</span>-<a name="line-804"></a> <span class='varop'>>>></span>-<a name="line-805"></a> <span class='varid'>getChildren</span>-<a name="line-806"></a> <span class='varop'>>>></span>-<a name="line-807"></a> <span class='varid'>isRngExcept</span>-<a name="line-808"></a> <span class='varop'>>>></span>-<a name="line-809"></a> <span class='varid'>deep</span> <span class='varid'>isRngAnyName</span>-<a name="line-810"></a> <span class='layout'>)</span>-<a name="line-811"></a> <span class='layout'>)</span>-<a name="line-812"></a> <span class='varop'>>>></span>-<a name="line-813"></a> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>mkRelaxError</span> <span class='str'>""</span>-<a name="line-814"></a> <span class='layout'>(</span> <span class='str'>"An except element that is a child of an nsName element "</span> <span class='varop'>++</span>-<a name="line-815"></a> <span class='str'>"must not have any nsName or anyName descendant elements."</span>-<a name="line-816"></a> <span class='layout'>)</span>-<a name="line-817"></a> <span class='layout'>)</span>-<a name="line-818"></a> <span class='varop'>`when`</span> -<a name="line-819"></a> <span class='layout'>(</span> <span class='varid'>isRngNsName</span>-<a name="line-820"></a> <span class='varop'>>>></span>-<a name="line-821"></a> <span class='varid'>getChildren</span>-<a name="line-822"></a> <span class='varop'>>>></span> -<a name="line-823"></a> <span class='varid'>isRngExcept</span>-<a name="line-824"></a> <span class='varop'>>>></span> -<a name="line-825"></a> <span class='varid'>deep</span> <span class='layout'>(</span><span class='varid'>isRngAnyName</span> <span class='varop'>`orElse`</span> <span class='varid'>isRngNsName</span><span class='layout'>)</span>-<a name="line-826"></a> <span class='layout'>)</span>-<a name="line-827"></a> <span class='layout'>)</span>-<a name="line-828"></a> <span class='varop'>>>></span>-<a name="line-829"></a> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>mkRelaxError</span> <span class='str'>""</span>-<a name="line-830"></a> <span class='layout'>(</span> <span class='str'>"A name element that occurs as the first child or descendant of "</span> <span class='varop'>++</span>-<a name="line-831"></a> <span class='str'>"an attribute and has an ns attribute with an empty value must "</span> <span class='varop'>++</span>-<a name="line-832"></a> <span class='str'>"not have content equal to \"xmlns\""</span>-<a name="line-833"></a> <span class='layout'>)</span>-<a name="line-834"></a> <span class='layout'>)</span>-<a name="line-835"></a> <span class='varop'>`when`</span> -<a name="line-836"></a> <span class='layout'>(</span> <span class='varid'>isRngAttribute</span>-<a name="line-837"></a> <span class='varop'>>>></span>-<a name="line-838"></a> <span class='varid'>firstChild</span>-<a name="line-839"></a> <span class='varop'>>>></span>-<a name="line-840"></a> <span class='layout'>(</span> <span class='varid'>multi</span> <span class='layout'>(</span><span class='varid'>isRngName</span> <span class='varop'>>>></span> <span class='varid'>hasRngAttrNs</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-841"></a> <span class='varop'>>>></span>-<a name="line-842"></a> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>getRngAttrNs</span> <span class='varop'>>>></span> <span class='varid'>isA</span> <span class='varid'>null</span><span class='layout'>)</span>-<a name="line-843"></a> <span class='varop'>`guards`</span>-<a name="line-844"></a> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>>>></span> <span class='varid'>getText</span> <span class='varop'>>>></span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='str'>"xmlns"</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-845"></a> <span class='layout'>)</span>-<a name="line-846"></a> <span class='layout'>)</span>-<a name="line-847"></a> <span class='layout'>)</span> -<a name="line-848"></a> <span class='varop'>>>></span>-<a name="line-849"></a> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>mkRelaxError</span> <span class='str'>""</span>-<a name="line-850"></a> <span class='layout'>(</span> <span class='str'>"A name or nsName element that occurs as the first child or "</span> <span class='varop'>++</span>-<a name="line-851"></a> <span class='str'>"descendant of an attribute must not have an ns attribute "</span> <span class='varop'>++</span>-<a name="line-852"></a> <span class='str'>"with value http://www.w3.org/2000/xmlns"</span>-<a name="line-853"></a> <span class='layout'>)</span>-<a name="line-854"></a> <span class='layout'>)</span>-<a name="line-855"></a> <span class='varop'>`when`</span> -<a name="line-856"></a> <span class='layout'>(</span> <span class='varid'>isRngAttribute</span>-<a name="line-857"></a> <span class='varop'>>>></span>-<a name="line-858"></a> <span class='varid'>firstChild</span>-<a name="line-859"></a> <span class='varop'>>>></span>-<a name="line-860"></a> <span class='layout'>(</span> <span class='varid'>multi</span> <span class='layout'>(</span><span class='varid'>isNameNsName</span> <span class='varop'>>>></span> <span class='varid'>hasRngAttrNs</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-861"></a> <span class='varop'>>>></span>-<a name="line-862"></a> <span class='varid'>getRngAttrNs</span>-<a name="line-863"></a> <span class='varop'>>>></span>-<a name="line-864"></a> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>compareURI</span> <span class='varid'>xmlnsNamespace</span><span class='layout'>)</span>-<a name="line-865"></a> <span class='layout'>)</span>-<a name="line-866"></a> <span class='layout'>)</span> -<a name="line-867"></a> <span class='varop'>>>></span> <span class='comment'>-- A data or value element must be correct in its use of datatypes.</span>-<a name="line-868"></a> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>checkDatatype</span> <span class='varop'>$<<</span> <span class='varid'>getRngAttrDatatypeLibrary</span> <span class='varop'>&&&</span> <span class='varid'>getRngAttrType</span> <span class='layout'>)</span>-<a name="line-869"></a> <span class='varop'>`when`</span>-<a name="line-870"></a> <span class='layout'>(</span> <span class='varid'>isRngData</span> <span class='varop'>`orElse`</span> <span class='varid'>isRngValue</span> <span class='layout'>)</span>-<a name="line-871"></a> <span class='layout'>)</span>-<a name="line-872"></a> <span class='layout'>)</span>-<a name="line-873"></a> <span class='layout'>)</span> <span class='varop'>`when`</span> <span class='varid'>collectErrors</span>-<a name="line-874"></a> <span class='keyword'>where</span> -<a name="line-875"></a>-<a name="line-876"></a> <span class='comment'>-- the datatypeLibrary attribute must identify a valid datatype library</span>-<a name="line-877"></a>-<a name="line-878"></a> <span class='varid'>checkDatatype</span> <span class='keyglyph'>::</span> <span class='conid'>Uri</span> <span class='keyglyph'>-></span> <span class='conid'>DatatypeName</span> <span class='keyglyph'>-></span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-879"></a> <span class='varid'>checkDatatype</span> <span class='varid'>libName</span> <span class='varid'>typeName</span> -<a name="line-880"></a> <span class='keyglyph'>=</span> <span class='varid'>ifP</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varop'>$</span> <span class='varid'>elem</span> <span class='varid'>libName</span> <span class='varop'>$</span> <span class='varid'>map</span> <span class='varid'>fst</span> <span class='varid'>datatypeLibraries</span><span class='layout'>)</span> -<a name="line-881"></a> <span class='layout'>(</span> <span class='varid'>checkType</span> <span class='varid'>libName</span> <span class='varid'>typeName</span> <span class='varid'>allowedDataTypes</span> <span class='layout'>)</span>-<a name="line-882"></a> <span class='layout'>(</span> <span class='varid'>mkRelaxError</span> <span class='str'>""</span>-<a name="line-883"></a> <span class='layout'>(</span> <span class='str'>"DatatypeLibrary "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>libName</span> <span class='varop'>++</span> <span class='str'>" not found"</span> <span class='layout'>)</span>-<a name="line-884"></a> <span class='layout'>)</span>-<a name="line-885"></a> <span class='keyword'>where</span>-<a name="line-886"></a> <span class='conid'>DTC</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='varid'>allowedDataTypes</span> <span class='keyglyph'>=</span> <span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>lookup</span> <span class='varid'>libName</span> <span class='varid'>datatypeLibraries</span>-<a name="line-887"></a> -<a name="line-888"></a> <span class='comment'>-- the type attribute must identify a datatype within the datatype library identified</span>-<a name="line-889"></a> <span class='comment'>-- by the value of the datatypeLibrary attribute.</span>-<a name="line-890"></a>-<a name="line-891"></a> <span class='varid'>checkType</span> <span class='keyglyph'>::</span> <span class='conid'>Uri</span> <span class='keyglyph'>-></span> <span class='conid'>DatatypeName</span> <span class='keyglyph'>-></span> <span class='conid'>AllowedDatatypes</span> <span class='keyglyph'>-></span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-892"></a> <span class='varid'>checkType</span> <span class='varid'>libName</span> <span class='varid'>typeName</span> <span class='varid'>allowedTypes</span>-<a name="line-893"></a> <span class='keyglyph'>=</span> <span class='varid'>ifP</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varop'>$</span> <span class='varid'>elem</span> <span class='varid'>typeName</span> <span class='varop'>$</span> <span class='varid'>map</span> <span class='varid'>fst</span> <span class='varid'>allowedTypes</span><span class='layout'>)</span>-<a name="line-894"></a> <span class='layout'>(</span> <span class='varid'>checkParams</span> <span class='varid'>typeName</span> <span class='varid'>libName</span> <span class='varid'>getParams</span> <span class='varop'>$<</span> -<a name="line-895"></a> <span class='layout'>(</span> <span class='varid'>listA</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>>>></span> <span class='varid'>isRngParam</span> <span class='varop'>>>></span> <span class='varid'>getRngAttrName</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-896"></a> <span class='layout'>)</span>-<a name="line-897"></a> <span class='layout'>(</span> <span class='varid'>mkRelaxError</span> <span class='str'>""</span>-<a name="line-898"></a> <span class='layout'>(</span> <span class='str'>"Datatype "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>typeName</span> <span class='varop'>++</span> -<a name="line-899"></a> <span class='str'>" not declared for DatatypeLibrary "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>libName</span>-<a name="line-900"></a> <span class='layout'>)</span>-<a name="line-901"></a> <span class='layout'>)</span>-<a name="line-902"></a> <span class='keyword'>where</span>-<a name="line-903"></a> <span class='varid'>getParams</span> <span class='keyglyph'>=</span> <span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>lookup</span> <span class='varid'>typeName</span> <span class='varid'>allowedTypes</span>-<a name="line-904"></a> -<a name="line-905"></a> <span class='comment'>-- For a data element, the parameter list must be one that is allowed by the datatype</span>-<a name="line-906"></a>-<a name="line-907"></a> <span class='varid'>checkParams</span> <span class='keyglyph'>::</span> <span class='conid'>DatatypeName</span> <span class='keyglyph'>-></span> <span class='conid'>Uri</span> <span class='keyglyph'>-></span> <span class='conid'>AllowedParams</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>ParamName</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-908"></a> <span class='varid'>checkParams</span> <span class='varid'>typeName</span> <span class='varid'>libName</span> <span class='varid'>allowedParams</span> <span class='varid'>paramNames</span>-<a name="line-909"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>mkRelaxError</span> <span class='str'>""</span>-<a name="line-910"></a> <span class='layout'>(</span> <span class='str'>"Param(s): "</span> <span class='varop'>++</span> <span class='varid'>formatStringListQuot</span> <span class='varid'>diff</span> <span class='varop'>++</span> -<a name="line-911"></a> <span class='str'>" not allowed for Datatype "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>typeName</span> <span class='varop'>++</span> -<a name="line-912"></a> <span class='str'>" in Library "</span> <span class='varop'>++</span>-<a name="line-913"></a> <span class='varid'>show</span> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>libName</span>-<a name="line-914"></a> <span class='keyword'>then</span> <span class='varid'>relaxNamespace</span>-<a name="line-915"></a> <span class='keyword'>else</span> <span class='varid'>libName</span>-<a name="line-916"></a> <span class='layout'>)</span>-<a name="line-917"></a> <span class='layout'>)</span>-<a name="line-918"></a> <span class='layout'>)</span>-<a name="line-919"></a> <span class='varop'>`when`</span>-<a name="line-920"></a> <span class='layout'>(</span> <span class='varid'>isRngData</span> <span class='varop'>>>></span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varop'>$</span> <span class='varid'>diff</span> <span class='varop'>/=</span> <span class='conid'>[]</span><span class='layout'>)</span> <span class='layout'>)</span> -<a name="line-921"></a> <span class='keyword'>where</span>-<a name="line-922"></a> <span class='varid'>diff</span> <span class='keyglyph'>=</span> <span class='varid'>filter</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>param</span> <span class='keyglyph'>-></span> <span class='varid'>not</span> <span class='varop'>$</span> <span class='varid'>elem</span> <span class='varid'>param</span> <span class='varid'>allowedParams</span><span class='layout'>)</span> <span class='varid'>paramNames</span>-<a name="line-923"></a>-<a name="line-924"></a> -<a name="line-925"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-926"></a>-<a name="line-927"></a>-<a name="line-928"></a><a name="simplificationStep5"></a><span class='comment'>{--<a name="line-929"></a>- 4.17. combine attribute-<a name="line-930"></a> - For each grammar element, all define elements with the same name are combined together.-<a name="line-931"></a> - Similarly, for each grammar element all start elements are combined together.-<a name="line-932"></a>- 4.18. grammar element-<a name="line-933"></a> - A grammar must have a start child element.-<a name="line-934"></a> - Transform the top-level pattern p into <grammar><start>p</start></grammar>.-<a name="line-935"></a> - Rename define elements so that no two define elements anywhere in the schema -<a name="line-936"></a> have the same name. To rename a define element, change the value of its name-<a name="line-937"></a> attribute and change the value of the name attribute of all ref and parentRef-<a name="line-938"></a> elements that refer to that define element.-<a name="line-939"></a> - Move all define elements to be children of the top-level grammar element-<a name="line-940"></a> - Replace each nested grammar element by the child of its start element-<a name="line-941"></a> - Rename each parentRef element to ref.-<a name="line-942"></a>-}</span>-<a name="line-943"></a><span class='definition'>simplificationStep5</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-944"></a><span class='definition'>simplificationStep5</span>-<a name="line-945"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>processTopDown</span>-<a name="line-946"></a> <span class='layout'>(</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>deep</span> <span class='varid'>isRngRelaxError</span><span class='layout'>)</span> -<a name="line-947"></a> <span class='varop'><+></span>-<a name="line-948"></a> <span class='layout'>(</span> <span class='varid'>mkRelaxError</span> <span class='str'>""</span> <span class='str'>"A grammar must have a start child element"</span> <span class='layout'>)</span>-<a name="line-949"></a> <span class='layout'>)</span>-<a name="line-950"></a> <span class='varop'>`when`</span>-<a name="line-951"></a> <span class='layout'>(</span><span class='varid'>neg</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>>>></span> <span class='varid'>isRngStart</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-952"></a> <span class='layout'>)</span>-<a name="line-953"></a> <span class='varop'>>>></span>-<a name="line-954"></a> <span class='comment'>-- For each grammar element, all define elements with the same </span>-<a name="line-955"></a> <span class='comment'>-- name are combined together.</span>-<a name="line-956"></a> <span class='layout'>(</span> <span class='varid'>combinePatternList</span> <span class='str'>"define"</span> <span class='varop'>$<</span> <span class='layout'>(</span><span class='varid'>getPatternNamesInGrammar</span> <span class='str'>"define"</span> <span class='varop'>>>></span> <span class='varid'>arr</span> <span class='varid'>nub</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-957"></a> <span class='varop'>>>></span>-<a name="line-958"></a> <span class='comment'>-- Similarly, for each grammar element all start elements </span>-<a name="line-959"></a> <span class='comment'>-- are combined together.</span>-<a name="line-960"></a> <span class='layout'>(</span> <span class='varid'>combinePatternList</span> <span class='str'>"start"</span> <span class='varop'>$<</span> <span class='layout'>(</span><span class='varid'>getPatternNamesInGrammar</span> <span class='str'>"start"</span> <span class='varop'>>>></span> <span class='varid'>arr</span> <span class='varid'>nub</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-961"></a> <span class='layout'>)</span> -<a name="line-962"></a> <span class='varop'>`when`</span>-<a name="line-963"></a> <span class='varid'>isRngGrammar</span>-<a name="line-964"></a> <span class='layout'>)</span>-<a name="line-965"></a> <span class='varop'>>>></span>-<a name="line-966"></a> <span class='layout'>(</span> <span class='comment'>-- transform the top-level pattern p into <grammar><start>p</start></grammar>.</span>-<a name="line-967"></a> <span class='layout'>(</span> <span class='varid'>replaceChildren</span>-<a name="line-968"></a> <span class='layout'>(</span> <span class='varid'>mkRngGrammar</span> <span class='varid'>none</span> -<a name="line-969"></a> <span class='layout'>(</span> <span class='varid'>mkRngStart</span> <span class='varid'>none</span> <span class='varid'>getChildren</span> <span class='layout'>)</span>-<a name="line-970"></a> <span class='layout'>)</span>-<a name="line-971"></a> <span class='layout'>)</span>-<a name="line-972"></a> <span class='varop'>`when`</span>-<a name="line-973"></a> <span class='varid'>neg</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>>>></span> <span class='varid'>isRngGrammar</span><span class='layout'>)</span>-<a name="line-974"></a> <span class='layout'>)</span>-<a name="line-975"></a> <span class='varop'>>>></span>-<a name="line-976"></a> <span class='layout'>(</span> <span class='varid'>renameDefines</span> <span class='varop'>$<<</span>-<a name="line-977"></a> <span class='layout'>(</span> <span class='varid'>getPatternNamesInGrammar</span> <span class='str'>"define"</span>-<a name="line-978"></a> <span class='varop'>>>></span>-<a name="line-979"></a> <span class='layout'>(</span><span class='varid'>createUniqueNames</span> <span class='varop'>$<</span> <span class='layout'>(</span><span class='varid'>getAndSetCounter</span> <span class='str'>"define_id"</span> <span class='varop'>>>></span> <span class='varid'>arr</span> <span class='varid'>read</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-980"></a> <span class='varop'>&&&</span>-<a name="line-981"></a> <span class='varid'>constA</span> <span class='conid'>[]</span>-<a name="line-982"></a> <span class='layout'>)</span>-<a name="line-983"></a> <span class='layout'>)</span>-<a name="line-984"></a> <span class='varop'>>>></span>-<a name="line-985"></a> <span class='comment'>-- Move all define elements to be children of the top-level grammar element</span>-<a name="line-986"></a> <span class='layout'>(</span> <span class='varid'>processChildren</span>-<a name="line-987"></a> <span class='layout'>(</span> <span class='comment'>-- root node</span>-<a name="line-988"></a> <span class='varid'>processChildren</span>-<a name="line-989"></a> <span class='layout'>(</span> <span class='comment'>-- the first grammar pattern remains unchanged</span>-<a name="line-990"></a> <span class='layout'>(</span> <span class='varid'>deleteAllDefines</span>-<a name="line-991"></a> <span class='varop'><+></span>-<a name="line-992"></a> <span class='layout'>(</span> <span class='varid'>getAllDefines</span> <span class='varop'>>>></span> <span class='varid'>processChildren</span> <span class='varid'>deleteAllDefines</span> <span class='layout'>)</span>-<a name="line-993"></a> <span class='layout'>)</span>-<a name="line-994"></a> <span class='varop'>>>></span>-<a name="line-995"></a> <span class='varid'>processTopDown</span>-<a name="line-996"></a> <span class='layout'>(</span> <span class='layout'>(</span> <span class='comment'>-- Replace each nested grammar element by the child of its start element</span>-<a name="line-997"></a> <span class='layout'>(</span> <span class='varid'>getChildren</span> <span class='varop'>>>></span> <span class='varid'>isRngStart</span> <span class='varop'>>>></span> <span class='varid'>getChildren</span> <span class='layout'>)</span>-<a name="line-998"></a> <span class='varop'>`when`</span>-<a name="line-999"></a> <span class='varid'>isRngGrammar</span>-<a name="line-1000"></a> <span class='layout'>)</span>-<a name="line-1001"></a> <span class='varop'>>>></span> -<a name="line-1002"></a> <span class='layout'>(</span> <span class='comment'>-- Rename each parentRef element to ref.</span>-<a name="line-1003"></a> <span class='layout'>(</span> <span class='varid'>setRngNameRef</span>-<a name="line-1004"></a> <span class='varop'>`when`</span>-<a name="line-1005"></a> <span class='varid'>isRngParentRef</span>-<a name="line-1006"></a> <span class='layout'>)</span>-<a name="line-1007"></a> <span class='layout'>)</span>-<a name="line-1008"></a> <span class='layout'>)</span> -<a name="line-1009"></a> <span class='layout'>)</span>-<a name="line-1010"></a> <span class='layout'>)</span>-<a name="line-1011"></a> <span class='layout'>)</span>-<a name="line-1012"></a> <span class='layout'>)</span> <span class='varop'>`when`</span> <span class='varid'>collectErrors</span>-<a name="line-1013"></a> <span class='keyword'>where</span>-<a name="line-1014"></a> <span class='varid'>getPatternNamesInGrammar</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>ArrowXml</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>=></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span>-<a name="line-1015"></a> <span class='varid'>getPatternNamesInGrammar</span> <span class='varid'>pattern</span>-<a name="line-1016"></a> <span class='keyglyph'>=</span> <span class='varid'>processChildren</span>-<a name="line-1017"></a> <span class='layout'>(</span> <span class='varid'>processTopDown</span> <span class='layout'>(</span> <span class='varid'>none</span> <span class='varop'>`when`</span> <span class='varid'>isRngGrammar</span> <span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-1018"></a> <span class='varop'>>>></span>-<a name="line-1019"></a> <span class='varid'>listA</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>multi</span> <span class='layout'>(</span><span class='varid'>isElem</span> <span class='varop'>>>></span> <span class='varid'>hasRngName</span> <span class='varid'>pattern</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-1020"></a> <span class='varop'>>>></span> -<a name="line-1021"></a> <span class='varid'>getRngAttrName</span>-<a name="line-1022"></a> <span class='layout'>)</span>-<a name="line-1023"></a>-<a name="line-1024"></a> <span class='varid'>createUniqueNames</span> <span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-></span> <span class='conid'>IOSArrow</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='conid'>RefList</span>-<a name="line-1025"></a> <span class='varid'>createUniqueNames</span> <span class='varid'>num</span>-<a name="line-1026"></a> <span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>l</span> <span class='keyglyph'>-></span> <span class='varid'>unique</span> <span class='varid'>l</span> <span class='varid'>num</span><span class='layout'>)</span>-<a name="line-1027"></a> <span class='varop'>>>></span>-<a name="line-1028"></a> <span class='varid'>perform</span> <span class='layout'>(</span><span class='varid'>setParamInt</span> <span class='str'>"define_id"</span> <span class='varop'>$<</span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='varid'>max</span> <span class='varid'>num</span> <span class='varop'>.</span> <span class='varid'>getNextValue</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-1029"></a> <span class='keyword'>where</span>-<a name="line-1030"></a> <span class='varid'>unique</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>Int</span> <span class='keyglyph'>-></span> <span class='conid'>RefList</span>-<a name="line-1031"></a> <span class='varid'>unique</span> <span class='conid'>[]</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-1032"></a> <span class='varid'>unique</span> <span class='layout'>(</span><span class='varid'>x</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span> <span class='varid'>num'</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>x</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>num'</span><span class='layout'>)</span><span class='layout'>)</span><span class='conop'>:</span><span class='layout'>(</span><span class='varid'>unique</span> <span class='varid'>xs</span> <span class='layout'>(</span><span class='varid'>num'</span><span class='varop'>+</span><span class='num'>1</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-1033"></a> <span class='varid'>getNextValue</span> <span class='keyglyph'>::</span> <span class='conid'>RefList</span> <span class='keyglyph'>-></span> <span class='conid'>Int</span>-<a name="line-1034"></a> <span class='varid'>getNextValue</span> <span class='conid'>[]</span> <span class='keyglyph'>=</span> <span class='num'>0</span>-<a name="line-1035"></a> <span class='varid'>getNextValue</span> <span class='varid'>rl</span> <span class='keyglyph'>=</span> <span class='varid'>maximum</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>read</span> <span class='varop'>.</span> <span class='varid'>snd</span><span class='layout'>)</span> <span class='varid'>rl</span><span class='layout'>)</span> <span class='varop'>+</span> <span class='num'>1</span> -<a name="line-1036"></a>-<a name="line-1037"></a> <span class='varid'>renameDefines</span> <span class='keyglyph'>::</span> <span class='conid'>RefList</span> <span class='keyglyph'>-></span> <span class='conid'>RefList</span> <span class='keyglyph'>-></span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-1038"></a> <span class='varid'>renameDefines</span> <span class='varid'>ref</span> <span class='varid'>parentRef</span>-<a name="line-1039"></a> <span class='keyglyph'>=</span> <span class='varid'>processChildren</span>-<a name="line-1040"></a> <span class='layout'>(</span> <span class='varid'>choiceA</span>-<a name="line-1041"></a> <span class='keyglyph'>[</span> <span class='varid'>isRngDefine</span>-<a name="line-1042"></a> <span class='conop'>:-></span> <span class='layout'>(</span> <span class='comment'>-- the original name is needed for error messages</span>-<a name="line-1043"></a> <span class='varid'>addAttr</span> <span class='varid'>defineOrigName</span> <span class='varop'>$<</span> <span class='varid'>getRngAttrName</span>-<a name="line-1044"></a> <span class='varop'>>>></span>-<a name="line-1045"></a> <span class='comment'>-- rename the define-pattern</span>-<a name="line-1046"></a> <span class='comment'>-- the new name is looked up in the ref table</span>-<a name="line-1047"></a> <span class='varid'>addAttr</span> <span class='str'>"name"</span> <span class='varop'>$<</span> <span class='layout'>(</span> <span class='varid'>getRngAttrName</span>-<a name="line-1048"></a> <span class='varop'>>>></span>-<a name="line-1049"></a> <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>n</span> <span class='keyglyph'>-></span> <span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>lookup</span> <span class='varid'>n</span> <span class='varid'>ref</span><span class='layout'>)</span>-<a name="line-1050"></a> <span class='layout'>)</span>-<a name="line-1051"></a> <span class='varop'>>>></span>-<a name="line-1052"></a> <span class='varid'>renameDefines</span> <span class='varid'>ref</span> <span class='varid'>parentRef</span>-<a name="line-1053"></a> <span class='layout'>)</span>-<a name="line-1054"></a> <span class='layout'>,</span> <span class='varid'>isRngGrammar</span> -<a name="line-1055"></a> <span class='conop'>:-></span> <span class='layout'>(</span> <span class='varid'>renameDefines</span> <span class='varop'>$<<</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='comment'>-- compute all define names in the grammar</span>-<a name="line-1056"></a> <span class='varid'>getPatternNamesInGrammar</span> <span class='str'>"define"</span>-<a name="line-1057"></a> <span class='varop'>>>></span>-<a name="line-1058"></a> <span class='comment'>-- create a new (unique) name for all define names</span>-<a name="line-1059"></a> <span class='layout'>(</span><span class='varid'>createUniqueNames</span> <span class='varop'>$<</span> <span class='layout'>(</span><span class='varid'>getParamInt</span> <span class='num'>0</span> <span class='str'>"define_id"</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-1060"></a> <span class='layout'>)</span>-<a name="line-1061"></a> <span class='varop'>&&&</span>-<a name="line-1062"></a> <span class='comment'>-- set the old ref list to be the new parentRef list</span>-<a name="line-1063"></a> <span class='varid'>constA</span> <span class='varid'>ref</span>-<a name="line-1064"></a> <span class='layout'>)</span>-<a name="line-1065"></a> <span class='layout'>)</span>-<a name="line-1066"></a> <span class='layout'>,</span> <span class='varid'>isRngRef</span>-<a name="line-1067"></a> <span class='conop'>:-></span> <span class='layout'>(</span> <span class='varid'>ifA</span> <span class='layout'>(</span> <span class='varid'>getRngAttrName</span>-<a name="line-1068"></a> <span class='varop'>>>></span>-<a name="line-1069"></a> <span class='varid'>isA</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>name</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='varid'>elem</span> <span class='varid'>name</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>fst</span> <span class='varid'>ref</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-1070"></a> <span class='layout'>)</span>-<a name="line-1071"></a> <span class='layout'>(</span> <span class='comment'>-- the original name is needed for error messages</span>-<a name="line-1072"></a> <span class='varid'>addAttr</span> <span class='varid'>defineOrigName</span> <span class='varop'>$<</span> <span class='varid'>getRngAttrName</span>-<a name="line-1073"></a> <span class='varop'>>>></span>-<a name="line-1074"></a> <span class='comment'>-- rename the ref-pattern</span>-<a name="line-1075"></a> <span class='comment'>-- the new name is looked up in the ref table</span>-<a name="line-1076"></a> <span class='varid'>addAttr</span> <span class='str'>"name"</span> <span class='varop'>$<</span> <span class='layout'>(</span> <span class='varid'>getRngAttrName</span>-<a name="line-1077"></a> <span class='varop'>>>></span>-<a name="line-1078"></a> <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>n</span> <span class='keyglyph'>-></span> <span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>lookup</span> <span class='varid'>n</span> <span class='varid'>ref</span><span class='layout'>)</span>-<a name="line-1079"></a> <span class='layout'>)</span>-<a name="line-1080"></a> <span class='layout'>)</span>-<a name="line-1081"></a> <span class='layout'>(</span> <span class='comment'>-- the referenced pattern does not exist in the schema</span>-<a name="line-1082"></a> <span class='varid'>mkRelaxError</span> <span class='str'>""</span> <span class='varop'>$<</span> <span class='layout'>(</span> <span class='varid'>getRngAttrName</span>-<a name="line-1083"></a> <span class='varop'>>>></span>-<a name="line-1084"></a> <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='keyglyph'>-></span> <span class='layout'>(</span> <span class='str'>"Define-Pattern with name "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span> <span class='varop'>++</span> -<a name="line-1085"></a> <span class='str'>" referenced in ref-Pattern not "</span> <span class='varop'>++</span>-<a name="line-1086"></a> <span class='str'>"found in schema"</span>-<a name="line-1087"></a> <span class='layout'>)</span>-<a name="line-1088"></a> <span class='layout'>)</span>-<a name="line-1089"></a> <span class='layout'>)</span>-<a name="line-1090"></a> <span class='layout'>)</span>-<a name="line-1091"></a> <span class='layout'>)</span>-<a name="line-1092"></a> <span class='layout'>,</span> <span class='varid'>isRngParentRef</span> <span class='comment'>-- same as ref, but the parentRef list is used</span>-<a name="line-1093"></a> <span class='conop'>:-></span> <span class='layout'>(</span> <span class='varid'>ifA</span> <span class='layout'>(</span> <span class='varid'>getRngAttrName</span>-<a name="line-1094"></a> <span class='varop'>>>></span>-<a name="line-1095"></a> <span class='varid'>isA</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>name</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='varid'>elem</span> <span class='varid'>name</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>fst</span> <span class='varid'>parentRef</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-1096"></a> <span class='layout'>)</span>-<a name="line-1097"></a> <span class='layout'>(</span> <span class='varid'>addAttr</span> <span class='varid'>defineOrigName</span> <span class='varop'>$<</span> <span class='varid'>getRngAttrName</span>-<a name="line-1098"></a> <span class='varop'>>>></span>-<a name="line-1099"></a> <span class='varid'>addAttr</span> <span class='str'>"name"</span> <span class='varop'>$<</span> <span class='layout'>(</span> <span class='varid'>getRngAttrName</span>-<a name="line-1100"></a> <span class='varop'>>>></span>-<a name="line-1101"></a> <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>n</span> <span class='keyglyph'>-></span> <span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>lookup</span> <span class='varid'>n</span> <span class='varid'>parentRef</span><span class='layout'>)</span>-<a name="line-1102"></a> <span class='layout'>)</span>-<a name="line-1103"></a> <span class='layout'>)</span>-<a name="line-1104"></a> <span class='layout'>(</span> <span class='varid'>mkRelaxError</span> <span class='str'>""</span> <span class='varop'>$<</span>-<a name="line-1105"></a> <span class='layout'>(</span> <span class='varid'>getRngAttrName</span>-<a name="line-1106"></a> <span class='varop'>>>></span> -<a name="line-1107"></a> <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='keyglyph'>-></span> <span class='layout'>(</span> <span class='str'>"Define-Pattern with name "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span> <span class='varop'>++</span> -<a name="line-1108"></a> <span class='str'>" referenced in parentRef-Pattern "</span> <span class='varop'>++</span>-<a name="line-1109"></a> <span class='str'>"not found in schema"</span>-<a name="line-1110"></a> <span class='layout'>)</span>-<a name="line-1111"></a> <span class='layout'>)</span>-<a name="line-1112"></a> <span class='layout'>)</span>-<a name="line-1113"></a> <span class='layout'>)</span>-<a name="line-1114"></a> <span class='layout'>)</span>-<a name="line-1115"></a> <span class='layout'>,</span> <span class='varid'>this</span>-<a name="line-1116"></a> <span class='conop'>:-></span> <span class='varid'>renameDefines</span> <span class='varid'>ref</span> <span class='varid'>parentRef</span>-<a name="line-1117"></a> <span class='keyglyph'>]</span>-<a name="line-1118"></a> <span class='layout'>)</span>-<a name="line-1119"></a>-<a name="line-1120"></a>-<a name="line-1121"></a> <span class='varid'>getAllDefines</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-1122"></a> <span class='varid'>getAllDefines</span> <span class='keyglyph'>=</span> <span class='varid'>multi</span> <span class='varid'>isRngDefine</span>-<a name="line-1123"></a>-<a name="line-1124"></a> <span class='varid'>deleteAllDefines</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> -<a name="line-1125"></a> <span class='varid'>deleteAllDefines</span> <span class='keyglyph'>=</span> <span class='varid'>processTopDown</span> <span class='varop'>$</span> <span class='varid'>none</span> <span class='varop'>`when`</span> <span class='varid'>isRngDefine</span>-<a name="line-1126"></a>-<a name="line-1127"></a> <span class='varid'>combinePatternList</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-1128"></a> <span class='varid'>combinePatternList</span> <span class='keyword'>_</span> <span class='conid'>[]</span> <span class='keyglyph'>=</span> <span class='varid'>this</span>-<a name="line-1129"></a> <span class='varid'>combinePatternList</span> <span class='varid'>pattern</span> <span class='layout'>(</span><span class='varid'>x</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span>-<a name="line-1130"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>replaceChildren</span> <span class='varop'>$</span> <span class='varid'>combinePattern</span> <span class='varid'>pattern</span> <span class='varid'>x</span><span class='layout'>)</span>-<a name="line-1131"></a> <span class='varop'>>>></span>-<a name="line-1132"></a> <span class='varid'>combinePatternList</span> <span class='varid'>pattern</span> <span class='varid'>xs</span>-<a name="line-1133"></a> -<a name="line-1134"></a> <span class='comment'>-- combine a define- or start-pattern (first parameter) with a</span>-<a name="line-1135"></a> <span class='comment'>-- specific name (second parameter)</span>-<a name="line-1136"></a> <span class='varid'>combinePattern</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> -<a name="line-1137"></a> <span class='varid'>combinePattern</span> <span class='varid'>pattern</span> <span class='varid'>name</span>-<a name="line-1138"></a> <span class='keyglyph'>=</span> <span class='varid'>createPatternElems</span> <span class='varid'>pattern</span> <span class='varid'>name</span>-<a name="line-1139"></a> <span class='varop'><+></span>-<a name="line-1140"></a> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>>>></span> <span class='varid'>deletePatternElems</span> <span class='varid'>pattern</span> <span class='varid'>name</span><span class='layout'>)</span> -<a name="line-1141"></a>-<a name="line-1142"></a> <span class='varid'>createPatternElems</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> -<a name="line-1143"></a> <span class='varid'>createPatternElems</span> <span class='varid'>pattern</span> <span class='varid'>name</span> -<a name="line-1144"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>listA</span> <span class='layout'>(</span><span class='varid'>getElems</span> <span class='varid'>pattern</span> <span class='varid'>name</span> <span class='varop'>>>></span> <span class='varid'>getRngAttrCombine</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-1145"></a> <span class='varop'>>>></span>-<a name="line-1146"></a> <span class='varid'>checkPatternCombine</span> <span class='varid'>pattern</span> <span class='varid'>name</span>-<a name="line-1147"></a> <span class='layout'>)</span> -<a name="line-1148"></a> <span class='comment'>-- After determining this unique value, the combine attributes are removed.</span>-<a name="line-1149"></a> <span class='varop'>&&&</span>-<a name="line-1150"></a> <span class='layout'>(</span><span class='varid'>listA</span> <span class='layout'>(</span><span class='varid'>getElems</span> <span class='varid'>pattern</span> <span class='varid'>name</span> <span class='varop'>>>></span> <span class='varid'>removeAttr</span> <span class='str'>"combine"</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span> -<a name="line-1151"></a> <span class='varop'>>>></span> <span class='comment'>-- ((errorCode::Int,errorMessage::String), result::XmlTrees)</span>-<a name="line-1152"></a> <span class='varid'>choiceA</span>-<a name="line-1153"></a> <span class='keyglyph'>[</span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>code</span><span class='layout'>,</span><span class='keyword'>_</span><span class='layout'>)</span> <span class='layout'>,</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>code</span> <span class='varop'>==</span> <span class='num'>0</span><span class='layout'>)</span>-<a name="line-1154"></a> <span class='conop'>:-></span>-<a name="line-1155"></a> <span class='layout'>(</span><span class='varid'>mkRelaxError</span> <span class='str'>""</span> <span class='varop'>$<</span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='varid'>snd</span> <span class='varop'>.</span> <span class='varid'>fst</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-1156"></a> <span class='layout'>,</span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>code</span><span class='layout'>,</span><span class='varid'>str</span><span class='layout'>)</span> <span class='layout'>,</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>code</span> <span class='varop'>==</span> <span class='num'>1</span> <span class='varop'>&&</span> <span class='varid'>str</span> <span class='varop'>==</span> <span class='str'>""</span><span class='layout'>)</span>-<a name="line-1157"></a> <span class='conop'>:-></span>-<a name="line-1158"></a> <span class='varid'>arrL</span> <span class='varid'>snd</span>-<a name="line-1159"></a> <span class='layout'>,</span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>code</span><span class='layout'>,</span><span class='varid'>str</span><span class='layout'>)</span> <span class='layout'>,</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>code</span> <span class='varop'>==</span> <span class='num'>1</span> <span class='varop'>&&</span> <span class='varid'>str</span> <span class='varop'>/=</span> <span class='str'>""</span><span class='layout'>)</span>-<a name="line-1160"></a> <span class='conop'>:-></span>-<a name="line-1161"></a> <span class='layout'>(</span> <span class='varid'>createPatternElem</span> <span class='varid'>pattern</span> <span class='varid'>name</span> <span class='varop'>$<<</span> -<a name="line-1162"></a> <span class='layout'>(</span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='varid'>snd</span> <span class='varop'>.</span> <span class='varid'>fst</span><span class='layout'>)</span> <span class='varop'>&&&</span> <span class='layout'>(</span><span class='varid'>arr</span> <span class='varid'>snd</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-1163"></a> <span class='layout'>)</span>-<a name="line-1164"></a> <span class='layout'>,</span> <span class='varid'>this</span>-<a name="line-1165"></a> <span class='conop'>:-></span>-<a name="line-1166"></a> <span class='layout'>(</span> <span class='varid'>mkRelaxError</span> <span class='str'>""</span>-<a name="line-1167"></a> <span class='layout'>(</span> <span class='str'>"Can't create Pattern: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>pattern</span> <span class='varop'>++</span> -<a name="line-1168"></a> <span class='str'>" with name "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>name</span> <span class='varop'>++</span> <span class='str'>" in createPatternElems"</span>-<a name="line-1169"></a> <span class='layout'>)</span>-<a name="line-1170"></a> <span class='layout'>)</span>-<a name="line-1171"></a> <span class='keyglyph'>]</span>-<a name="line-1172"></a>-<a name="line-1173"></a> <span class='varid'>createPatternElem</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>ArrowXml</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>=></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span> -<a name="line-1174"></a> <span class='varid'>createPatternElem</span> <span class='varid'>pattern</span> <span class='varid'>name</span> <span class='varid'>combine</span> <span class='varid'>trees</span>-<a name="line-1175"></a> <span class='keyglyph'>=</span> <span class='varid'>mkRngElement</span> <span class='varid'>pattern</span> <span class='layout'>(</span><span class='varid'>mkAttr</span> <span class='layout'>(</span><span class='varid'>mkName</span> <span class='str'>"name"</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>txt</span> <span class='varid'>name</span><span class='layout'>)</span><span class='layout'>)</span> -<a name="line-1176"></a> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>mkRngElement</span> <span class='varid'>combine</span> <span class='varid'>none</span> -<a name="line-1177"></a> <span class='layout'>(</span><span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varid'>trees</span><span class='layout'>)</span> <span class='varop'>>>></span> <span class='varid'>getChildren</span><span class='layout'>)</span>-<a name="line-1178"></a> <span class='layout'>)</span>-<a name="line-1179"></a> <span class='varop'>>>></span>-<a name="line-1180"></a> <span class='varid'>wrapPattern2Two</span> <span class='varid'>combine</span>-<a name="line-1181"></a> <span class='layout'>)</span>-<a name="line-1182"></a> -<a name="line-1183"></a> <span class='varid'>checkPatternCombine</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>ArrowXml</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>=></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='layout'>(</span><span class='conid'>Int</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span>-<a name="line-1184"></a> <span class='varid'>checkPatternCombine</span> <span class='varid'>pattern</span> <span class='varid'>name</span> -<a name="line-1185"></a> <span class='keyglyph'>=</span> <span class='varid'>choiceA</span>-<a name="line-1186"></a> <span class='keyglyph'>[</span> <span class='comment'>-- just one pattern with that name -> ok, no combine is needed</span>-<a name="line-1187"></a> <span class='layout'>(</span><span class='varid'>isA</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>cl</span> <span class='keyglyph'>-></span> <span class='varid'>length</span> <span class='varid'>cl</span> <span class='varop'>==</span> <span class='num'>1</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-1188"></a> <span class='conop'>:-></span>-<a name="line-1189"></a> <span class='varid'>constA</span> <span class='layout'>(</span><span class='num'>1</span><span class='layout'>,</span> <span class='str'>""</span><span class='layout'>)</span>-<a name="line-1190"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>isA</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>cl</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='varid'>length</span> <span class='varop'>$</span> <span class='varid'>elemIndices</span> <span class='str'>""</span> <span class='varid'>cl</span><span class='layout'>)</span> <span class='varop'>></span> <span class='num'>1</span><span class='layout'>)</span><span class='layout'>)</span> -<a name="line-1191"></a> <span class='conop'>:-></span>-<a name="line-1192"></a> <span class='varid'>constA</span> <span class='layout'>(</span> <span class='num'>0</span>-<a name="line-1193"></a> <span class='layout'>,</span> <span class='str'>"More than one "</span> <span class='varop'>++</span> <span class='varid'>pattern</span> <span class='varop'>++</span> <span class='str'>"-Pattern: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>name</span> <span class='varop'>++</span> -<a name="line-1194"></a> <span class='str'>" without an combine-attribute in the same grammar"</span>-<a name="line-1195"></a> <span class='layout'>)</span>-<a name="line-1196"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>isA</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>cl</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='varid'>length</span> <span class='varop'>$</span> <span class='varid'>nub</span> <span class='varop'>$</span> <span class='varid'>deleteBy</span> <span class='layout'>(</span><span class='varop'>==</span><span class='layout'>)</span> <span class='str'>""</span> <span class='varid'>cl</span><span class='layout'>)</span> <span class='varop'>></span> <span class='num'>1</span><span class='layout'>)</span><span class='layout'>)</span> -<a name="line-1197"></a> <span class='conop'>:-></span>-<a name="line-1198"></a> <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>cl</span> <span class='keyglyph'>-></span> <span class='layout'>(</span> <span class='num'>0</span>-<a name="line-1199"></a> <span class='layout'>,</span> <span class='str'>"Different combine-Attributes: "</span> <span class='varop'>++</span> -<a name="line-1200"></a> <span class='layout'>(</span><span class='varid'>formatStringListQuot</span> <span class='varop'>$</span> <span class='varid'>noDoubles</span> <span class='varid'>cl</span><span class='layout'>)</span> <span class='varop'>++</span>-<a name="line-1201"></a> <span class='str'>" for the "</span> <span class='varop'>++</span> <span class='varid'>pattern</span> <span class='varop'>++</span> <span class='str'>"-Pattern "</span> <span class='varop'>++</span>-<a name="line-1202"></a> <span class='varid'>show</span> <span class='varid'>name</span> <span class='varop'>++</span> <span class='str'>" in the same grammar"</span>-<a name="line-1203"></a> <span class='layout'>)</span>-<a name="line-1204"></a> <span class='layout'>)</span>-<a name="line-1205"></a> <span class='layout'>,</span> <span class='comment'>-- ok -> combine value is returned</span>-<a name="line-1206"></a> <span class='varid'>this</span>-<a name="line-1207"></a> <span class='conop'>:-></span>-<a name="line-1208"></a> <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>cl</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='num'>1</span><span class='layout'>,</span> <span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>find</span> <span class='layout'>(</span><span class='varop'>/=</span> <span class='str'>""</span><span class='layout'>)</span> <span class='varid'>cl</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-1209"></a> <span class='keyglyph'>]</span>-<a name="line-1210"></a>-<a name="line-1211"></a> <span class='varid'>isElemWithNameValue</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>ArrowXml</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>=></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-1212"></a> <span class='varid'>isElemWithNameValue</span> <span class='varid'>ename</span> <span class='varid'>nvalue</span>-<a name="line-1213"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>isElem</span>-<a name="line-1214"></a> <span class='varop'>>>></span>-<a name="line-1215"></a> <span class='varid'>hasRngName</span> <span class='varid'>ename</span>-<a name="line-1216"></a> <span class='varop'>>>></span>-<a name="line-1217"></a> <span class='varid'>getRngAttrName</span>-<a name="line-1218"></a> <span class='varop'>>>></span>-<a name="line-1219"></a> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='varid'>nvalue</span><span class='layout'>)</span>-<a name="line-1220"></a> <span class='layout'>)</span>-<a name="line-1221"></a> <span class='varop'>`guards`</span> <span class='varid'>this</span>-<a name="line-1222"></a>-<a name="line-1223"></a> <span class='varid'>getElems</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>ArrowXml</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>=></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-1224"></a> <span class='varid'>getElems</span> <span class='varid'>pattern</span> <span class='varid'>name</span>-<a name="line-1225"></a> <span class='keyglyph'>=</span> <span class='varid'>getChildren</span>-<a name="line-1226"></a> <span class='varop'>>>></span> -<a name="line-1227"></a> <span class='varid'>choiceA</span>-<a name="line-1228"></a> <span class='keyglyph'>[</span> <span class='varid'>isElemWithNameValue</span> <span class='varid'>pattern</span> <span class='varid'>name</span>-<a name="line-1229"></a> <span class='conop'>:-></span>-<a name="line-1230"></a> <span class='layout'>(</span><span class='varid'>this</span> <span class='varop'><+></span> <span class='varid'>getElems</span> <span class='varid'>pattern</span> <span class='varid'>name</span><span class='layout'>)</span>-<a name="line-1231"></a> <span class='layout'>,</span> <span class='varid'>isRngGrammar</span>-<a name="line-1232"></a> <span class='conop'>:-></span> <span class='varid'>none</span>-<a name="line-1233"></a> <span class='layout'>,</span> <span class='varid'>this</span>-<a name="line-1234"></a> <span class='conop'>:-></span>-<a name="line-1235"></a> <span class='varid'>getElems</span> <span class='varid'>pattern</span> <span class='varid'>name</span>-<a name="line-1236"></a> <span class='keyglyph'>]</span>-<a name="line-1237"></a>-<a name="line-1238"></a> <span class='varid'>deletePatternElems</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>ArrowXml</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>=></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-1239"></a> <span class='varid'>deletePatternElems</span> <span class='varid'>pattern</span> <span class='varid'>name</span>-<a name="line-1240"></a> <span class='keyglyph'>=</span> <span class='varid'>choiceA</span>-<a name="line-1241"></a> <span class='keyglyph'>[</span> <span class='varid'>isElemWithNameValue</span> <span class='varid'>pattern</span> <span class='varid'>name</span>-<a name="line-1242"></a> <span class='conop'>:-></span>-<a name="line-1243"></a> <span class='varid'>none</span>-<a name="line-1244"></a> <span class='layout'>,</span> <span class='varid'>isRngGrammar</span>-<a name="line-1245"></a> <span class='conop'>:-></span> <span class='varid'>this</span>-<a name="line-1246"></a> <span class='layout'>,</span> <span class='varid'>this</span>-<a name="line-1247"></a> <span class='conop'>:-></span>-<a name="line-1248"></a> <span class='varid'>processChildren</span> <span class='layout'>(</span> <span class='varid'>deletePatternElems</span> <span class='varid'>pattern</span> <span class='varid'>name</span> <span class='layout'>)</span>-<a name="line-1249"></a> <span class='keyglyph'>]</span>-<a name="line-1250"></a>-<a name="line-1251"></a>-<a name="line-1252"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-1253"></a>-<a name="line-1254"></a>-<a name="line-1255"></a><a name="simplificationStep6"></a><span class='comment'>{--<a name="line-1256"></a>- 4.19. define and ref elements-<a name="line-1257"></a> - Remove any define element that is not reachable.-<a name="line-1258"></a> - Now, for each element element that is not the child of a define element,-<a name="line-1259"></a> add a define element to the grammar element, -<a name="line-1260"></a> and replace the element element by a ref element referring-<a name="line-1261"></a> to the added define element.-<a name="line-1262"></a> - For each ref element that is expandable and is a descendant-<a name="line-1263"></a> of a start element or an element element, expand it by replacing-<a name="line-1264"></a> the ref element by the child of the define element to which it refers-<a name="line-1265"></a> - This must not result in a loop.-<a name="line-1266"></a> - Remove any define element whose child is not an element element.-<a name="line-1267"></a>-}</span>-<a name="line-1268"></a><span class='definition'>simplificationStep6</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-1269"></a><span class='definition'>simplificationStep6</span> <span class='keyglyph'>=</span>-<a name="line-1270"></a> <span class='layout'>(</span> <span class='comment'>-- Remove any define element that is not reachable.</span>-<a name="line-1271"></a> <span class='layout'>(</span><span class='varid'>removeUnreachableDefines</span> <span class='varop'>$<<<</span> <span class='varid'>getAllDeepDefines</span> -<a name="line-1272"></a> <span class='varop'>&&&</span> -<a name="line-1273"></a> <span class='varid'>constA</span> <span class='conid'>[]</span>-<a name="line-1274"></a> <span class='varop'>&&&</span>-<a name="line-1275"></a> <span class='varid'>getRefsFromStartPattern</span>-<a name="line-1276"></a> <span class='layout'>)</span>-<a name="line-1277"></a> <span class='varop'>>>></span>-<a name="line-1278"></a> <span class='comment'>-- for each element element that is not the child of a define element,</span>-<a name="line-1279"></a> <span class='comment'>-- add a define element to the grammar element, </span>-<a name="line-1280"></a> <span class='layout'>(</span> <span class='varid'>processElements</span> <span class='conid'>False</span>-<a name="line-1281"></a> <span class='varop'>>>></span>-<a name="line-1282"></a> <span class='varid'>processChildren</span> <span class='layout'>(</span><span class='varid'>insertChildrenAt</span> <span class='num'>1</span> <span class='layout'>(</span><span class='varid'>getParam</span> <span class='str'>"elementTable"</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-1283"></a> <span class='layout'>)</span>-<a name="line-1284"></a> <span class='varop'>>>></span>-<a name="line-1285"></a> <span class='comment'>-- For each ref element that is expandable... </span>-<a name="line-1286"></a> <span class='comment'>-- Remove any define element whose child is not an element element </span>-<a name="line-1287"></a> <span class='layout'>(</span><span class='varid'>replaceExpandableRefs</span> <span class='conid'>[]</span> <span class='varop'>$<</span> <span class='varid'>getExpandableDefines</span> <span class='varop'>>>></span> <span class='varid'>deleteExpandableDefines</span><span class='layout'>)</span>-<a name="line-1288"></a> <span class='layout'>)</span> <span class='varop'>`when`</span> <span class='varid'>collectErrors</span>-<a name="line-1289"></a> <span class='keyword'>where</span>-<a name="line-1290"></a> <span class='varid'>replaceExpandableRefs</span> <span class='keyglyph'>::</span> <span class='conid'>RefList</span> <span class='keyglyph'>-></span> <span class='conid'>Env</span> <span class='keyglyph'>-></span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-1291"></a> <span class='varid'>replaceExpandableRefs</span> <span class='varid'>foundNames</span> <span class='varid'>defTable</span>-<a name="line-1292"></a> <span class='keyglyph'>=</span> <span class='varid'>choiceA</span> <span class='keyglyph'>[</span>-<a name="line-1293"></a> <span class='varid'>isRngRef</span>-<a name="line-1294"></a> <span class='conop'>:-></span> <span class='layout'>(</span><span class='varid'>ifA</span> <span class='layout'>(</span> <span class='varid'>getRngAttrName</span>-<a name="line-1295"></a> <span class='varop'>>>></span>-<a name="line-1296"></a> <span class='varid'>isA</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>name</span> <span class='keyglyph'>-></span> <span class='varid'>elem</span> <span class='varid'>name</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>fst</span> <span class='varid'>foundNames</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-1297"></a> <span class='layout'>)</span>-<a name="line-1298"></a> <span class='comment'>-- we have found a loop if the name is in the list</span>-<a name="line-1299"></a> <span class='layout'>(</span><span class='varid'>mkRelaxError</span> <span class='str'>""</span> <span class='varop'>$<</span> <span class='layout'>(</span> <span class='varid'>getAttrValue</span> <span class='varid'>defineOrigName</span>-<a name="line-1300"></a> <span class='varop'>>>></span>-<a name="line-1301"></a> <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='keyglyph'>-></span> <span class='layout'>(</span> <span class='str'>"Recursion in ref-Pattern: "</span> <span class='varop'>++</span> -<a name="line-1302"></a> <span class='varid'>formatStringListArr</span> <span class='layout'>(</span><span class='varid'>reverse</span> <span class='varop'>$</span> <span class='layout'>(</span><span class='varid'>n</span><span class='conop'>:</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>map</span> <span class='varid'>snd</span> <span class='varid'>foundNames</span><span class='layout'>)</span>-<a name="line-1303"></a> <span class='layout'>)</span>-<a name="line-1304"></a> <span class='layout'>)</span>-<a name="line-1305"></a> <span class='layout'>)</span>-<a name="line-1306"></a> <span class='layout'>)</span>-<a name="line-1307"></a> <span class='layout'>(</span><span class='varid'>replaceRef</span> <span class='varop'>$<<</span> <span class='varid'>getRngAttrName</span> <span class='varop'>&&&</span> <span class='varid'>getAttrValue</span> <span class='varid'>defineOrigName</span><span class='layout'>)</span>-<a name="line-1308"></a> <span class='layout'>)</span><span class='layout'>,</span>-<a name="line-1309"></a> <span class='varid'>this</span> <span class='conop'>:-></span> <span class='layout'>(</span><span class='varid'>processChildren</span> <span class='varop'>$</span> <span class='varid'>replaceExpandableRefs</span> <span class='varid'>foundNames</span> <span class='varid'>defTable</span><span class='layout'>)</span>-<a name="line-1310"></a> <span class='keyglyph'>]</span>-<a name="line-1311"></a> <span class='keyword'>where</span> -<a name="line-1312"></a> <span class='varid'>replaceRef</span> <span class='keyglyph'>::</span> <span class='conid'>NewName</span> <span class='keyglyph'>-></span> <span class='conid'>OldName</span> <span class='keyglyph'>-></span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-1313"></a> <span class='varid'>replaceRef</span> <span class='varid'>name</span> <span class='varid'>oldname</span>-<a name="line-1314"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>constA</span> <span class='layout'>(</span><span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>lookup</span> <span class='varid'>name</span> <span class='varid'>defTable</span><span class='layout'>)</span>-<a name="line-1315"></a> <span class='varop'>>>></span>-<a name="line-1316"></a> <span class='varid'>getChildren</span>-<a name="line-1317"></a> <span class='varop'>>>></span>-<a name="line-1318"></a> <span class='varid'>replaceExpandableRefs</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>name</span><span class='layout'>,</span><span class='varid'>oldname</span><span class='layout'>)</span><span class='conop'>:</span><span class='varid'>foundNames</span><span class='layout'>)</span> <span class='varid'>defTable</span>-<a name="line-1319"></a> <span class='layout'>)</span>-<a name="line-1320"></a> <span class='varop'>`whenP`</span>-<a name="line-1321"></a> <span class='layout'>(</span><span class='varid'>const</span> <span class='varop'>$</span> <span class='varid'>elem</span> <span class='varid'>name</span> <span class='varop'>$</span> <span class='varid'>map</span> <span class='varid'>fst</span> <span class='varid'>defTable</span><span class='layout'>)</span>-<a name="line-1322"></a>-<a name="line-1323"></a>-<a name="line-1324"></a> <span class='varid'>processElements</span> <span class='keyglyph'>::</span> <span class='conid'>Bool</span> <span class='keyglyph'>-></span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-1325"></a> <span class='varid'>processElements</span> <span class='varid'>parentIsDefine</span>-<a name="line-1326"></a> <span class='keyglyph'>=</span> <span class='varid'>processChildren</span>-<a name="line-1327"></a> <span class='layout'>(</span> <span class='varid'>choiceA</span>-<a name="line-1328"></a> <span class='keyglyph'>[</span> <span class='varid'>isRngElement</span>-<a name="line-1329"></a> <span class='conop'>:-></span> <span class='layout'>(</span> <span class='varid'>ifP</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varid'>parentIsDefine</span><span class='layout'>)</span>-<a name="line-1330"></a> <span class='layout'>(</span><span class='varid'>processElements</span> <span class='conid'>False</span><span class='layout'>)</span>-<a name="line-1331"></a> <span class='layout'>(</span> <span class='varid'>processElements'</span> <span class='varop'>$<<</span> <span class='layout'>(</span> <span class='varid'>getAndSetCounter</span> <span class='str'>"define_id"</span> -<a name="line-1332"></a> <span class='varop'>&&&</span>-<a name="line-1333"></a> <span class='varid'>getDefineName</span>-<a name="line-1334"></a> <span class='layout'>)</span>-<a name="line-1335"></a> <span class='layout'>)</span>-<a name="line-1336"></a> <span class='layout'>)</span>-<a name="line-1337"></a> <span class='layout'>,</span> <span class='varid'>isRngDefine</span>-<a name="line-1338"></a> <span class='conop'>:-></span> <span class='varid'>processElements</span> <span class='conid'>True</span>-<a name="line-1339"></a> <span class='layout'>,</span> <span class='varid'>this</span>-<a name="line-1340"></a> <span class='conop'>:-></span> <span class='varid'>processElements</span> <span class='conid'>False</span>-<a name="line-1341"></a> <span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-1342"></a> <span class='keyword'>where</span>-<a name="line-1343"></a> <span class='varid'>getDefineName</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>-<a name="line-1344"></a> <span class='varid'>getDefineName</span>-<a name="line-1345"></a> <span class='keyglyph'>=</span> <span class='varid'>firstChild</span>-<a name="line-1346"></a> <span class='varop'>>>></span>-<a name="line-1347"></a> <span class='varid'>fromLA</span> <span class='varid'>createNameClass</span>-<a name="line-1348"></a> <span class='varop'>>>></span>-<a name="line-1349"></a> <span class='varid'>arr</span> <span class='varid'>show</span>-<a name="line-1350"></a> -<a name="line-1351"></a> <span class='varid'>processElements'</span> <span class='keyglyph'>::</span> <span class='conid'>NewName</span> <span class='keyglyph'>-></span> <span class='conid'>OldName</span> <span class='keyglyph'>-></span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-1352"></a> <span class='varid'>processElements'</span> <span class='varid'>name</span> <span class='varid'>oldname</span>-<a name="line-1353"></a> <span class='keyglyph'>=</span> <span class='varid'>storeElement</span> <span class='varid'>name</span> <span class='varid'>oldname</span>-<a name="line-1354"></a> <span class='varop'>>>></span> -<a name="line-1355"></a> <span class='varid'>mkRngRef</span> <span class='layout'>(</span><span class='varid'>createAttr</span> <span class='varid'>name</span> <span class='varid'>oldname</span><span class='layout'>)</span> <span class='varid'>none</span>-<a name="line-1356"></a>-<a name="line-1357"></a> <span class='varid'>storeElement</span> <span class='keyglyph'>::</span> <span class='conid'>NewName</span> <span class='keyglyph'>-></span> <span class='conid'>OldName</span> <span class='keyglyph'>-></span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-1358"></a> <span class='varid'>storeElement</span> <span class='varid'>name</span> <span class='varid'>oldname</span>-<a name="line-1359"></a> <span class='keyglyph'>=</span> <span class='varid'>perform</span> <span class='varop'>$</span> -<a name="line-1360"></a> <span class='layout'>(</span> <span class='varid'>mkRngDefine</span>-<a name="line-1361"></a> <span class='layout'>(</span><span class='varid'>createAttr</span> <span class='varid'>name</span> <span class='varid'>oldname</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>processElements</span> <span class='conid'>False</span><span class='layout'>)</span>-<a name="line-1362"></a> <span class='layout'>)</span>-<a name="line-1363"></a> <span class='varop'>&&&</span>-<a name="line-1364"></a> <span class='layout'>(</span><span class='varid'>listA</span> <span class='varop'>$</span> <span class='varid'>getParam</span> <span class='str'>"elementTable"</span><span class='layout'>)</span>-<a name="line-1365"></a> <span class='varop'>>>></span>-<a name="line-1366"></a> <span class='varid'>arr2</span> <span class='layout'>(</span><span class='conop'>:</span><span class='layout'>)</span>-<a name="line-1367"></a> <span class='varop'>>>></span>-<a name="line-1368"></a> <span class='varid'>setParamList</span> <span class='str'>"elementTable"</span>-<a name="line-1369"></a>-<a name="line-1370"></a> <span class='varid'>createAttr</span> <span class='keyglyph'>::</span> <span class='conid'>NewName</span> <span class='keyglyph'>-></span> <span class='conid'>OldName</span> <span class='keyglyph'>-></span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-1371"></a> <span class='varid'>createAttr</span> <span class='varid'>name</span> <span class='varid'>oldname</span>-<a name="line-1372"></a> <span class='keyglyph'>=</span> <span class='varid'>mkAttr</span> <span class='layout'>(</span><span class='varid'>mkName</span> <span class='str'>"name"</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>txt</span> <span class='varid'>name</span><span class='layout'>)</span> -<a name="line-1373"></a> <span class='varop'><+></span>-<a name="line-1374"></a> <span class='varid'>mkAttr</span> <span class='layout'>(</span><span class='varid'>mkName</span> <span class='varid'>defineOrigName</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>txt</span> <span class='varop'>$</span> <span class='str'>"created for element "</span> <span class='varop'>++</span> <span class='varid'>oldname</span><span class='layout'>)</span>-<a name="line-1375"></a> -<a name="line-1376"></a> <span class='varid'>getExpandableDefines</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>ArrowXml</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>Env</span> -<a name="line-1377"></a> <span class='varid'>getExpandableDefines</span> -<a name="line-1378"></a> <span class='keyglyph'>=</span> <span class='varid'>listA</span> <span class='varop'>$</span> <span class='layout'>(</span><span class='varid'>multi</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>isRngDefine</span>-<a name="line-1379"></a> <span class='varop'>>>></span>-<a name="line-1380"></a> <span class='varid'>getChildren</span>-<a name="line-1381"></a> <span class='varop'>>>></span>-<a name="line-1382"></a> <span class='varid'>neg</span> <span class='varid'>isRngElement</span>-<a name="line-1383"></a> <span class='layout'>)</span>-<a name="line-1384"></a> <span class='varop'>`guards`</span>-<a name="line-1385"></a> <span class='varid'>this</span>-<a name="line-1386"></a> <span class='layout'>)</span>-<a name="line-1387"></a> <span class='layout'>)</span>-<a name="line-1388"></a> <span class='varop'>>>></span> -<a name="line-1389"></a> <span class='layout'>(</span><span class='varid'>getRngAttrName</span> <span class='varop'>&&&</span> <span class='varid'>this</span><span class='layout'>)</span>-<a name="line-1390"></a> -<a name="line-1391"></a> <span class='varid'>deleteExpandableDefines</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>ArrowXml</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-1392"></a> <span class='varid'>deleteExpandableDefines</span> -<a name="line-1393"></a> <span class='keyglyph'>=</span> <span class='varid'>processTopDown</span> <span class='varop'>$</span> <span class='varid'>none</span>-<a name="line-1394"></a> <span class='varop'>`when`</span> -<a name="line-1395"></a> <span class='layout'>(</span> <span class='varid'>isRngDefine</span>-<a name="line-1396"></a> <span class='varop'>>>></span> -<a name="line-1397"></a> <span class='varid'>getChildren</span>-<a name="line-1398"></a> <span class='varop'>>>></span>-<a name="line-1399"></a> <span class='varid'>neg</span> <span class='varid'>isRngElement</span>-<a name="line-1400"></a> <span class='layout'>)</span>-<a name="line-1401"></a>-<a name="line-1402"></a>-<a name="line-1403"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-1404"></a>-<a name="line-1405"></a>-<a name="line-1406"></a><span class='comment'>{--<a name="line-1407"></a>- 4.20. notAllowed element-<a name="line-1408"></a> - An attribute, list, group, interleave, or oneOrMore element that has-<a name="line-1409"></a> a notAllowed child element is transformed into a notAllowed element.-<a name="line-1410"></a> - A choice element that has two notAllowed child elements -<a name="line-1411"></a> is transformed into a notAllowed element-<a name="line-1412"></a> - A choice element that has one notAllowed child element-<a name="line-1413"></a> is transformed into its other child element.-<a name="line-1414"></a> - An except element that has a notAllowed child element is removed.-<a name="line-1415"></a> - The preceding transformations are applied repeatedly-<a name="line-1416"></a> until none of them is applicable any more.-<a name="line-1417"></a> - Any define element that is no longer reachable is removed.-<a name="line-1418"></a>- 4.21. empty element-<a name="line-1419"></a> - A group, interleave or choice element that has two empty child-<a name="line-1420"></a> elements is transformed into an empty element.-<a name="line-1421"></a> - A group or interleave element that has one empty child element-<a name="line-1422"></a> is transformed into its other child element.-<a name="line-1423"></a> - A choice element whose second child element is an empty element-<a name="line-1424"></a> is transformed by interchanging its two child elements.-<a name="line-1425"></a> - A oneOrMore element that has an empty child element-<a name="line-1426"></a> is transformed into an empty element.-<a name="line-1427"></a> - The preceding transformations are applied repeatedly-<a name="line-1428"></a> until none of them is applicable any more.-<a name="line-1429"></a>-}</span>-<a name="line-1430"></a>-<a name="line-1431"></a><a name="simplificationStep7"></a><span class='definition'>simplificationStep7</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-1432"></a><span class='definition'>simplificationStep7</span>-<a name="line-1433"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>markTreeChanged</span> <span class='num'>0</span> <span class='comment'>-- 0 = no changes, 1 = changes performed</span>-<a name="line-1434"></a> <span class='varop'>>>></span>-<a name="line-1435"></a> <span class='varid'>processTopDownWithAttrl</span>-<a name="line-1436"></a> <span class='layout'>(</span> <span class='layout'>(</span> <span class='comment'>-- An attribute, list, group, interleave, or oneOrMore element that has a </span>-<a name="line-1437"></a> <span class='comment'>-- notAllowed child element is transformed into a notAllowed element. </span>-<a name="line-1438"></a> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>mkRngNotAllowed</span> <span class='varid'>none</span> <span class='varid'>none</span>-<a name="line-1439"></a> <span class='varop'>>>></span>-<a name="line-1440"></a> <span class='varid'>markTreeChanged</span> <span class='num'>1</span>-<a name="line-1441"></a> <span class='layout'>)</span>-<a name="line-1442"></a> <span class='varop'>`whenNot`</span> <span class='comment'>-- keep all errors</span>-<a name="line-1443"></a> <span class='layout'>(</span><span class='varid'>deep</span> <span class='varid'>isRngRelaxError</span><span class='layout'>)</span>-<a name="line-1444"></a> <span class='layout'>)</span>-<a name="line-1445"></a> <span class='varop'>`when`</span>-<a name="line-1446"></a> <span class='layout'>(</span> <span class='varid'>isAttributeListGroupInterleaveOneOrMore</span>-<a name="line-1447"></a> <span class='varop'>>>></span>-<a name="line-1448"></a> <span class='varid'>getChildren</span>-<a name="line-1449"></a> <span class='varop'>>>></span>-<a name="line-1450"></a> <span class='varid'>isRngNotAllowed</span>-<a name="line-1451"></a> <span class='layout'>)</span>-<a name="line-1452"></a> <span class='layout'>)</span>-<a name="line-1453"></a> <span class='varop'>>>></span> -<a name="line-1454"></a> <span class='layout'>(</span> <span class='comment'>-- A choice element that has two notAllowed child elements is </span>-<a name="line-1455"></a> <span class='comment'>-- transformed into a notAllowed element</span>-<a name="line-1456"></a> <span class='layout'>(</span> <span class='varid'>mkRngNotAllowed</span> <span class='varid'>none</span> <span class='varid'>none</span>-<a name="line-1457"></a> <span class='varop'>>>></span>-<a name="line-1458"></a> <span class='varid'>markTreeChanged</span> <span class='num'>1</span>-<a name="line-1459"></a> <span class='layout'>)</span>-<a name="line-1460"></a> <span class='varop'>`when`</span>-<a name="line-1461"></a> <span class='layout'>(</span> <span class='varid'>isRngChoice</span>-<a name="line-1462"></a> <span class='varop'>>>></span>-<a name="line-1463"></a> <span class='varid'>listA</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>>>></span> <span class='varid'>isRngNotAllowed</span><span class='layout'>)</span>-<a name="line-1464"></a> <span class='varop'>>>></span> -<a name="line-1465"></a> <span class='varid'>isA</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>s</span> <span class='keyglyph'>-></span> <span class='varid'>length</span> <span class='varid'>s</span> <span class='varop'>==</span> <span class='num'>2</span><span class='layout'>)</span>-<a name="line-1466"></a> <span class='layout'>)</span>-<a name="line-1467"></a> <span class='layout'>)</span>-<a name="line-1468"></a> <span class='varop'>>>></span>-<a name="line-1469"></a> <span class='layout'>(</span> <span class='comment'>-- A choice element that has one notAllowed child element is </span>-<a name="line-1470"></a> <span class='comment'>-- transformed into its other child element. </span>-<a name="line-1471"></a> <span class='layout'>(</span> <span class='varid'>getChildren</span> <span class='varop'>>>></span> <span class='varid'>neg</span> <span class='varid'>isRngNotAllowed</span>-<a name="line-1472"></a> <span class='varop'>>>></span>-<a name="line-1473"></a> <span class='varid'>markTreeChanged</span> <span class='num'>1</span>-<a name="line-1474"></a> <span class='layout'>)</span>-<a name="line-1475"></a> <span class='varop'>`when`</span>-<a name="line-1476"></a> <span class='layout'>(</span> <span class='varid'>isRngChoice</span> <span class='varop'>>>></span> <span class='varid'>getChildren</span> <span class='varop'>>>></span> <span class='varid'>isRngNotAllowed</span> <span class='layout'>)</span>-<a name="line-1477"></a> <span class='layout'>)</span>-<a name="line-1478"></a> <span class='varop'>>>></span> -<a name="line-1479"></a> <span class='layout'>(</span> <span class='comment'>-- An except element that has a notAllowed child element is removed.</span>-<a name="line-1480"></a> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>markTreeChanged</span> <span class='num'>1</span>-<a name="line-1481"></a> <span class='varop'>>>></span>-<a name="line-1482"></a> <span class='varid'>none</span>-<a name="line-1483"></a> <span class='layout'>)</span> -<a name="line-1484"></a> <span class='varop'>`whenNot`</span> <span class='comment'>-- keep all errors</span>-<a name="line-1485"></a> <span class='varid'>deep</span> <span class='varid'>isRngRelaxError</span>-<a name="line-1486"></a> <span class='layout'>)</span>-<a name="line-1487"></a> <span class='varop'>`when`</span>-<a name="line-1488"></a> <span class='layout'>(</span> <span class='varid'>isRngExcept</span> <span class='varop'>>>></span> <span class='varid'>getChildren</span> <span class='varop'>>>></span> <span class='varid'>isRngNotAllowed</span> <span class='layout'>)</span>-<a name="line-1489"></a> <span class='layout'>)</span>-<a name="line-1490"></a> <span class='varop'>>>></span> <span class='comment'>-- transforming the empty pattern (4.21)</span>-<a name="line-1491"></a> <span class='layout'>(</span> <span class='comment'>-- A group, interleave or choice element that has two empty child elements</span>-<a name="line-1492"></a> <span class='comment'>-- is transformed into an empty element.</span>-<a name="line-1493"></a> <span class='layout'>(</span> <span class='varid'>mkRngEmpty</span> <span class='varid'>none</span>-<a name="line-1494"></a> <span class='varop'>>>></span>-<a name="line-1495"></a> <span class='varid'>markTreeChanged</span> <span class='num'>1</span>-<a name="line-1496"></a> <span class='layout'>)</span>-<a name="line-1497"></a> <span class='varop'>`when`</span>-<a name="line-1498"></a> <span class='layout'>(</span> <span class='varid'>isChoiceGroupInterleave</span>-<a name="line-1499"></a> <span class='varop'>>>></span>-<a name="line-1500"></a> <span class='varid'>listA</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>>>></span> <span class='varid'>isRngEmpty</span><span class='layout'>)</span>-<a name="line-1501"></a> <span class='varop'>>>></span>-<a name="line-1502"></a> <span class='varid'>isA</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>s</span> <span class='keyglyph'>-></span> <span class='varid'>length</span> <span class='varid'>s</span> <span class='varop'>==</span> <span class='num'>2</span><span class='layout'>)</span>-<a name="line-1503"></a> <span class='layout'>)</span>-<a name="line-1504"></a> <span class='layout'>)</span>-<a name="line-1505"></a> <span class='varop'>>>></span>-<a name="line-1506"></a> <span class='layout'>(</span> <span class='comment'>-- A group or interleave element that has one empty child element </span>-<a name="line-1507"></a> <span class='comment'>-- is transformed into its other child element.</span>-<a name="line-1508"></a> <span class='layout'>(</span> <span class='varid'>getChildren</span>-<a name="line-1509"></a> <span class='varop'>>>></span>-<a name="line-1510"></a> <span class='varid'>neg</span> <span class='varid'>isRngEmpty</span>-<a name="line-1511"></a> <span class='varop'>>>></span>-<a name="line-1512"></a> <span class='varid'>markTreeChanged</span> <span class='num'>1</span>-<a name="line-1513"></a> <span class='layout'>)</span>-<a name="line-1514"></a> <span class='varop'>`when`</span>-<a name="line-1515"></a> <span class='layout'>(</span> <span class='varid'>isGroupInterleave</span> <span class='varop'>>>></span> <span class='varid'>getChildren</span> <span class='varop'>>>></span> <span class='varid'>isRngEmpty</span> <span class='layout'>)</span>-<a name="line-1516"></a> <span class='layout'>)</span>-<a name="line-1517"></a> <span class='varop'>>>></span>-<a name="line-1518"></a> <span class='layout'>(</span> <span class='comment'>-- A choice element whose second child element is an empty element is transformed </span>-<a name="line-1519"></a> <span class='comment'>-- by interchanging its two child elements.</span>-<a name="line-1520"></a> <span class='varid'>changeChoiceChildren</span>-<a name="line-1521"></a> <span class='varop'>`when`</span>-<a name="line-1522"></a> <span class='layout'>(</span> <span class='varid'>isRngChoice</span> <span class='varop'>>>></span> <span class='varid'>getChildren</span> <span class='varop'>>>></span> <span class='varid'>isRngEmpty</span> <span class='layout'>)</span>-<a name="line-1523"></a> <span class='layout'>)</span>-<a name="line-1524"></a> <span class='varop'>>>></span>-<a name="line-1525"></a> <span class='layout'>(</span> <span class='comment'>-- A oneOrMore element that has an empty child element</span>-<a name="line-1526"></a> <span class='comment'>-- is transformed into an empty element.</span>-<a name="line-1527"></a> <span class='layout'>(</span> <span class='varid'>mkRngEmpty</span> <span class='varid'>none</span>-<a name="line-1528"></a> <span class='varop'>>>></span>-<a name="line-1529"></a> <span class='varid'>markTreeChanged</span> <span class='num'>1</span>-<a name="line-1530"></a> <span class='layout'>)</span>-<a name="line-1531"></a> <span class='varop'>`when`</span>-<a name="line-1532"></a> <span class='layout'>(</span> <span class='varid'>isRngOneOrMore</span> <span class='varop'>>>></span> <span class='varid'>getChildren</span> <span class='varop'>>>></span> <span class='varid'>isRngEmpty</span> <span class='layout'>)</span>-<a name="line-1533"></a> <span class='layout'>)</span>-<a name="line-1534"></a> <span class='layout'>)</span>-<a name="line-1535"></a> <span class='varop'>>>></span>-<a name="line-1536"></a> <span class='comment'>-- The preceding transformations are applied repeatedly</span>-<a name="line-1537"></a> <span class='comment'>-- until none of them is applicable any more.</span>-<a name="line-1538"></a> <span class='layout'>(</span> <span class='varid'>simplificationStep7</span>-<a name="line-1539"></a> <span class='varop'>`when`</span>-<a name="line-1540"></a> <span class='varid'>hasTreeChanged</span>-<a name="line-1541"></a> <span class='layout'>)</span>-<a name="line-1542"></a> <span class='layout'>)</span> <span class='varop'>`when`</span> <span class='varid'>collectErrors</span>-<a name="line-1543"></a> <span class='keyword'>where</span>-<a name="line-1544"></a> <span class='varid'>changeChoiceChildren</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-1545"></a> <span class='varid'>changeChoiceChildren</span>-<a name="line-1546"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>replaceChildren</span>-<a name="line-1547"></a> <span class='layout'>(</span> <span class='varid'>mkRngEmpty</span> <span class='varid'>none</span>-<a name="line-1548"></a> <span class='varop'><+></span> -<a name="line-1549"></a> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>>>></span> <span class='varid'>neg</span> <span class='varid'>isRngEmpty</span><span class='layout'>)</span>-<a name="line-1550"></a> <span class='layout'>)</span> -<a name="line-1551"></a> <span class='varop'>>>></span>-<a name="line-1552"></a> <span class='varid'>markTreeChanged</span> <span class='num'>1</span>-<a name="line-1553"></a> <span class='layout'>)</span>-<a name="line-1554"></a> <span class='varop'>`when`</span>-<a name="line-1555"></a> <span class='layout'>(</span> <span class='varid'>single</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>>>></span> <span class='varid'>isElem</span><span class='layout'>)</span> <span class='comment'>-- first child not "empty" elem</span>-<a name="line-1556"></a> <span class='varop'>>>></span>-<a name="line-1557"></a> <span class='varid'>neg</span> <span class='varid'>isRngEmpty</span>-<a name="line-1558"></a> <span class='layout'>)</span>-<a name="line-1559"></a> <span class='layout'>)</span>-<a name="line-1560"></a>-<a name="line-1561"></a><a name="hasTreeChanged"></a><span class='definition'>hasTreeChanged</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='varid'>b</span> <span class='conid'>Int</span>-<a name="line-1562"></a><span class='definition'>hasTreeChanged</span>-<a name="line-1563"></a> <span class='keyglyph'>=</span> <span class='varid'>getParamInt</span> <span class='num'>0</span> <span class='str'>"rng:changeTree"</span>-<a name="line-1564"></a> <span class='varop'>>>></span>-<a name="line-1565"></a> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='num'>1</span><span class='layout'>)</span>-<a name="line-1566"></a>-<a name="line-1567"></a><a name="markTreeChanged"></a><span class='definition'>markTreeChanged</span> <span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-></span> <span class='conid'>IOSArrow</span> <span class='varid'>b</span> <span class='varid'>b</span>-<a name="line-1568"></a><span class='definition'>markTreeChanged</span> <span class='varid'>i</span>-<a name="line-1569"></a> <span class='keyglyph'>=</span> <span class='varid'>perform</span> <span class='layout'>(</span><span class='varid'>setParamInt</span> <span class='str'>"rng:changeTree"</span> <span class='varid'>i</span><span class='layout'>)</span>-<a name="line-1570"></a>-<a name="line-1571"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-1572"></a>-<a name="line-1573"></a>-<a name="line-1574"></a><a name="simplificationStep8"></a><span class='definition'>simplificationStep8</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-1575"></a><span class='definition'>simplificationStep8</span> <span class='comment'>-- Remove any define element that is not reachable.</span>-<a name="line-1576"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>removeUnreachableDefines</span> <span class='varop'>$<<<</span>-<a name="line-1577"></a> <span class='layout'>(</span> <span class='varid'>getAllDeepDefines</span>-<a name="line-1578"></a> <span class='varop'>&&&</span>-<a name="line-1579"></a> <span class='varid'>constA</span> <span class='conid'>[]</span>-<a name="line-1580"></a> <span class='varop'>&&&</span>-<a name="line-1581"></a> <span class='varid'>getRefsFromStartPattern</span>-<a name="line-1582"></a> <span class='layout'>)</span>-<a name="line-1583"></a> <span class='layout'>)</span>-<a name="line-1584"></a> <span class='varop'>`when`</span> <span class='varid'>collectErrors</span>-<a name="line-1585"></a> <span class='layout'>)</span>-<a name="line-1586"></a> -<a name="line-1587"></a>-<a name="line-1588"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-1589"></a>-<a name="line-1590"></a>-<a name="line-1591"></a><a name="restrictionsStep2"></a><span class='definition'>restrictionsStep2</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-1592"></a><span class='definition'>restrictionsStep2</span> <span class='keyglyph'>=</span>-<a name="line-1593"></a> <span class='varid'>processTopDown</span> <span class='layout'>(</span>-<a name="line-1594"></a> <span class='varid'>choiceA</span> <span class='keyglyph'>[</span>-<a name="line-1595"></a><span class='comment'>-- 7.1.1. attribute pattern, the following paths are prohibited:</span>-<a name="line-1596"></a><span class='comment'>-- attribute//(ref | attribute)</span>-<a name="line-1597"></a> <span class='varid'>isRngAttribute</span> <span class='conop'>:-></span> -<a name="line-1598"></a> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>deep</span> <span class='varid'>isRngRelaxError</span>-<a name="line-1599"></a> <span class='varop'><+></span>-<a name="line-1600"></a> <span class='layout'>(</span> <span class='varid'>mkRelaxError</span> <span class='varop'>$<<</span> <span class='layout'>(</span><span class='varid'>getChangesAttr</span>-<a name="line-1601"></a> <span class='varop'>&&&</span>-<a name="line-1602"></a> <span class='layout'>(</span> <span class='varid'>listA</span> <span class='layout'>(</span> <span class='varid'>getChildren</span>-<a name="line-1603"></a> <span class='varop'>>>></span> -<a name="line-1604"></a> <span class='varid'>deep</span> <span class='varid'>isAttributeRef</span>-<a name="line-1605"></a> <span class='varop'>>>></span>-<a name="line-1606"></a> <span class='layout'>(</span><span class='varid'>getName</span> <span class='varop'>&&&</span> <span class='varid'>getChangesAttr</span> <span class='varop'>>>></span> <span class='varid'>arr2</span> <span class='layout'>(</span><span class='varop'>++</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-1607"></a> <span class='layout'>)</span>-<a name="line-1608"></a> <span class='varop'>>>></span>-<a name="line-1609"></a> <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>n</span> <span class='keyglyph'>-></span> <span class='varid'>formatStringListPatt</span> <span class='varid'>n</span> <span class='varop'>++</span> -<a name="line-1610"></a> <span class='str'>"Pattern not allowed as descendent(s)"</span> <span class='varop'>++</span>-<a name="line-1611"></a> <span class='str'>" of a attribute-Pattern"</span>-<a name="line-1612"></a> <span class='layout'>)</span>-<a name="line-1613"></a> <span class='layout'>)</span>-<a name="line-1614"></a> <span class='layout'>)</span>-<a name="line-1615"></a> <span class='layout'>)</span> -<a name="line-1616"></a> <span class='layout'>)</span>-<a name="line-1617"></a> <span class='varop'>`when`</span> -<a name="line-1618"></a> <span class='layout'>(</span> <span class='varid'>getChildren</span> <span class='varop'>>>></span> <span class='varid'>deep</span> <span class='varid'>isAttributeRef</span> <span class='layout'>)</span>-<a name="line-1619"></a> <span class='layout'>)</span><span class='layout'>,</span>-<a name="line-1620"></a>-<a name="line-1621"></a><span class='comment'>-- 7.1.2. oneOrMore pattern, the following paths are prohibited:</span>-<a name="line-1622"></a><span class='comment'>-- oneOrMore//(group | interleave)//attribute</span>-<a name="line-1623"></a> <span class='varid'>isRngOneOrMore</span> <span class='conop'>:-></span>-<a name="line-1624"></a> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>deep</span> <span class='varid'>isRngRelaxError</span>-<a name="line-1625"></a> <span class='varop'><+></span>-<a name="line-1626"></a> <span class='layout'>(</span> <span class='varid'>mkRelaxError</span> <span class='varop'>$<<</span> <span class='layout'>(</span><span class='varid'>getChangesAttr</span>-<a name="line-1627"></a> <span class='varop'>&&&</span>-<a name="line-1628"></a> <span class='layout'>(</span> <span class='varid'>listA</span> <span class='layout'>(</span> <span class='varid'>getChildren</span>-<a name="line-1629"></a> <span class='varop'>>>></span> -<a name="line-1630"></a> <span class='varid'>deep</span> <span class='varid'>isGroupInterleave</span>-<a name="line-1631"></a> <span class='varop'>>>></span>-<a name="line-1632"></a> <span class='layout'>(</span><span class='varid'>getName</span> <span class='varop'>&&&</span> <span class='varid'>getChangesAttr</span> <span class='varop'>>>></span> <span class='varid'>arr2</span> <span class='layout'>(</span><span class='varop'>++</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-1633"></a> <span class='layout'>)</span>-<a name="line-1634"></a> <span class='varop'>&&&</span>-<a name="line-1635"></a> <span class='varid'>getChangesAttr</span>-<a name="line-1636"></a> <span class='varop'>>>></span>-<a name="line-1637"></a> <span class='varid'>arr2</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='varid'>c</span> <span class='keyglyph'>-></span> <span class='layout'>(</span> <span class='varid'>formatStringListPatt</span> <span class='varid'>n</span> <span class='varop'>++</span> -<a name="line-1638"></a> <span class='str'>"Pattern not allowed as descendent(s) "</span> <span class='varop'>++</span>-<a name="line-1639"></a> <span class='str'>"of a oneOrMore-Pattern"</span> <span class='varop'>++</span>-<a name="line-1640"></a> <span class='layout'>(</span><span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>c</span> <span class='keyword'>then</span> <span class='str'>""</span> <span class='keyword'>else</span> <span class='str'>" "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='varop'>++</span> -<a name="line-1641"></a> <span class='str'>" followed by an attribute descendent"</span>-<a name="line-1642"></a> <span class='layout'>)</span>-<a name="line-1643"></a> <span class='layout'>)</span>-<a name="line-1644"></a> <span class='layout'>)</span>-<a name="line-1645"></a> <span class='layout'>)</span>-<a name="line-1646"></a> <span class='layout'>)</span> -<a name="line-1647"></a> <span class='layout'>)</span>-<a name="line-1648"></a> <span class='varop'>`when`</span> -<a name="line-1649"></a> <span class='layout'>(</span> <span class='varid'>getChildren</span> <span class='varop'>>>></span> <span class='varid'>deep</span> <span class='varid'>isGroupInterleave</span>-<a name="line-1650"></a> <span class='varop'>>>></span> -<a name="line-1651"></a> <span class='varid'>getChildren</span> <span class='varop'>>>></span> <span class='varid'>deep</span> <span class='varid'>isRngAttribute</span>-<a name="line-1652"></a> <span class='layout'>)</span>-<a name="line-1653"></a> <span class='layout'>)</span><span class='layout'>,</span>-<a name="line-1654"></a>-<a name="line-1655"></a><span class='comment'>-- 7.1.3. list pattern, the following paths are prohibited:</span>-<a name="line-1656"></a><span class='comment'>-- list//( list | ref | attribute | text | interleave)</span>-<a name="line-1657"></a> <span class='varid'>isRngList</span> <span class='conop'>:-></span> -<a name="line-1658"></a> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>deep</span> <span class='varid'>isRngRelaxError</span>-<a name="line-1659"></a> <span class='varop'><+></span>-<a name="line-1660"></a> <span class='layout'>(</span> <span class='varid'>mkRelaxError</span> <span class='varop'>$<<</span> <span class='layout'>(</span><span class='varid'>getChangesAttr</span>-<a name="line-1661"></a> <span class='varop'>&&&</span>-<a name="line-1662"></a> <span class='layout'>(</span> <span class='varid'>listA</span> <span class='layout'>(</span> <span class='varid'>getChildren</span>-<a name="line-1663"></a> <span class='varop'>>>></span> -<a name="line-1664"></a> <span class='varid'>deep</span> <span class='varid'>isAttributeRefTextListInterleave</span>-<a name="line-1665"></a> <span class='varop'>>>></span>-<a name="line-1666"></a> <span class='layout'>(</span><span class='varid'>getName</span> <span class='varop'>&&&</span> <span class='varid'>getChangesAttr</span> <span class='varop'>>>></span> <span class='varid'>arr2</span> <span class='layout'>(</span><span class='varop'>++</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-1667"></a> <span class='layout'>)</span>-<a name="line-1668"></a> <span class='varop'>>>></span> -<a name="line-1669"></a> <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>n</span> <span class='keyglyph'>-></span> <span class='varid'>formatStringListPatt</span> <span class='varid'>n</span> <span class='varop'>++</span> -<a name="line-1670"></a> <span class='str'>"Pattern not allowed as descendent(s) of a list-Pattern"</span><span class='layout'>)</span>-<a name="line-1671"></a> <span class='layout'>)</span>-<a name="line-1672"></a> <span class='layout'>)</span>-<a name="line-1673"></a> <span class='layout'>)</span> -<a name="line-1674"></a> <span class='layout'>)</span>-<a name="line-1675"></a> <span class='varop'>`when`</span> -<a name="line-1676"></a> <span class='layout'>(</span> <span class='varid'>getChildren</span>-<a name="line-1677"></a> <span class='varop'>>>></span>-<a name="line-1678"></a> <span class='varid'>deep</span> <span class='varid'>isAttributeRefTextListInterleave</span>-<a name="line-1679"></a> <span class='layout'>)</span>-<a name="line-1680"></a> <span class='layout'>)</span><span class='layout'>,</span> -<a name="line-1681"></a>-<a name="line-1682"></a><span class='comment'>-- 7.1.4. except in data pattern, the following paths are prohibited:</span>-<a name="line-1683"></a><span class='comment'>-- data/except//(attribute | ref | text | list | group | interleave | oneOrMore | empty)</span>-<a name="line-1684"></a> <span class='varid'>isRngData</span> <span class='conop'>:-></span> -<a name="line-1685"></a> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>deep</span> <span class='varid'>isRngRelaxError</span> -<a name="line-1686"></a> <span class='varop'><+></span>-<a name="line-1687"></a> <span class='layout'>(</span> <span class='varid'>mkRelaxError</span> <span class='varop'>$<<</span> <span class='layout'>(</span><span class='varid'>getChangesAttr</span>-<a name="line-1688"></a> <span class='varop'>&&&</span>-<a name="line-1689"></a> <span class='layout'>(</span> <span class='varid'>listA</span> <span class='layout'>(</span><span class='varid'>getChildren</span>-<a name="line-1690"></a> <span class='varop'>>>></span> -<a name="line-1691"></a> <span class='varid'>deep</span> <span class='varid'>isAttributeRefTextListGroupInterleaveOneOrMoreEmpty</span>-<a name="line-1692"></a> <span class='varop'>>>></span>-<a name="line-1693"></a> <span class='layout'>(</span><span class='varid'>getName</span> <span class='varop'>&&&</span> <span class='varid'>getChangesAttr</span> <span class='varop'>>>></span> <span class='varid'>arr2</span> <span class='layout'>(</span><span class='varop'>++</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-1694"></a> <span class='layout'>)</span>-<a name="line-1695"></a> <span class='varop'>>>></span>-<a name="line-1696"></a> <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>n</span> <span class='keyglyph'>-></span> <span class='varid'>formatStringListPatt</span> <span class='varid'>n</span> <span class='varop'>++</span> -<a name="line-1697"></a> <span class='str'>"Pattern not allowed as descendent(s) of a data/except-Pattern"</span><span class='layout'>)</span>-<a name="line-1698"></a> <span class='layout'>)</span>-<a name="line-1699"></a> <span class='layout'>)</span>-<a name="line-1700"></a> <span class='layout'>)</span> -<a name="line-1701"></a> <span class='layout'>)</span>-<a name="line-1702"></a> <span class='varop'>`when`</span> -<a name="line-1703"></a> <span class='layout'>(</span> <span class='varid'>getChildren</span>-<a name="line-1704"></a> <span class='varop'>>>></span>-<a name="line-1705"></a> <span class='varid'>isRngExcept</span>-<a name="line-1706"></a> <span class='varop'>>>></span> -<a name="line-1707"></a> <span class='varid'>deep</span> <span class='varid'>isAttributeRefTextListGroupInterleaveOneOrMoreEmpty</span>-<a name="line-1708"></a> <span class='layout'>)</span>-<a name="line-1709"></a> <span class='layout'>)</span><span class='layout'>,</span>-<a name="line-1710"></a>-<a name="line-1711"></a><span class='comment'>-- 7.1.5. start element, the following paths are prohibited:</span>-<a name="line-1712"></a><span class='comment'>-- start//(attribute | data | value | text | list | group | interleave | oneOrMore | empty)</span>-<a name="line-1713"></a> <span class='varid'>isRngStart</span> <span class='conop'>:-></span> -<a name="line-1714"></a> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>deep</span> <span class='varid'>isRngRelaxError</span>-<a name="line-1715"></a> <span class='varop'><+></span>-<a name="line-1716"></a> <span class='layout'>(</span> <span class='varid'>mkRelaxError</span> <span class='varop'>$<<</span> <span class='layout'>(</span><span class='varid'>getChangesAttr</span>-<a name="line-1717"></a> <span class='varop'>&&&</span>-<a name="line-1718"></a> <span class='layout'>(</span> <span class='varid'>listA</span> <span class='layout'>(</span><span class='varid'>getChildren</span>-<a name="line-1719"></a> <span class='varop'>>>></span>-<a name="line-1720"></a> <span class='varid'>deep</span> <span class='layout'>(</span><span class='varid'>checkElemName</span> <span class='keyglyph'>[</span> <span class='str'>"attribute"</span><span class='layout'>,</span> <span class='str'>"data"</span><span class='layout'>,</span> <span class='str'>"value"</span><span class='layout'>,</span> <span class='str'>"text"</span><span class='layout'>,</span> <span class='str'>"list"</span><span class='layout'>,</span> -<a name="line-1721"></a> <span class='str'>"group"</span><span class='layout'>,</span> <span class='str'>"interleave"</span><span class='layout'>,</span> <span class='str'>"oneOrMore"</span><span class='layout'>,</span> <span class='str'>"empty"</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-1722"></a> <span class='varop'>>>></span>-<a name="line-1723"></a> <span class='layout'>(</span><span class='varid'>getName</span> <span class='varop'>&&&</span> <span class='varid'>getChangesAttr</span> <span class='varop'>>>></span> <span class='varid'>arr2</span> <span class='layout'>(</span><span class='varop'>++</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-1724"></a> <span class='layout'>)</span>-<a name="line-1725"></a> <span class='varop'>>>></span> -<a name="line-1726"></a> <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>n</span> <span class='keyglyph'>-></span> <span class='varid'>formatStringListPatt</span> <span class='varid'>n</span> <span class='varop'>++</span> -<a name="line-1727"></a> <span class='str'>"Pattern not allowed as descendent(s) of a start-Pattern"</span><span class='layout'>)</span>-<a name="line-1728"></a> <span class='layout'>)</span>-<a name="line-1729"></a> <span class='layout'>)</span>-<a name="line-1730"></a> <span class='layout'>)</span> -<a name="line-1731"></a> <span class='layout'>)</span>-<a name="line-1732"></a> <span class='varop'>`when`</span> -<a name="line-1733"></a> <span class='layout'>(</span> <span class='varid'>getChildren</span>-<a name="line-1734"></a> <span class='varop'>>>></span>-<a name="line-1735"></a> <span class='varid'>deep</span> <span class='layout'>(</span><span class='varid'>checkElemName</span> <span class='keyglyph'>[</span> <span class='str'>"attribute"</span><span class='layout'>,</span> <span class='str'>"data"</span><span class='layout'>,</span> <span class='str'>"value"</span><span class='layout'>,</span> <span class='str'>"text"</span><span class='layout'>,</span> <span class='str'>"list"</span><span class='layout'>,</span> -<a name="line-1736"></a> <span class='str'>"group"</span><span class='layout'>,</span> <span class='str'>"interleave"</span><span class='layout'>,</span> <span class='str'>"oneOrMore"</span><span class='layout'>,</span> <span class='str'>"empty"</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-1737"></a> <span class='layout'>)</span> -<a name="line-1738"></a> <span class='layout'>)</span><span class='layout'>,</span>-<a name="line-1739"></a> -<a name="line-1740"></a> <span class='varid'>this</span> <span class='conop'>:-></span> <span class='varid'>this</span>-<a name="line-1741"></a> <span class='keyglyph'>]</span>-<a name="line-1742"></a> <span class='layout'>)</span> <span class='varop'>`when`</span> <span class='varid'>collectErrors</span>-<a name="line-1743"></a>-<a name="line-1744"></a> -<a name="line-1745"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-1746"></a>-<a name="line-1747"></a>-<a name="line-1748"></a><a name="restrictionsStep3"></a><span class='definition'>restrictionsStep3</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-1749"></a><span class='definition'>restrictionsStep3</span>-<a name="line-1750"></a> <span class='keyglyph'>=</span> <span class='varid'>processTopDown</span>-<a name="line-1751"></a> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>deep</span> <span class='varid'>isRngRelaxError</span>-<a name="line-1752"></a> <span class='varop'><+></span>-<a name="line-1753"></a> <span class='layout'>(</span> <span class='varid'>mkRelaxError</span> <span class='str'>""</span> <span class='varop'>$<</span> -<a name="line-1754"></a> <span class='layout'>(</span> <span class='comment'>-- getRngAttrName</span>-<a name="line-1755"></a> <span class='layout'>(</span> <span class='varid'>getChildren</span> <span class='varop'>>>></span> <span class='varid'>isRngName</span> <span class='varop'>>>></span> <span class='varid'>getChildren</span> <span class='varop'>>>></span> <span class='varid'>getText</span> <span class='layout'>)</span>-<a name="line-1756"></a> <span class='varop'>>>></span> -<a name="line-1757"></a> <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='keyglyph'>-></span> <span class='layout'>(</span> <span class='str'>"Content of element "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>n</span> <span class='varop'>++</span> <span class='str'>" contains a pattern that can match "</span> <span class='varop'>++</span>-<a name="line-1758"></a> <span class='str'>"a child and a pattern that matches a single string"</span>-<a name="line-1759"></a> <span class='layout'>)</span>-<a name="line-1760"></a> <span class='layout'>)</span>-<a name="line-1761"></a> <span class='layout'>)</span>-<a name="line-1762"></a> <span class='layout'>)</span>-<a name="line-1763"></a> <span class='layout'>)</span>-<a name="line-1764"></a> <span class='varop'>`when`</span>-<a name="line-1765"></a> <span class='layout'>(</span> <span class='varid'>isRngElement</span>-<a name="line-1766"></a> <span class='varop'>>>></span>-<a name="line-1767"></a> <span class='layout'>(</span> <span class='varid'>getChildren</span> <span class='varop'>>>.</span> <span class='layout'>(</span><span class='varid'>take</span> <span class='num'>1</span> <span class='varop'>.</span> <span class='varid'>reverse</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-1768"></a> <span class='varop'>>>></span>-<a name="line-1769"></a> <span class='varid'>getContentType</span> <span class='varop'>>>></span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='conid'>CTNone</span><span class='layout'>)</span>-<a name="line-1770"></a> <span class='layout'>)</span>-<a name="line-1771"></a> <span class='layout'>)</span> <span class='varop'>`when`</span> <span class='varid'>collectErrors</span>-<a name="line-1772"></a>-<a name="line-1773"></a> -<a name="line-1774"></a> -<a name="line-1775"></a><a name="getContentType"></a><span class='definition'>getContentType</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>ContentType</span>-<a name="line-1776"></a><span class='definition'>getContentType</span>-<a name="line-1777"></a> <span class='keyglyph'>=</span> <span class='varid'>choiceA</span>-<a name="line-1778"></a> <span class='keyglyph'>[</span> <span class='varid'>isRngValue</span> <span class='conop'>:-></span> <span class='layout'>(</span><span class='varid'>constA</span> <span class='conid'>CTSimple</span><span class='layout'>)</span>-<a name="line-1779"></a> <span class='layout'>,</span> <span class='varid'>isRngData</span> <span class='conop'>:-></span> <span class='varid'>processData</span>-<a name="line-1780"></a> <span class='layout'>,</span> <span class='varid'>isRngList</span> <span class='conop'>:-></span> <span class='layout'>(</span><span class='varid'>constA</span> <span class='conid'>CTSimple</span><span class='layout'>)</span>-<a name="line-1781"></a> <span class='layout'>,</span> <span class='varid'>isRngText</span> <span class='conop'>:-></span> <span class='layout'>(</span><span class='varid'>constA</span> <span class='conid'>CTComplex</span><span class='layout'>)</span>-<a name="line-1782"></a> <span class='layout'>,</span> <span class='varid'>isRngRef</span> <span class='conop'>:-></span> <span class='layout'>(</span><span class='varid'>constA</span> <span class='conid'>CTComplex</span><span class='layout'>)</span>-<a name="line-1783"></a> <span class='layout'>,</span> <span class='varid'>isRngEmpty</span> <span class='conop'>:-></span> <span class='layout'>(</span><span class='varid'>constA</span> <span class='conid'>CTEmpty</span><span class='layout'>)</span>-<a name="line-1784"></a> <span class='layout'>,</span> <span class='varid'>isRngAttribute</span> <span class='conop'>:-></span> <span class='varid'>processAttribute</span>-<a name="line-1785"></a> <span class='layout'>,</span> <span class='varid'>isRngGroup</span> <span class='conop'>:-></span> <span class='varid'>processGroup</span>-<a name="line-1786"></a> <span class='layout'>,</span> <span class='varid'>isRngInterleave</span> <span class='conop'>:-></span> <span class='varid'>processInterleave</span>-<a name="line-1787"></a> <span class='layout'>,</span> <span class='varid'>isRngOneOrMore</span> <span class='conop'>:-></span> <span class='varid'>processOneOrMore</span>-<a name="line-1788"></a> <span class='layout'>,</span> <span class='varid'>isRngChoice</span> <span class='conop'>:-></span> <span class='varid'>processChoice</span>-<a name="line-1789"></a> <span class='keyglyph'>]</span>-<a name="line-1790"></a> <span class='keyword'>where</span>-<a name="line-1791"></a> <span class='varid'>processData</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>ContentType</span>-<a name="line-1792"></a> <span class='varid'>processData</span>-<a name="line-1793"></a> <span class='keyglyph'>=</span> <span class='varid'>ifA</span> <span class='layout'>(</span><span class='varid'>neg</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>>>></span> <span class='varid'>isRngExcept</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-1794"></a> <span class='layout'>(</span><span class='varid'>constA</span> <span class='conid'>CTSimple</span><span class='layout'>)</span>-<a name="line-1795"></a> <span class='layout'>(</span> <span class='varid'>getChildren</span>-<a name="line-1796"></a> <span class='varop'>>>></span>-<a name="line-1797"></a> <span class='varid'>isRngExcept</span>-<a name="line-1798"></a> <span class='varop'>>>></span>-<a name="line-1799"></a> <span class='varid'>getChildren</span>-<a name="line-1800"></a> <span class='varop'>>>></span>-<a name="line-1801"></a> <span class='varid'>getContentType</span>-<a name="line-1802"></a> <span class='varop'>>>></span>-<a name="line-1803"></a> <span class='varid'>ifP</span> <span class='layout'>(</span><span class='varop'>/=</span> <span class='conid'>CTNone</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>constA</span> <span class='conid'>CTSimple</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>constA</span> <span class='conid'>CTNone</span><span class='layout'>)</span>-<a name="line-1804"></a> <span class='layout'>)</span>-<a name="line-1805"></a> <span class='varid'>processAttribute</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>ContentType</span>-<a name="line-1806"></a> <span class='varid'>processAttribute</span>-<a name="line-1807"></a> <span class='keyglyph'>=</span> <span class='varid'>ifA</span> <span class='layout'>(</span> <span class='varid'>lastChild</span>-<a name="line-1808"></a> <span class='varop'>>>></span>-<a name="line-1809"></a> <span class='varid'>getContentType</span>-<a name="line-1810"></a> <span class='varop'>>>></span>-<a name="line-1811"></a> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varop'>/=</span> <span class='conid'>CTNone</span><span class='layout'>)</span>-<a name="line-1812"></a> <span class='layout'>)</span>-<a name="line-1813"></a> <span class='layout'>(</span><span class='varid'>constA</span> <span class='conid'>CTEmpty</span><span class='layout'>)</span>-<a name="line-1814"></a> <span class='layout'>(</span><span class='varid'>constA</span> <span class='conid'>CTNone</span><span class='layout'>)</span>-<a name="line-1815"></a> -<a name="line-1816"></a> <span class='varid'>processGroup</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>ContentType</span>-<a name="line-1817"></a> <span class='varid'>processGroup</span>-<a name="line-1818"></a> <span class='keyglyph'>=</span> <span class='varid'>get2ContentTypes</span>-<a name="line-1819"></a> <span class='varop'>>>></span>-<a name="line-1820"></a> <span class='varid'>arr2</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>a</span> <span class='varid'>b</span> <span class='keyglyph'>-></span> <span class='keyword'>if</span> <span class='varid'>isGroupable</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='keyword'>then</span> <span class='varid'>max</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='keyword'>else</span> <span class='conid'>CTNone</span><span class='layout'>)</span>-<a name="line-1821"></a> -<a name="line-1822"></a> <span class='varid'>processInterleave</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>ContentType</span>-<a name="line-1823"></a> <span class='varid'>processInterleave</span>-<a name="line-1824"></a> <span class='keyglyph'>=</span> <span class='varid'>get2ContentTypes</span>-<a name="line-1825"></a> <span class='varop'>>>></span>-<a name="line-1826"></a> <span class='varid'>arr2</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>a</span> <span class='varid'>b</span> <span class='keyglyph'>-></span> <span class='keyword'>if</span> <span class='varid'>isGroupable</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='keyword'>then</span> <span class='varid'>max</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='keyword'>else</span> <span class='conid'>CTNone</span><span class='layout'>)</span>-<a name="line-1827"></a> -<a name="line-1828"></a> <span class='varid'>processOneOrMore</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>ContentType</span>-<a name="line-1829"></a> <span class='varid'>processOneOrMore</span>-<a name="line-1830"></a> <span class='keyglyph'>=</span> <span class='varid'>ifA</span> <span class='layout'>(</span> <span class='varid'>getChildren</span>-<a name="line-1831"></a> <span class='varop'>>>></span>-<a name="line-1832"></a> <span class='varid'>getContentType</span> <span class='varop'>>>></span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varop'>/=</span> <span class='conid'>CTNone</span><span class='layout'>)</span>-<a name="line-1833"></a> <span class='varop'>>>></span>-<a name="line-1834"></a> <span class='varid'>isA</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>t</span> <span class='keyglyph'>-></span> <span class='varid'>isGroupable</span> <span class='varid'>t</span> <span class='varid'>t</span><span class='layout'>)</span>-<a name="line-1835"></a> <span class='layout'>)</span>-<a name="line-1836"></a> <span class='layout'>(</span> <span class='varid'>getChildren</span> <span class='varop'>>>></span> <span class='varid'>getContentType</span> <span class='layout'>)</span>-<a name="line-1837"></a> <span class='layout'>(</span> <span class='varid'>constA</span> <span class='conid'>CTNone</span> <span class='layout'>)</span>-<a name="line-1838"></a> -<a name="line-1839"></a> <span class='varid'>processChoice</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>ContentType</span>-<a name="line-1840"></a> <span class='varid'>processChoice</span>-<a name="line-1841"></a> <span class='keyglyph'>=</span> <span class='varid'>get2ContentTypes</span>-<a name="line-1842"></a> <span class='varop'>>>></span> -<a name="line-1843"></a> <span class='varid'>arr2</span> <span class='varid'>max</span>-<a name="line-1844"></a>-<a name="line-1845"></a> <span class='varid'>isGroupable</span> <span class='keyglyph'>::</span> <span class='conid'>ContentType</span> <span class='keyglyph'>-></span> <span class='conid'>ContentType</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-1846"></a> <span class='varid'>isGroupable</span> <span class='conid'>CTEmpty</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-1847"></a> <span class='varid'>isGroupable</span> <span class='keyword'>_</span> <span class='conid'>CTEmpty</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-1848"></a> <span class='varid'>isGroupable</span> <span class='conid'>CTComplex</span> <span class='conid'>CTComplex</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-1849"></a> <span class='varid'>isGroupable</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>False</span> -<a name="line-1850"></a>-<a name="line-1851"></a>-<a name="line-1852"></a><a name="checkPattern"></a><span class='definition'>checkPattern</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='layout'>(</span><span class='conid'>XmlTree</span><span class='layout'>,</span> <span class='layout'>(</span><span class='keyglyph'>[</span><span class='conid'>NameClass</span><span class='keyglyph'>]</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='conid'>NameClass</span><span class='keyglyph'>]</span><span class='layout'>)</span><span class='layout'>)</span> <span class='conid'>XmlTree</span>-<a name="line-1853"></a><span class='definition'>checkPattern</span>-<a name="line-1854"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='layout'>(</span><span class='keyword'>_</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>b</span><span class='layout'>)</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>isIn</span> <span class='varid'>a</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='varop'>`guardsP`</span> <span class='layout'>(</span><span class='varid'>arr</span> <span class='varid'>fst</span><span class='layout'>)</span>-<a name="line-1855"></a> <span class='keyword'>where</span>-<a name="line-1856"></a> <span class='varid'>isIn</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>NameClass</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>NameClass</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-1857"></a> <span class='varid'>isIn</span> <span class='keyword'>_</span> <span class='conid'>[]</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-1858"></a> <span class='varid'>isIn</span> <span class='conid'>[]</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-1859"></a> <span class='varid'>isIn</span> <span class='layout'>(</span><span class='varid'>x</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span> <span class='varid'>ys</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>any</span> <span class='layout'>(</span><span class='varid'>overlap</span> <span class='varid'>x</span><span class='layout'>)</span> <span class='varid'>ys</span><span class='layout'>)</span> <span class='varop'>||</span> <span class='varid'>isIn</span> <span class='varid'>xs</span> <span class='varid'>ys</span>-<a name="line-1860"></a>-<a name="line-1861"></a>-<a name="line-1862"></a><a name="occur"></a><span class='definition'>occur</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-1863"></a><span class='definition'>occur</span> <span class='varid'>name</span> <span class='varid'>fct</span>-<a name="line-1864"></a> <span class='keyglyph'>=</span> <span class='varid'>choiceA</span>-<a name="line-1865"></a> <span class='keyglyph'>[</span> <span class='layout'>(</span> <span class='varid'>isElem</span> <span class='varop'>>>></span> <span class='varid'>hasRngName</span> <span class='varid'>name</span> <span class='layout'>)</span>-<a name="line-1866"></a> <span class='conop'>:-></span>-<a name="line-1867"></a> <span class='varid'>fct</span>-<a name="line-1868"></a> <span class='layout'>,</span> <span class='varid'>isChoiceGroupInterleaveOneOrMore</span>-<a name="line-1869"></a> <span class='conop'>:-></span>-<a name="line-1870"></a> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>>>></span> <span class='varid'>occur</span> <span class='varid'>name</span> <span class='varid'>fct</span><span class='layout'>)</span>-<a name="line-1871"></a> <span class='keyglyph'>]</span>-<a name="line-1872"></a>-<a name="line-1873"></a><a name="get2ContentTypes"></a><span class='definition'>get2ContentTypes</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='layout'>(</span><span class='conid'>ContentType</span><span class='layout'>,</span> <span class='conid'>ContentType</span><span class='layout'>)</span>-<a name="line-1874"></a><span class='definition'>get2ContentTypes</span>-<a name="line-1875"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>firstChild</span> <span class='varop'>>>></span> <span class='varid'>getContentType</span> <span class='layout'>)</span>-<a name="line-1876"></a> <span class='varop'>&&&</span>-<a name="line-1877"></a> <span class='layout'>(</span> <span class='varid'>lastChild</span> <span class='varop'>>>></span> <span class='varid'>getContentType</span> <span class='layout'>)</span>-<a name="line-1878"></a> <span class='layout'>)</span>-<a name="line-1879"></a>-<a name="line-1880"></a><span class='comment'>-- ------------------------------------------------------------ </span>-<a name="line-1881"></a>-<a name="line-1882"></a>-<a name="line-1883"></a><span class='comment'>-- Duplicate attributes are not allowed. -> fertig</span>-<a name="line-1884"></a><span class='comment'>-- Attributes using infinite name classes must be repeated; an attribute element that </span>-<a name="line-1885"></a><span class='comment'>-- has an anyName or nsName descendant element must have a oneOrMore ancestor element. -> fertig</span>-<a name="line-1886"></a>-<a name="line-1887"></a><span class='comment'>-- berechnet alle define-Namen (fuer ref-Pattern) und Nameclasses der element-Pattern</span>-<a name="line-1888"></a>-<a name="line-1889"></a><a name="restrictionsStep4"></a><span class='definition'>restrictionsStep4</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> -<a name="line-1890"></a><span class='definition'>restrictionsStep4</span>-<a name="line-1891"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>restrictionsStep4'</span> <span class='varop'>$<</span>-<a name="line-1892"></a> <span class='varid'>listA</span> <span class='layout'>(</span> <span class='varid'>deep</span> <span class='varid'>isRngDefine</span> <span class='comment'>-- get all defines</span>-<a name="line-1893"></a> <span class='varop'>>>></span>-<a name="line-1894"></a> <span class='layout'>(</span> <span class='varid'>getRngAttrName</span> <span class='comment'>-- get define name</span>-<a name="line-1895"></a> <span class='varop'>&&&</span> -<a name="line-1896"></a> <span class='layout'>(</span> <span class='varid'>single</span> <span class='layout'>(</span> <span class='varid'>getChildren</span>-<a name="line-1897"></a> <span class='varop'>>>></span>-<a name="line-1898"></a> <span class='varid'>getChildren</span>-<a name="line-1899"></a> <span class='varop'>>>></span> -<a name="line-1900"></a> <span class='varid'>fromLA</span> <span class='varid'>createNameClass</span> <span class='comment'>-- compute the name class from 1. grandchild</span>-<a name="line-1901"></a> <span class='layout'>)</span>-<a name="line-1902"></a> <span class='varop'>`orElse`</span>-<a name="line-1903"></a> <span class='layout'>(</span><span class='varid'>constA</span> <span class='conid'>AnyName</span><span class='layout'>)</span>-<a name="line-1904"></a> <span class='layout'>)</span>-<a name="line-1905"></a> <span class='layout'>)</span>-<a name="line-1906"></a> <span class='layout'>)</span>-<a name="line-1907"></a> <span class='layout'>)</span> <span class='varop'>`when`</span> <span class='varid'>collectErrors</span>-<a name="line-1908"></a>-<a name="line-1909"></a><a name="restrictionsStep4'"></a><span class='definition'>restrictionsStep4'</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>NameClass</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> -<a name="line-1910"></a><span class='definition'>restrictionsStep4'</span> <span class='varid'>nc</span> <span class='keyglyph'>=</span>-<a name="line-1911"></a> <span class='varid'>processTopDown</span> <span class='layout'>(</span>-<a name="line-1912"></a> <span class='layout'>(</span> -<a name="line-1913"></a> <span class='layout'>(</span> <span class='varid'>deep</span> <span class='varid'>isRngRelaxError</span>-<a name="line-1914"></a> <span class='varop'><+></span>-<a name="line-1915"></a> <span class='layout'>(</span> <span class='varid'>mkRelaxError</span> <span class='str'>""</span> <span class='varop'>$<</span> -<a name="line-1916"></a> <span class='layout'>(</span> <span class='varid'>getRngAttrName</span>-<a name="line-1917"></a> <span class='varop'>>>></span>-<a name="line-1918"></a> <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='keyglyph'>-></span> <span class='layout'>(</span> <span class='str'>"Both attribute-pattern occuring in an "</span> <span class='varop'>++</span> -<a name="line-1919"></a> <span class='varid'>show</span> <span class='varid'>n</span> <span class='varop'>++</span> <span class='str'>" belong to the same name-class"</span>-<a name="line-1920"></a> <span class='layout'>)</span>-<a name="line-1921"></a> <span class='layout'>)</span>-<a name="line-1922"></a> <span class='layout'>)</span>-<a name="line-1923"></a> <span class='layout'>)</span>-<a name="line-1924"></a> <span class='layout'>)</span> -<a name="line-1925"></a> <span class='varop'>`when`</span> -<a name="line-1926"></a> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>isRngGroup</span> <span class='varop'>`orElse`</span> <span class='varid'>isRngInterleave</span><span class='layout'>)</span>-<a name="line-1927"></a> <span class='varop'>>>></span>-<a name="line-1928"></a> <span class='layout'>(</span> <span class='varid'>getChildren</span>-<a name="line-1929"></a> <span class='varop'>&&&</span> -<a name="line-1930"></a> <span class='layout'>(</span> <span class='varid'>firstChild</span>-<a name="line-1931"></a> <span class='varop'>>>></span> -<a name="line-1932"></a> <span class='varid'>listA</span> <span class='layout'>(</span> <span class='varid'>occur</span> <span class='str'>"attribute"</span> <span class='layout'>(</span><span class='varid'>single</span> <span class='varid'>getChildren</span><span class='layout'>)</span>-<a name="line-1933"></a> <span class='varop'>>>></span> -<a name="line-1934"></a> <span class='varid'>fromLA</span> <span class='varid'>createNameClass</span>-<a name="line-1935"></a> <span class='layout'>)</span>-<a name="line-1936"></a> <span class='layout'>)</span> -<a name="line-1937"></a> <span class='varop'>&&&</span>-<a name="line-1938"></a> <span class='layout'>(</span> <span class='varid'>lastChild</span>-<a name="line-1939"></a> <span class='varop'>>>></span> -<a name="line-1940"></a> <span class='varid'>listA</span> <span class='layout'>(</span> <span class='varid'>occur</span> <span class='str'>"attribute"</span> <span class='layout'>(</span><span class='varid'>single</span> <span class='varid'>getChildren</span><span class='layout'>)</span>-<a name="line-1941"></a> <span class='varop'>>>></span> -<a name="line-1942"></a> <span class='varid'>fromLA</span> <span class='varid'>createNameClass</span>-<a name="line-1943"></a> <span class='layout'>)</span>-<a name="line-1944"></a> <span class='layout'>)</span>-<a name="line-1945"></a> <span class='layout'>)</span> -<a name="line-1946"></a> <span class='varop'>>>></span> <span class='varid'>checkPattern</span>-<a name="line-1947"></a> <span class='layout'>)</span> -<a name="line-1948"></a> <span class='layout'>)</span> -<a name="line-1949"></a> <span class='varop'>>>></span>-<a name="line-1950"></a> <span class='layout'>(</span> -<a name="line-1951"></a> <span class='layout'>(</span> <span class='varid'>deep</span> <span class='varid'>isRngRelaxError</span>-<a name="line-1952"></a> <span class='varop'><+></span>-<a name="line-1953"></a> <span class='layout'>(</span> <span class='varid'>mkRelaxError</span> <span class='str'>""</span>-<a name="line-1954"></a> <span class='layout'>(</span> <span class='str'>"An attribute that has an anyName or nsName descendant element "</span> <span class='varop'>++</span>-<a name="line-1955"></a> <span class='str'>"must have a oneOrMore ancestor element"</span>-<a name="line-1956"></a> <span class='layout'>)</span>-<a name="line-1957"></a> <span class='layout'>)</span>-<a name="line-1958"></a> <span class='layout'>)</span>-<a name="line-1959"></a> <span class='varop'>`when`</span>-<a name="line-1960"></a> <span class='layout'>(</span><span class='varid'>isRngElement</span> <span class='varop'>>>></span> <span class='varid'>checkInfiniteAttribute</span><span class='layout'>)</span>-<a name="line-1961"></a> <span class='layout'>)</span>-<a name="line-1962"></a> <span class='varop'>>>></span>-<a name="line-1963"></a> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>deep</span> <span class='varid'>isRngRelaxError</span>-<a name="line-1964"></a> <span class='varop'><+></span>-<a name="line-1965"></a> <span class='layout'>(</span> <span class='varid'>mkRelaxError</span> <span class='str'>""</span>-<a name="line-1966"></a> <span class='layout'>(</span> <span class='str'>"Both element-pattern occuring in an interleave "</span> <span class='varop'>++</span>-<a name="line-1967"></a> <span class='str'>"belong to the same name-class"</span>-<a name="line-1968"></a> <span class='layout'>)</span>-<a name="line-1969"></a> <span class='layout'>)</span>-<a name="line-1970"></a> <span class='layout'>)</span>-<a name="line-1971"></a> <span class='varop'>`when`</span> -<a name="line-1972"></a> <span class='layout'>(</span> <span class='varid'>isRngInterleave</span>-<a name="line-1973"></a> <span class='varop'>>>></span> -<a name="line-1974"></a> <span class='layout'>(</span> <span class='varid'>getChildren</span>-<a name="line-1975"></a> <span class='varop'>&&&</span>-<a name="line-1976"></a> <span class='layout'>(</span><span class='varid'>firstChild</span> <span class='varop'>>>></span> <span class='varid'>listA</span> <span class='layout'>(</span><span class='varid'>occur</span> <span class='str'>"ref"</span> <span class='varid'>this</span> <span class='varop'>>>></span> <span class='varid'>getRngAttrName</span><span class='layout'>)</span><span class='layout'>)</span> -<a name="line-1977"></a> <span class='varop'>&&&</span>-<a name="line-1978"></a> <span class='layout'>(</span><span class='varid'>lastChild</span> <span class='varop'>>>></span> <span class='varid'>listA</span> <span class='layout'>(</span><span class='varid'>occur</span> <span class='str'>"ref"</span> <span class='varid'>this</span> <span class='varop'>>>></span> <span class='varid'>getRngAttrName</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-1979"></a> <span class='layout'>)</span>-<a name="line-1980"></a> <span class='varop'>>>></span>-<a name="line-1981"></a> <span class='varid'>checkNames</span>-<a name="line-1982"></a> <span class='layout'>)</span>-<a name="line-1983"></a> <span class='layout'>)</span>-<a name="line-1984"></a> <span class='varop'>>>></span> -<a name="line-1985"></a> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>deep</span> <span class='varid'>isRngRelaxError</span>-<a name="line-1986"></a> <span class='varop'><+></span> -<a name="line-1987"></a> <span class='layout'>(</span> <span class='varid'>mkRelaxError</span> <span class='str'>""</span> <span class='str'>"A text pattern must not occur in both children of an interleave"</span> <span class='layout'>)</span>-<a name="line-1988"></a> <span class='layout'>)</span>-<a name="line-1989"></a> <span class='varop'>`when`</span> -<a name="line-1990"></a> <span class='layout'>(</span><span class='varid'>isRngInterleave</span> <span class='varop'>>>></span> <span class='varid'>checkText</span><span class='layout'>)</span>-<a name="line-1991"></a> <span class='layout'>)</span>-<a name="line-1992"></a> <span class='layout'>)</span>-<a name="line-1993"></a> <span class='keyword'>where</span>-<a name="line-1994"></a> <span class='varid'>checkInfiniteAttribute</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-1995"></a> <span class='varid'>checkInfiniteAttribute</span>-<a name="line-1996"></a> <span class='keyglyph'>=</span> <span class='varid'>getChildren</span>-<a name="line-1997"></a> <span class='varop'>>>></span>-<a name="line-1998"></a> <span class='varid'>choiceA</span>-<a name="line-1999"></a> <span class='keyglyph'>[</span> <span class='varid'>isRngOneOrMore</span> <span class='conop'>:-></span> <span class='varid'>none</span>-<a name="line-2000"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>isRngAttribute</span>-<a name="line-2001"></a> <span class='varop'>>>></span>-<a name="line-2002"></a> <span class='varid'>deep</span> <span class='layout'>(</span><span class='varid'>isRngAnyName</span> <span class='varop'>`orElse`</span> <span class='varid'>isRngNsName</span><span class='layout'>)</span>-<a name="line-2003"></a> <span class='layout'>)</span> <span class='conop'>:-></span> <span class='varid'>this</span>-<a name="line-2004"></a> <span class='layout'>,</span> <span class='varid'>this</span> <span class='conop'>:-></span> <span class='varid'>checkInfiniteAttribute</span>-<a name="line-2005"></a> <span class='keyglyph'>]</span>-<a name="line-2006"></a>-<a name="line-2007"></a> <span class='varid'>checkNames</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='layout'>(</span><span class='conid'>XmlTree</span><span class='layout'>,</span> <span class='layout'>(</span><span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span><span class='layout'>)</span><span class='layout'>)</span> <span class='conid'>XmlTree</span>-<a name="line-2008"></a> <span class='varid'>checkNames</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>arr</span> <span class='varid'>fst</span><span class='layout'>)</span>-<a name="line-2009"></a> <span class='varop'>&&&</span>-<a name="line-2010"></a> <span class='layout'>(</span><span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='layout'>(</span><span class='keyword'>_</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='keyword'>_</span><span class='layout'>)</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>getNameClasses</span> <span class='varid'>nc</span> <span class='varid'>a</span><span class='layout'>)</span><span class='layout'>)</span> -<a name="line-2011"></a> <span class='varop'>&&&</span>-<a name="line-2012"></a> <span class='layout'>(</span><span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='layout'>(</span><span class='keyword'>_</span><span class='layout'>,</span> <span class='layout'>(</span><span class='keyword'>_</span><span class='layout'>,</span> <span class='varid'>b</span><span class='layout'>)</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>getNameClasses</span> <span class='varid'>nc</span> <span class='varid'>b</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-2013"></a> <span class='varop'>>>></span>-<a name="line-2014"></a> <span class='varid'>checkPattern</span>-<a name="line-2015"></a> <span class='keyword'>where</span>-<a name="line-2016"></a> <span class='varid'>getNameClasses</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>NameClass</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>NameClass</span><span class='keyglyph'>]</span>-<a name="line-2017"></a> <span class='varid'>getNameClasses</span> <span class='varid'>nc'</span> <span class='varid'>l</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>lookup</span> <span class='varid'>x</span> <span class='varid'>nc'</span><span class='layout'>)</span> <span class='varid'>l</span>-<a name="line-2018"></a> -<a name="line-2019"></a> <span class='varid'>checkText</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-2020"></a> <span class='varid'>checkText</span>-<a name="line-2021"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>firstChild</span> <span class='varop'>>>></span> <span class='varid'>occur</span> <span class='str'>"text"</span> <span class='varid'>this</span> <span class='layout'>)</span>-<a name="line-2022"></a> <span class='varop'>`guards`</span> -<a name="line-2023"></a> <span class='layout'>(</span> <span class='varid'>lastChild</span> <span class='varop'>>>></span> <span class='varid'>occur</span> <span class='str'>"text"</span> <span class='varid'>this</span> <span class='layout'>)</span>-<a name="line-2024"></a> -<a name="line-2025"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2026"></a>-<a name="line-2027"></a>-<a name="line-2028"></a><a name="overlap"></a><span class='definition'>overlap</span> <span class='keyglyph'>::</span> <span class='conid'>NameClass</span> <span class='keyglyph'>-></span> <span class='conid'>NameClass</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-2029"></a><span class='definition'>overlap</span> <span class='varid'>nc1</span> <span class='varid'>nc2</span>-<a name="line-2030"></a> <span class='keyglyph'>=</span> <span class='varid'>any</span> <span class='layout'>(</span><span class='varid'>bothContain</span> <span class='varid'>nc1</span> <span class='varid'>nc2</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>representatives</span> <span class='varid'>nc1</span> <span class='varop'>++</span> <span class='varid'>representatives</span> <span class='varid'>nc2</span><span class='layout'>)</span>-<a name="line-2031"></a>-<a name="line-2032"></a><a name="bothContain"></a><span class='definition'>bothContain</span> <span class='keyglyph'>::</span> <span class='conid'>NameClass</span> <span class='keyglyph'>-></span> <span class='conid'>NameClass</span> <span class='keyglyph'>-></span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-2033"></a><span class='definition'>bothContain</span> <span class='varid'>nc1</span> <span class='varid'>nc2</span> <span class='varid'>qn</span>-<a name="line-2034"></a> <span class='keyglyph'>=</span> <span class='varid'>contains</span> <span class='varid'>nc1</span> <span class='varid'>qn</span> <span class='varop'>&&</span> <span class='varid'>contains</span> <span class='varid'>nc2</span> <span class='varid'>qn</span>-<a name="line-2035"></a>-<a name="line-2036"></a><a name="illegalLocalName"></a><span class='definition'>illegalLocalName</span> <span class='keyglyph'>::</span> <span class='conid'>LocalName</span>-<a name="line-2037"></a><span class='definition'>illegalLocalName</span> <span class='keyglyph'>=</span> <span class='str'>""</span>-<a name="line-2038"></a>-<a name="line-2039"></a><a name="illegalUri"></a><span class='definition'>illegalUri</span> <span class='keyglyph'>::</span> <span class='conid'>Uri</span>-<a name="line-2040"></a><span class='definition'>illegalUri</span> <span class='keyglyph'>=</span> <span class='str'>"\x1"</span>-<a name="line-2041"></a>-<a name="line-2042"></a><a name="representatives"></a><span class='definition'>representatives</span> <span class='keyglyph'>::</span> <span class='conid'>NameClass</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>QName</span><span class='keyglyph'>]</span>-<a name="line-2043"></a><span class='definition'>representatives</span> <span class='conid'>AnyName</span>-<a name="line-2044"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>mkQName</span> <span class='str'>""</span> <span class='varid'>illegalLocalName</span> <span class='varid'>illegalUri</span><span class='keyglyph'>]</span>-<a name="line-2045"></a>-<a name="line-2046"></a><span class='definition'>representatives</span> <span class='layout'>(</span><span class='conid'>AnyNameExcept</span> <span class='varid'>nc</span><span class='layout'>)</span>-<a name="line-2047"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>mkQName</span> <span class='str'>""</span> <span class='varid'>illegalLocalName</span> <span class='varid'>illegalUri</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='layout'>(</span><span class='varid'>representatives</span> <span class='varid'>nc</span><span class='layout'>)</span>-<a name="line-2048"></a>-<a name="line-2049"></a><span class='definition'>representatives</span> <span class='layout'>(</span><span class='conid'>NsName</span> <span class='varid'>ns</span><span class='layout'>)</span>-<a name="line-2050"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>mkQName</span> <span class='str'>""</span> <span class='varid'>illegalLocalName</span> <span class='varid'>ns</span><span class='keyglyph'>]</span>-<a name="line-2051"></a>-<a name="line-2052"></a><span class='definition'>representatives</span> <span class='layout'>(</span><span class='conid'>NsNameExcept</span> <span class='varid'>ns</span> <span class='varid'>nc</span><span class='layout'>)</span>-<a name="line-2053"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>mkQName</span> <span class='str'>""</span> <span class='varid'>illegalLocalName</span> <span class='varid'>ns</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='layout'>(</span><span class='varid'>representatives</span> <span class='varid'>nc</span><span class='layout'>)</span>-<a name="line-2054"></a>-<a name="line-2055"></a><span class='definition'>representatives</span> <span class='layout'>(</span><span class='conid'>Name</span> <span class='varid'>ns</span> <span class='varid'>ln</span><span class='layout'>)</span>-<a name="line-2056"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>mkQName</span> <span class='str'>""</span> <span class='varid'>ln</span> <span class='varid'>ns</span><span class='keyglyph'>]</span>-<a name="line-2057"></a>-<a name="line-2058"></a><span class='definition'>representatives</span> <span class='layout'>(</span><span class='conid'>NameClassChoice</span> <span class='varid'>nc1</span> <span class='varid'>nc2</span><span class='layout'>)</span>-<a name="line-2059"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>representatives</span> <span class='varid'>nc1</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='layout'>(</span><span class='varid'>representatives</span> <span class='varid'>nc2</span><span class='layout'>)</span>-<a name="line-2060"></a>-<a name="line-2061"></a><span class='definition'>representatives</span> <span class='keyword'>_</span>-<a name="line-2062"></a> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-2063"></a>-<a name="line-2064"></a><a name="resetStates"></a><span class='comment'>-- ------------------------------------------------------------------------------------------------------- </span>-<a name="line-2065"></a><span class='definition'>resetStates</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-2066"></a><span class='definition'>resetStates</span>-<a name="line-2067"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>perform</span> <span class='layout'>(</span><span class='varid'>constA</span> <span class='varop'>$</span> <span class='varid'>setParamInt</span> <span class='str'>"define_id"</span> <span class='num'>0</span><span class='layout'>)</span>-<a name="line-2068"></a> <span class='varop'>>>></span>-<a name="line-2069"></a> <span class='varid'>perform</span> <span class='layout'>(</span><span class='varid'>constA</span> <span class='conid'>[]</span> <span class='varop'>>>></span> <span class='varid'>setParamList</span> <span class='str'>"elementTable"</span> <span class='layout'>)</span>-<a name="line-2070"></a> <span class='varop'>>>></span>-<a name="line-2071"></a> <span class='varid'>perform</span> <span class='layout'>(</span><span class='varid'>constA</span> <span class='varop'>$</span> <span class='varid'>setParamInt</span> <span class='varid'>a_numberOfErrors</span> <span class='num'>0</span><span class='layout'>)</span>-<a name="line-2072"></a> <span class='layout'>)</span>-<a name="line-2073"></a>-<a name="line-2074"></a>-<a name="line-2075"></a><a name="getAllDeepDefines"></a><span class='definition'>getAllDeepDefines</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>Env</span>-<a name="line-2076"></a><span class='definition'>getAllDeepDefines</span>-<a name="line-2077"></a> <span class='keyglyph'>=</span> <span class='varid'>listA</span> <span class='varop'>$</span> <span class='varid'>deep</span> <span class='varid'>isRngDefine</span>-<a name="line-2078"></a> <span class='varop'>>>></span> -<a name="line-2079"></a> <span class='layout'>(</span> <span class='varid'>getRngAttrName</span> <span class='varop'>&&&</span> <span class='varid'>this</span> <span class='layout'>)</span>-<a name="line-2080"></a>-<a name="line-2081"></a>-<a name="line-2082"></a><span class='comment'>-- | Return all reachable defines from the start pattern</span>-<a name="line-2083"></a>-<a name="line-2084"></a><a name="getRefsFromStartPattern"></a><span class='definition'>getRefsFromStartPattern</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span>-<a name="line-2085"></a><span class='definition'>getRefsFromStartPattern</span>-<a name="line-2086"></a> <span class='keyglyph'>=</span> <span class='varid'>listA</span>-<a name="line-2087"></a> <span class='layout'>(</span> <span class='varid'>getChildren</span>-<a name="line-2088"></a> <span class='varop'>>>></span>-<a name="line-2089"></a> <span class='varid'>isRngGrammar</span>-<a name="line-2090"></a> <span class='varop'>>>></span>-<a name="line-2091"></a> <span class='varid'>getChildren</span>-<a name="line-2092"></a> <span class='varop'>>>></span>-<a name="line-2093"></a> <span class='varid'>isRngStart</span>-<a name="line-2094"></a> <span class='varop'>>>></span> -<a name="line-2095"></a> <span class='varid'>deep</span> <span class='varid'>isRngRef</span>-<a name="line-2096"></a> <span class='varop'>>>></span>-<a name="line-2097"></a> <span class='varid'>getRngAttrName</span>-<a name="line-2098"></a> <span class='layout'>)</span>-<a name="line-2099"></a>-<a name="line-2100"></a><a name="removeUnreachableDefines"></a><span class='definition'>removeUnreachableDefines</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-2101"></a><span class='definition'>removeUnreachableDefines</span> <span class='varid'>allDefs</span> <span class='varid'>processedDefs</span> <span class='varid'>reachableDefs</span>-<a name="line-2102"></a> <span class='keyglyph'>=</span> <span class='varid'>ifP</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varop'>$</span> <span class='varid'>unprocessedDefs</span> <span class='varop'>/=</span> <span class='conid'>[]</span><span class='layout'>)</span>-<a name="line-2103"></a> <span class='layout'>(</span> <span class='varid'>removeUnreachableDefines</span> <span class='varid'>allDefs</span> <span class='layout'>(</span><span class='varid'>nextTreeName</span> <span class='conop'>:</span> <span class='varid'>processedDefs</span><span class='layout'>)</span> <span class='varop'>$<</span> <span class='varid'>newReachableDefs</span> <span class='layout'>)</span>-<a name="line-2104"></a> <span class='layout'>(</span> <span class='varid'>processChildren</span> <span class='varop'>$</span> <span class='comment'>-- root node</span>-<a name="line-2105"></a> <span class='varid'>processChildren</span> <span class='varop'>$</span> <span class='comment'>-- first grammar</span>-<a name="line-2106"></a> <span class='layout'>(</span> <span class='varid'>none</span> -<a name="line-2107"></a> <span class='varop'>`when`</span>-<a name="line-2108"></a> <span class='layout'>(</span> <span class='varid'>isRngDefine</span>-<a name="line-2109"></a> <span class='varop'>>>></span>-<a name="line-2110"></a> <span class='varid'>getRngAttrName</span>-<a name="line-2111"></a> <span class='varop'>>>></span> -<a name="line-2112"></a> <span class='varid'>isA</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>n</span> <span class='keyglyph'>-></span> <span class='varid'>not</span> <span class='varop'>$</span> <span class='varid'>elem</span> <span class='varid'>n</span> <span class='varid'>reachableDefs</span><span class='layout'>)</span>-<a name="line-2113"></a> <span class='layout'>)</span>-<a name="line-2114"></a> <span class='layout'>)</span>-<a name="line-2115"></a> <span class='layout'>)</span>-<a name="line-2116"></a> <span class='keyword'>where</span>-<a name="line-2117"></a> <span class='varid'>unprocessedDefs</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span>-<a name="line-2118"></a> <span class='varid'>unprocessedDefs</span>-<a name="line-2119"></a> <span class='keyglyph'>=</span> <span class='varid'>reachableDefs</span> <span class='varop'>\\</span> <span class='varid'>processedDefs</span>-<a name="line-2120"></a>-<a name="line-2121"></a> <span class='varid'>newReachableDefs</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='varid'>n</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span>-<a name="line-2122"></a> <span class='varid'>newReachableDefs</span>-<a name="line-2123"></a> <span class='keyglyph'>=</span> <span class='varid'>constA</span> <span class='varid'>getTree</span>-<a name="line-2124"></a> <span class='varop'>>>></span> -<a name="line-2125"></a> <span class='varid'>listA</span> <span class='layout'>(</span> <span class='varid'>deep</span> <span class='varid'>isRngRef</span>-<a name="line-2126"></a> <span class='varop'>>>></span>-<a name="line-2127"></a> <span class='varid'>getRngAttrName</span>-<a name="line-2128"></a> <span class='layout'>)</span>-<a name="line-2129"></a> <span class='varop'>>>></span>-<a name="line-2130"></a> <span class='varid'>arr</span> <span class='layout'>(</span><span class='varid'>noDoubles</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='varid'>reachableDefs</span> <span class='varop'>++</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-2131"></a>-<a name="line-2132"></a> <span class='varid'>getTree</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span>-<a name="line-2133"></a> <span class='varid'>getTree</span>-<a name="line-2134"></a> <span class='keyglyph'>=</span> <span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>lookup</span> <span class='varid'>nextTreeName</span> <span class='varid'>allDefs</span>-<a name="line-2135"></a>-<a name="line-2136"></a> <span class='varid'>nextTreeName</span> <span class='keyglyph'>::</span> <span class='conid'>String</span>-<a name="line-2137"></a> <span class='varid'>nextTreeName</span>-<a name="line-2138"></a> <span class='keyglyph'>=</span> <span class='varid'>head</span> <span class='varid'>unprocessedDefs</span>-<a name="line-2139"></a>-<a name="line-2140"></a>-<a name="line-2141"></a><span class='comment'>-- ------------------------------------------------------------------------------------------------------- </span>-<a name="line-2142"></a> -<a name="line-2143"></a>-<a name="line-2144"></a><a name="checkElemName"></a><span class='definition'>checkElemName</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-2145"></a><span class='definition'>checkElemName</span> <span class='varid'>l</span>-<a name="line-2146"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>isElem</span> <span class='varop'>>>></span> <span class='varid'>getLocalPart</span> <span class='varop'>>>></span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>s</span> <span class='keyglyph'>-></span> <span class='varid'>elem</span> <span class='varid'>s</span> <span class='varid'>l</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-2147"></a> <span class='varop'>`guards`</span>-<a name="line-2148"></a> <span class='varid'>this</span>-<a name="line-2149"></a>-<a name="line-2150"></a><a name="wrapPattern2Two"></a><span class='definition'>wrapPattern2Two</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>ArrowXml</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>=></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-2151"></a><span class='definition'>wrapPattern2Two</span> <span class='varid'>name</span> -<a name="line-2152"></a> <span class='keyglyph'>=</span> <span class='varid'>choiceA</span>-<a name="line-2153"></a> <span class='keyglyph'>[</span> <span class='varid'>noOfChildren</span> <span class='layout'>(</span><span class='varop'>></span> <span class='num'>2</span><span class='layout'>)</span>-<a name="line-2154"></a> <span class='conop'>:-></span> <span class='layout'>(</span> <span class='varid'>replaceChildren</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>mkRngElement</span> <span class='varid'>name</span> <span class='varid'>none</span> -<a name="line-2155"></a> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>>>.</span> <span class='varid'>take</span> <span class='num'>2</span><span class='layout'>)</span>-<a name="line-2156"></a> <span class='layout'>)</span> -<a name="line-2157"></a> <span class='varop'><+></span> -<a name="line-2158"></a> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>>>.</span> <span class='varid'>drop</span> <span class='num'>2</span><span class='layout'>)</span>-<a name="line-2159"></a> <span class='layout'>)</span>-<a name="line-2160"></a> <span class='varop'>>>></span>-<a name="line-2161"></a> <span class='varid'>wrapPattern2Two</span> <span class='varid'>name</span>-<a name="line-2162"></a> <span class='layout'>)</span>-<a name="line-2163"></a> <span class='layout'>,</span> <span class='varid'>noOfChildren</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='num'>1</span><span class='layout'>)</span>-<a name="line-2164"></a> <span class='conop'>:-></span> <span class='varid'>getChildren</span>-<a name="line-2165"></a> <span class='layout'>,</span> <span class='varid'>this</span>-<a name="line-2166"></a> <span class='conop'>:-></span> <span class='varid'>this</span>-<a name="line-2167"></a> <span class='keyglyph'>]</span>-<a name="line-2168"></a>-<a name="line-2169"></a><a name="mkRelaxError"></a><span class='definition'>mkRelaxError</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>IOSArrow</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span>-<a name="line-2170"></a><span class='definition'>mkRelaxError</span> <span class='varid'>changesStr</span> <span class='varid'>errStr</span>-<a name="line-2171"></a> <span class='keyglyph'>=</span> <span class='varid'>perform</span> <span class='layout'>(</span><span class='varid'>getAndSetCounter</span> <span class='varid'>a_numberOfErrors</span><span class='layout'>)</span>-<a name="line-2172"></a> <span class='varop'>>>></span>-<a name="line-2173"></a> <span class='varid'>mkRngRelaxError</span> <span class='varid'>none</span> <span class='varid'>none</span>-<a name="line-2174"></a> <span class='varop'>>>></span>-<a name="line-2175"></a> <span class='varid'>addAttr</span> <span class='str'>"desc"</span> <span class='varid'>errStr</span>-<a name="line-2176"></a> <span class='varop'>>>></span>-<a name="line-2177"></a> <span class='layout'>(</span> <span class='varid'>addAttr</span> <span class='str'>"changes"</span> <span class='varid'>changesStr</span>-<a name="line-2178"></a> <span class='varop'>`whenP`</span>-<a name="line-2179"></a> <span class='layout'>(</span><span class='varid'>const</span> <span class='varop'>$</span> <span class='varid'>changesStr</span> <span class='varop'>/=</span> <span class='str'>""</span><span class='layout'>)</span>-<a name="line-2180"></a> <span class='layout'>)</span>-<a name="line-2181"></a>-<a name="line-2182"></a><a name="collectErrors"></a><span class='definition'>collectErrors</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-2183"></a><span class='definition'>collectErrors</span>-<a name="line-2184"></a> <span class='keyglyph'>=</span> <span class='varid'>none</span>-<a name="line-2185"></a> <span class='varop'>`when`</span>-<a name="line-2186"></a> <span class='layout'>(</span> <span class='varid'>stopAfterFirstError</span>-<a name="line-2187"></a> <span class='varop'>>>></span>-<a name="line-2188"></a> <span class='varid'>getParamInt</span> <span class='num'>0</span> <span class='varid'>a_numberOfErrors</span> <span class='varop'>>>></span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varop'>></span><span class='num'>0</span><span class='layout'>)</span>-<a name="line-2189"></a> <span class='layout'>)</span>-<a name="line-2190"></a> <span class='keyword'>where</span>-<a name="line-2191"></a> <span class='varid'>stopAfterFirstError</span> <span class='keyglyph'>=</span> <span class='varid'>getParamString</span> <span class='varid'>a_do_not_collect_errors</span>-<a name="line-2192"></a> <span class='varop'>>>></span>-<a name="line-2193"></a> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='str'>"1"</span><span class='layout'>)</span>-<a name="line-2194"></a> -<a name="line-2195"></a>-<a name="line-2196"></a><a name="getErrors"></a><span class='comment'>-- | Returns the list of simplification errors or 'none'</span>-<a name="line-2197"></a><span class='definition'>getErrors</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-2198"></a><span class='definition'>getErrors</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>getParamInt</span> <span class='num'>0</span> <span class='varid'>a_numberOfErrors</span> <span class='varop'>>>></span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varop'>></span><span class='num'>0</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-2199"></a> <span class='varop'>`guards`</span>-<a name="line-2200"></a> <span class='layout'>(</span><span class='varid'>root</span> <span class='conid'>[]</span> <span class='keyglyph'>[</span><span class='varid'>multi</span> <span class='varid'>isRngRelaxError</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-2201"></a>-<a name="line-2202"></a><a name="setChangesAttr"></a><span class='definition'>setChangesAttr</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-2203"></a><span class='definition'>setChangesAttr</span> <span class='varid'>str</span>-<a name="line-2204"></a> <span class='keyglyph'>=</span> <span class='varid'>ifA</span> <span class='layout'>(</span><span class='varid'>hasAttr</span> <span class='varid'>a_relaxSimplificationChanges</span><span class='layout'>)</span>-<a name="line-2205"></a> <span class='layout'>(</span> <span class='varid'>processAttrl</span> <span class='varop'>$</span>-<a name="line-2206"></a> <span class='varid'>changeAttrValue</span> <span class='layout'>(</span><span class='varop'>++</span> <span class='layout'>(</span><span class='str'>", "</span> <span class='varop'>++</span> <span class='varid'>str</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-2207"></a> <span class='varop'>`when`</span>-<a name="line-2208"></a> <span class='layout'>(</span><span class='varid'>hasRngName</span> <span class='varid'>a_relaxSimplificationChanges</span><span class='layout'>)</span>-<a name="line-2209"></a> <span class='layout'>)</span>-<a name="line-2210"></a> <span class='layout'>(</span><span class='varid'>mkAttr</span> <span class='layout'>(</span><span class='varid'>mkName</span> <span class='varid'>a_relaxSimplificationChanges</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>txt</span> <span class='varid'>str</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-2211"></a>-<a name="line-2212"></a>-<a name="line-2213"></a><a name="getChangesAttr"></a><span class='definition'>getChangesAttr</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>-<a name="line-2214"></a><span class='definition'>getChangesAttr</span>-<a name="line-2215"></a> <span class='keyglyph'>=</span> <span class='varid'>getAttrValue</span> <span class='varid'>a_relaxSimplificationChanges</span> -<a name="line-2216"></a> <span class='varop'>&&&</span> -<a name="line-2217"></a> <span class='varid'>getParamString</span> <span class='varid'>a_output_changes</span>-<a name="line-2218"></a> <span class='varop'>>>></span>-<a name="line-2219"></a> <span class='varid'>ifP</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='layout'>(</span><span class='varid'>changes</span><span class='layout'>,</span> <span class='varid'>param</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>changes</span> <span class='varop'>/=</span> <span class='str'>""</span> <span class='varop'>&&</span> <span class='varid'>param</span> <span class='varop'>==</span> <span class='str'>"1"</span><span class='layout'>)</span>-<a name="line-2220"></a> <span class='layout'>(</span><span class='varid'>arr2</span> <span class='varop'>$</span> <span class='keyglyph'>\</span><span class='varid'>l</span> <span class='keyword'>_</span> <span class='keyglyph'>-></span> <span class='str'>" ("</span> <span class='varop'>++</span> <span class='varid'>l</span> <span class='varop'>++</span> <span class='str'>")"</span><span class='layout'>)</span>-<a name="line-2221"></a> <span class='layout'>(</span><span class='varid'>constA</span> <span class='str'>""</span><span class='layout'>)</span>-<a name="line-2222"></a> -<a name="line-2223"></a>-<a name="line-2224"></a><a name="getAndSetCounter"></a><span class='definition'>getAndSetCounter</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>IOSArrow</span> <span class='varid'>b</span> <span class='conid'>String</span>-<a name="line-2225"></a><span class='definition'>getAndSetCounter</span> <span class='varid'>name</span> -<a name="line-2226"></a> <span class='keyglyph'>=</span> <span class='varid'>genNewId</span> <span class='varop'>$<</span> <span class='varid'>getParamInt</span> <span class='num'>0</span> <span class='varid'>name</span>-<a name="line-2227"></a> <span class='keyword'>where</span>-<a name="line-2228"></a> <span class='varid'>genNewId</span> <span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-></span> <span class='conid'>IOSArrow</span> <span class='varid'>b</span> <span class='conid'>String</span>-<a name="line-2229"></a> <span class='varid'>genNewId</span> <span class='varid'>i</span> <span class='keyglyph'>=</span> <span class='varid'>setParamInt</span> <span class='varid'>name</span> <span class='layout'>(</span><span class='varid'>i</span><span class='varop'>+</span><span class='num'>1</span><span class='layout'>)</span> <span class='varop'>>>></span> <span class='varid'>constA</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>i</span><span class='layout'>)</span>-<a name="line-2230"></a>-<a name="line-2231"></a> -<a name="line-2232"></a><span class='comment'>-- ------------------------------------------------------------------------------------------------------- </span>-<a name="line-2233"></a>-<a name="line-2234"></a><span class='comment'>-- | Creates the simple form of a Relax NG schema</span>-<a name="line-2235"></a><span class='comment'>-- (see also: 'relaxOptions')</span>-<a name="line-2236"></a>-<a name="line-2237"></a><a name="createSimpleForm"></a><span class='definition'>createSimpleForm</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span> <span class='keyglyph'>-></span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-2238"></a><span class='definition'>createSimpleForm</span> <span class='varid'>remainingOptions</span> <span class='varid'>checkRestrictions</span> <span class='varid'>validateExternalRef</span> <span class='varid'>validateInclude</span>-<a name="line-2239"></a> <span class='keyglyph'>=</span> <span class='varid'>traceMsg</span> <span class='num'>2</span> <span class='layout'>(</span><span class='str'>"createSimpleForm: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>remainingOptions</span><span class='layout'>,</span> <span class='varid'>checkRestrictions</span><span class='layout'>,</span><span class='varid'>validateExternalRef</span><span class='layout'>,</span> <span class='varid'>validateInclude</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-2240"></a> <span class='varop'>>>></span>-<a name="line-2241"></a> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>checkRestrictions</span>-<a name="line-2242"></a> <span class='keyword'>then</span> <span class='varid'>createSimpleWithRest</span>-<a name="line-2243"></a> <span class='keyword'>else</span> <span class='varid'>createSimpleWithoutRest</span>-<a name="line-2244"></a> <span class='layout'>)</span>-<a name="line-2245"></a> <span class='keyword'>where</span>-<a name="line-2246"></a>-<a name="line-2247"></a> <span class='varid'>createSimpleWithRest</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-2248"></a> <span class='varid'>createSimpleWithRest</span>-<a name="line-2249"></a> <span class='keyglyph'>=</span> <span class='varid'>seqA</span> <span class='varop'>$</span> <span class='varid'>concat</span> <span class='keyglyph'>[</span> <span class='varid'>simplificationPart1</span>-<a name="line-2250"></a> <span class='layout'>,</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>traceDoc</span> <span class='str'>"relax NG: simplificationPart1 done"</span>-<a name="line-2251"></a> <span class='layout'>,</span> <span class='varid'>restrictionsPart1</span>-<a name="line-2252"></a> <span class='layout'>,</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>traceDoc</span> <span class='str'>"relax NG: restrictionsPart1 done"</span>-<a name="line-2253"></a> <span class='layout'>,</span> <span class='varid'>simplificationPart2</span>-<a name="line-2254"></a> <span class='layout'>,</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>traceDoc</span> <span class='str'>"relax NG simplificationPart2 done"</span>-<a name="line-2255"></a> <span class='layout'>,</span> <span class='varid'>restrictionsPart2</span>-<a name="line-2256"></a> <span class='layout'>,</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>traceDoc</span> <span class='str'>"relax NG: restrictionsPart2 done"</span>-<a name="line-2257"></a> <span class='layout'>,</span> <span class='varid'>finalCleanUp</span>-<a name="line-2258"></a> <span class='layout'>,</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>traceDoc</span> <span class='str'>"relax NG: finalCleanUp done"</span>-<a name="line-2259"></a> <span class='keyglyph'>]</span>-<a name="line-2260"></a>-<a name="line-2261"></a> <span class='varid'>createSimpleWithoutRest</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-2262"></a> <span class='varid'>createSimpleWithoutRest</span>-<a name="line-2263"></a> <span class='keyglyph'>=</span> <span class='varid'>seqA</span> <span class='varop'>$</span> <span class='varid'>concat</span> <span class='keyglyph'>[</span> <span class='varid'>simplificationPart1</span>-<a name="line-2264"></a> <span class='layout'>,</span> <span class='varid'>simplificationPart2</span>-<a name="line-2265"></a> <span class='layout'>,</span> <span class='varid'>finalCleanUp</span>-<a name="line-2266"></a> <span class='keyglyph'>]</span>-<a name="line-2267"></a> <span class='varid'>simplificationPart1</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='keyglyph'>]</span>-<a name="line-2268"></a> <span class='varid'>simplificationPart1</span>-<a name="line-2269"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='varid'>propagateNamespaces</span>-<a name="line-2270"></a> <span class='layout'>,</span> <span class='varid'>simplificationStep1</span>-<a name="line-2271"></a> <span class='layout'>,</span> <span class='varid'>simplificationStep2</span> <span class='varid'>remainingOptions</span> <span class='varid'>validateExternalRef</span> <span class='varid'>validateInclude</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-2272"></a> <span class='layout'>,</span> <span class='varid'>simplificationStep3</span>-<a name="line-2273"></a> <span class='layout'>,</span> <span class='varid'>simplificationStep4</span>-<a name="line-2274"></a> <span class='keyglyph'>]</span>-<a name="line-2275"></a>-<a name="line-2276"></a> <span class='varid'>simplificationPart2</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='keyglyph'>]</span>-<a name="line-2277"></a> <span class='varid'>simplificationPart2</span>-<a name="line-2278"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='varid'>simplificationStep5</span>-<a name="line-2279"></a> <span class='layout'>,</span> <span class='varid'>simplificationStep6</span>-<a name="line-2280"></a> <span class='layout'>,</span> <span class='varid'>simplificationStep7</span>-<a name="line-2281"></a> <span class='layout'>,</span> <span class='varid'>simplificationStep8</span>-<a name="line-2282"></a> <span class='keyglyph'>]</span>-<a name="line-2283"></a>-<a name="line-2284"></a> <span class='varid'>restrictionsPart1</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='keyglyph'>]</span>-<a name="line-2285"></a> <span class='varid'>restrictionsPart1</span>-<a name="line-2286"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='varid'>restrictionsStep1</span> <span class='keyglyph'>]</span>-<a name="line-2287"></a>-<a name="line-2288"></a> <span class='varid'>restrictionsPart2</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='keyglyph'>]</span>-<a name="line-2289"></a> <span class='varid'>restrictionsPart2</span>-<a name="line-2290"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='varid'>restrictionsStep2</span>-<a name="line-2291"></a> <span class='layout'>,</span> <span class='varid'>restrictionsStep3</span>-<a name="line-2292"></a> <span class='layout'>,</span> <span class='varid'>restrictionsStep4</span> -<a name="line-2293"></a> <span class='keyglyph'>]</span>-<a name="line-2294"></a>-<a name="line-2295"></a> <span class='varid'>finalCleanUp</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='keyglyph'>]</span> -<a name="line-2296"></a> <span class='varid'>finalCleanUp</span>-<a name="line-2297"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='varid'>cleanUp</span>-<a name="line-2298"></a> <span class='layout'>,</span> <span class='varid'>resetStates</span>-<a name="line-2299"></a> <span class='keyglyph'>]</span>-<a name="line-2300"></a>-<a name="line-2301"></a> <span class='varid'>cleanUp</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-2302"></a> <span class='varid'>cleanUp</span> <span class='keyglyph'>=</span> <span class='varid'>processTopDown</span> <span class='varop'>$</span> -<a name="line-2303"></a> <span class='varid'>removeAttr</span> <span class='varid'>a_relaxSimplificationChanges</span>-<a name="line-2304"></a> <span class='varop'>>>></span>-<a name="line-2305"></a> <span class='varid'>removeAttr</span> <span class='varid'>defineOrigName</span>-<a name="line-2306"></a>-<a name="line-2307"></a><span class='comment'>-- ------------------------------------------------------------------------------------------------------- </span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-RelaxNG-Unicode-Blocks.html
@@ -1,196 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Text.XML.HXT.RelaxNG.Unicode.Blocks-<a name="line-5"></a> Copyright : Copyright (C) 2005 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe@fh-wedel.de)-<a name="line-9"></a> Stability : experimental-<a name="line-10"></a> Portability: portable-<a name="line-11"></a> Version : $Id$-<a name="line-12"></a>-<a name="line-13"></a> Unicode Code Blocks-<a name="line-14"></a>-<a name="line-15"></a> don't edit this module-<a name="line-16"></a> it's generated from 'http:\/\/www.unicode.org\/Public\/UNIDATA\/Blocks.txt'-<a name="line-17"></a>-}</span>-<a name="line-18"></a>-<a name="line-19"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-20"></a>-<a name="line-21"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>Unicode</span><span class='varop'>.</span><span class='conid'>Blocks</span>-<a name="line-22"></a> <span class='layout'>(</span> <span class='varid'>codeBlocks</span> <span class='layout'>)</span>-<a name="line-23"></a><span class='keyword'>where</span>-<a name="line-24"></a>-<a name="line-25"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-26"></a>-<a name="line-27"></a><a name="codeBlocks"></a><span class='definition'>codeBlocks</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='layout'>(</span><span class='conid'>Char</span><span class='layout'>,</span> <span class='conid'>Char</span><span class='layout'>)</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-28"></a><span class='definition'>codeBlocks</span> <span class='keyglyph'>=</span>-<a name="line-29"></a> <span class='keyglyph'>[</span> <span class='layout'>(</span> <span class='str'>"BasicLatin"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x0000'</span><span class='layout'>,</span> <span class='chr'>'\x007F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-30"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Latin-1Supplement"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x0080'</span><span class='layout'>,</span> <span class='chr'>'\x00FF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-31"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"LatinExtended-A"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x0100'</span><span class='layout'>,</span> <span class='chr'>'\x017F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-32"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"LatinExtended-B"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x0180'</span><span class='layout'>,</span> <span class='chr'>'\x024F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-33"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"IPAExtensions"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x0250'</span><span class='layout'>,</span> <span class='chr'>'\x02AF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-34"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"SpacingModifierLetters"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x02B0'</span><span class='layout'>,</span> <span class='chr'>'\x02FF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-35"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"CombiningDiacriticalMarks"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x0300'</span><span class='layout'>,</span> <span class='chr'>'\x036F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-36"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"GreekandCoptic"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x0370'</span><span class='layout'>,</span> <span class='chr'>'\x03FF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-37"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Cyrillic"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x0400'</span><span class='layout'>,</span> <span class='chr'>'\x04FF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-38"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"CyrillicSupplement"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x0500'</span><span class='layout'>,</span> <span class='chr'>'\x052F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-39"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Armenian"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x0530'</span><span class='layout'>,</span> <span class='chr'>'\x058F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-40"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Hebrew"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x0590'</span><span class='layout'>,</span> <span class='chr'>'\x05FF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-41"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Arabic"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x0600'</span><span class='layout'>,</span> <span class='chr'>'\x06FF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-42"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Syriac"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x0700'</span><span class='layout'>,</span> <span class='chr'>'\x074F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-43"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"ArabicSupplement"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x0750'</span><span class='layout'>,</span> <span class='chr'>'\x077F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-44"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Thaana"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x0780'</span><span class='layout'>,</span> <span class='chr'>'\x07BF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-45"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"NKo"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x07C0'</span><span class='layout'>,</span> <span class='chr'>'\x07FF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-46"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Devanagari"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x0900'</span><span class='layout'>,</span> <span class='chr'>'\x097F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-47"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Bengali"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x0980'</span><span class='layout'>,</span> <span class='chr'>'\x09FF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-48"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Gurmukhi"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x0A00'</span><span class='layout'>,</span> <span class='chr'>'\x0A7F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-49"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Gujarati"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x0A80'</span><span class='layout'>,</span> <span class='chr'>'\x0AFF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-50"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Oriya"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x0B00'</span><span class='layout'>,</span> <span class='chr'>'\x0B7F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-51"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Tamil"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x0B80'</span><span class='layout'>,</span> <span class='chr'>'\x0BFF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-52"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Telugu"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x0C00'</span><span class='layout'>,</span> <span class='chr'>'\x0C7F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-53"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Kannada"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x0C80'</span><span class='layout'>,</span> <span class='chr'>'\x0CFF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-54"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Malayalam"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x0D00'</span><span class='layout'>,</span> <span class='chr'>'\x0D7F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-55"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Sinhala"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x0D80'</span><span class='layout'>,</span> <span class='chr'>'\x0DFF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-56"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Thai"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x0E00'</span><span class='layout'>,</span> <span class='chr'>'\x0E7F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-57"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Lao"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x0E80'</span><span class='layout'>,</span> <span class='chr'>'\x0EFF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-58"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Tibetan"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x0F00'</span><span class='layout'>,</span> <span class='chr'>'\x0FFF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-59"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Myanmar"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x1000'</span><span class='layout'>,</span> <span class='chr'>'\x109F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-60"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Georgian"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x10A0'</span><span class='layout'>,</span> <span class='chr'>'\x10FF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-61"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"HangulJamo"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x1100'</span><span class='layout'>,</span> <span class='chr'>'\x11FF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-62"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Ethiopic"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x1200'</span><span class='layout'>,</span> <span class='chr'>'\x137F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-63"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"EthiopicSupplement"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x1380'</span><span class='layout'>,</span> <span class='chr'>'\x139F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-64"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Cherokee"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x13A0'</span><span class='layout'>,</span> <span class='chr'>'\x13FF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-65"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"UnifiedCanadianAboriginalSyllabics"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x1400'</span><span class='layout'>,</span> <span class='chr'>'\x167F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-66"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Ogham"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x1680'</span><span class='layout'>,</span> <span class='chr'>'\x169F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-67"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Runic"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x16A0'</span><span class='layout'>,</span> <span class='chr'>'\x16FF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-68"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Tagalog"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x1700'</span><span class='layout'>,</span> <span class='chr'>'\x171F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-69"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Hanunoo"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x1720'</span><span class='layout'>,</span> <span class='chr'>'\x173F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-70"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Buhid"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x1740'</span><span class='layout'>,</span> <span class='chr'>'\x175F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-71"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Tagbanwa"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x1760'</span><span class='layout'>,</span> <span class='chr'>'\x177F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-72"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Khmer"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x1780'</span><span class='layout'>,</span> <span class='chr'>'\x17FF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-73"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Mongolian"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x1800'</span><span class='layout'>,</span> <span class='chr'>'\x18AF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-74"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Limbu"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x1900'</span><span class='layout'>,</span> <span class='chr'>'\x194F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-75"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"TaiLe"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x1950'</span><span class='layout'>,</span> <span class='chr'>'\x197F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-76"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"NewTaiLue"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x1980'</span><span class='layout'>,</span> <span class='chr'>'\x19DF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-77"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"KhmerSymbols"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x19E0'</span><span class='layout'>,</span> <span class='chr'>'\x19FF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-78"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Buginese"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x1A00'</span><span class='layout'>,</span> <span class='chr'>'\x1A1F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-79"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Balinese"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x1B00'</span><span class='layout'>,</span> <span class='chr'>'\x1B7F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-80"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"PhoneticExtensions"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x1D00'</span><span class='layout'>,</span> <span class='chr'>'\x1D7F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-81"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"PhoneticExtensionsSupplement"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x1D80'</span><span class='layout'>,</span> <span class='chr'>'\x1DBF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-82"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"CombiningDiacriticalMarksSupplement"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x1DC0'</span><span class='layout'>,</span> <span class='chr'>'\x1DFF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-83"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"LatinExtendedAdditional"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x1E00'</span><span class='layout'>,</span> <span class='chr'>'\x1EFF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-84"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"GreekExtended"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x1F00'</span><span class='layout'>,</span> <span class='chr'>'\x1FFF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-85"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"GeneralPunctuation"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x2000'</span><span class='layout'>,</span> <span class='chr'>'\x206F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-86"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"SuperscriptsandSubscripts"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x2070'</span><span class='layout'>,</span> <span class='chr'>'\x209F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-87"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"CurrencySymbols"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x20A0'</span><span class='layout'>,</span> <span class='chr'>'\x20CF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-88"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"CombiningDiacriticalMarksforSymbols"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x20D0'</span><span class='layout'>,</span> <span class='chr'>'\x20FF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-89"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"LetterlikeSymbols"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x2100'</span><span class='layout'>,</span> <span class='chr'>'\x214F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-90"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"NumberForms"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x2150'</span><span class='layout'>,</span> <span class='chr'>'\x218F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-91"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Arrows"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x2190'</span><span class='layout'>,</span> <span class='chr'>'\x21FF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-92"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"MathematicalOperators"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x2200'</span><span class='layout'>,</span> <span class='chr'>'\x22FF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-93"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"MiscellaneousTechnical"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x2300'</span><span class='layout'>,</span> <span class='chr'>'\x23FF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-94"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"ControlPictures"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x2400'</span><span class='layout'>,</span> <span class='chr'>'\x243F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-95"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"OpticalCharacterRecognition"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x2440'</span><span class='layout'>,</span> <span class='chr'>'\x245F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-96"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"EnclosedAlphanumerics"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x2460'</span><span class='layout'>,</span> <span class='chr'>'\x24FF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-97"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"BoxDrawing"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x2500'</span><span class='layout'>,</span> <span class='chr'>'\x257F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-98"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"BlockElements"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x2580'</span><span class='layout'>,</span> <span class='chr'>'\x259F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-99"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"GeometricShapes"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x25A0'</span><span class='layout'>,</span> <span class='chr'>'\x25FF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-100"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"MiscellaneousSymbols"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x2600'</span><span class='layout'>,</span> <span class='chr'>'\x26FF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-101"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Dingbats"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x2700'</span><span class='layout'>,</span> <span class='chr'>'\x27BF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-102"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"MiscellaneousMathematicalSymbols-A"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x27C0'</span><span class='layout'>,</span> <span class='chr'>'\x27EF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-103"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"SupplementalArrows-A"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x27F0'</span><span class='layout'>,</span> <span class='chr'>'\x27FF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-104"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"BraillePatterns"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x2800'</span><span class='layout'>,</span> <span class='chr'>'\x28FF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-105"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"SupplementalArrows-B"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x2900'</span><span class='layout'>,</span> <span class='chr'>'\x297F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-106"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"MiscellaneousMathematicalSymbols-B"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x2980'</span><span class='layout'>,</span> <span class='chr'>'\x29FF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-107"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"SupplementalMathematicalOperators"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x2A00'</span><span class='layout'>,</span> <span class='chr'>'\x2AFF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-108"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"MiscellaneousSymbolsandArrows"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x2B00'</span><span class='layout'>,</span> <span class='chr'>'\x2BFF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-109"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Glagolitic"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x2C00'</span><span class='layout'>,</span> <span class='chr'>'\x2C5F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-110"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"LatinExtended-C"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x2C60'</span><span class='layout'>,</span> <span class='chr'>'\x2C7F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-111"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Coptic"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x2C80'</span><span class='layout'>,</span> <span class='chr'>'\x2CFF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-112"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"GeorgianSupplement"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x2D00'</span><span class='layout'>,</span> <span class='chr'>'\x2D2F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-113"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Tifinagh"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x2D30'</span><span class='layout'>,</span> <span class='chr'>'\x2D7F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-114"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"EthiopicExtended"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x2D80'</span><span class='layout'>,</span> <span class='chr'>'\x2DDF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-115"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"SupplementalPunctuation"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x2E00'</span><span class='layout'>,</span> <span class='chr'>'\x2E7F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-116"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"CJKRadicalsSupplement"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x2E80'</span><span class='layout'>,</span> <span class='chr'>'\x2EFF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-117"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"KangxiRadicals"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x2F00'</span><span class='layout'>,</span> <span class='chr'>'\x2FDF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-118"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"IdeographicDescriptionCharacters"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x2FF0'</span><span class='layout'>,</span> <span class='chr'>'\x2FFF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-119"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"CJKSymbolsandPunctuation"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x3000'</span><span class='layout'>,</span> <span class='chr'>'\x303F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-120"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Hiragana"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x3040'</span><span class='layout'>,</span> <span class='chr'>'\x309F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-121"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Katakana"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x30A0'</span><span class='layout'>,</span> <span class='chr'>'\x30FF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-122"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Bopomofo"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x3100'</span><span class='layout'>,</span> <span class='chr'>'\x312F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-123"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"HangulCompatibilityJamo"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x3130'</span><span class='layout'>,</span> <span class='chr'>'\x318F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-124"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Kanbun"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x3190'</span><span class='layout'>,</span> <span class='chr'>'\x319F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-125"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"BopomofoExtended"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x31A0'</span><span class='layout'>,</span> <span class='chr'>'\x31BF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-126"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"CJKStrokes"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x31C0'</span><span class='layout'>,</span> <span class='chr'>'\x31EF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-127"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"KatakanaPhoneticExtensions"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x31F0'</span><span class='layout'>,</span> <span class='chr'>'\x31FF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-128"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"EnclosedCJKLettersandMonths"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x3200'</span><span class='layout'>,</span> <span class='chr'>'\x32FF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-129"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"CJKCompatibility"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x3300'</span><span class='layout'>,</span> <span class='chr'>'\x33FF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-130"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"CJKUnifiedIdeographsExtensionA"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x3400'</span><span class='layout'>,</span> <span class='chr'>'\x4DBF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-131"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"YijingHexagramSymbols"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x4DC0'</span><span class='layout'>,</span> <span class='chr'>'\x4DFF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-132"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"CJKUnifiedIdeographs"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x4E00'</span><span class='layout'>,</span> <span class='chr'>'\x9FFF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-133"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"YiSyllables"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\xA000'</span><span class='layout'>,</span> <span class='chr'>'\xA48F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-134"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"YiRadicals"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\xA490'</span><span class='layout'>,</span> <span class='chr'>'\xA4CF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-135"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"ModifierToneLetters"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\xA700'</span><span class='layout'>,</span> <span class='chr'>'\xA71F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-136"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"LatinExtended-D"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\xA720'</span><span class='layout'>,</span> <span class='chr'>'\xA7FF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-137"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"SylotiNagri"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\xA800'</span><span class='layout'>,</span> <span class='chr'>'\xA82F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-138"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Phags-pa"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\xA840'</span><span class='layout'>,</span> <span class='chr'>'\xA87F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-139"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"HangulSyllables"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\xAC00'</span><span class='layout'>,</span> <span class='chr'>'\xD7AF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-140"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"HighSurrogates"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\xD800'</span><span class='layout'>,</span> <span class='chr'>'\xDB7F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-141"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"HighPrivateUseSurrogates"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\xDB80'</span><span class='layout'>,</span> <span class='chr'>'\xDBFF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-142"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"LowSurrogates"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\xDC00'</span><span class='layout'>,</span> <span class='chr'>'\xDFFF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-143"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"PrivateUseArea"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\xE000'</span><span class='layout'>,</span> <span class='chr'>'\xF8FF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-144"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"CJKCompatibilityIdeographs"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\xF900'</span><span class='layout'>,</span> <span class='chr'>'\xFAFF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-145"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"AlphabeticPresentationForms"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\xFB00'</span><span class='layout'>,</span> <span class='chr'>'\xFB4F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-146"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"ArabicPresentationForms-A"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\xFB50'</span><span class='layout'>,</span> <span class='chr'>'\xFDFF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-147"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"VariationSelectors"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\xFE00'</span><span class='layout'>,</span> <span class='chr'>'\xFE0F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-148"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"VerticalForms"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\xFE10'</span><span class='layout'>,</span> <span class='chr'>'\xFE1F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-149"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"CombiningHalfMarks"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\xFE20'</span><span class='layout'>,</span> <span class='chr'>'\xFE2F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-150"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"CJKCompatibilityForms"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\xFE30'</span><span class='layout'>,</span> <span class='chr'>'\xFE4F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-151"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"SmallFormVariants"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\xFE50'</span><span class='layout'>,</span> <span class='chr'>'\xFE6F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-152"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"ArabicPresentationForms-B"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\xFE70'</span><span class='layout'>,</span> <span class='chr'>'\xFEFF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-153"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"HalfwidthandFullwidthForms"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\xFF00'</span><span class='layout'>,</span> <span class='chr'>'\xFFEF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-154"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Specials"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\xFFF0'</span><span class='layout'>,</span> <span class='chr'>'\xFFFF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-155"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"LinearBSyllabary"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x10000'</span><span class='layout'>,</span> <span class='chr'>'\x1007F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-156"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"LinearBIdeograms"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x10080'</span><span class='layout'>,</span> <span class='chr'>'\x100FF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-157"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"AegeanNumbers"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x10100'</span><span class='layout'>,</span> <span class='chr'>'\x1013F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-158"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"AncientGreekNumbers"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x10140'</span><span class='layout'>,</span> <span class='chr'>'\x1018F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-159"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"OldItalic"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x10300'</span><span class='layout'>,</span> <span class='chr'>'\x1032F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-160"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Gothic"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x10330'</span><span class='layout'>,</span> <span class='chr'>'\x1034F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-161"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Ugaritic"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x10380'</span><span class='layout'>,</span> <span class='chr'>'\x1039F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-162"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"OldPersian"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x103A0'</span><span class='layout'>,</span> <span class='chr'>'\x103DF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-163"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Deseret"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x10400'</span><span class='layout'>,</span> <span class='chr'>'\x1044F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-164"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Shavian"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x10450'</span><span class='layout'>,</span> <span class='chr'>'\x1047F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-165"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Osmanya"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x10480'</span><span class='layout'>,</span> <span class='chr'>'\x104AF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-166"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"CypriotSyllabary"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x10800'</span><span class='layout'>,</span> <span class='chr'>'\x1083F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-167"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Phoenician"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x10900'</span><span class='layout'>,</span> <span class='chr'>'\x1091F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-168"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Kharoshthi"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x10A00'</span><span class='layout'>,</span> <span class='chr'>'\x10A5F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-169"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Cuneiform"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x12000'</span><span class='layout'>,</span> <span class='chr'>'\x123FF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-170"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"CuneiformNumbersandPunctuation"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x12400'</span><span class='layout'>,</span> <span class='chr'>'\x1247F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-171"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"ByzantineMusicalSymbols"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x1D000'</span><span class='layout'>,</span> <span class='chr'>'\x1D0FF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-172"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"MusicalSymbols"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x1D100'</span><span class='layout'>,</span> <span class='chr'>'\x1D1FF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-173"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"AncientGreekMusicalNotation"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x1D200'</span><span class='layout'>,</span> <span class='chr'>'\x1D24F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-174"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"TaiXuanJingSymbols"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x1D300'</span><span class='layout'>,</span> <span class='chr'>'\x1D35F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-175"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"CountingRodNumerals"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x1D360'</span><span class='layout'>,</span> <span class='chr'>'\x1D37F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-176"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"MathematicalAlphanumericSymbols"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x1D400'</span><span class='layout'>,</span> <span class='chr'>'\x1D7FF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-177"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"CJKUnifiedIdeographsExtensionB"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x20000'</span><span class='layout'>,</span> <span class='chr'>'\x2A6DF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-178"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"CJKCompatibilityIdeographsSupplement"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x2F800'</span><span class='layout'>,</span> <span class='chr'>'\x2FA1F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-179"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"Tags"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\xE0000'</span><span class='layout'>,</span> <span class='chr'>'\xE007F'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-180"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"VariationSelectorsSupplement"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\xE0100'</span><span class='layout'>,</span> <span class='chr'>'\xE01EF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-181"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"SupplementaryPrivateUseArea-A"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\xF0000'</span><span class='layout'>,</span> <span class='chr'>'\xFFFFF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-182"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='str'>"SupplementaryPrivateUseArea-B"</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='chr'>'\x100000'</span><span class='layout'>,</span> <span class='chr'>'\x10FFFF'</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-183"></a> <span class='keyglyph'>]</span>-<a name="line-184"></a>-<a name="line-185"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-186"></a>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-RelaxNG-Unicode-CharProps.html
@@ -1,3267 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Text.XML.HXT.RelaxNG.Unicode.CharProps-<a name="line-5"></a> Copyright : Copyright (C) 2005 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe@fh-wedel.de)-<a name="line-9"></a> Stability : experimental-<a name="line-10"></a> Portability: portable-<a name="line-11"></a> Version : $Id$-<a name="line-12"></a>-<a name="line-13"></a> Unicode character properties-<a name="line-14"></a>-<a name="line-15"></a> don't edit this module-<a name="line-16"></a> it's generated from 'http:\/\/www.unicode.org\/Public\/UNIDATA\/UnicodeData.txt'-<a name="line-17"></a>-<a name="line-18"></a>-}</span>-<a name="line-19"></a>-<a name="line-20"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-21"></a>-<a name="line-22"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>Unicode</span><span class='varop'>.</span><span class='conid'>CharProps</span>-<a name="line-23"></a> <span class='layout'>(</span> <span class='varid'>isUnicodeC</span>-<a name="line-24"></a> <span class='layout'>,</span> <span class='varid'>isUnicodeCc</span>-<a name="line-25"></a> <span class='layout'>,</span> <span class='varid'>isUnicodeCf</span>-<a name="line-26"></a> <span class='layout'>,</span> <span class='varid'>isUnicodeCo</span>-<a name="line-27"></a> <span class='layout'>,</span> <span class='varid'>isUnicodeCs</span>-<a name="line-28"></a> <span class='layout'>,</span> <span class='varid'>isUnicodeL</span>-<a name="line-29"></a> <span class='layout'>,</span> <span class='varid'>isUnicodeLl</span>-<a name="line-30"></a> <span class='layout'>,</span> <span class='varid'>isUnicodeLm</span>-<a name="line-31"></a> <span class='layout'>,</span> <span class='varid'>isUnicodeLo</span>-<a name="line-32"></a> <span class='layout'>,</span> <span class='varid'>isUnicodeLt</span>-<a name="line-33"></a> <span class='layout'>,</span> <span class='varid'>isUnicodeLu</span>-<a name="line-34"></a> <span class='layout'>,</span> <span class='varid'>isUnicodeM</span>-<a name="line-35"></a> <span class='layout'>,</span> <span class='varid'>isUnicodeMc</span>-<a name="line-36"></a> <span class='layout'>,</span> <span class='varid'>isUnicodeMe</span>-<a name="line-37"></a> <span class='layout'>,</span> <span class='varid'>isUnicodeMn</span>-<a name="line-38"></a> <span class='layout'>,</span> <span class='varid'>isUnicodeN</span>-<a name="line-39"></a> <span class='layout'>,</span> <span class='varid'>isUnicodeNd</span>-<a name="line-40"></a> <span class='layout'>,</span> <span class='varid'>isUnicodeNl</span>-<a name="line-41"></a> <span class='layout'>,</span> <span class='varid'>isUnicodeNo</span>-<a name="line-42"></a> <span class='layout'>,</span> <span class='varid'>isUnicodeP</span>-<a name="line-43"></a> <span class='layout'>,</span> <span class='varid'>isUnicodePc</span>-<a name="line-44"></a> <span class='layout'>,</span> <span class='varid'>isUnicodePd</span>-<a name="line-45"></a> <span class='layout'>,</span> <span class='varid'>isUnicodePe</span>-<a name="line-46"></a> <span class='layout'>,</span> <span class='varid'>isUnicodePf</span>-<a name="line-47"></a> <span class='layout'>,</span> <span class='varid'>isUnicodePi</span>-<a name="line-48"></a> <span class='layout'>,</span> <span class='varid'>isUnicodePo</span>-<a name="line-49"></a> <span class='layout'>,</span> <span class='varid'>isUnicodePs</span>-<a name="line-50"></a> <span class='layout'>,</span> <span class='varid'>isUnicodeS</span>-<a name="line-51"></a> <span class='layout'>,</span> <span class='varid'>isUnicodeSc</span>-<a name="line-52"></a> <span class='layout'>,</span> <span class='varid'>isUnicodeSk</span>-<a name="line-53"></a> <span class='layout'>,</span> <span class='varid'>isUnicodeSm</span>-<a name="line-54"></a> <span class='layout'>,</span> <span class='varid'>isUnicodeSo</span>-<a name="line-55"></a> <span class='layout'>,</span> <span class='varid'>isUnicodeZ</span>-<a name="line-56"></a> <span class='layout'>,</span> <span class='varid'>isUnicodeZl</span>-<a name="line-57"></a> <span class='layout'>,</span> <span class='varid'>isUnicodeZp</span>-<a name="line-58"></a> <span class='layout'>,</span> <span class='varid'>isUnicodeZs</span>-<a name="line-59"></a> <span class='layout'>)</span>-<a name="line-60"></a><span class='keyword'>where</span>-<a name="line-61"></a>-<a name="line-62"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-63"></a>-<a name="line-64"></a><a name="isInList"></a><span class='definition'>isInList</span> <span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>Char</span><span class='layout'>,</span> <span class='conid'>Char</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-65"></a><span class='definition'>isInList</span> <span class='varid'>i</span> <span class='keyglyph'>=</span>-<a name="line-66"></a> <span class='varid'>foldr</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='layout'>(</span><span class='varid'>lb</span><span class='layout'>,</span> <span class='varid'>ub</span><span class='layout'>)</span> <span class='varid'>b</span> <span class='keyglyph'>-></span> <span class='varid'>i</span> <span class='varop'>>=</span> <span class='varid'>lb</span> <span class='varop'>&&</span> <span class='layout'>(</span><span class='varid'>i</span> <span class='varop'><=</span> <span class='varid'>ub</span> <span class='varop'>||</span> <span class='varid'>b</span><span class='layout'>)</span><span class='layout'>)</span> <span class='conid'>False</span>-<a name="line-67"></a>-<a name="line-68"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-69"></a>-<a name="line-70"></a><a name="isUnicodeC"></a><span class='definition'>isUnicodeC</span> <span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-71"></a><span class='definition'>isUnicodeC</span> <span class='varid'>c</span>-<a name="line-72"></a> <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>-<a name="line-73"></a> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\NUL'</span><span class='layout'>,</span><span class='chr'>'\US'</span><span class='layout'>)</span>-<a name="line-74"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\DEL'</span><span class='layout'>,</span><span class='chr'>'\159'</span><span class='layout'>)</span>-<a name="line-75"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\173'</span><span class='layout'>,</span><span class='chr'>'\173'</span><span class='layout'>)</span>-<a name="line-76"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1536'</span><span class='layout'>,</span><span class='chr'>'\1539'</span><span class='layout'>)</span>-<a name="line-77"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1757'</span><span class='layout'>,</span><span class='chr'>'\1757'</span><span class='layout'>)</span>-<a name="line-78"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1807'</span><span class='layout'>,</span><span class='chr'>'\1807'</span><span class='layout'>)</span>-<a name="line-79"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6068'</span><span class='layout'>,</span><span class='chr'>'\6069'</span><span class='layout'>)</span>-<a name="line-80"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8203'</span><span class='layout'>,</span><span class='chr'>'\8207'</span><span class='layout'>)</span>-<a name="line-81"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8234'</span><span class='layout'>,</span><span class='chr'>'\8238'</span><span class='layout'>)</span>-<a name="line-82"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8288'</span><span class='layout'>,</span><span class='chr'>'\8291'</span><span class='layout'>)</span>-<a name="line-83"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8298'</span><span class='layout'>,</span><span class='chr'>'\8303'</span><span class='layout'>)</span>-<a name="line-84"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\55296'</span><span class='layout'>,</span><span class='chr'>'\55296'</span><span class='layout'>)</span>-<a name="line-85"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\56191'</span><span class='layout'>,</span><span class='chr'>'\56192'</span><span class='layout'>)</span>-<a name="line-86"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\56319'</span><span class='layout'>,</span><span class='chr'>'\56320'</span><span class='layout'>)</span>-<a name="line-87"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\57343'</span><span class='layout'>,</span><span class='chr'>'\57344'</span><span class='layout'>)</span>-<a name="line-88"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\63743'</span><span class='layout'>,</span><span class='chr'>'\63743'</span><span class='layout'>)</span>-<a name="line-89"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65279'</span><span class='layout'>,</span><span class='chr'>'\65279'</span><span class='layout'>)</span>-<a name="line-90"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65529'</span><span class='layout'>,</span><span class='chr'>'\65531'</span><span class='layout'>)</span>-<a name="line-91"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119155'</span><span class='layout'>,</span><span class='chr'>'\119162'</span><span class='layout'>)</span>-<a name="line-92"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\917505'</span><span class='layout'>,</span><span class='chr'>'\917505'</span><span class='layout'>)</span>-<a name="line-93"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\917536'</span><span class='layout'>,</span><span class='chr'>'\917631'</span><span class='layout'>)</span>-<a name="line-94"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\983040'</span><span class='layout'>,</span><span class='chr'>'\983040'</span><span class='layout'>)</span>-<a name="line-95"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1048573'</span><span class='layout'>,</span><span class='chr'>'\1048573'</span><span class='layout'>)</span>-<a name="line-96"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1048576'</span><span class='layout'>,</span><span class='chr'>'\1048576'</span><span class='layout'>)</span>-<a name="line-97"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1114109'</span><span class='layout'>,</span><span class='chr'>'\1114109'</span><span class='layout'>)</span>-<a name="line-98"></a> <span class='keyglyph'>]</span>-<a name="line-99"></a>-<a name="line-100"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-101"></a>-<a name="line-102"></a><a name="isUnicodeCc"></a><span class='definition'>isUnicodeCc</span> <span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-103"></a><span class='definition'>isUnicodeCc</span> <span class='varid'>c</span>-<a name="line-104"></a> <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>-<a name="line-105"></a> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\NUL'</span><span class='layout'>,</span><span class='chr'>'\US'</span><span class='layout'>)</span>-<a name="line-106"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\DEL'</span><span class='layout'>,</span><span class='chr'>'\159'</span><span class='layout'>)</span>-<a name="line-107"></a> <span class='keyglyph'>]</span>-<a name="line-108"></a>-<a name="line-109"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-110"></a>-<a name="line-111"></a><a name="isUnicodeCf"></a><span class='definition'>isUnicodeCf</span> <span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-112"></a><span class='definition'>isUnicodeCf</span> <span class='varid'>c</span>-<a name="line-113"></a> <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>-<a name="line-114"></a> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\173'</span><span class='layout'>,</span><span class='chr'>'\173'</span><span class='layout'>)</span>-<a name="line-115"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1536'</span><span class='layout'>,</span><span class='chr'>'\1539'</span><span class='layout'>)</span>-<a name="line-116"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1757'</span><span class='layout'>,</span><span class='chr'>'\1757'</span><span class='layout'>)</span>-<a name="line-117"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1807'</span><span class='layout'>,</span><span class='chr'>'\1807'</span><span class='layout'>)</span>-<a name="line-118"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6068'</span><span class='layout'>,</span><span class='chr'>'\6069'</span><span class='layout'>)</span>-<a name="line-119"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8203'</span><span class='layout'>,</span><span class='chr'>'\8207'</span><span class='layout'>)</span>-<a name="line-120"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8234'</span><span class='layout'>,</span><span class='chr'>'\8238'</span><span class='layout'>)</span>-<a name="line-121"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8288'</span><span class='layout'>,</span><span class='chr'>'\8291'</span><span class='layout'>)</span>-<a name="line-122"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8298'</span><span class='layout'>,</span><span class='chr'>'\8303'</span><span class='layout'>)</span>-<a name="line-123"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65279'</span><span class='layout'>,</span><span class='chr'>'\65279'</span><span class='layout'>)</span>-<a name="line-124"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65529'</span><span class='layout'>,</span><span class='chr'>'\65531'</span><span class='layout'>)</span>-<a name="line-125"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119155'</span><span class='layout'>,</span><span class='chr'>'\119162'</span><span class='layout'>)</span>-<a name="line-126"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\917505'</span><span class='layout'>,</span><span class='chr'>'\917505'</span><span class='layout'>)</span>-<a name="line-127"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\917536'</span><span class='layout'>,</span><span class='chr'>'\917631'</span><span class='layout'>)</span>-<a name="line-128"></a> <span class='keyglyph'>]</span>-<a name="line-129"></a>-<a name="line-130"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-131"></a>-<a name="line-132"></a><a name="isUnicodeCo"></a><span class='definition'>isUnicodeCo</span> <span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-133"></a><span class='definition'>isUnicodeCo</span> <span class='varid'>c</span>-<a name="line-134"></a> <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>-<a name="line-135"></a> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\57344'</span><span class='layout'>,</span><span class='chr'>'\57344'</span><span class='layout'>)</span>-<a name="line-136"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\63743'</span><span class='layout'>,</span><span class='chr'>'\63743'</span><span class='layout'>)</span>-<a name="line-137"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\983040'</span><span class='layout'>,</span><span class='chr'>'\983040'</span><span class='layout'>)</span>-<a name="line-138"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1048573'</span><span class='layout'>,</span><span class='chr'>'\1048573'</span><span class='layout'>)</span>-<a name="line-139"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1048576'</span><span class='layout'>,</span><span class='chr'>'\1048576'</span><span class='layout'>)</span>-<a name="line-140"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1114109'</span><span class='layout'>,</span><span class='chr'>'\1114109'</span><span class='layout'>)</span>-<a name="line-141"></a> <span class='keyglyph'>]</span>-<a name="line-142"></a>-<a name="line-143"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-144"></a>-<a name="line-145"></a><a name="isUnicodeCs"></a><span class='definition'>isUnicodeCs</span> <span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-146"></a><span class='definition'>isUnicodeCs</span> <span class='varid'>c</span>-<a name="line-147"></a> <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>-<a name="line-148"></a> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\55296'</span><span class='layout'>,</span><span class='chr'>'\55296'</span><span class='layout'>)</span>-<a name="line-149"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\56191'</span><span class='layout'>,</span><span class='chr'>'\56192'</span><span class='layout'>)</span>-<a name="line-150"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\56319'</span><span class='layout'>,</span><span class='chr'>'\56320'</span><span class='layout'>)</span>-<a name="line-151"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\57343'</span><span class='layout'>,</span><span class='chr'>'\57343'</span><span class='layout'>)</span>-<a name="line-152"></a> <span class='keyglyph'>]</span>-<a name="line-153"></a>-<a name="line-154"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-155"></a>-<a name="line-156"></a><a name="isUnicodeL"></a><span class='definition'>isUnicodeL</span> <span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-157"></a><span class='definition'>isUnicodeL</span> <span class='varid'>c</span>-<a name="line-158"></a> <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>-<a name="line-159"></a> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'A'</span><span class='layout'>,</span><span class='chr'>'Z'</span><span class='layout'>)</span>-<a name="line-160"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'a'</span><span class='layout'>,</span><span class='chr'>'z'</span><span class='layout'>)</span>-<a name="line-161"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\170'</span><span class='layout'>,</span><span class='chr'>'\170'</span><span class='layout'>)</span>-<a name="line-162"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\181'</span><span class='layout'>,</span><span class='chr'>'\181'</span><span class='layout'>)</span>-<a name="line-163"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\186'</span><span class='layout'>,</span><span class='chr'>'\186'</span><span class='layout'>)</span>-<a name="line-164"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\192'</span><span class='layout'>,</span><span class='chr'>'\214'</span><span class='layout'>)</span>-<a name="line-165"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\216'</span><span class='layout'>,</span><span class='chr'>'\246'</span><span class='layout'>)</span>-<a name="line-166"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\248'</span><span class='layout'>,</span><span class='chr'>'\705'</span><span class='layout'>)</span>-<a name="line-167"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\710'</span><span class='layout'>,</span><span class='chr'>'\721'</span><span class='layout'>)</span>-<a name="line-168"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\736'</span><span class='layout'>,</span><span class='chr'>'\740'</span><span class='layout'>)</span>-<a name="line-169"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\750'</span><span class='layout'>,</span><span class='chr'>'\750'</span><span class='layout'>)</span>-<a name="line-170"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\890'</span><span class='layout'>,</span><span class='chr'>'\893'</span><span class='layout'>)</span>-<a name="line-171"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\902'</span><span class='layout'>,</span><span class='chr'>'\902'</span><span class='layout'>)</span>-<a name="line-172"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\904'</span><span class='layout'>,</span><span class='chr'>'\906'</span><span class='layout'>)</span>-<a name="line-173"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\908'</span><span class='layout'>,</span><span class='chr'>'\908'</span><span class='layout'>)</span>-<a name="line-174"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\910'</span><span class='layout'>,</span><span class='chr'>'\929'</span><span class='layout'>)</span>-<a name="line-175"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\931'</span><span class='layout'>,</span><span class='chr'>'\974'</span><span class='layout'>)</span>-<a name="line-176"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\976'</span><span class='layout'>,</span><span class='chr'>'\1013'</span><span class='layout'>)</span>-<a name="line-177"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1015'</span><span class='layout'>,</span><span class='chr'>'\1153'</span><span class='layout'>)</span>-<a name="line-178"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1162'</span><span class='layout'>,</span><span class='chr'>'\1299'</span><span class='layout'>)</span>-<a name="line-179"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1329'</span><span class='layout'>,</span><span class='chr'>'\1366'</span><span class='layout'>)</span>-<a name="line-180"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1369'</span><span class='layout'>,</span><span class='chr'>'\1369'</span><span class='layout'>)</span>-<a name="line-181"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1377'</span><span class='layout'>,</span><span class='chr'>'\1415'</span><span class='layout'>)</span>-<a name="line-182"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1488'</span><span class='layout'>,</span><span class='chr'>'\1514'</span><span class='layout'>)</span>-<a name="line-183"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1520'</span><span class='layout'>,</span><span class='chr'>'\1522'</span><span class='layout'>)</span>-<a name="line-184"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1569'</span><span class='layout'>,</span><span class='chr'>'\1594'</span><span class='layout'>)</span>-<a name="line-185"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1600'</span><span class='layout'>,</span><span class='chr'>'\1610'</span><span class='layout'>)</span>-<a name="line-186"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1646'</span><span class='layout'>,</span><span class='chr'>'\1647'</span><span class='layout'>)</span>-<a name="line-187"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1649'</span><span class='layout'>,</span><span class='chr'>'\1747'</span><span class='layout'>)</span>-<a name="line-188"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1749'</span><span class='layout'>,</span><span class='chr'>'\1749'</span><span class='layout'>)</span>-<a name="line-189"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1765'</span><span class='layout'>,</span><span class='chr'>'\1766'</span><span class='layout'>)</span>-<a name="line-190"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1774'</span><span class='layout'>,</span><span class='chr'>'\1775'</span><span class='layout'>)</span>-<a name="line-191"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1786'</span><span class='layout'>,</span><span class='chr'>'\1788'</span><span class='layout'>)</span>-<a name="line-192"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1791'</span><span class='layout'>,</span><span class='chr'>'\1791'</span><span class='layout'>)</span>-<a name="line-193"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1808'</span><span class='layout'>,</span><span class='chr'>'\1808'</span><span class='layout'>)</span>-<a name="line-194"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1810'</span><span class='layout'>,</span><span class='chr'>'\1839'</span><span class='layout'>)</span>-<a name="line-195"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1869'</span><span class='layout'>,</span><span class='chr'>'\1901'</span><span class='layout'>)</span>-<a name="line-196"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1920'</span><span class='layout'>,</span><span class='chr'>'\1957'</span><span class='layout'>)</span>-<a name="line-197"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1969'</span><span class='layout'>,</span><span class='chr'>'\1969'</span><span class='layout'>)</span>-<a name="line-198"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1994'</span><span class='layout'>,</span><span class='chr'>'\2026'</span><span class='layout'>)</span>-<a name="line-199"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2036'</span><span class='layout'>,</span><span class='chr'>'\2037'</span><span class='layout'>)</span>-<a name="line-200"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2042'</span><span class='layout'>,</span><span class='chr'>'\2042'</span><span class='layout'>)</span>-<a name="line-201"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2308'</span><span class='layout'>,</span><span class='chr'>'\2361'</span><span class='layout'>)</span>-<a name="line-202"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2365'</span><span class='layout'>,</span><span class='chr'>'\2365'</span><span class='layout'>)</span>-<a name="line-203"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2384'</span><span class='layout'>,</span><span class='chr'>'\2384'</span><span class='layout'>)</span>-<a name="line-204"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2392'</span><span class='layout'>,</span><span class='chr'>'\2401'</span><span class='layout'>)</span>-<a name="line-205"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2427'</span><span class='layout'>,</span><span class='chr'>'\2431'</span><span class='layout'>)</span>-<a name="line-206"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2437'</span><span class='layout'>,</span><span class='chr'>'\2444'</span><span class='layout'>)</span>-<a name="line-207"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2447'</span><span class='layout'>,</span><span class='chr'>'\2448'</span><span class='layout'>)</span>-<a name="line-208"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2451'</span><span class='layout'>,</span><span class='chr'>'\2472'</span><span class='layout'>)</span>-<a name="line-209"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2474'</span><span class='layout'>,</span><span class='chr'>'\2480'</span><span class='layout'>)</span>-<a name="line-210"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2482'</span><span class='layout'>,</span><span class='chr'>'\2482'</span><span class='layout'>)</span>-<a name="line-211"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2486'</span><span class='layout'>,</span><span class='chr'>'\2489'</span><span class='layout'>)</span>-<a name="line-212"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2493'</span><span class='layout'>,</span><span class='chr'>'\2493'</span><span class='layout'>)</span>-<a name="line-213"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2510'</span><span class='layout'>,</span><span class='chr'>'\2510'</span><span class='layout'>)</span>-<a name="line-214"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2524'</span><span class='layout'>,</span><span class='chr'>'\2525'</span><span class='layout'>)</span>-<a name="line-215"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2527'</span><span class='layout'>,</span><span class='chr'>'\2529'</span><span class='layout'>)</span>-<a name="line-216"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2544'</span><span class='layout'>,</span><span class='chr'>'\2545'</span><span class='layout'>)</span>-<a name="line-217"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2565'</span><span class='layout'>,</span><span class='chr'>'\2570'</span><span class='layout'>)</span>-<a name="line-218"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2575'</span><span class='layout'>,</span><span class='chr'>'\2576'</span><span class='layout'>)</span>-<a name="line-219"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2579'</span><span class='layout'>,</span><span class='chr'>'\2600'</span><span class='layout'>)</span>-<a name="line-220"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2602'</span><span class='layout'>,</span><span class='chr'>'\2608'</span><span class='layout'>)</span>-<a name="line-221"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2610'</span><span class='layout'>,</span><span class='chr'>'\2611'</span><span class='layout'>)</span>-<a name="line-222"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2613'</span><span class='layout'>,</span><span class='chr'>'\2614'</span><span class='layout'>)</span>-<a name="line-223"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2616'</span><span class='layout'>,</span><span class='chr'>'\2617'</span><span class='layout'>)</span>-<a name="line-224"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2649'</span><span class='layout'>,</span><span class='chr'>'\2652'</span><span class='layout'>)</span>-<a name="line-225"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2654'</span><span class='layout'>,</span><span class='chr'>'\2654'</span><span class='layout'>)</span>-<a name="line-226"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2674'</span><span class='layout'>,</span><span class='chr'>'\2676'</span><span class='layout'>)</span>-<a name="line-227"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2693'</span><span class='layout'>,</span><span class='chr'>'\2701'</span><span class='layout'>)</span>-<a name="line-228"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2703'</span><span class='layout'>,</span><span class='chr'>'\2705'</span><span class='layout'>)</span>-<a name="line-229"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2707'</span><span class='layout'>,</span><span class='chr'>'\2728'</span><span class='layout'>)</span>-<a name="line-230"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2730'</span><span class='layout'>,</span><span class='chr'>'\2736'</span><span class='layout'>)</span>-<a name="line-231"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2738'</span><span class='layout'>,</span><span class='chr'>'\2739'</span><span class='layout'>)</span>-<a name="line-232"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2741'</span><span class='layout'>,</span><span class='chr'>'\2745'</span><span class='layout'>)</span>-<a name="line-233"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2749'</span><span class='layout'>,</span><span class='chr'>'\2749'</span><span class='layout'>)</span>-<a name="line-234"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2768'</span><span class='layout'>,</span><span class='chr'>'\2768'</span><span class='layout'>)</span>-<a name="line-235"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2784'</span><span class='layout'>,</span><span class='chr'>'\2785'</span><span class='layout'>)</span>-<a name="line-236"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2821'</span><span class='layout'>,</span><span class='chr'>'\2828'</span><span class='layout'>)</span>-<a name="line-237"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2831'</span><span class='layout'>,</span><span class='chr'>'\2832'</span><span class='layout'>)</span>-<a name="line-238"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2835'</span><span class='layout'>,</span><span class='chr'>'\2856'</span><span class='layout'>)</span>-<a name="line-239"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2858'</span><span class='layout'>,</span><span class='chr'>'\2864'</span><span class='layout'>)</span>-<a name="line-240"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2866'</span><span class='layout'>,</span><span class='chr'>'\2867'</span><span class='layout'>)</span>-<a name="line-241"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2869'</span><span class='layout'>,</span><span class='chr'>'\2873'</span><span class='layout'>)</span>-<a name="line-242"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2877'</span><span class='layout'>,</span><span class='chr'>'\2877'</span><span class='layout'>)</span>-<a name="line-243"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2908'</span><span class='layout'>,</span><span class='chr'>'\2909'</span><span class='layout'>)</span>-<a name="line-244"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2911'</span><span class='layout'>,</span><span class='chr'>'\2913'</span><span class='layout'>)</span>-<a name="line-245"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2929'</span><span class='layout'>,</span><span class='chr'>'\2929'</span><span class='layout'>)</span>-<a name="line-246"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2947'</span><span class='layout'>,</span><span class='chr'>'\2947'</span><span class='layout'>)</span>-<a name="line-247"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2949'</span><span class='layout'>,</span><span class='chr'>'\2954'</span><span class='layout'>)</span>-<a name="line-248"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2958'</span><span class='layout'>,</span><span class='chr'>'\2960'</span><span class='layout'>)</span>-<a name="line-249"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2962'</span><span class='layout'>,</span><span class='chr'>'\2965'</span><span class='layout'>)</span>-<a name="line-250"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2969'</span><span class='layout'>,</span><span class='chr'>'\2970'</span><span class='layout'>)</span>-<a name="line-251"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2972'</span><span class='layout'>,</span><span class='chr'>'\2972'</span><span class='layout'>)</span>-<a name="line-252"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2974'</span><span class='layout'>,</span><span class='chr'>'\2975'</span><span class='layout'>)</span>-<a name="line-253"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2979'</span><span class='layout'>,</span><span class='chr'>'\2980'</span><span class='layout'>)</span>-<a name="line-254"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2984'</span><span class='layout'>,</span><span class='chr'>'\2986'</span><span class='layout'>)</span>-<a name="line-255"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2990'</span><span class='layout'>,</span><span class='chr'>'\3001'</span><span class='layout'>)</span>-<a name="line-256"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3077'</span><span class='layout'>,</span><span class='chr'>'\3084'</span><span class='layout'>)</span>-<a name="line-257"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3086'</span><span class='layout'>,</span><span class='chr'>'\3088'</span><span class='layout'>)</span>-<a name="line-258"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3090'</span><span class='layout'>,</span><span class='chr'>'\3112'</span><span class='layout'>)</span>-<a name="line-259"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3114'</span><span class='layout'>,</span><span class='chr'>'\3123'</span><span class='layout'>)</span>-<a name="line-260"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3125'</span><span class='layout'>,</span><span class='chr'>'\3129'</span><span class='layout'>)</span>-<a name="line-261"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3168'</span><span class='layout'>,</span><span class='chr'>'\3169'</span><span class='layout'>)</span>-<a name="line-262"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3205'</span><span class='layout'>,</span><span class='chr'>'\3212'</span><span class='layout'>)</span>-<a name="line-263"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3214'</span><span class='layout'>,</span><span class='chr'>'\3216'</span><span class='layout'>)</span>-<a name="line-264"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3218'</span><span class='layout'>,</span><span class='chr'>'\3240'</span><span class='layout'>)</span>-<a name="line-265"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3242'</span><span class='layout'>,</span><span class='chr'>'\3251'</span><span class='layout'>)</span>-<a name="line-266"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3253'</span><span class='layout'>,</span><span class='chr'>'\3257'</span><span class='layout'>)</span>-<a name="line-267"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3261'</span><span class='layout'>,</span><span class='chr'>'\3261'</span><span class='layout'>)</span>-<a name="line-268"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3294'</span><span class='layout'>,</span><span class='chr'>'\3294'</span><span class='layout'>)</span>-<a name="line-269"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3296'</span><span class='layout'>,</span><span class='chr'>'\3297'</span><span class='layout'>)</span>-<a name="line-270"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3333'</span><span class='layout'>,</span><span class='chr'>'\3340'</span><span class='layout'>)</span>-<a name="line-271"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3342'</span><span class='layout'>,</span><span class='chr'>'\3344'</span><span class='layout'>)</span>-<a name="line-272"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3346'</span><span class='layout'>,</span><span class='chr'>'\3368'</span><span class='layout'>)</span>-<a name="line-273"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3370'</span><span class='layout'>,</span><span class='chr'>'\3385'</span><span class='layout'>)</span>-<a name="line-274"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3424'</span><span class='layout'>,</span><span class='chr'>'\3425'</span><span class='layout'>)</span>-<a name="line-275"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3461'</span><span class='layout'>,</span><span class='chr'>'\3478'</span><span class='layout'>)</span>-<a name="line-276"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3482'</span><span class='layout'>,</span><span class='chr'>'\3505'</span><span class='layout'>)</span>-<a name="line-277"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3507'</span><span class='layout'>,</span><span class='chr'>'\3515'</span><span class='layout'>)</span>-<a name="line-278"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3517'</span><span class='layout'>,</span><span class='chr'>'\3517'</span><span class='layout'>)</span>-<a name="line-279"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3520'</span><span class='layout'>,</span><span class='chr'>'\3526'</span><span class='layout'>)</span>-<a name="line-280"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3585'</span><span class='layout'>,</span><span class='chr'>'\3632'</span><span class='layout'>)</span>-<a name="line-281"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3634'</span><span class='layout'>,</span><span class='chr'>'\3635'</span><span class='layout'>)</span>-<a name="line-282"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3648'</span><span class='layout'>,</span><span class='chr'>'\3654'</span><span class='layout'>)</span>-<a name="line-283"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3713'</span><span class='layout'>,</span><span class='chr'>'\3714'</span><span class='layout'>)</span>-<a name="line-284"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3716'</span><span class='layout'>,</span><span class='chr'>'\3716'</span><span class='layout'>)</span>-<a name="line-285"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3719'</span><span class='layout'>,</span><span class='chr'>'\3720'</span><span class='layout'>)</span>-<a name="line-286"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3722'</span><span class='layout'>,</span><span class='chr'>'\3722'</span><span class='layout'>)</span>-<a name="line-287"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3725'</span><span class='layout'>,</span><span class='chr'>'\3725'</span><span class='layout'>)</span>-<a name="line-288"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3732'</span><span class='layout'>,</span><span class='chr'>'\3735'</span><span class='layout'>)</span>-<a name="line-289"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3737'</span><span class='layout'>,</span><span class='chr'>'\3743'</span><span class='layout'>)</span>-<a name="line-290"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3745'</span><span class='layout'>,</span><span class='chr'>'\3747'</span><span class='layout'>)</span>-<a name="line-291"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3749'</span><span class='layout'>,</span><span class='chr'>'\3749'</span><span class='layout'>)</span>-<a name="line-292"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3751'</span><span class='layout'>,</span><span class='chr'>'\3751'</span><span class='layout'>)</span>-<a name="line-293"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3754'</span><span class='layout'>,</span><span class='chr'>'\3755'</span><span class='layout'>)</span>-<a name="line-294"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3757'</span><span class='layout'>,</span><span class='chr'>'\3760'</span><span class='layout'>)</span>-<a name="line-295"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3762'</span><span class='layout'>,</span><span class='chr'>'\3763'</span><span class='layout'>)</span>-<a name="line-296"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3773'</span><span class='layout'>,</span><span class='chr'>'\3773'</span><span class='layout'>)</span>-<a name="line-297"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3776'</span><span class='layout'>,</span><span class='chr'>'\3780'</span><span class='layout'>)</span>-<a name="line-298"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3782'</span><span class='layout'>,</span><span class='chr'>'\3782'</span><span class='layout'>)</span>-<a name="line-299"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3804'</span><span class='layout'>,</span><span class='chr'>'\3805'</span><span class='layout'>)</span>-<a name="line-300"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3840'</span><span class='layout'>,</span><span class='chr'>'\3840'</span><span class='layout'>)</span>-<a name="line-301"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3904'</span><span class='layout'>,</span><span class='chr'>'\3911'</span><span class='layout'>)</span>-<a name="line-302"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3913'</span><span class='layout'>,</span><span class='chr'>'\3946'</span><span class='layout'>)</span>-<a name="line-303"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3976'</span><span class='layout'>,</span><span class='chr'>'\3979'</span><span class='layout'>)</span>-<a name="line-304"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4096'</span><span class='layout'>,</span><span class='chr'>'\4129'</span><span class='layout'>)</span>-<a name="line-305"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4131'</span><span class='layout'>,</span><span class='chr'>'\4135'</span><span class='layout'>)</span>-<a name="line-306"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4137'</span><span class='layout'>,</span><span class='chr'>'\4138'</span><span class='layout'>)</span>-<a name="line-307"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4176'</span><span class='layout'>,</span><span class='chr'>'\4181'</span><span class='layout'>)</span>-<a name="line-308"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4256'</span><span class='layout'>,</span><span class='chr'>'\4293'</span><span class='layout'>)</span>-<a name="line-309"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4304'</span><span class='layout'>,</span><span class='chr'>'\4346'</span><span class='layout'>)</span>-<a name="line-310"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4348'</span><span class='layout'>,</span><span class='chr'>'\4348'</span><span class='layout'>)</span>-<a name="line-311"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4352'</span><span class='layout'>,</span><span class='chr'>'\4441'</span><span class='layout'>)</span>-<a name="line-312"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4447'</span><span class='layout'>,</span><span class='chr'>'\4514'</span><span class='layout'>)</span>-<a name="line-313"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4520'</span><span class='layout'>,</span><span class='chr'>'\4601'</span><span class='layout'>)</span>-<a name="line-314"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4608'</span><span class='layout'>,</span><span class='chr'>'\4680'</span><span class='layout'>)</span>-<a name="line-315"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4682'</span><span class='layout'>,</span><span class='chr'>'\4685'</span><span class='layout'>)</span>-<a name="line-316"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4688'</span><span class='layout'>,</span><span class='chr'>'\4694'</span><span class='layout'>)</span>-<a name="line-317"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4696'</span><span class='layout'>,</span><span class='chr'>'\4696'</span><span class='layout'>)</span>-<a name="line-318"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4698'</span><span class='layout'>,</span><span class='chr'>'\4701'</span><span class='layout'>)</span>-<a name="line-319"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4704'</span><span class='layout'>,</span><span class='chr'>'\4744'</span><span class='layout'>)</span>-<a name="line-320"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4746'</span><span class='layout'>,</span><span class='chr'>'\4749'</span><span class='layout'>)</span>-<a name="line-321"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4752'</span><span class='layout'>,</span><span class='chr'>'\4784'</span><span class='layout'>)</span>-<a name="line-322"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4786'</span><span class='layout'>,</span><span class='chr'>'\4789'</span><span class='layout'>)</span>-<a name="line-323"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4792'</span><span class='layout'>,</span><span class='chr'>'\4798'</span><span class='layout'>)</span>-<a name="line-324"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4800'</span><span class='layout'>,</span><span class='chr'>'\4800'</span><span class='layout'>)</span>-<a name="line-325"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4802'</span><span class='layout'>,</span><span class='chr'>'\4805'</span><span class='layout'>)</span>-<a name="line-326"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4808'</span><span class='layout'>,</span><span class='chr'>'\4822'</span><span class='layout'>)</span>-<a name="line-327"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4824'</span><span class='layout'>,</span><span class='chr'>'\4880'</span><span class='layout'>)</span>-<a name="line-328"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4882'</span><span class='layout'>,</span><span class='chr'>'\4885'</span><span class='layout'>)</span>-<a name="line-329"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4888'</span><span class='layout'>,</span><span class='chr'>'\4954'</span><span class='layout'>)</span>-<a name="line-330"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4992'</span><span class='layout'>,</span><span class='chr'>'\5007'</span><span class='layout'>)</span>-<a name="line-331"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5024'</span><span class='layout'>,</span><span class='chr'>'\5108'</span><span class='layout'>)</span>-<a name="line-332"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5121'</span><span class='layout'>,</span><span class='chr'>'\5740'</span><span class='layout'>)</span>-<a name="line-333"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5743'</span><span class='layout'>,</span><span class='chr'>'\5750'</span><span class='layout'>)</span>-<a name="line-334"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5761'</span><span class='layout'>,</span><span class='chr'>'\5786'</span><span class='layout'>)</span>-<a name="line-335"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5792'</span><span class='layout'>,</span><span class='chr'>'\5866'</span><span class='layout'>)</span>-<a name="line-336"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5888'</span><span class='layout'>,</span><span class='chr'>'\5900'</span><span class='layout'>)</span>-<a name="line-337"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5902'</span><span class='layout'>,</span><span class='chr'>'\5905'</span><span class='layout'>)</span>-<a name="line-338"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5920'</span><span class='layout'>,</span><span class='chr'>'\5937'</span><span class='layout'>)</span>-<a name="line-339"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5952'</span><span class='layout'>,</span><span class='chr'>'\5969'</span><span class='layout'>)</span>-<a name="line-340"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5984'</span><span class='layout'>,</span><span class='chr'>'\5996'</span><span class='layout'>)</span>-<a name="line-341"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5998'</span><span class='layout'>,</span><span class='chr'>'\6000'</span><span class='layout'>)</span>-<a name="line-342"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6016'</span><span class='layout'>,</span><span class='chr'>'\6067'</span><span class='layout'>)</span>-<a name="line-343"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6103'</span><span class='layout'>,</span><span class='chr'>'\6103'</span><span class='layout'>)</span>-<a name="line-344"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6108'</span><span class='layout'>,</span><span class='chr'>'\6108'</span><span class='layout'>)</span>-<a name="line-345"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6176'</span><span class='layout'>,</span><span class='chr'>'\6263'</span><span class='layout'>)</span>-<a name="line-346"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6272'</span><span class='layout'>,</span><span class='chr'>'\6312'</span><span class='layout'>)</span>-<a name="line-347"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6400'</span><span class='layout'>,</span><span class='chr'>'\6428'</span><span class='layout'>)</span>-<a name="line-348"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6480'</span><span class='layout'>,</span><span class='chr'>'\6509'</span><span class='layout'>)</span>-<a name="line-349"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6512'</span><span class='layout'>,</span><span class='chr'>'\6516'</span><span class='layout'>)</span>-<a name="line-350"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6528'</span><span class='layout'>,</span><span class='chr'>'\6569'</span><span class='layout'>)</span>-<a name="line-351"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6593'</span><span class='layout'>,</span><span class='chr'>'\6599'</span><span class='layout'>)</span>-<a name="line-352"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6656'</span><span class='layout'>,</span><span class='chr'>'\6678'</span><span class='layout'>)</span>-<a name="line-353"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6917'</span><span class='layout'>,</span><span class='chr'>'\6963'</span><span class='layout'>)</span>-<a name="line-354"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6981'</span><span class='layout'>,</span><span class='chr'>'\6987'</span><span class='layout'>)</span>-<a name="line-355"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7424'</span><span class='layout'>,</span><span class='chr'>'\7615'</span><span class='layout'>)</span>-<a name="line-356"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7680'</span><span class='layout'>,</span><span class='chr'>'\7835'</span><span class='layout'>)</span>-<a name="line-357"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7840'</span><span class='layout'>,</span><span class='chr'>'\7929'</span><span class='layout'>)</span>-<a name="line-358"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7936'</span><span class='layout'>,</span><span class='chr'>'\7957'</span><span class='layout'>)</span>-<a name="line-359"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7960'</span><span class='layout'>,</span><span class='chr'>'\7965'</span><span class='layout'>)</span>-<a name="line-360"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7968'</span><span class='layout'>,</span><span class='chr'>'\8005'</span><span class='layout'>)</span>-<a name="line-361"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8008'</span><span class='layout'>,</span><span class='chr'>'\8013'</span><span class='layout'>)</span>-<a name="line-362"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8016'</span><span class='layout'>,</span><span class='chr'>'\8023'</span><span class='layout'>)</span>-<a name="line-363"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8025'</span><span class='layout'>,</span><span class='chr'>'\8025'</span><span class='layout'>)</span>-<a name="line-364"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8027'</span><span class='layout'>,</span><span class='chr'>'\8027'</span><span class='layout'>)</span>-<a name="line-365"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8029'</span><span class='layout'>,</span><span class='chr'>'\8029'</span><span class='layout'>)</span>-<a name="line-366"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8031'</span><span class='layout'>,</span><span class='chr'>'\8061'</span><span class='layout'>)</span>-<a name="line-367"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8064'</span><span class='layout'>,</span><span class='chr'>'\8116'</span><span class='layout'>)</span>-<a name="line-368"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8118'</span><span class='layout'>,</span><span class='chr'>'\8124'</span><span class='layout'>)</span>-<a name="line-369"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8126'</span><span class='layout'>,</span><span class='chr'>'\8126'</span><span class='layout'>)</span>-<a name="line-370"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8130'</span><span class='layout'>,</span><span class='chr'>'\8132'</span><span class='layout'>)</span>-<a name="line-371"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8134'</span><span class='layout'>,</span><span class='chr'>'\8140'</span><span class='layout'>)</span>-<a name="line-372"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8144'</span><span class='layout'>,</span><span class='chr'>'\8147'</span><span class='layout'>)</span>-<a name="line-373"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8150'</span><span class='layout'>,</span><span class='chr'>'\8155'</span><span class='layout'>)</span>-<a name="line-374"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8160'</span><span class='layout'>,</span><span class='chr'>'\8172'</span><span class='layout'>)</span>-<a name="line-375"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8178'</span><span class='layout'>,</span><span class='chr'>'\8180'</span><span class='layout'>)</span>-<a name="line-376"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8182'</span><span class='layout'>,</span><span class='chr'>'\8188'</span><span class='layout'>)</span>-<a name="line-377"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8305'</span><span class='layout'>,</span><span class='chr'>'\8305'</span><span class='layout'>)</span>-<a name="line-378"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8319'</span><span class='layout'>,</span><span class='chr'>'\8319'</span><span class='layout'>)</span>-<a name="line-379"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8336'</span><span class='layout'>,</span><span class='chr'>'\8340'</span><span class='layout'>)</span>-<a name="line-380"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8450'</span><span class='layout'>,</span><span class='chr'>'\8450'</span><span class='layout'>)</span>-<a name="line-381"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8455'</span><span class='layout'>,</span><span class='chr'>'\8455'</span><span class='layout'>)</span>-<a name="line-382"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8458'</span><span class='layout'>,</span><span class='chr'>'\8467'</span><span class='layout'>)</span>-<a name="line-383"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8469'</span><span class='layout'>,</span><span class='chr'>'\8469'</span><span class='layout'>)</span>-<a name="line-384"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8473'</span><span class='layout'>,</span><span class='chr'>'\8477'</span><span class='layout'>)</span>-<a name="line-385"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8484'</span><span class='layout'>,</span><span class='chr'>'\8484'</span><span class='layout'>)</span>-<a name="line-386"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8486'</span><span class='layout'>,</span><span class='chr'>'\8486'</span><span class='layout'>)</span>-<a name="line-387"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8488'</span><span class='layout'>,</span><span class='chr'>'\8488'</span><span class='layout'>)</span>-<a name="line-388"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8490'</span><span class='layout'>,</span><span class='chr'>'\8493'</span><span class='layout'>)</span>-<a name="line-389"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8495'</span><span class='layout'>,</span><span class='chr'>'\8505'</span><span class='layout'>)</span>-<a name="line-390"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8508'</span><span class='layout'>,</span><span class='chr'>'\8511'</span><span class='layout'>)</span>-<a name="line-391"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8517'</span><span class='layout'>,</span><span class='chr'>'\8521'</span><span class='layout'>)</span>-<a name="line-392"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8526'</span><span class='layout'>,</span><span class='chr'>'\8526'</span><span class='layout'>)</span>-<a name="line-393"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8579'</span><span class='layout'>,</span><span class='chr'>'\8580'</span><span class='layout'>)</span>-<a name="line-394"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11264'</span><span class='layout'>,</span><span class='chr'>'\11310'</span><span class='layout'>)</span>-<a name="line-395"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11312'</span><span class='layout'>,</span><span class='chr'>'\11358'</span><span class='layout'>)</span>-<a name="line-396"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11360'</span><span class='layout'>,</span><span class='chr'>'\11372'</span><span class='layout'>)</span>-<a name="line-397"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11380'</span><span class='layout'>,</span><span class='chr'>'\11383'</span><span class='layout'>)</span>-<a name="line-398"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11392'</span><span class='layout'>,</span><span class='chr'>'\11492'</span><span class='layout'>)</span>-<a name="line-399"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11520'</span><span class='layout'>,</span><span class='chr'>'\11557'</span><span class='layout'>)</span>-<a name="line-400"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11568'</span><span class='layout'>,</span><span class='chr'>'\11621'</span><span class='layout'>)</span>-<a name="line-401"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11631'</span><span class='layout'>,</span><span class='chr'>'\11631'</span><span class='layout'>)</span>-<a name="line-402"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11648'</span><span class='layout'>,</span><span class='chr'>'\11670'</span><span class='layout'>)</span>-<a name="line-403"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11680'</span><span class='layout'>,</span><span class='chr'>'\11686'</span><span class='layout'>)</span>-<a name="line-404"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11688'</span><span class='layout'>,</span><span class='chr'>'\11694'</span><span class='layout'>)</span>-<a name="line-405"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11696'</span><span class='layout'>,</span><span class='chr'>'\11702'</span><span class='layout'>)</span>-<a name="line-406"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11704'</span><span class='layout'>,</span><span class='chr'>'\11710'</span><span class='layout'>)</span>-<a name="line-407"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11712'</span><span class='layout'>,</span><span class='chr'>'\11718'</span><span class='layout'>)</span>-<a name="line-408"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11720'</span><span class='layout'>,</span><span class='chr'>'\11726'</span><span class='layout'>)</span>-<a name="line-409"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11728'</span><span class='layout'>,</span><span class='chr'>'\11734'</span><span class='layout'>)</span>-<a name="line-410"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11736'</span><span class='layout'>,</span><span class='chr'>'\11742'</span><span class='layout'>)</span>-<a name="line-411"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12293'</span><span class='layout'>,</span><span class='chr'>'\12294'</span><span class='layout'>)</span>-<a name="line-412"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12337'</span><span class='layout'>,</span><span class='chr'>'\12341'</span><span class='layout'>)</span>-<a name="line-413"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12347'</span><span class='layout'>,</span><span class='chr'>'\12348'</span><span class='layout'>)</span>-<a name="line-414"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12353'</span><span class='layout'>,</span><span class='chr'>'\12438'</span><span class='layout'>)</span>-<a name="line-415"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12445'</span><span class='layout'>,</span><span class='chr'>'\12447'</span><span class='layout'>)</span>-<a name="line-416"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12449'</span><span class='layout'>,</span><span class='chr'>'\12538'</span><span class='layout'>)</span>-<a name="line-417"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12540'</span><span class='layout'>,</span><span class='chr'>'\12543'</span><span class='layout'>)</span>-<a name="line-418"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12549'</span><span class='layout'>,</span><span class='chr'>'\12588'</span><span class='layout'>)</span>-<a name="line-419"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12593'</span><span class='layout'>,</span><span class='chr'>'\12686'</span><span class='layout'>)</span>-<a name="line-420"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12704'</span><span class='layout'>,</span><span class='chr'>'\12727'</span><span class='layout'>)</span>-<a name="line-421"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12784'</span><span class='layout'>,</span><span class='chr'>'\12799'</span><span class='layout'>)</span>-<a name="line-422"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\13312'</span><span class='layout'>,</span><span class='chr'>'\13312'</span><span class='layout'>)</span>-<a name="line-423"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\19893'</span><span class='layout'>,</span><span class='chr'>'\19893'</span><span class='layout'>)</span>-<a name="line-424"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\19968'</span><span class='layout'>,</span><span class='chr'>'\19968'</span><span class='layout'>)</span>-<a name="line-425"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\40891'</span><span class='layout'>,</span><span class='chr'>'\40891'</span><span class='layout'>)</span>-<a name="line-426"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\40960'</span><span class='layout'>,</span><span class='chr'>'\42124'</span><span class='layout'>)</span>-<a name="line-427"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\42775'</span><span class='layout'>,</span><span class='chr'>'\42778'</span><span class='layout'>)</span>-<a name="line-428"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\43008'</span><span class='layout'>,</span><span class='chr'>'\43009'</span><span class='layout'>)</span>-<a name="line-429"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\43011'</span><span class='layout'>,</span><span class='chr'>'\43013'</span><span class='layout'>)</span>-<a name="line-430"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\43015'</span><span class='layout'>,</span><span class='chr'>'\43018'</span><span class='layout'>)</span>-<a name="line-431"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\43020'</span><span class='layout'>,</span><span class='chr'>'\43042'</span><span class='layout'>)</span>-<a name="line-432"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\43072'</span><span class='layout'>,</span><span class='chr'>'\43123'</span><span class='layout'>)</span>-<a name="line-433"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\44032'</span><span class='layout'>,</span><span class='chr'>'\44032'</span><span class='layout'>)</span>-<a name="line-434"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\55203'</span><span class='layout'>,</span><span class='chr'>'\55203'</span><span class='layout'>)</span>-<a name="line-435"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\63744'</span><span class='layout'>,</span><span class='chr'>'\64045'</span><span class='layout'>)</span>-<a name="line-436"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64048'</span><span class='layout'>,</span><span class='chr'>'\64106'</span><span class='layout'>)</span>-<a name="line-437"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64112'</span><span class='layout'>,</span><span class='chr'>'\64217'</span><span class='layout'>)</span>-<a name="line-438"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64256'</span><span class='layout'>,</span><span class='chr'>'\64262'</span><span class='layout'>)</span>-<a name="line-439"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64275'</span><span class='layout'>,</span><span class='chr'>'\64279'</span><span class='layout'>)</span>-<a name="line-440"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64285'</span><span class='layout'>,</span><span class='chr'>'\64285'</span><span class='layout'>)</span>-<a name="line-441"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64287'</span><span class='layout'>,</span><span class='chr'>'\64296'</span><span class='layout'>)</span>-<a name="line-442"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64298'</span><span class='layout'>,</span><span class='chr'>'\64310'</span><span class='layout'>)</span>-<a name="line-443"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64312'</span><span class='layout'>,</span><span class='chr'>'\64316'</span><span class='layout'>)</span>-<a name="line-444"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64318'</span><span class='layout'>,</span><span class='chr'>'\64318'</span><span class='layout'>)</span>-<a name="line-445"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64320'</span><span class='layout'>,</span><span class='chr'>'\64321'</span><span class='layout'>)</span>-<a name="line-446"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64323'</span><span class='layout'>,</span><span class='chr'>'\64324'</span><span class='layout'>)</span>-<a name="line-447"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64326'</span><span class='layout'>,</span><span class='chr'>'\64433'</span><span class='layout'>)</span>-<a name="line-448"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64467'</span><span class='layout'>,</span><span class='chr'>'\64829'</span><span class='layout'>)</span>-<a name="line-449"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64848'</span><span class='layout'>,</span><span class='chr'>'\64911'</span><span class='layout'>)</span>-<a name="line-450"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64914'</span><span class='layout'>,</span><span class='chr'>'\64967'</span><span class='layout'>)</span>-<a name="line-451"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65008'</span><span class='layout'>,</span><span class='chr'>'\65019'</span><span class='layout'>)</span>-<a name="line-452"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65136'</span><span class='layout'>,</span><span class='chr'>'\65140'</span><span class='layout'>)</span>-<a name="line-453"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65142'</span><span class='layout'>,</span><span class='chr'>'\65276'</span><span class='layout'>)</span>-<a name="line-454"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65313'</span><span class='layout'>,</span><span class='chr'>'\65338'</span><span class='layout'>)</span>-<a name="line-455"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65345'</span><span class='layout'>,</span><span class='chr'>'\65370'</span><span class='layout'>)</span>-<a name="line-456"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65382'</span><span class='layout'>,</span><span class='chr'>'\65470'</span><span class='layout'>)</span>-<a name="line-457"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65474'</span><span class='layout'>,</span><span class='chr'>'\65479'</span><span class='layout'>)</span>-<a name="line-458"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65482'</span><span class='layout'>,</span><span class='chr'>'\65487'</span><span class='layout'>)</span>-<a name="line-459"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65490'</span><span class='layout'>,</span><span class='chr'>'\65495'</span><span class='layout'>)</span>-<a name="line-460"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65498'</span><span class='layout'>,</span><span class='chr'>'\65500'</span><span class='layout'>)</span>-<a name="line-461"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65536'</span><span class='layout'>,</span><span class='chr'>'\65547'</span><span class='layout'>)</span>-<a name="line-462"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65549'</span><span class='layout'>,</span><span class='chr'>'\65574'</span><span class='layout'>)</span>-<a name="line-463"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65576'</span><span class='layout'>,</span><span class='chr'>'\65594'</span><span class='layout'>)</span>-<a name="line-464"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65596'</span><span class='layout'>,</span><span class='chr'>'\65597'</span><span class='layout'>)</span>-<a name="line-465"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65599'</span><span class='layout'>,</span><span class='chr'>'\65613'</span><span class='layout'>)</span>-<a name="line-466"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65616'</span><span class='layout'>,</span><span class='chr'>'\65629'</span><span class='layout'>)</span>-<a name="line-467"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65664'</span><span class='layout'>,</span><span class='chr'>'\65786'</span><span class='layout'>)</span>-<a name="line-468"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\66304'</span><span class='layout'>,</span><span class='chr'>'\66334'</span><span class='layout'>)</span>-<a name="line-469"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\66352'</span><span class='layout'>,</span><span class='chr'>'\66368'</span><span class='layout'>)</span>-<a name="line-470"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\66370'</span><span class='layout'>,</span><span class='chr'>'\66377'</span><span class='layout'>)</span>-<a name="line-471"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\66432'</span><span class='layout'>,</span><span class='chr'>'\66461'</span><span class='layout'>)</span>-<a name="line-472"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\66464'</span><span class='layout'>,</span><span class='chr'>'\66499'</span><span class='layout'>)</span>-<a name="line-473"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\66504'</span><span class='layout'>,</span><span class='chr'>'\66511'</span><span class='layout'>)</span>-<a name="line-474"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\66560'</span><span class='layout'>,</span><span class='chr'>'\66717'</span><span class='layout'>)</span>-<a name="line-475"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\67584'</span><span class='layout'>,</span><span class='chr'>'\67589'</span><span class='layout'>)</span>-<a name="line-476"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\67592'</span><span class='layout'>,</span><span class='chr'>'\67592'</span><span class='layout'>)</span>-<a name="line-477"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\67594'</span><span class='layout'>,</span><span class='chr'>'\67637'</span><span class='layout'>)</span>-<a name="line-478"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\67639'</span><span class='layout'>,</span><span class='chr'>'\67640'</span><span class='layout'>)</span>-<a name="line-479"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\67644'</span><span class='layout'>,</span><span class='chr'>'\67644'</span><span class='layout'>)</span>-<a name="line-480"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\67647'</span><span class='layout'>,</span><span class='chr'>'\67647'</span><span class='layout'>)</span>-<a name="line-481"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\67840'</span><span class='layout'>,</span><span class='chr'>'\67861'</span><span class='layout'>)</span>-<a name="line-482"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\68096'</span><span class='layout'>,</span><span class='chr'>'\68096'</span><span class='layout'>)</span>-<a name="line-483"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\68112'</span><span class='layout'>,</span><span class='chr'>'\68115'</span><span class='layout'>)</span>-<a name="line-484"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\68117'</span><span class='layout'>,</span><span class='chr'>'\68119'</span><span class='layout'>)</span>-<a name="line-485"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\68121'</span><span class='layout'>,</span><span class='chr'>'\68147'</span><span class='layout'>)</span>-<a name="line-486"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\73728'</span><span class='layout'>,</span><span class='chr'>'\74606'</span><span class='layout'>)</span>-<a name="line-487"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119808'</span><span class='layout'>,</span><span class='chr'>'\119892'</span><span class='layout'>)</span>-<a name="line-488"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119894'</span><span class='layout'>,</span><span class='chr'>'\119964'</span><span class='layout'>)</span>-<a name="line-489"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119966'</span><span class='layout'>,</span><span class='chr'>'\119967'</span><span class='layout'>)</span>-<a name="line-490"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119970'</span><span class='layout'>,</span><span class='chr'>'\119970'</span><span class='layout'>)</span>-<a name="line-491"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119973'</span><span class='layout'>,</span><span class='chr'>'\119974'</span><span class='layout'>)</span>-<a name="line-492"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119977'</span><span class='layout'>,</span><span class='chr'>'\119980'</span><span class='layout'>)</span>-<a name="line-493"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119982'</span><span class='layout'>,</span><span class='chr'>'\119993'</span><span class='layout'>)</span>-<a name="line-494"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119995'</span><span class='layout'>,</span><span class='chr'>'\119995'</span><span class='layout'>)</span>-<a name="line-495"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119997'</span><span class='layout'>,</span><span class='chr'>'\120003'</span><span class='layout'>)</span>-<a name="line-496"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120005'</span><span class='layout'>,</span><span class='chr'>'\120069'</span><span class='layout'>)</span>-<a name="line-497"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120071'</span><span class='layout'>,</span><span class='chr'>'\120074'</span><span class='layout'>)</span>-<a name="line-498"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120077'</span><span class='layout'>,</span><span class='chr'>'\120084'</span><span class='layout'>)</span>-<a name="line-499"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120086'</span><span class='layout'>,</span><span class='chr'>'\120092'</span><span class='layout'>)</span>-<a name="line-500"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120094'</span><span class='layout'>,</span><span class='chr'>'\120121'</span><span class='layout'>)</span>-<a name="line-501"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120123'</span><span class='layout'>,</span><span class='chr'>'\120126'</span><span class='layout'>)</span>-<a name="line-502"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120128'</span><span class='layout'>,</span><span class='chr'>'\120132'</span><span class='layout'>)</span>-<a name="line-503"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120134'</span><span class='layout'>,</span><span class='chr'>'\120134'</span><span class='layout'>)</span>-<a name="line-504"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120138'</span><span class='layout'>,</span><span class='chr'>'\120144'</span><span class='layout'>)</span>-<a name="line-505"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120146'</span><span class='layout'>,</span><span class='chr'>'\120485'</span><span class='layout'>)</span>-<a name="line-506"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120488'</span><span class='layout'>,</span><span class='chr'>'\120512'</span><span class='layout'>)</span>-<a name="line-507"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120514'</span><span class='layout'>,</span><span class='chr'>'\120538'</span><span class='layout'>)</span>-<a name="line-508"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120540'</span><span class='layout'>,</span><span class='chr'>'\120570'</span><span class='layout'>)</span>-<a name="line-509"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120572'</span><span class='layout'>,</span><span class='chr'>'\120596'</span><span class='layout'>)</span>-<a name="line-510"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120598'</span><span class='layout'>,</span><span class='chr'>'\120628'</span><span class='layout'>)</span>-<a name="line-511"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120630'</span><span class='layout'>,</span><span class='chr'>'\120654'</span><span class='layout'>)</span>-<a name="line-512"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120656'</span><span class='layout'>,</span><span class='chr'>'\120686'</span><span class='layout'>)</span>-<a name="line-513"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120688'</span><span class='layout'>,</span><span class='chr'>'\120712'</span><span class='layout'>)</span>-<a name="line-514"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120714'</span><span class='layout'>,</span><span class='chr'>'\120744'</span><span class='layout'>)</span>-<a name="line-515"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120746'</span><span class='layout'>,</span><span class='chr'>'\120770'</span><span class='layout'>)</span>-<a name="line-516"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120772'</span><span class='layout'>,</span><span class='chr'>'\120779'</span><span class='layout'>)</span>-<a name="line-517"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\131072'</span><span class='layout'>,</span><span class='chr'>'\131072'</span><span class='layout'>)</span>-<a name="line-518"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\173782'</span><span class='layout'>,</span><span class='chr'>'\173782'</span><span class='layout'>)</span>-<a name="line-519"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\194560'</span><span class='layout'>,</span><span class='chr'>'\195101'</span><span class='layout'>)</span>-<a name="line-520"></a> <span class='keyglyph'>]</span>-<a name="line-521"></a>-<a name="line-522"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-523"></a>-<a name="line-524"></a><a name="isUnicodeLl"></a><span class='definition'>isUnicodeLl</span> <span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-525"></a><span class='definition'>isUnicodeLl</span> <span class='varid'>c</span>-<a name="line-526"></a> <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>-<a name="line-527"></a> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'a'</span><span class='layout'>,</span><span class='chr'>'z'</span><span class='layout'>)</span>-<a name="line-528"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\170'</span><span class='layout'>,</span><span class='chr'>'\170'</span><span class='layout'>)</span>-<a name="line-529"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\181'</span><span class='layout'>,</span><span class='chr'>'\181'</span><span class='layout'>)</span>-<a name="line-530"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\186'</span><span class='layout'>,</span><span class='chr'>'\186'</span><span class='layout'>)</span>-<a name="line-531"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\223'</span><span class='layout'>,</span><span class='chr'>'\246'</span><span class='layout'>)</span>-<a name="line-532"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\248'</span><span class='layout'>,</span><span class='chr'>'\255'</span><span class='layout'>)</span>-<a name="line-533"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\257'</span><span class='layout'>,</span><span class='chr'>'\257'</span><span class='layout'>)</span>-<a name="line-534"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\259'</span><span class='layout'>,</span><span class='chr'>'\259'</span><span class='layout'>)</span>-<a name="line-535"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\261'</span><span class='layout'>,</span><span class='chr'>'\261'</span><span class='layout'>)</span>-<a name="line-536"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\263'</span><span class='layout'>,</span><span class='chr'>'\263'</span><span class='layout'>)</span>-<a name="line-537"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\265'</span><span class='layout'>,</span><span class='chr'>'\265'</span><span class='layout'>)</span>-<a name="line-538"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\267'</span><span class='layout'>,</span><span class='chr'>'\267'</span><span class='layout'>)</span>-<a name="line-539"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\269'</span><span class='layout'>,</span><span class='chr'>'\269'</span><span class='layout'>)</span>-<a name="line-540"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\271'</span><span class='layout'>,</span><span class='chr'>'\271'</span><span class='layout'>)</span>-<a name="line-541"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\273'</span><span class='layout'>,</span><span class='chr'>'\273'</span><span class='layout'>)</span>-<a name="line-542"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\275'</span><span class='layout'>,</span><span class='chr'>'\275'</span><span class='layout'>)</span>-<a name="line-543"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\277'</span><span class='layout'>,</span><span class='chr'>'\277'</span><span class='layout'>)</span>-<a name="line-544"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\279'</span><span class='layout'>,</span><span class='chr'>'\279'</span><span class='layout'>)</span>-<a name="line-545"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\281'</span><span class='layout'>,</span><span class='chr'>'\281'</span><span class='layout'>)</span>-<a name="line-546"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\283'</span><span class='layout'>,</span><span class='chr'>'\283'</span><span class='layout'>)</span>-<a name="line-547"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\285'</span><span class='layout'>,</span><span class='chr'>'\285'</span><span class='layout'>)</span>-<a name="line-548"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\287'</span><span class='layout'>,</span><span class='chr'>'\287'</span><span class='layout'>)</span>-<a name="line-549"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\289'</span><span class='layout'>,</span><span class='chr'>'\289'</span><span class='layout'>)</span>-<a name="line-550"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\291'</span><span class='layout'>,</span><span class='chr'>'\291'</span><span class='layout'>)</span>-<a name="line-551"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\293'</span><span class='layout'>,</span><span class='chr'>'\293'</span><span class='layout'>)</span>-<a name="line-552"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\295'</span><span class='layout'>,</span><span class='chr'>'\295'</span><span class='layout'>)</span>-<a name="line-553"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\297'</span><span class='layout'>,</span><span class='chr'>'\297'</span><span class='layout'>)</span>-<a name="line-554"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\299'</span><span class='layout'>,</span><span class='chr'>'\299'</span><span class='layout'>)</span>-<a name="line-555"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\301'</span><span class='layout'>,</span><span class='chr'>'\301'</span><span class='layout'>)</span>-<a name="line-556"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\303'</span><span class='layout'>,</span><span class='chr'>'\303'</span><span class='layout'>)</span>-<a name="line-557"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\305'</span><span class='layout'>,</span><span class='chr'>'\305'</span><span class='layout'>)</span>-<a name="line-558"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\307'</span><span class='layout'>,</span><span class='chr'>'\307'</span><span class='layout'>)</span>-<a name="line-559"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\309'</span><span class='layout'>,</span><span class='chr'>'\309'</span><span class='layout'>)</span>-<a name="line-560"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\311'</span><span class='layout'>,</span><span class='chr'>'\312'</span><span class='layout'>)</span>-<a name="line-561"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\314'</span><span class='layout'>,</span><span class='chr'>'\314'</span><span class='layout'>)</span>-<a name="line-562"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\316'</span><span class='layout'>,</span><span class='chr'>'\316'</span><span class='layout'>)</span>-<a name="line-563"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\318'</span><span class='layout'>,</span><span class='chr'>'\318'</span><span class='layout'>)</span>-<a name="line-564"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\320'</span><span class='layout'>,</span><span class='chr'>'\320'</span><span class='layout'>)</span>-<a name="line-565"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\322'</span><span class='layout'>,</span><span class='chr'>'\322'</span><span class='layout'>)</span>-<a name="line-566"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\324'</span><span class='layout'>,</span><span class='chr'>'\324'</span><span class='layout'>)</span>-<a name="line-567"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\326'</span><span class='layout'>,</span><span class='chr'>'\326'</span><span class='layout'>)</span>-<a name="line-568"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\328'</span><span class='layout'>,</span><span class='chr'>'\329'</span><span class='layout'>)</span>-<a name="line-569"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\331'</span><span class='layout'>,</span><span class='chr'>'\331'</span><span class='layout'>)</span>-<a name="line-570"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\333'</span><span class='layout'>,</span><span class='chr'>'\333'</span><span class='layout'>)</span>-<a name="line-571"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\335'</span><span class='layout'>,</span><span class='chr'>'\335'</span><span class='layout'>)</span>-<a name="line-572"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\337'</span><span class='layout'>,</span><span class='chr'>'\337'</span><span class='layout'>)</span>-<a name="line-573"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\339'</span><span class='layout'>,</span><span class='chr'>'\339'</span><span class='layout'>)</span>-<a name="line-574"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\341'</span><span class='layout'>,</span><span class='chr'>'\341'</span><span class='layout'>)</span>-<a name="line-575"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\343'</span><span class='layout'>,</span><span class='chr'>'\343'</span><span class='layout'>)</span>-<a name="line-576"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\345'</span><span class='layout'>,</span><span class='chr'>'\345'</span><span class='layout'>)</span>-<a name="line-577"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\347'</span><span class='layout'>,</span><span class='chr'>'\347'</span><span class='layout'>)</span>-<a name="line-578"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\349'</span><span class='layout'>,</span><span class='chr'>'\349'</span><span class='layout'>)</span>-<a name="line-579"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\351'</span><span class='layout'>,</span><span class='chr'>'\351'</span><span class='layout'>)</span>-<a name="line-580"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\353'</span><span class='layout'>,</span><span class='chr'>'\353'</span><span class='layout'>)</span>-<a name="line-581"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\355'</span><span class='layout'>,</span><span class='chr'>'\355'</span><span class='layout'>)</span>-<a name="line-582"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\357'</span><span class='layout'>,</span><span class='chr'>'\357'</span><span class='layout'>)</span>-<a name="line-583"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\359'</span><span class='layout'>,</span><span class='chr'>'\359'</span><span class='layout'>)</span>-<a name="line-584"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\361'</span><span class='layout'>,</span><span class='chr'>'\361'</span><span class='layout'>)</span>-<a name="line-585"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\363'</span><span class='layout'>,</span><span class='chr'>'\363'</span><span class='layout'>)</span>-<a name="line-586"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\365'</span><span class='layout'>,</span><span class='chr'>'\365'</span><span class='layout'>)</span>-<a name="line-587"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\367'</span><span class='layout'>,</span><span class='chr'>'\367'</span><span class='layout'>)</span>-<a name="line-588"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\369'</span><span class='layout'>,</span><span class='chr'>'\369'</span><span class='layout'>)</span>-<a name="line-589"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\371'</span><span class='layout'>,</span><span class='chr'>'\371'</span><span class='layout'>)</span>-<a name="line-590"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\373'</span><span class='layout'>,</span><span class='chr'>'\373'</span><span class='layout'>)</span>-<a name="line-591"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\375'</span><span class='layout'>,</span><span class='chr'>'\375'</span><span class='layout'>)</span>-<a name="line-592"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\378'</span><span class='layout'>,</span><span class='chr'>'\378'</span><span class='layout'>)</span>-<a name="line-593"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\380'</span><span class='layout'>,</span><span class='chr'>'\380'</span><span class='layout'>)</span>-<a name="line-594"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\382'</span><span class='layout'>,</span><span class='chr'>'\384'</span><span class='layout'>)</span>-<a name="line-595"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\387'</span><span class='layout'>,</span><span class='chr'>'\387'</span><span class='layout'>)</span>-<a name="line-596"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\389'</span><span class='layout'>,</span><span class='chr'>'\389'</span><span class='layout'>)</span>-<a name="line-597"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\392'</span><span class='layout'>,</span><span class='chr'>'\392'</span><span class='layout'>)</span>-<a name="line-598"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\396'</span><span class='layout'>,</span><span class='chr'>'\397'</span><span class='layout'>)</span>-<a name="line-599"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\402'</span><span class='layout'>,</span><span class='chr'>'\402'</span><span class='layout'>)</span>-<a name="line-600"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\405'</span><span class='layout'>,</span><span class='chr'>'\405'</span><span class='layout'>)</span>-<a name="line-601"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\409'</span><span class='layout'>,</span><span class='chr'>'\411'</span><span class='layout'>)</span>-<a name="line-602"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\414'</span><span class='layout'>,</span><span class='chr'>'\414'</span><span class='layout'>)</span>-<a name="line-603"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\417'</span><span class='layout'>,</span><span class='chr'>'\417'</span><span class='layout'>)</span>-<a name="line-604"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\419'</span><span class='layout'>,</span><span class='chr'>'\419'</span><span class='layout'>)</span>-<a name="line-605"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\421'</span><span class='layout'>,</span><span class='chr'>'\421'</span><span class='layout'>)</span>-<a name="line-606"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\424'</span><span class='layout'>,</span><span class='chr'>'\424'</span><span class='layout'>)</span>-<a name="line-607"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\426'</span><span class='layout'>,</span><span class='chr'>'\427'</span><span class='layout'>)</span>-<a name="line-608"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\429'</span><span class='layout'>,</span><span class='chr'>'\429'</span><span class='layout'>)</span>-<a name="line-609"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\432'</span><span class='layout'>,</span><span class='chr'>'\432'</span><span class='layout'>)</span>-<a name="line-610"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\436'</span><span class='layout'>,</span><span class='chr'>'\436'</span><span class='layout'>)</span>-<a name="line-611"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\438'</span><span class='layout'>,</span><span class='chr'>'\438'</span><span class='layout'>)</span>-<a name="line-612"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\441'</span><span class='layout'>,</span><span class='chr'>'\442'</span><span class='layout'>)</span>-<a name="line-613"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\445'</span><span class='layout'>,</span><span class='chr'>'\447'</span><span class='layout'>)</span>-<a name="line-614"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\454'</span><span class='layout'>,</span><span class='chr'>'\454'</span><span class='layout'>)</span>-<a name="line-615"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\457'</span><span class='layout'>,</span><span class='chr'>'\457'</span><span class='layout'>)</span>-<a name="line-616"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\460'</span><span class='layout'>,</span><span class='chr'>'\460'</span><span class='layout'>)</span>-<a name="line-617"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\462'</span><span class='layout'>,</span><span class='chr'>'\462'</span><span class='layout'>)</span>-<a name="line-618"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\464'</span><span class='layout'>,</span><span class='chr'>'\464'</span><span class='layout'>)</span>-<a name="line-619"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\466'</span><span class='layout'>,</span><span class='chr'>'\466'</span><span class='layout'>)</span>-<a name="line-620"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\468'</span><span class='layout'>,</span><span class='chr'>'\468'</span><span class='layout'>)</span>-<a name="line-621"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\470'</span><span class='layout'>,</span><span class='chr'>'\470'</span><span class='layout'>)</span>-<a name="line-622"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\472'</span><span class='layout'>,</span><span class='chr'>'\472'</span><span class='layout'>)</span>-<a name="line-623"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\474'</span><span class='layout'>,</span><span class='chr'>'\474'</span><span class='layout'>)</span>-<a name="line-624"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\476'</span><span class='layout'>,</span><span class='chr'>'\477'</span><span class='layout'>)</span>-<a name="line-625"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\479'</span><span class='layout'>,</span><span class='chr'>'\479'</span><span class='layout'>)</span>-<a name="line-626"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\481'</span><span class='layout'>,</span><span class='chr'>'\481'</span><span class='layout'>)</span>-<a name="line-627"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\483'</span><span class='layout'>,</span><span class='chr'>'\483'</span><span class='layout'>)</span>-<a name="line-628"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\485'</span><span class='layout'>,</span><span class='chr'>'\485'</span><span class='layout'>)</span>-<a name="line-629"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\487'</span><span class='layout'>,</span><span class='chr'>'\487'</span><span class='layout'>)</span>-<a name="line-630"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\489'</span><span class='layout'>,</span><span class='chr'>'\489'</span><span class='layout'>)</span>-<a name="line-631"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\491'</span><span class='layout'>,</span><span class='chr'>'\491'</span><span class='layout'>)</span>-<a name="line-632"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\493'</span><span class='layout'>,</span><span class='chr'>'\493'</span><span class='layout'>)</span>-<a name="line-633"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\495'</span><span class='layout'>,</span><span class='chr'>'\496'</span><span class='layout'>)</span>-<a name="line-634"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\499'</span><span class='layout'>,</span><span class='chr'>'\499'</span><span class='layout'>)</span>-<a name="line-635"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\501'</span><span class='layout'>,</span><span class='chr'>'\501'</span><span class='layout'>)</span>-<a name="line-636"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\505'</span><span class='layout'>,</span><span class='chr'>'\505'</span><span class='layout'>)</span>-<a name="line-637"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\507'</span><span class='layout'>,</span><span class='chr'>'\507'</span><span class='layout'>)</span>-<a name="line-638"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\509'</span><span class='layout'>,</span><span class='chr'>'\509'</span><span class='layout'>)</span>-<a name="line-639"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\511'</span><span class='layout'>,</span><span class='chr'>'\511'</span><span class='layout'>)</span>-<a name="line-640"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\513'</span><span class='layout'>,</span><span class='chr'>'\513'</span><span class='layout'>)</span>-<a name="line-641"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\515'</span><span class='layout'>,</span><span class='chr'>'\515'</span><span class='layout'>)</span>-<a name="line-642"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\517'</span><span class='layout'>,</span><span class='chr'>'\517'</span><span class='layout'>)</span>-<a name="line-643"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\519'</span><span class='layout'>,</span><span class='chr'>'\519'</span><span class='layout'>)</span>-<a name="line-644"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\521'</span><span class='layout'>,</span><span class='chr'>'\521'</span><span class='layout'>)</span>-<a name="line-645"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\523'</span><span class='layout'>,</span><span class='chr'>'\523'</span><span class='layout'>)</span>-<a name="line-646"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\525'</span><span class='layout'>,</span><span class='chr'>'\525'</span><span class='layout'>)</span>-<a name="line-647"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\527'</span><span class='layout'>,</span><span class='chr'>'\527'</span><span class='layout'>)</span>-<a name="line-648"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\529'</span><span class='layout'>,</span><span class='chr'>'\529'</span><span class='layout'>)</span>-<a name="line-649"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\531'</span><span class='layout'>,</span><span class='chr'>'\531'</span><span class='layout'>)</span>-<a name="line-650"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\533'</span><span class='layout'>,</span><span class='chr'>'\533'</span><span class='layout'>)</span>-<a name="line-651"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\535'</span><span class='layout'>,</span><span class='chr'>'\535'</span><span class='layout'>)</span>-<a name="line-652"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\537'</span><span class='layout'>,</span><span class='chr'>'\537'</span><span class='layout'>)</span>-<a name="line-653"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\539'</span><span class='layout'>,</span><span class='chr'>'\539'</span><span class='layout'>)</span>-<a name="line-654"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\541'</span><span class='layout'>,</span><span class='chr'>'\541'</span><span class='layout'>)</span>-<a name="line-655"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\543'</span><span class='layout'>,</span><span class='chr'>'\543'</span><span class='layout'>)</span>-<a name="line-656"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\545'</span><span class='layout'>,</span><span class='chr'>'\545'</span><span class='layout'>)</span>-<a name="line-657"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\547'</span><span class='layout'>,</span><span class='chr'>'\547'</span><span class='layout'>)</span>-<a name="line-658"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\549'</span><span class='layout'>,</span><span class='chr'>'\549'</span><span class='layout'>)</span>-<a name="line-659"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\551'</span><span class='layout'>,</span><span class='chr'>'\551'</span><span class='layout'>)</span>-<a name="line-660"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\553'</span><span class='layout'>,</span><span class='chr'>'\553'</span><span class='layout'>)</span>-<a name="line-661"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\555'</span><span class='layout'>,</span><span class='chr'>'\555'</span><span class='layout'>)</span>-<a name="line-662"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\557'</span><span class='layout'>,</span><span class='chr'>'\557'</span><span class='layout'>)</span>-<a name="line-663"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\559'</span><span class='layout'>,</span><span class='chr'>'\559'</span><span class='layout'>)</span>-<a name="line-664"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\561'</span><span class='layout'>,</span><span class='chr'>'\561'</span><span class='layout'>)</span>-<a name="line-665"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\563'</span><span class='layout'>,</span><span class='chr'>'\569'</span><span class='layout'>)</span>-<a name="line-666"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\572'</span><span class='layout'>,</span><span class='chr'>'\572'</span><span class='layout'>)</span>-<a name="line-667"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\575'</span><span class='layout'>,</span><span class='chr'>'\576'</span><span class='layout'>)</span>-<a name="line-668"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\578'</span><span class='layout'>,</span><span class='chr'>'\578'</span><span class='layout'>)</span>-<a name="line-669"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\583'</span><span class='layout'>,</span><span class='chr'>'\583'</span><span class='layout'>)</span>-<a name="line-670"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\585'</span><span class='layout'>,</span><span class='chr'>'\585'</span><span class='layout'>)</span>-<a name="line-671"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\587'</span><span class='layout'>,</span><span class='chr'>'\587'</span><span class='layout'>)</span>-<a name="line-672"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\589'</span><span class='layout'>,</span><span class='chr'>'\589'</span><span class='layout'>)</span>-<a name="line-673"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\591'</span><span class='layout'>,</span><span class='chr'>'\659'</span><span class='layout'>)</span>-<a name="line-674"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\661'</span><span class='layout'>,</span><span class='chr'>'\687'</span><span class='layout'>)</span>-<a name="line-675"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\891'</span><span class='layout'>,</span><span class='chr'>'\893'</span><span class='layout'>)</span>-<a name="line-676"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\912'</span><span class='layout'>,</span><span class='chr'>'\912'</span><span class='layout'>)</span>-<a name="line-677"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\940'</span><span class='layout'>,</span><span class='chr'>'\974'</span><span class='layout'>)</span>-<a name="line-678"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\976'</span><span class='layout'>,</span><span class='chr'>'\977'</span><span class='layout'>)</span>-<a name="line-679"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\981'</span><span class='layout'>,</span><span class='chr'>'\983'</span><span class='layout'>)</span>-<a name="line-680"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\985'</span><span class='layout'>,</span><span class='chr'>'\985'</span><span class='layout'>)</span>-<a name="line-681"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\987'</span><span class='layout'>,</span><span class='chr'>'\987'</span><span class='layout'>)</span>-<a name="line-682"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\989'</span><span class='layout'>,</span><span class='chr'>'\989'</span><span class='layout'>)</span>-<a name="line-683"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\991'</span><span class='layout'>,</span><span class='chr'>'\991'</span><span class='layout'>)</span>-<a name="line-684"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\993'</span><span class='layout'>,</span><span class='chr'>'\993'</span><span class='layout'>)</span>-<a name="line-685"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\995'</span><span class='layout'>,</span><span class='chr'>'\995'</span><span class='layout'>)</span>-<a name="line-686"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\997'</span><span class='layout'>,</span><span class='chr'>'\997'</span><span class='layout'>)</span>-<a name="line-687"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\999'</span><span class='layout'>,</span><span class='chr'>'\999'</span><span class='layout'>)</span>-<a name="line-688"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1001'</span><span class='layout'>,</span><span class='chr'>'\1001'</span><span class='layout'>)</span>-<a name="line-689"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1003'</span><span class='layout'>,</span><span class='chr'>'\1003'</span><span class='layout'>)</span>-<a name="line-690"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1005'</span><span class='layout'>,</span><span class='chr'>'\1005'</span><span class='layout'>)</span>-<a name="line-691"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1007'</span><span class='layout'>,</span><span class='chr'>'\1011'</span><span class='layout'>)</span>-<a name="line-692"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1013'</span><span class='layout'>,</span><span class='chr'>'\1013'</span><span class='layout'>)</span>-<a name="line-693"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1016'</span><span class='layout'>,</span><span class='chr'>'\1016'</span><span class='layout'>)</span>-<a name="line-694"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1019'</span><span class='layout'>,</span><span class='chr'>'\1020'</span><span class='layout'>)</span>-<a name="line-695"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1072'</span><span class='layout'>,</span><span class='chr'>'\1119'</span><span class='layout'>)</span>-<a name="line-696"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1121'</span><span class='layout'>,</span><span class='chr'>'\1121'</span><span class='layout'>)</span>-<a name="line-697"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1123'</span><span class='layout'>,</span><span class='chr'>'\1123'</span><span class='layout'>)</span>-<a name="line-698"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1125'</span><span class='layout'>,</span><span class='chr'>'\1125'</span><span class='layout'>)</span>-<a name="line-699"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1127'</span><span class='layout'>,</span><span class='chr'>'\1127'</span><span class='layout'>)</span>-<a name="line-700"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1129'</span><span class='layout'>,</span><span class='chr'>'\1129'</span><span class='layout'>)</span>-<a name="line-701"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1131'</span><span class='layout'>,</span><span class='chr'>'\1131'</span><span class='layout'>)</span>-<a name="line-702"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1133'</span><span class='layout'>,</span><span class='chr'>'\1133'</span><span class='layout'>)</span>-<a name="line-703"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1135'</span><span class='layout'>,</span><span class='chr'>'\1135'</span><span class='layout'>)</span>-<a name="line-704"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1137'</span><span class='layout'>,</span><span class='chr'>'\1137'</span><span class='layout'>)</span>-<a name="line-705"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1139'</span><span class='layout'>,</span><span class='chr'>'\1139'</span><span class='layout'>)</span>-<a name="line-706"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1141'</span><span class='layout'>,</span><span class='chr'>'\1141'</span><span class='layout'>)</span>-<a name="line-707"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1143'</span><span class='layout'>,</span><span class='chr'>'\1143'</span><span class='layout'>)</span>-<a name="line-708"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1145'</span><span class='layout'>,</span><span class='chr'>'\1145'</span><span class='layout'>)</span>-<a name="line-709"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1147'</span><span class='layout'>,</span><span class='chr'>'\1147'</span><span class='layout'>)</span>-<a name="line-710"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1149'</span><span class='layout'>,</span><span class='chr'>'\1149'</span><span class='layout'>)</span>-<a name="line-711"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1151'</span><span class='layout'>,</span><span class='chr'>'\1151'</span><span class='layout'>)</span>-<a name="line-712"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1153'</span><span class='layout'>,</span><span class='chr'>'\1153'</span><span class='layout'>)</span>-<a name="line-713"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1163'</span><span class='layout'>,</span><span class='chr'>'\1163'</span><span class='layout'>)</span>-<a name="line-714"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1165'</span><span class='layout'>,</span><span class='chr'>'\1165'</span><span class='layout'>)</span>-<a name="line-715"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1167'</span><span class='layout'>,</span><span class='chr'>'\1167'</span><span class='layout'>)</span>-<a name="line-716"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1169'</span><span class='layout'>,</span><span class='chr'>'\1169'</span><span class='layout'>)</span>-<a name="line-717"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1171'</span><span class='layout'>,</span><span class='chr'>'\1171'</span><span class='layout'>)</span>-<a name="line-718"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1173'</span><span class='layout'>,</span><span class='chr'>'\1173'</span><span class='layout'>)</span>-<a name="line-719"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1175'</span><span class='layout'>,</span><span class='chr'>'\1175'</span><span class='layout'>)</span>-<a name="line-720"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1177'</span><span class='layout'>,</span><span class='chr'>'\1177'</span><span class='layout'>)</span>-<a name="line-721"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1179'</span><span class='layout'>,</span><span class='chr'>'\1179'</span><span class='layout'>)</span>-<a name="line-722"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1181'</span><span class='layout'>,</span><span class='chr'>'\1181'</span><span class='layout'>)</span>-<a name="line-723"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1183'</span><span class='layout'>,</span><span class='chr'>'\1183'</span><span class='layout'>)</span>-<a name="line-724"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1185'</span><span class='layout'>,</span><span class='chr'>'\1185'</span><span class='layout'>)</span>-<a name="line-725"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1187'</span><span class='layout'>,</span><span class='chr'>'\1187'</span><span class='layout'>)</span>-<a name="line-726"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1189'</span><span class='layout'>,</span><span class='chr'>'\1189'</span><span class='layout'>)</span>-<a name="line-727"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1191'</span><span class='layout'>,</span><span class='chr'>'\1191'</span><span class='layout'>)</span>-<a name="line-728"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1193'</span><span class='layout'>,</span><span class='chr'>'\1193'</span><span class='layout'>)</span>-<a name="line-729"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1195'</span><span class='layout'>,</span><span class='chr'>'\1195'</span><span class='layout'>)</span>-<a name="line-730"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1197'</span><span class='layout'>,</span><span class='chr'>'\1197'</span><span class='layout'>)</span>-<a name="line-731"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1199'</span><span class='layout'>,</span><span class='chr'>'\1199'</span><span class='layout'>)</span>-<a name="line-732"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1201'</span><span class='layout'>,</span><span class='chr'>'\1201'</span><span class='layout'>)</span>-<a name="line-733"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1203'</span><span class='layout'>,</span><span class='chr'>'\1203'</span><span class='layout'>)</span>-<a name="line-734"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1205'</span><span class='layout'>,</span><span class='chr'>'\1205'</span><span class='layout'>)</span>-<a name="line-735"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1207'</span><span class='layout'>,</span><span class='chr'>'\1207'</span><span class='layout'>)</span>-<a name="line-736"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1209'</span><span class='layout'>,</span><span class='chr'>'\1209'</span><span class='layout'>)</span>-<a name="line-737"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1211'</span><span class='layout'>,</span><span class='chr'>'\1211'</span><span class='layout'>)</span>-<a name="line-738"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1213'</span><span class='layout'>,</span><span class='chr'>'\1213'</span><span class='layout'>)</span>-<a name="line-739"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1215'</span><span class='layout'>,</span><span class='chr'>'\1215'</span><span class='layout'>)</span>-<a name="line-740"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1218'</span><span class='layout'>,</span><span class='chr'>'\1218'</span><span class='layout'>)</span>-<a name="line-741"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1220'</span><span class='layout'>,</span><span class='chr'>'\1220'</span><span class='layout'>)</span>-<a name="line-742"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1222'</span><span class='layout'>,</span><span class='chr'>'\1222'</span><span class='layout'>)</span>-<a name="line-743"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1224'</span><span class='layout'>,</span><span class='chr'>'\1224'</span><span class='layout'>)</span>-<a name="line-744"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1226'</span><span class='layout'>,</span><span class='chr'>'\1226'</span><span class='layout'>)</span>-<a name="line-745"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1228'</span><span class='layout'>,</span><span class='chr'>'\1228'</span><span class='layout'>)</span>-<a name="line-746"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1230'</span><span class='layout'>,</span><span class='chr'>'\1231'</span><span class='layout'>)</span>-<a name="line-747"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1233'</span><span class='layout'>,</span><span class='chr'>'\1233'</span><span class='layout'>)</span>-<a name="line-748"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1235'</span><span class='layout'>,</span><span class='chr'>'\1235'</span><span class='layout'>)</span>-<a name="line-749"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1237'</span><span class='layout'>,</span><span class='chr'>'\1237'</span><span class='layout'>)</span>-<a name="line-750"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1239'</span><span class='layout'>,</span><span class='chr'>'\1239'</span><span class='layout'>)</span>-<a name="line-751"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1241'</span><span class='layout'>,</span><span class='chr'>'\1241'</span><span class='layout'>)</span>-<a name="line-752"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1243'</span><span class='layout'>,</span><span class='chr'>'\1243'</span><span class='layout'>)</span>-<a name="line-753"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1245'</span><span class='layout'>,</span><span class='chr'>'\1245'</span><span class='layout'>)</span>-<a name="line-754"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1247'</span><span class='layout'>,</span><span class='chr'>'\1247'</span><span class='layout'>)</span>-<a name="line-755"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1249'</span><span class='layout'>,</span><span class='chr'>'\1249'</span><span class='layout'>)</span>-<a name="line-756"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1251'</span><span class='layout'>,</span><span class='chr'>'\1251'</span><span class='layout'>)</span>-<a name="line-757"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1253'</span><span class='layout'>,</span><span class='chr'>'\1253'</span><span class='layout'>)</span>-<a name="line-758"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1255'</span><span class='layout'>,</span><span class='chr'>'\1255'</span><span class='layout'>)</span>-<a name="line-759"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1257'</span><span class='layout'>,</span><span class='chr'>'\1257'</span><span class='layout'>)</span>-<a name="line-760"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1259'</span><span class='layout'>,</span><span class='chr'>'\1259'</span><span class='layout'>)</span>-<a name="line-761"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1261'</span><span class='layout'>,</span><span class='chr'>'\1261'</span><span class='layout'>)</span>-<a name="line-762"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1263'</span><span class='layout'>,</span><span class='chr'>'\1263'</span><span class='layout'>)</span>-<a name="line-763"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1265'</span><span class='layout'>,</span><span class='chr'>'\1265'</span><span class='layout'>)</span>-<a name="line-764"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1267'</span><span class='layout'>,</span><span class='chr'>'\1267'</span><span class='layout'>)</span>-<a name="line-765"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1269'</span><span class='layout'>,</span><span class='chr'>'\1269'</span><span class='layout'>)</span>-<a name="line-766"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1271'</span><span class='layout'>,</span><span class='chr'>'\1271'</span><span class='layout'>)</span>-<a name="line-767"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1273'</span><span class='layout'>,</span><span class='chr'>'\1273'</span><span class='layout'>)</span>-<a name="line-768"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1275'</span><span class='layout'>,</span><span class='chr'>'\1275'</span><span class='layout'>)</span>-<a name="line-769"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1277'</span><span class='layout'>,</span><span class='chr'>'\1277'</span><span class='layout'>)</span>-<a name="line-770"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1279'</span><span class='layout'>,</span><span class='chr'>'\1279'</span><span class='layout'>)</span>-<a name="line-771"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1281'</span><span class='layout'>,</span><span class='chr'>'\1281'</span><span class='layout'>)</span>-<a name="line-772"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1283'</span><span class='layout'>,</span><span class='chr'>'\1283'</span><span class='layout'>)</span>-<a name="line-773"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1285'</span><span class='layout'>,</span><span class='chr'>'\1285'</span><span class='layout'>)</span>-<a name="line-774"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1287'</span><span class='layout'>,</span><span class='chr'>'\1287'</span><span class='layout'>)</span>-<a name="line-775"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1289'</span><span class='layout'>,</span><span class='chr'>'\1289'</span><span class='layout'>)</span>-<a name="line-776"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1291'</span><span class='layout'>,</span><span class='chr'>'\1291'</span><span class='layout'>)</span>-<a name="line-777"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1293'</span><span class='layout'>,</span><span class='chr'>'\1293'</span><span class='layout'>)</span>-<a name="line-778"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1295'</span><span class='layout'>,</span><span class='chr'>'\1295'</span><span class='layout'>)</span>-<a name="line-779"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1297'</span><span class='layout'>,</span><span class='chr'>'\1297'</span><span class='layout'>)</span>-<a name="line-780"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1299'</span><span class='layout'>,</span><span class='chr'>'\1299'</span><span class='layout'>)</span>-<a name="line-781"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1377'</span><span class='layout'>,</span><span class='chr'>'\1415'</span><span class='layout'>)</span>-<a name="line-782"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7424'</span><span class='layout'>,</span><span class='chr'>'\7467'</span><span class='layout'>)</span>-<a name="line-783"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7522'</span><span class='layout'>,</span><span class='chr'>'\7543'</span><span class='layout'>)</span>-<a name="line-784"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7545'</span><span class='layout'>,</span><span class='chr'>'\7578'</span><span class='layout'>)</span>-<a name="line-785"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7681'</span><span class='layout'>,</span><span class='chr'>'\7681'</span><span class='layout'>)</span>-<a name="line-786"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7683'</span><span class='layout'>,</span><span class='chr'>'\7683'</span><span class='layout'>)</span>-<a name="line-787"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7685'</span><span class='layout'>,</span><span class='chr'>'\7685'</span><span class='layout'>)</span>-<a name="line-788"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7687'</span><span class='layout'>,</span><span class='chr'>'\7687'</span><span class='layout'>)</span>-<a name="line-789"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7689'</span><span class='layout'>,</span><span class='chr'>'\7689'</span><span class='layout'>)</span>-<a name="line-790"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7691'</span><span class='layout'>,</span><span class='chr'>'\7691'</span><span class='layout'>)</span>-<a name="line-791"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7693'</span><span class='layout'>,</span><span class='chr'>'\7693'</span><span class='layout'>)</span>-<a name="line-792"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7695'</span><span class='layout'>,</span><span class='chr'>'\7695'</span><span class='layout'>)</span>-<a name="line-793"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7697'</span><span class='layout'>,</span><span class='chr'>'\7697'</span><span class='layout'>)</span>-<a name="line-794"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7699'</span><span class='layout'>,</span><span class='chr'>'\7699'</span><span class='layout'>)</span>-<a name="line-795"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7701'</span><span class='layout'>,</span><span class='chr'>'\7701'</span><span class='layout'>)</span>-<a name="line-796"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7703'</span><span class='layout'>,</span><span class='chr'>'\7703'</span><span class='layout'>)</span>-<a name="line-797"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7705'</span><span class='layout'>,</span><span class='chr'>'\7705'</span><span class='layout'>)</span>-<a name="line-798"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7707'</span><span class='layout'>,</span><span class='chr'>'\7707'</span><span class='layout'>)</span>-<a name="line-799"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7709'</span><span class='layout'>,</span><span class='chr'>'\7709'</span><span class='layout'>)</span>-<a name="line-800"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7711'</span><span class='layout'>,</span><span class='chr'>'\7711'</span><span class='layout'>)</span>-<a name="line-801"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7713'</span><span class='layout'>,</span><span class='chr'>'\7713'</span><span class='layout'>)</span>-<a name="line-802"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7715'</span><span class='layout'>,</span><span class='chr'>'\7715'</span><span class='layout'>)</span>-<a name="line-803"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7717'</span><span class='layout'>,</span><span class='chr'>'\7717'</span><span class='layout'>)</span>-<a name="line-804"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7719'</span><span class='layout'>,</span><span class='chr'>'\7719'</span><span class='layout'>)</span>-<a name="line-805"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7721'</span><span class='layout'>,</span><span class='chr'>'\7721'</span><span class='layout'>)</span>-<a name="line-806"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7723'</span><span class='layout'>,</span><span class='chr'>'\7723'</span><span class='layout'>)</span>-<a name="line-807"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7725'</span><span class='layout'>,</span><span class='chr'>'\7725'</span><span class='layout'>)</span>-<a name="line-808"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7727'</span><span class='layout'>,</span><span class='chr'>'\7727'</span><span class='layout'>)</span>-<a name="line-809"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7729'</span><span class='layout'>,</span><span class='chr'>'\7729'</span><span class='layout'>)</span>-<a name="line-810"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7731'</span><span class='layout'>,</span><span class='chr'>'\7731'</span><span class='layout'>)</span>-<a name="line-811"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7733'</span><span class='layout'>,</span><span class='chr'>'\7733'</span><span class='layout'>)</span>-<a name="line-812"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7735'</span><span class='layout'>,</span><span class='chr'>'\7735'</span><span class='layout'>)</span>-<a name="line-813"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7737'</span><span class='layout'>,</span><span class='chr'>'\7737'</span><span class='layout'>)</span>-<a name="line-814"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7739'</span><span class='layout'>,</span><span class='chr'>'\7739'</span><span class='layout'>)</span>-<a name="line-815"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7741'</span><span class='layout'>,</span><span class='chr'>'\7741'</span><span class='layout'>)</span>-<a name="line-816"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7743'</span><span class='layout'>,</span><span class='chr'>'\7743'</span><span class='layout'>)</span>-<a name="line-817"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7745'</span><span class='layout'>,</span><span class='chr'>'\7745'</span><span class='layout'>)</span>-<a name="line-818"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7747'</span><span class='layout'>,</span><span class='chr'>'\7747'</span><span class='layout'>)</span>-<a name="line-819"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7749'</span><span class='layout'>,</span><span class='chr'>'\7749'</span><span class='layout'>)</span>-<a name="line-820"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7751'</span><span class='layout'>,</span><span class='chr'>'\7751'</span><span class='layout'>)</span>-<a name="line-821"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7753'</span><span class='layout'>,</span><span class='chr'>'\7753'</span><span class='layout'>)</span>-<a name="line-822"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7755'</span><span class='layout'>,</span><span class='chr'>'\7755'</span><span class='layout'>)</span>-<a name="line-823"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7757'</span><span class='layout'>,</span><span class='chr'>'\7757'</span><span class='layout'>)</span>-<a name="line-824"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7759'</span><span class='layout'>,</span><span class='chr'>'\7759'</span><span class='layout'>)</span>-<a name="line-825"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7761'</span><span class='layout'>,</span><span class='chr'>'\7761'</span><span class='layout'>)</span>-<a name="line-826"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7763'</span><span class='layout'>,</span><span class='chr'>'\7763'</span><span class='layout'>)</span>-<a name="line-827"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7765'</span><span class='layout'>,</span><span class='chr'>'\7765'</span><span class='layout'>)</span>-<a name="line-828"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7767'</span><span class='layout'>,</span><span class='chr'>'\7767'</span><span class='layout'>)</span>-<a name="line-829"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7769'</span><span class='layout'>,</span><span class='chr'>'\7769'</span><span class='layout'>)</span>-<a name="line-830"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7771'</span><span class='layout'>,</span><span class='chr'>'\7771'</span><span class='layout'>)</span>-<a name="line-831"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7773'</span><span class='layout'>,</span><span class='chr'>'\7773'</span><span class='layout'>)</span>-<a name="line-832"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7775'</span><span class='layout'>,</span><span class='chr'>'\7775'</span><span class='layout'>)</span>-<a name="line-833"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7777'</span><span class='layout'>,</span><span class='chr'>'\7777'</span><span class='layout'>)</span>-<a name="line-834"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7779'</span><span class='layout'>,</span><span class='chr'>'\7779'</span><span class='layout'>)</span>-<a name="line-835"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7781'</span><span class='layout'>,</span><span class='chr'>'\7781'</span><span class='layout'>)</span>-<a name="line-836"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7783'</span><span class='layout'>,</span><span class='chr'>'\7783'</span><span class='layout'>)</span>-<a name="line-837"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7785'</span><span class='layout'>,</span><span class='chr'>'\7785'</span><span class='layout'>)</span>-<a name="line-838"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7787'</span><span class='layout'>,</span><span class='chr'>'\7787'</span><span class='layout'>)</span>-<a name="line-839"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7789'</span><span class='layout'>,</span><span class='chr'>'\7789'</span><span class='layout'>)</span>-<a name="line-840"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7791'</span><span class='layout'>,</span><span class='chr'>'\7791'</span><span class='layout'>)</span>-<a name="line-841"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7793'</span><span class='layout'>,</span><span class='chr'>'\7793'</span><span class='layout'>)</span>-<a name="line-842"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7795'</span><span class='layout'>,</span><span class='chr'>'\7795'</span><span class='layout'>)</span>-<a name="line-843"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7797'</span><span class='layout'>,</span><span class='chr'>'\7797'</span><span class='layout'>)</span>-<a name="line-844"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7799'</span><span class='layout'>,</span><span class='chr'>'\7799'</span><span class='layout'>)</span>-<a name="line-845"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7801'</span><span class='layout'>,</span><span class='chr'>'\7801'</span><span class='layout'>)</span>-<a name="line-846"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7803'</span><span class='layout'>,</span><span class='chr'>'\7803'</span><span class='layout'>)</span>-<a name="line-847"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7805'</span><span class='layout'>,</span><span class='chr'>'\7805'</span><span class='layout'>)</span>-<a name="line-848"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7807'</span><span class='layout'>,</span><span class='chr'>'\7807'</span><span class='layout'>)</span>-<a name="line-849"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7809'</span><span class='layout'>,</span><span class='chr'>'\7809'</span><span class='layout'>)</span>-<a name="line-850"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7811'</span><span class='layout'>,</span><span class='chr'>'\7811'</span><span class='layout'>)</span>-<a name="line-851"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7813'</span><span class='layout'>,</span><span class='chr'>'\7813'</span><span class='layout'>)</span>-<a name="line-852"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7815'</span><span class='layout'>,</span><span class='chr'>'\7815'</span><span class='layout'>)</span>-<a name="line-853"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7817'</span><span class='layout'>,</span><span class='chr'>'\7817'</span><span class='layout'>)</span>-<a name="line-854"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7819'</span><span class='layout'>,</span><span class='chr'>'\7819'</span><span class='layout'>)</span>-<a name="line-855"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7821'</span><span class='layout'>,</span><span class='chr'>'\7821'</span><span class='layout'>)</span>-<a name="line-856"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7823'</span><span class='layout'>,</span><span class='chr'>'\7823'</span><span class='layout'>)</span>-<a name="line-857"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7825'</span><span class='layout'>,</span><span class='chr'>'\7825'</span><span class='layout'>)</span>-<a name="line-858"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7827'</span><span class='layout'>,</span><span class='chr'>'\7827'</span><span class='layout'>)</span>-<a name="line-859"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7829'</span><span class='layout'>,</span><span class='chr'>'\7835'</span><span class='layout'>)</span>-<a name="line-860"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7841'</span><span class='layout'>,</span><span class='chr'>'\7841'</span><span class='layout'>)</span>-<a name="line-861"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7843'</span><span class='layout'>,</span><span class='chr'>'\7843'</span><span class='layout'>)</span>-<a name="line-862"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7845'</span><span class='layout'>,</span><span class='chr'>'\7845'</span><span class='layout'>)</span>-<a name="line-863"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7847'</span><span class='layout'>,</span><span class='chr'>'\7847'</span><span class='layout'>)</span>-<a name="line-864"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7849'</span><span class='layout'>,</span><span class='chr'>'\7849'</span><span class='layout'>)</span>-<a name="line-865"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7851'</span><span class='layout'>,</span><span class='chr'>'\7851'</span><span class='layout'>)</span>-<a name="line-866"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7853'</span><span class='layout'>,</span><span class='chr'>'\7853'</span><span class='layout'>)</span>-<a name="line-867"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7855'</span><span class='layout'>,</span><span class='chr'>'\7855'</span><span class='layout'>)</span>-<a name="line-868"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7857'</span><span class='layout'>,</span><span class='chr'>'\7857'</span><span class='layout'>)</span>-<a name="line-869"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7859'</span><span class='layout'>,</span><span class='chr'>'\7859'</span><span class='layout'>)</span>-<a name="line-870"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7861'</span><span class='layout'>,</span><span class='chr'>'\7861'</span><span class='layout'>)</span>-<a name="line-871"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7863'</span><span class='layout'>,</span><span class='chr'>'\7863'</span><span class='layout'>)</span>-<a name="line-872"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7865'</span><span class='layout'>,</span><span class='chr'>'\7865'</span><span class='layout'>)</span>-<a name="line-873"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7867'</span><span class='layout'>,</span><span class='chr'>'\7867'</span><span class='layout'>)</span>-<a name="line-874"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7869'</span><span class='layout'>,</span><span class='chr'>'\7869'</span><span class='layout'>)</span>-<a name="line-875"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7871'</span><span class='layout'>,</span><span class='chr'>'\7871'</span><span class='layout'>)</span>-<a name="line-876"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7873'</span><span class='layout'>,</span><span class='chr'>'\7873'</span><span class='layout'>)</span>-<a name="line-877"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7875'</span><span class='layout'>,</span><span class='chr'>'\7875'</span><span class='layout'>)</span>-<a name="line-878"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7877'</span><span class='layout'>,</span><span class='chr'>'\7877'</span><span class='layout'>)</span>-<a name="line-879"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7879'</span><span class='layout'>,</span><span class='chr'>'\7879'</span><span class='layout'>)</span>-<a name="line-880"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7881'</span><span class='layout'>,</span><span class='chr'>'\7881'</span><span class='layout'>)</span>-<a name="line-881"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7883'</span><span class='layout'>,</span><span class='chr'>'\7883'</span><span class='layout'>)</span>-<a name="line-882"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7885'</span><span class='layout'>,</span><span class='chr'>'\7885'</span><span class='layout'>)</span>-<a name="line-883"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7887'</span><span class='layout'>,</span><span class='chr'>'\7887'</span><span class='layout'>)</span>-<a name="line-884"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7889'</span><span class='layout'>,</span><span class='chr'>'\7889'</span><span class='layout'>)</span>-<a name="line-885"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7891'</span><span class='layout'>,</span><span class='chr'>'\7891'</span><span class='layout'>)</span>-<a name="line-886"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7893'</span><span class='layout'>,</span><span class='chr'>'\7893'</span><span class='layout'>)</span>-<a name="line-887"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7895'</span><span class='layout'>,</span><span class='chr'>'\7895'</span><span class='layout'>)</span>-<a name="line-888"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7897'</span><span class='layout'>,</span><span class='chr'>'\7897'</span><span class='layout'>)</span>-<a name="line-889"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7899'</span><span class='layout'>,</span><span class='chr'>'\7899'</span><span class='layout'>)</span>-<a name="line-890"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7901'</span><span class='layout'>,</span><span class='chr'>'\7901'</span><span class='layout'>)</span>-<a name="line-891"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7903'</span><span class='layout'>,</span><span class='chr'>'\7903'</span><span class='layout'>)</span>-<a name="line-892"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7905'</span><span class='layout'>,</span><span class='chr'>'\7905'</span><span class='layout'>)</span>-<a name="line-893"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7907'</span><span class='layout'>,</span><span class='chr'>'\7907'</span><span class='layout'>)</span>-<a name="line-894"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7909'</span><span class='layout'>,</span><span class='chr'>'\7909'</span><span class='layout'>)</span>-<a name="line-895"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7911'</span><span class='layout'>,</span><span class='chr'>'\7911'</span><span class='layout'>)</span>-<a name="line-896"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7913'</span><span class='layout'>,</span><span class='chr'>'\7913'</span><span class='layout'>)</span>-<a name="line-897"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7915'</span><span class='layout'>,</span><span class='chr'>'\7915'</span><span class='layout'>)</span>-<a name="line-898"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7917'</span><span class='layout'>,</span><span class='chr'>'\7917'</span><span class='layout'>)</span>-<a name="line-899"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7919'</span><span class='layout'>,</span><span class='chr'>'\7919'</span><span class='layout'>)</span>-<a name="line-900"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7921'</span><span class='layout'>,</span><span class='chr'>'\7921'</span><span class='layout'>)</span>-<a name="line-901"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7923'</span><span class='layout'>,</span><span class='chr'>'\7923'</span><span class='layout'>)</span>-<a name="line-902"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7925'</span><span class='layout'>,</span><span class='chr'>'\7925'</span><span class='layout'>)</span>-<a name="line-903"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7927'</span><span class='layout'>,</span><span class='chr'>'\7927'</span><span class='layout'>)</span>-<a name="line-904"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7929'</span><span class='layout'>,</span><span class='chr'>'\7929'</span><span class='layout'>)</span>-<a name="line-905"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7936'</span><span class='layout'>,</span><span class='chr'>'\7943'</span><span class='layout'>)</span>-<a name="line-906"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7952'</span><span class='layout'>,</span><span class='chr'>'\7957'</span><span class='layout'>)</span>-<a name="line-907"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7968'</span><span class='layout'>,</span><span class='chr'>'\7975'</span><span class='layout'>)</span>-<a name="line-908"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7984'</span><span class='layout'>,</span><span class='chr'>'\7991'</span><span class='layout'>)</span>-<a name="line-909"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8000'</span><span class='layout'>,</span><span class='chr'>'\8005'</span><span class='layout'>)</span>-<a name="line-910"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8016'</span><span class='layout'>,</span><span class='chr'>'\8023'</span><span class='layout'>)</span>-<a name="line-911"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8032'</span><span class='layout'>,</span><span class='chr'>'\8039'</span><span class='layout'>)</span>-<a name="line-912"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8048'</span><span class='layout'>,</span><span class='chr'>'\8061'</span><span class='layout'>)</span>-<a name="line-913"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8064'</span><span class='layout'>,</span><span class='chr'>'\8071'</span><span class='layout'>)</span>-<a name="line-914"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8080'</span><span class='layout'>,</span><span class='chr'>'\8087'</span><span class='layout'>)</span>-<a name="line-915"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8096'</span><span class='layout'>,</span><span class='chr'>'\8103'</span><span class='layout'>)</span>-<a name="line-916"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8112'</span><span class='layout'>,</span><span class='chr'>'\8116'</span><span class='layout'>)</span>-<a name="line-917"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8118'</span><span class='layout'>,</span><span class='chr'>'\8119'</span><span class='layout'>)</span>-<a name="line-918"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8126'</span><span class='layout'>,</span><span class='chr'>'\8126'</span><span class='layout'>)</span>-<a name="line-919"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8130'</span><span class='layout'>,</span><span class='chr'>'\8132'</span><span class='layout'>)</span>-<a name="line-920"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8134'</span><span class='layout'>,</span><span class='chr'>'\8135'</span><span class='layout'>)</span>-<a name="line-921"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8144'</span><span class='layout'>,</span><span class='chr'>'\8147'</span><span class='layout'>)</span>-<a name="line-922"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8150'</span><span class='layout'>,</span><span class='chr'>'\8151'</span><span class='layout'>)</span>-<a name="line-923"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8160'</span><span class='layout'>,</span><span class='chr'>'\8167'</span><span class='layout'>)</span>-<a name="line-924"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8178'</span><span class='layout'>,</span><span class='chr'>'\8180'</span><span class='layout'>)</span>-<a name="line-925"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8182'</span><span class='layout'>,</span><span class='chr'>'\8183'</span><span class='layout'>)</span>-<a name="line-926"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8305'</span><span class='layout'>,</span><span class='chr'>'\8305'</span><span class='layout'>)</span>-<a name="line-927"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8319'</span><span class='layout'>,</span><span class='chr'>'\8319'</span><span class='layout'>)</span>-<a name="line-928"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8458'</span><span class='layout'>,</span><span class='chr'>'\8458'</span><span class='layout'>)</span>-<a name="line-929"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8462'</span><span class='layout'>,</span><span class='chr'>'\8463'</span><span class='layout'>)</span>-<a name="line-930"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8467'</span><span class='layout'>,</span><span class='chr'>'\8467'</span><span class='layout'>)</span>-<a name="line-931"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8495'</span><span class='layout'>,</span><span class='chr'>'\8495'</span><span class='layout'>)</span>-<a name="line-932"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8500'</span><span class='layout'>,</span><span class='chr'>'\8500'</span><span class='layout'>)</span>-<a name="line-933"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8505'</span><span class='layout'>,</span><span class='chr'>'\8505'</span><span class='layout'>)</span>-<a name="line-934"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8508'</span><span class='layout'>,</span><span class='chr'>'\8509'</span><span class='layout'>)</span>-<a name="line-935"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8518'</span><span class='layout'>,</span><span class='chr'>'\8521'</span><span class='layout'>)</span>-<a name="line-936"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8526'</span><span class='layout'>,</span><span class='chr'>'\8526'</span><span class='layout'>)</span>-<a name="line-937"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8580'</span><span class='layout'>,</span><span class='chr'>'\8580'</span><span class='layout'>)</span>-<a name="line-938"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11312'</span><span class='layout'>,</span><span class='chr'>'\11358'</span><span class='layout'>)</span>-<a name="line-939"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11361'</span><span class='layout'>,</span><span class='chr'>'\11361'</span><span class='layout'>)</span>-<a name="line-940"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11365'</span><span class='layout'>,</span><span class='chr'>'\11366'</span><span class='layout'>)</span>-<a name="line-941"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11368'</span><span class='layout'>,</span><span class='chr'>'\11368'</span><span class='layout'>)</span>-<a name="line-942"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11370'</span><span class='layout'>,</span><span class='chr'>'\11370'</span><span class='layout'>)</span>-<a name="line-943"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11372'</span><span class='layout'>,</span><span class='chr'>'\11372'</span><span class='layout'>)</span>-<a name="line-944"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11380'</span><span class='layout'>,</span><span class='chr'>'\11380'</span><span class='layout'>)</span>-<a name="line-945"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11382'</span><span class='layout'>,</span><span class='chr'>'\11383'</span><span class='layout'>)</span>-<a name="line-946"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11393'</span><span class='layout'>,</span><span class='chr'>'\11393'</span><span class='layout'>)</span>-<a name="line-947"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11395'</span><span class='layout'>,</span><span class='chr'>'\11395'</span><span class='layout'>)</span>-<a name="line-948"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11397'</span><span class='layout'>,</span><span class='chr'>'\11397'</span><span class='layout'>)</span>-<a name="line-949"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11399'</span><span class='layout'>,</span><span class='chr'>'\11399'</span><span class='layout'>)</span>-<a name="line-950"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11401'</span><span class='layout'>,</span><span class='chr'>'\11401'</span><span class='layout'>)</span>-<a name="line-951"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11403'</span><span class='layout'>,</span><span class='chr'>'\11403'</span><span class='layout'>)</span>-<a name="line-952"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11405'</span><span class='layout'>,</span><span class='chr'>'\11405'</span><span class='layout'>)</span>-<a name="line-953"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11407'</span><span class='layout'>,</span><span class='chr'>'\11407'</span><span class='layout'>)</span>-<a name="line-954"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11409'</span><span class='layout'>,</span><span class='chr'>'\11409'</span><span class='layout'>)</span>-<a name="line-955"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11411'</span><span class='layout'>,</span><span class='chr'>'\11411'</span><span class='layout'>)</span>-<a name="line-956"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11413'</span><span class='layout'>,</span><span class='chr'>'\11413'</span><span class='layout'>)</span>-<a name="line-957"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11415'</span><span class='layout'>,</span><span class='chr'>'\11415'</span><span class='layout'>)</span>-<a name="line-958"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11417'</span><span class='layout'>,</span><span class='chr'>'\11417'</span><span class='layout'>)</span>-<a name="line-959"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11419'</span><span class='layout'>,</span><span class='chr'>'\11419'</span><span class='layout'>)</span>-<a name="line-960"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11421'</span><span class='layout'>,</span><span class='chr'>'\11421'</span><span class='layout'>)</span>-<a name="line-961"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11423'</span><span class='layout'>,</span><span class='chr'>'\11423'</span><span class='layout'>)</span>-<a name="line-962"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11425'</span><span class='layout'>,</span><span class='chr'>'\11425'</span><span class='layout'>)</span>-<a name="line-963"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11427'</span><span class='layout'>,</span><span class='chr'>'\11427'</span><span class='layout'>)</span>-<a name="line-964"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11429'</span><span class='layout'>,</span><span class='chr'>'\11429'</span><span class='layout'>)</span>-<a name="line-965"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11431'</span><span class='layout'>,</span><span class='chr'>'\11431'</span><span class='layout'>)</span>-<a name="line-966"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11433'</span><span class='layout'>,</span><span class='chr'>'\11433'</span><span class='layout'>)</span>-<a name="line-967"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11435'</span><span class='layout'>,</span><span class='chr'>'\11435'</span><span class='layout'>)</span>-<a name="line-968"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11437'</span><span class='layout'>,</span><span class='chr'>'\11437'</span><span class='layout'>)</span>-<a name="line-969"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11439'</span><span class='layout'>,</span><span class='chr'>'\11439'</span><span class='layout'>)</span>-<a name="line-970"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11441'</span><span class='layout'>,</span><span class='chr'>'\11441'</span><span class='layout'>)</span>-<a name="line-971"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11443'</span><span class='layout'>,</span><span class='chr'>'\11443'</span><span class='layout'>)</span>-<a name="line-972"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11445'</span><span class='layout'>,</span><span class='chr'>'\11445'</span><span class='layout'>)</span>-<a name="line-973"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11447'</span><span class='layout'>,</span><span class='chr'>'\11447'</span><span class='layout'>)</span>-<a name="line-974"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11449'</span><span class='layout'>,</span><span class='chr'>'\11449'</span><span class='layout'>)</span>-<a name="line-975"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11451'</span><span class='layout'>,</span><span class='chr'>'\11451'</span><span class='layout'>)</span>-<a name="line-976"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11453'</span><span class='layout'>,</span><span class='chr'>'\11453'</span><span class='layout'>)</span>-<a name="line-977"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11455'</span><span class='layout'>,</span><span class='chr'>'\11455'</span><span class='layout'>)</span>-<a name="line-978"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11457'</span><span class='layout'>,</span><span class='chr'>'\11457'</span><span class='layout'>)</span>-<a name="line-979"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11459'</span><span class='layout'>,</span><span class='chr'>'\11459'</span><span class='layout'>)</span>-<a name="line-980"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11461'</span><span class='layout'>,</span><span class='chr'>'\11461'</span><span class='layout'>)</span>-<a name="line-981"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11463'</span><span class='layout'>,</span><span class='chr'>'\11463'</span><span class='layout'>)</span>-<a name="line-982"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11465'</span><span class='layout'>,</span><span class='chr'>'\11465'</span><span class='layout'>)</span>-<a name="line-983"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11467'</span><span class='layout'>,</span><span class='chr'>'\11467'</span><span class='layout'>)</span>-<a name="line-984"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11469'</span><span class='layout'>,</span><span class='chr'>'\11469'</span><span class='layout'>)</span>-<a name="line-985"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11471'</span><span class='layout'>,</span><span class='chr'>'\11471'</span><span class='layout'>)</span>-<a name="line-986"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11473'</span><span class='layout'>,</span><span class='chr'>'\11473'</span><span class='layout'>)</span>-<a name="line-987"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11475'</span><span class='layout'>,</span><span class='chr'>'\11475'</span><span class='layout'>)</span>-<a name="line-988"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11477'</span><span class='layout'>,</span><span class='chr'>'\11477'</span><span class='layout'>)</span>-<a name="line-989"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11479'</span><span class='layout'>,</span><span class='chr'>'\11479'</span><span class='layout'>)</span>-<a name="line-990"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11481'</span><span class='layout'>,</span><span class='chr'>'\11481'</span><span class='layout'>)</span>-<a name="line-991"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11483'</span><span class='layout'>,</span><span class='chr'>'\11483'</span><span class='layout'>)</span>-<a name="line-992"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11485'</span><span class='layout'>,</span><span class='chr'>'\11485'</span><span class='layout'>)</span>-<a name="line-993"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11487'</span><span class='layout'>,</span><span class='chr'>'\11487'</span><span class='layout'>)</span>-<a name="line-994"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11489'</span><span class='layout'>,</span><span class='chr'>'\11489'</span><span class='layout'>)</span>-<a name="line-995"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11491'</span><span class='layout'>,</span><span class='chr'>'\11492'</span><span class='layout'>)</span>-<a name="line-996"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11520'</span><span class='layout'>,</span><span class='chr'>'\11557'</span><span class='layout'>)</span>-<a name="line-997"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64256'</span><span class='layout'>,</span><span class='chr'>'\64262'</span><span class='layout'>)</span>-<a name="line-998"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64275'</span><span class='layout'>,</span><span class='chr'>'\64279'</span><span class='layout'>)</span>-<a name="line-999"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65345'</span><span class='layout'>,</span><span class='chr'>'\65370'</span><span class='layout'>)</span>-<a name="line-1000"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\66600'</span><span class='layout'>,</span><span class='chr'>'\66639'</span><span class='layout'>)</span>-<a name="line-1001"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119834'</span><span class='layout'>,</span><span class='chr'>'\119859'</span><span class='layout'>)</span>-<a name="line-1002"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119886'</span><span class='layout'>,</span><span class='chr'>'\119892'</span><span class='layout'>)</span>-<a name="line-1003"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119894'</span><span class='layout'>,</span><span class='chr'>'\119911'</span><span class='layout'>)</span>-<a name="line-1004"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119938'</span><span class='layout'>,</span><span class='chr'>'\119963'</span><span class='layout'>)</span>-<a name="line-1005"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119990'</span><span class='layout'>,</span><span class='chr'>'\119993'</span><span class='layout'>)</span>-<a name="line-1006"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119995'</span><span class='layout'>,</span><span class='chr'>'\119995'</span><span class='layout'>)</span>-<a name="line-1007"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119997'</span><span class='layout'>,</span><span class='chr'>'\120003'</span><span class='layout'>)</span>-<a name="line-1008"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120005'</span><span class='layout'>,</span><span class='chr'>'\120015'</span><span class='layout'>)</span>-<a name="line-1009"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120042'</span><span class='layout'>,</span><span class='chr'>'\120067'</span><span class='layout'>)</span>-<a name="line-1010"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120094'</span><span class='layout'>,</span><span class='chr'>'\120119'</span><span class='layout'>)</span>-<a name="line-1011"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120146'</span><span class='layout'>,</span><span class='chr'>'\120171'</span><span class='layout'>)</span>-<a name="line-1012"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120198'</span><span class='layout'>,</span><span class='chr'>'\120223'</span><span class='layout'>)</span>-<a name="line-1013"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120250'</span><span class='layout'>,</span><span class='chr'>'\120275'</span><span class='layout'>)</span>-<a name="line-1014"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120302'</span><span class='layout'>,</span><span class='chr'>'\120327'</span><span class='layout'>)</span>-<a name="line-1015"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120354'</span><span class='layout'>,</span><span class='chr'>'\120379'</span><span class='layout'>)</span>-<a name="line-1016"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120406'</span><span class='layout'>,</span><span class='chr'>'\120431'</span><span class='layout'>)</span>-<a name="line-1017"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120458'</span><span class='layout'>,</span><span class='chr'>'\120485'</span><span class='layout'>)</span>-<a name="line-1018"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120514'</span><span class='layout'>,</span><span class='chr'>'\120538'</span><span class='layout'>)</span>-<a name="line-1019"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120540'</span><span class='layout'>,</span><span class='chr'>'\120545'</span><span class='layout'>)</span>-<a name="line-1020"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120572'</span><span class='layout'>,</span><span class='chr'>'\120596'</span><span class='layout'>)</span>-<a name="line-1021"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120598'</span><span class='layout'>,</span><span class='chr'>'\120603'</span><span class='layout'>)</span>-<a name="line-1022"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120630'</span><span class='layout'>,</span><span class='chr'>'\120654'</span><span class='layout'>)</span>-<a name="line-1023"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120656'</span><span class='layout'>,</span><span class='chr'>'\120661'</span><span class='layout'>)</span>-<a name="line-1024"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120688'</span><span class='layout'>,</span><span class='chr'>'\120712'</span><span class='layout'>)</span>-<a name="line-1025"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120714'</span><span class='layout'>,</span><span class='chr'>'\120719'</span><span class='layout'>)</span>-<a name="line-1026"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120746'</span><span class='layout'>,</span><span class='chr'>'\120770'</span><span class='layout'>)</span>-<a name="line-1027"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120772'</span><span class='layout'>,</span><span class='chr'>'\120777'</span><span class='layout'>)</span>-<a name="line-1028"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120779'</span><span class='layout'>,</span><span class='chr'>'\120779'</span><span class='layout'>)</span>-<a name="line-1029"></a> <span class='keyglyph'>]</span>-<a name="line-1030"></a>-<a name="line-1031"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-1032"></a>-<a name="line-1033"></a><a name="isUnicodeLm"></a><span class='definition'>isUnicodeLm</span> <span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-1034"></a><span class='definition'>isUnicodeLm</span> <span class='varid'>c</span>-<a name="line-1035"></a> <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>-<a name="line-1036"></a> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\688'</span><span class='layout'>,</span><span class='chr'>'\705'</span><span class='layout'>)</span>-<a name="line-1037"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\710'</span><span class='layout'>,</span><span class='chr'>'\721'</span><span class='layout'>)</span>-<a name="line-1038"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\736'</span><span class='layout'>,</span><span class='chr'>'\740'</span><span class='layout'>)</span>-<a name="line-1039"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\750'</span><span class='layout'>,</span><span class='chr'>'\750'</span><span class='layout'>)</span>-<a name="line-1040"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\890'</span><span class='layout'>,</span><span class='chr'>'\890'</span><span class='layout'>)</span>-<a name="line-1041"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1369'</span><span class='layout'>,</span><span class='chr'>'\1369'</span><span class='layout'>)</span>-<a name="line-1042"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1600'</span><span class='layout'>,</span><span class='chr'>'\1600'</span><span class='layout'>)</span>-<a name="line-1043"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1765'</span><span class='layout'>,</span><span class='chr'>'\1766'</span><span class='layout'>)</span>-<a name="line-1044"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2036'</span><span class='layout'>,</span><span class='chr'>'\2037'</span><span class='layout'>)</span>-<a name="line-1045"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2042'</span><span class='layout'>,</span><span class='chr'>'\2042'</span><span class='layout'>)</span>-<a name="line-1046"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3654'</span><span class='layout'>,</span><span class='chr'>'\3654'</span><span class='layout'>)</span>-<a name="line-1047"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3782'</span><span class='layout'>,</span><span class='chr'>'\3782'</span><span class='layout'>)</span>-<a name="line-1048"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4348'</span><span class='layout'>,</span><span class='chr'>'\4348'</span><span class='layout'>)</span>-<a name="line-1049"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6103'</span><span class='layout'>,</span><span class='chr'>'\6103'</span><span class='layout'>)</span>-<a name="line-1050"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6211'</span><span class='layout'>,</span><span class='chr'>'\6211'</span><span class='layout'>)</span>-<a name="line-1051"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7468'</span><span class='layout'>,</span><span class='chr'>'\7521'</span><span class='layout'>)</span>-<a name="line-1052"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7544'</span><span class='layout'>,</span><span class='chr'>'\7544'</span><span class='layout'>)</span>-<a name="line-1053"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7579'</span><span class='layout'>,</span><span class='chr'>'\7615'</span><span class='layout'>)</span>-<a name="line-1054"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8336'</span><span class='layout'>,</span><span class='chr'>'\8340'</span><span class='layout'>)</span>-<a name="line-1055"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11631'</span><span class='layout'>,</span><span class='chr'>'\11631'</span><span class='layout'>)</span>-<a name="line-1056"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12293'</span><span class='layout'>,</span><span class='chr'>'\12293'</span><span class='layout'>)</span>-<a name="line-1057"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12337'</span><span class='layout'>,</span><span class='chr'>'\12341'</span><span class='layout'>)</span>-<a name="line-1058"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12347'</span><span class='layout'>,</span><span class='chr'>'\12347'</span><span class='layout'>)</span>-<a name="line-1059"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12445'</span><span class='layout'>,</span><span class='chr'>'\12446'</span><span class='layout'>)</span>-<a name="line-1060"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12540'</span><span class='layout'>,</span><span class='chr'>'\12542'</span><span class='layout'>)</span>-<a name="line-1061"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\40981'</span><span class='layout'>,</span><span class='chr'>'\40981'</span><span class='layout'>)</span>-<a name="line-1062"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\42775'</span><span class='layout'>,</span><span class='chr'>'\42778'</span><span class='layout'>)</span>-<a name="line-1063"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65392'</span><span class='layout'>,</span><span class='chr'>'\65392'</span><span class='layout'>)</span>-<a name="line-1064"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65438'</span><span class='layout'>,</span><span class='chr'>'\65439'</span><span class='layout'>)</span>-<a name="line-1065"></a> <span class='keyglyph'>]</span>-<a name="line-1066"></a>-<a name="line-1067"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-1068"></a>-<a name="line-1069"></a><a name="isUnicodeLo"></a><span class='definition'>isUnicodeLo</span> <span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-1070"></a><span class='definition'>isUnicodeLo</span> <span class='varid'>c</span>-<a name="line-1071"></a> <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>-<a name="line-1072"></a> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\443'</span><span class='layout'>,</span><span class='chr'>'\443'</span><span class='layout'>)</span>-<a name="line-1073"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\448'</span><span class='layout'>,</span><span class='chr'>'\451'</span><span class='layout'>)</span>-<a name="line-1074"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\660'</span><span class='layout'>,</span><span class='chr'>'\660'</span><span class='layout'>)</span>-<a name="line-1075"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1488'</span><span class='layout'>,</span><span class='chr'>'\1514'</span><span class='layout'>)</span>-<a name="line-1076"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1520'</span><span class='layout'>,</span><span class='chr'>'\1522'</span><span class='layout'>)</span>-<a name="line-1077"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1569'</span><span class='layout'>,</span><span class='chr'>'\1594'</span><span class='layout'>)</span>-<a name="line-1078"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1601'</span><span class='layout'>,</span><span class='chr'>'\1610'</span><span class='layout'>)</span>-<a name="line-1079"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1646'</span><span class='layout'>,</span><span class='chr'>'\1647'</span><span class='layout'>)</span>-<a name="line-1080"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1649'</span><span class='layout'>,</span><span class='chr'>'\1747'</span><span class='layout'>)</span>-<a name="line-1081"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1749'</span><span class='layout'>,</span><span class='chr'>'\1749'</span><span class='layout'>)</span>-<a name="line-1082"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1774'</span><span class='layout'>,</span><span class='chr'>'\1775'</span><span class='layout'>)</span>-<a name="line-1083"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1786'</span><span class='layout'>,</span><span class='chr'>'\1788'</span><span class='layout'>)</span>-<a name="line-1084"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1791'</span><span class='layout'>,</span><span class='chr'>'\1791'</span><span class='layout'>)</span>-<a name="line-1085"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1808'</span><span class='layout'>,</span><span class='chr'>'\1808'</span><span class='layout'>)</span>-<a name="line-1086"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1810'</span><span class='layout'>,</span><span class='chr'>'\1839'</span><span class='layout'>)</span>-<a name="line-1087"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1869'</span><span class='layout'>,</span><span class='chr'>'\1901'</span><span class='layout'>)</span>-<a name="line-1088"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1920'</span><span class='layout'>,</span><span class='chr'>'\1957'</span><span class='layout'>)</span>-<a name="line-1089"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1969'</span><span class='layout'>,</span><span class='chr'>'\1969'</span><span class='layout'>)</span>-<a name="line-1090"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1994'</span><span class='layout'>,</span><span class='chr'>'\2026'</span><span class='layout'>)</span>-<a name="line-1091"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2308'</span><span class='layout'>,</span><span class='chr'>'\2361'</span><span class='layout'>)</span>-<a name="line-1092"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2365'</span><span class='layout'>,</span><span class='chr'>'\2365'</span><span class='layout'>)</span>-<a name="line-1093"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2384'</span><span class='layout'>,</span><span class='chr'>'\2384'</span><span class='layout'>)</span>-<a name="line-1094"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2392'</span><span class='layout'>,</span><span class='chr'>'\2401'</span><span class='layout'>)</span>-<a name="line-1095"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2427'</span><span class='layout'>,</span><span class='chr'>'\2431'</span><span class='layout'>)</span>-<a name="line-1096"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2437'</span><span class='layout'>,</span><span class='chr'>'\2444'</span><span class='layout'>)</span>-<a name="line-1097"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2447'</span><span class='layout'>,</span><span class='chr'>'\2448'</span><span class='layout'>)</span>-<a name="line-1098"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2451'</span><span class='layout'>,</span><span class='chr'>'\2472'</span><span class='layout'>)</span>-<a name="line-1099"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2474'</span><span class='layout'>,</span><span class='chr'>'\2480'</span><span class='layout'>)</span>-<a name="line-1100"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2482'</span><span class='layout'>,</span><span class='chr'>'\2482'</span><span class='layout'>)</span>-<a name="line-1101"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2486'</span><span class='layout'>,</span><span class='chr'>'\2489'</span><span class='layout'>)</span>-<a name="line-1102"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2493'</span><span class='layout'>,</span><span class='chr'>'\2493'</span><span class='layout'>)</span>-<a name="line-1103"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2510'</span><span class='layout'>,</span><span class='chr'>'\2510'</span><span class='layout'>)</span>-<a name="line-1104"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2524'</span><span class='layout'>,</span><span class='chr'>'\2525'</span><span class='layout'>)</span>-<a name="line-1105"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2527'</span><span class='layout'>,</span><span class='chr'>'\2529'</span><span class='layout'>)</span>-<a name="line-1106"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2544'</span><span class='layout'>,</span><span class='chr'>'\2545'</span><span class='layout'>)</span>-<a name="line-1107"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2565'</span><span class='layout'>,</span><span class='chr'>'\2570'</span><span class='layout'>)</span>-<a name="line-1108"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2575'</span><span class='layout'>,</span><span class='chr'>'\2576'</span><span class='layout'>)</span>-<a name="line-1109"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2579'</span><span class='layout'>,</span><span class='chr'>'\2600'</span><span class='layout'>)</span>-<a name="line-1110"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2602'</span><span class='layout'>,</span><span class='chr'>'\2608'</span><span class='layout'>)</span>-<a name="line-1111"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2610'</span><span class='layout'>,</span><span class='chr'>'\2611'</span><span class='layout'>)</span>-<a name="line-1112"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2613'</span><span class='layout'>,</span><span class='chr'>'\2614'</span><span class='layout'>)</span>-<a name="line-1113"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2616'</span><span class='layout'>,</span><span class='chr'>'\2617'</span><span class='layout'>)</span>-<a name="line-1114"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2649'</span><span class='layout'>,</span><span class='chr'>'\2652'</span><span class='layout'>)</span>-<a name="line-1115"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2654'</span><span class='layout'>,</span><span class='chr'>'\2654'</span><span class='layout'>)</span>-<a name="line-1116"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2674'</span><span class='layout'>,</span><span class='chr'>'\2676'</span><span class='layout'>)</span>-<a name="line-1117"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2693'</span><span class='layout'>,</span><span class='chr'>'\2701'</span><span class='layout'>)</span>-<a name="line-1118"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2703'</span><span class='layout'>,</span><span class='chr'>'\2705'</span><span class='layout'>)</span>-<a name="line-1119"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2707'</span><span class='layout'>,</span><span class='chr'>'\2728'</span><span class='layout'>)</span>-<a name="line-1120"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2730'</span><span class='layout'>,</span><span class='chr'>'\2736'</span><span class='layout'>)</span>-<a name="line-1121"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2738'</span><span class='layout'>,</span><span class='chr'>'\2739'</span><span class='layout'>)</span>-<a name="line-1122"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2741'</span><span class='layout'>,</span><span class='chr'>'\2745'</span><span class='layout'>)</span>-<a name="line-1123"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2749'</span><span class='layout'>,</span><span class='chr'>'\2749'</span><span class='layout'>)</span>-<a name="line-1124"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2768'</span><span class='layout'>,</span><span class='chr'>'\2768'</span><span class='layout'>)</span>-<a name="line-1125"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2784'</span><span class='layout'>,</span><span class='chr'>'\2785'</span><span class='layout'>)</span>-<a name="line-1126"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2821'</span><span class='layout'>,</span><span class='chr'>'\2828'</span><span class='layout'>)</span>-<a name="line-1127"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2831'</span><span class='layout'>,</span><span class='chr'>'\2832'</span><span class='layout'>)</span>-<a name="line-1128"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2835'</span><span class='layout'>,</span><span class='chr'>'\2856'</span><span class='layout'>)</span>-<a name="line-1129"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2858'</span><span class='layout'>,</span><span class='chr'>'\2864'</span><span class='layout'>)</span>-<a name="line-1130"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2866'</span><span class='layout'>,</span><span class='chr'>'\2867'</span><span class='layout'>)</span>-<a name="line-1131"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2869'</span><span class='layout'>,</span><span class='chr'>'\2873'</span><span class='layout'>)</span>-<a name="line-1132"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2877'</span><span class='layout'>,</span><span class='chr'>'\2877'</span><span class='layout'>)</span>-<a name="line-1133"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2908'</span><span class='layout'>,</span><span class='chr'>'\2909'</span><span class='layout'>)</span>-<a name="line-1134"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2911'</span><span class='layout'>,</span><span class='chr'>'\2913'</span><span class='layout'>)</span>-<a name="line-1135"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2929'</span><span class='layout'>,</span><span class='chr'>'\2929'</span><span class='layout'>)</span>-<a name="line-1136"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2947'</span><span class='layout'>,</span><span class='chr'>'\2947'</span><span class='layout'>)</span>-<a name="line-1137"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2949'</span><span class='layout'>,</span><span class='chr'>'\2954'</span><span class='layout'>)</span>-<a name="line-1138"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2958'</span><span class='layout'>,</span><span class='chr'>'\2960'</span><span class='layout'>)</span>-<a name="line-1139"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2962'</span><span class='layout'>,</span><span class='chr'>'\2965'</span><span class='layout'>)</span>-<a name="line-1140"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2969'</span><span class='layout'>,</span><span class='chr'>'\2970'</span><span class='layout'>)</span>-<a name="line-1141"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2972'</span><span class='layout'>,</span><span class='chr'>'\2972'</span><span class='layout'>)</span>-<a name="line-1142"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2974'</span><span class='layout'>,</span><span class='chr'>'\2975'</span><span class='layout'>)</span>-<a name="line-1143"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2979'</span><span class='layout'>,</span><span class='chr'>'\2980'</span><span class='layout'>)</span>-<a name="line-1144"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2984'</span><span class='layout'>,</span><span class='chr'>'\2986'</span><span class='layout'>)</span>-<a name="line-1145"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2990'</span><span class='layout'>,</span><span class='chr'>'\3001'</span><span class='layout'>)</span>-<a name="line-1146"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3077'</span><span class='layout'>,</span><span class='chr'>'\3084'</span><span class='layout'>)</span>-<a name="line-1147"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3086'</span><span class='layout'>,</span><span class='chr'>'\3088'</span><span class='layout'>)</span>-<a name="line-1148"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3090'</span><span class='layout'>,</span><span class='chr'>'\3112'</span><span class='layout'>)</span>-<a name="line-1149"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3114'</span><span class='layout'>,</span><span class='chr'>'\3123'</span><span class='layout'>)</span>-<a name="line-1150"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3125'</span><span class='layout'>,</span><span class='chr'>'\3129'</span><span class='layout'>)</span>-<a name="line-1151"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3168'</span><span class='layout'>,</span><span class='chr'>'\3169'</span><span class='layout'>)</span>-<a name="line-1152"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3205'</span><span class='layout'>,</span><span class='chr'>'\3212'</span><span class='layout'>)</span>-<a name="line-1153"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3214'</span><span class='layout'>,</span><span class='chr'>'\3216'</span><span class='layout'>)</span>-<a name="line-1154"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3218'</span><span class='layout'>,</span><span class='chr'>'\3240'</span><span class='layout'>)</span>-<a name="line-1155"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3242'</span><span class='layout'>,</span><span class='chr'>'\3251'</span><span class='layout'>)</span>-<a name="line-1156"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3253'</span><span class='layout'>,</span><span class='chr'>'\3257'</span><span class='layout'>)</span>-<a name="line-1157"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3261'</span><span class='layout'>,</span><span class='chr'>'\3261'</span><span class='layout'>)</span>-<a name="line-1158"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3294'</span><span class='layout'>,</span><span class='chr'>'\3294'</span><span class='layout'>)</span>-<a name="line-1159"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3296'</span><span class='layout'>,</span><span class='chr'>'\3297'</span><span class='layout'>)</span>-<a name="line-1160"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3333'</span><span class='layout'>,</span><span class='chr'>'\3340'</span><span class='layout'>)</span>-<a name="line-1161"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3342'</span><span class='layout'>,</span><span class='chr'>'\3344'</span><span class='layout'>)</span>-<a name="line-1162"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3346'</span><span class='layout'>,</span><span class='chr'>'\3368'</span><span class='layout'>)</span>-<a name="line-1163"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3370'</span><span class='layout'>,</span><span class='chr'>'\3385'</span><span class='layout'>)</span>-<a name="line-1164"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3424'</span><span class='layout'>,</span><span class='chr'>'\3425'</span><span class='layout'>)</span>-<a name="line-1165"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3461'</span><span class='layout'>,</span><span class='chr'>'\3478'</span><span class='layout'>)</span>-<a name="line-1166"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3482'</span><span class='layout'>,</span><span class='chr'>'\3505'</span><span class='layout'>)</span>-<a name="line-1167"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3507'</span><span class='layout'>,</span><span class='chr'>'\3515'</span><span class='layout'>)</span>-<a name="line-1168"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3517'</span><span class='layout'>,</span><span class='chr'>'\3517'</span><span class='layout'>)</span>-<a name="line-1169"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3520'</span><span class='layout'>,</span><span class='chr'>'\3526'</span><span class='layout'>)</span>-<a name="line-1170"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3585'</span><span class='layout'>,</span><span class='chr'>'\3632'</span><span class='layout'>)</span>-<a name="line-1171"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3634'</span><span class='layout'>,</span><span class='chr'>'\3635'</span><span class='layout'>)</span>-<a name="line-1172"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3648'</span><span class='layout'>,</span><span class='chr'>'\3653'</span><span class='layout'>)</span>-<a name="line-1173"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3713'</span><span class='layout'>,</span><span class='chr'>'\3714'</span><span class='layout'>)</span>-<a name="line-1174"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3716'</span><span class='layout'>,</span><span class='chr'>'\3716'</span><span class='layout'>)</span>-<a name="line-1175"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3719'</span><span class='layout'>,</span><span class='chr'>'\3720'</span><span class='layout'>)</span>-<a name="line-1176"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3722'</span><span class='layout'>,</span><span class='chr'>'\3722'</span><span class='layout'>)</span>-<a name="line-1177"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3725'</span><span class='layout'>,</span><span class='chr'>'\3725'</span><span class='layout'>)</span>-<a name="line-1178"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3732'</span><span class='layout'>,</span><span class='chr'>'\3735'</span><span class='layout'>)</span>-<a name="line-1179"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3737'</span><span class='layout'>,</span><span class='chr'>'\3743'</span><span class='layout'>)</span>-<a name="line-1180"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3745'</span><span class='layout'>,</span><span class='chr'>'\3747'</span><span class='layout'>)</span>-<a name="line-1181"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3749'</span><span class='layout'>,</span><span class='chr'>'\3749'</span><span class='layout'>)</span>-<a name="line-1182"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3751'</span><span class='layout'>,</span><span class='chr'>'\3751'</span><span class='layout'>)</span>-<a name="line-1183"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3754'</span><span class='layout'>,</span><span class='chr'>'\3755'</span><span class='layout'>)</span>-<a name="line-1184"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3757'</span><span class='layout'>,</span><span class='chr'>'\3760'</span><span class='layout'>)</span>-<a name="line-1185"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3762'</span><span class='layout'>,</span><span class='chr'>'\3763'</span><span class='layout'>)</span>-<a name="line-1186"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3773'</span><span class='layout'>,</span><span class='chr'>'\3773'</span><span class='layout'>)</span>-<a name="line-1187"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3776'</span><span class='layout'>,</span><span class='chr'>'\3780'</span><span class='layout'>)</span>-<a name="line-1188"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3804'</span><span class='layout'>,</span><span class='chr'>'\3805'</span><span class='layout'>)</span>-<a name="line-1189"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3840'</span><span class='layout'>,</span><span class='chr'>'\3840'</span><span class='layout'>)</span>-<a name="line-1190"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3904'</span><span class='layout'>,</span><span class='chr'>'\3911'</span><span class='layout'>)</span>-<a name="line-1191"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3913'</span><span class='layout'>,</span><span class='chr'>'\3946'</span><span class='layout'>)</span>-<a name="line-1192"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3976'</span><span class='layout'>,</span><span class='chr'>'\3979'</span><span class='layout'>)</span>-<a name="line-1193"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4096'</span><span class='layout'>,</span><span class='chr'>'\4129'</span><span class='layout'>)</span>-<a name="line-1194"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4131'</span><span class='layout'>,</span><span class='chr'>'\4135'</span><span class='layout'>)</span>-<a name="line-1195"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4137'</span><span class='layout'>,</span><span class='chr'>'\4138'</span><span class='layout'>)</span>-<a name="line-1196"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4176'</span><span class='layout'>,</span><span class='chr'>'\4181'</span><span class='layout'>)</span>-<a name="line-1197"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4304'</span><span class='layout'>,</span><span class='chr'>'\4346'</span><span class='layout'>)</span>-<a name="line-1198"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4352'</span><span class='layout'>,</span><span class='chr'>'\4441'</span><span class='layout'>)</span>-<a name="line-1199"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4447'</span><span class='layout'>,</span><span class='chr'>'\4514'</span><span class='layout'>)</span>-<a name="line-1200"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4520'</span><span class='layout'>,</span><span class='chr'>'\4601'</span><span class='layout'>)</span>-<a name="line-1201"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4608'</span><span class='layout'>,</span><span class='chr'>'\4680'</span><span class='layout'>)</span>-<a name="line-1202"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4682'</span><span class='layout'>,</span><span class='chr'>'\4685'</span><span class='layout'>)</span>-<a name="line-1203"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4688'</span><span class='layout'>,</span><span class='chr'>'\4694'</span><span class='layout'>)</span>-<a name="line-1204"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4696'</span><span class='layout'>,</span><span class='chr'>'\4696'</span><span class='layout'>)</span>-<a name="line-1205"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4698'</span><span class='layout'>,</span><span class='chr'>'\4701'</span><span class='layout'>)</span>-<a name="line-1206"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4704'</span><span class='layout'>,</span><span class='chr'>'\4744'</span><span class='layout'>)</span>-<a name="line-1207"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4746'</span><span class='layout'>,</span><span class='chr'>'\4749'</span><span class='layout'>)</span>-<a name="line-1208"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4752'</span><span class='layout'>,</span><span class='chr'>'\4784'</span><span class='layout'>)</span>-<a name="line-1209"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4786'</span><span class='layout'>,</span><span class='chr'>'\4789'</span><span class='layout'>)</span>-<a name="line-1210"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4792'</span><span class='layout'>,</span><span class='chr'>'\4798'</span><span class='layout'>)</span>-<a name="line-1211"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4800'</span><span class='layout'>,</span><span class='chr'>'\4800'</span><span class='layout'>)</span>-<a name="line-1212"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4802'</span><span class='layout'>,</span><span class='chr'>'\4805'</span><span class='layout'>)</span>-<a name="line-1213"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4808'</span><span class='layout'>,</span><span class='chr'>'\4822'</span><span class='layout'>)</span>-<a name="line-1214"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4824'</span><span class='layout'>,</span><span class='chr'>'\4880'</span><span class='layout'>)</span>-<a name="line-1215"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4882'</span><span class='layout'>,</span><span class='chr'>'\4885'</span><span class='layout'>)</span>-<a name="line-1216"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4888'</span><span class='layout'>,</span><span class='chr'>'\4954'</span><span class='layout'>)</span>-<a name="line-1217"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4992'</span><span class='layout'>,</span><span class='chr'>'\5007'</span><span class='layout'>)</span>-<a name="line-1218"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5024'</span><span class='layout'>,</span><span class='chr'>'\5108'</span><span class='layout'>)</span>-<a name="line-1219"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5121'</span><span class='layout'>,</span><span class='chr'>'\5740'</span><span class='layout'>)</span>-<a name="line-1220"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5743'</span><span class='layout'>,</span><span class='chr'>'\5750'</span><span class='layout'>)</span>-<a name="line-1221"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5761'</span><span class='layout'>,</span><span class='chr'>'\5786'</span><span class='layout'>)</span>-<a name="line-1222"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5792'</span><span class='layout'>,</span><span class='chr'>'\5866'</span><span class='layout'>)</span>-<a name="line-1223"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5888'</span><span class='layout'>,</span><span class='chr'>'\5900'</span><span class='layout'>)</span>-<a name="line-1224"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5902'</span><span class='layout'>,</span><span class='chr'>'\5905'</span><span class='layout'>)</span>-<a name="line-1225"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5920'</span><span class='layout'>,</span><span class='chr'>'\5937'</span><span class='layout'>)</span>-<a name="line-1226"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5952'</span><span class='layout'>,</span><span class='chr'>'\5969'</span><span class='layout'>)</span>-<a name="line-1227"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5984'</span><span class='layout'>,</span><span class='chr'>'\5996'</span><span class='layout'>)</span>-<a name="line-1228"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5998'</span><span class='layout'>,</span><span class='chr'>'\6000'</span><span class='layout'>)</span>-<a name="line-1229"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6016'</span><span class='layout'>,</span><span class='chr'>'\6067'</span><span class='layout'>)</span>-<a name="line-1230"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6108'</span><span class='layout'>,</span><span class='chr'>'\6108'</span><span class='layout'>)</span>-<a name="line-1231"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6176'</span><span class='layout'>,</span><span class='chr'>'\6210'</span><span class='layout'>)</span>-<a name="line-1232"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6212'</span><span class='layout'>,</span><span class='chr'>'\6263'</span><span class='layout'>)</span>-<a name="line-1233"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6272'</span><span class='layout'>,</span><span class='chr'>'\6312'</span><span class='layout'>)</span>-<a name="line-1234"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6400'</span><span class='layout'>,</span><span class='chr'>'\6428'</span><span class='layout'>)</span>-<a name="line-1235"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6480'</span><span class='layout'>,</span><span class='chr'>'\6509'</span><span class='layout'>)</span>-<a name="line-1236"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6512'</span><span class='layout'>,</span><span class='chr'>'\6516'</span><span class='layout'>)</span>-<a name="line-1237"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6528'</span><span class='layout'>,</span><span class='chr'>'\6569'</span><span class='layout'>)</span>-<a name="line-1238"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6593'</span><span class='layout'>,</span><span class='chr'>'\6599'</span><span class='layout'>)</span>-<a name="line-1239"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6656'</span><span class='layout'>,</span><span class='chr'>'\6678'</span><span class='layout'>)</span>-<a name="line-1240"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6917'</span><span class='layout'>,</span><span class='chr'>'\6963'</span><span class='layout'>)</span>-<a name="line-1241"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6981'</span><span class='layout'>,</span><span class='chr'>'\6987'</span><span class='layout'>)</span>-<a name="line-1242"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8501'</span><span class='layout'>,</span><span class='chr'>'\8504'</span><span class='layout'>)</span>-<a name="line-1243"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11568'</span><span class='layout'>,</span><span class='chr'>'\11621'</span><span class='layout'>)</span>-<a name="line-1244"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11648'</span><span class='layout'>,</span><span class='chr'>'\11670'</span><span class='layout'>)</span>-<a name="line-1245"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11680'</span><span class='layout'>,</span><span class='chr'>'\11686'</span><span class='layout'>)</span>-<a name="line-1246"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11688'</span><span class='layout'>,</span><span class='chr'>'\11694'</span><span class='layout'>)</span>-<a name="line-1247"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11696'</span><span class='layout'>,</span><span class='chr'>'\11702'</span><span class='layout'>)</span>-<a name="line-1248"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11704'</span><span class='layout'>,</span><span class='chr'>'\11710'</span><span class='layout'>)</span>-<a name="line-1249"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11712'</span><span class='layout'>,</span><span class='chr'>'\11718'</span><span class='layout'>)</span>-<a name="line-1250"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11720'</span><span class='layout'>,</span><span class='chr'>'\11726'</span><span class='layout'>)</span>-<a name="line-1251"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11728'</span><span class='layout'>,</span><span class='chr'>'\11734'</span><span class='layout'>)</span>-<a name="line-1252"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11736'</span><span class='layout'>,</span><span class='chr'>'\11742'</span><span class='layout'>)</span>-<a name="line-1253"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12294'</span><span class='layout'>,</span><span class='chr'>'\12294'</span><span class='layout'>)</span>-<a name="line-1254"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12348'</span><span class='layout'>,</span><span class='chr'>'\12348'</span><span class='layout'>)</span>-<a name="line-1255"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12353'</span><span class='layout'>,</span><span class='chr'>'\12438'</span><span class='layout'>)</span>-<a name="line-1256"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12447'</span><span class='layout'>,</span><span class='chr'>'\12447'</span><span class='layout'>)</span>-<a name="line-1257"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12449'</span><span class='layout'>,</span><span class='chr'>'\12538'</span><span class='layout'>)</span>-<a name="line-1258"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12543'</span><span class='layout'>,</span><span class='chr'>'\12543'</span><span class='layout'>)</span>-<a name="line-1259"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12549'</span><span class='layout'>,</span><span class='chr'>'\12588'</span><span class='layout'>)</span>-<a name="line-1260"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12593'</span><span class='layout'>,</span><span class='chr'>'\12686'</span><span class='layout'>)</span>-<a name="line-1261"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12704'</span><span class='layout'>,</span><span class='chr'>'\12727'</span><span class='layout'>)</span>-<a name="line-1262"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12784'</span><span class='layout'>,</span><span class='chr'>'\12799'</span><span class='layout'>)</span>-<a name="line-1263"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\13312'</span><span class='layout'>,</span><span class='chr'>'\13312'</span><span class='layout'>)</span>-<a name="line-1264"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\19893'</span><span class='layout'>,</span><span class='chr'>'\19893'</span><span class='layout'>)</span>-<a name="line-1265"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\19968'</span><span class='layout'>,</span><span class='chr'>'\19968'</span><span class='layout'>)</span>-<a name="line-1266"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\40891'</span><span class='layout'>,</span><span class='chr'>'\40891'</span><span class='layout'>)</span>-<a name="line-1267"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\40960'</span><span class='layout'>,</span><span class='chr'>'\40980'</span><span class='layout'>)</span>-<a name="line-1268"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\40982'</span><span class='layout'>,</span><span class='chr'>'\42124'</span><span class='layout'>)</span>-<a name="line-1269"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\43008'</span><span class='layout'>,</span><span class='chr'>'\43009'</span><span class='layout'>)</span>-<a name="line-1270"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\43011'</span><span class='layout'>,</span><span class='chr'>'\43013'</span><span class='layout'>)</span>-<a name="line-1271"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\43015'</span><span class='layout'>,</span><span class='chr'>'\43018'</span><span class='layout'>)</span>-<a name="line-1272"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\43020'</span><span class='layout'>,</span><span class='chr'>'\43042'</span><span class='layout'>)</span>-<a name="line-1273"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\43072'</span><span class='layout'>,</span><span class='chr'>'\43123'</span><span class='layout'>)</span>-<a name="line-1274"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\44032'</span><span class='layout'>,</span><span class='chr'>'\44032'</span><span class='layout'>)</span>-<a name="line-1275"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\55203'</span><span class='layout'>,</span><span class='chr'>'\55203'</span><span class='layout'>)</span>-<a name="line-1276"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\63744'</span><span class='layout'>,</span><span class='chr'>'\64045'</span><span class='layout'>)</span>-<a name="line-1277"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64048'</span><span class='layout'>,</span><span class='chr'>'\64106'</span><span class='layout'>)</span>-<a name="line-1278"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64112'</span><span class='layout'>,</span><span class='chr'>'\64217'</span><span class='layout'>)</span>-<a name="line-1279"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64285'</span><span class='layout'>,</span><span class='chr'>'\64285'</span><span class='layout'>)</span>-<a name="line-1280"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64287'</span><span class='layout'>,</span><span class='chr'>'\64296'</span><span class='layout'>)</span>-<a name="line-1281"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64298'</span><span class='layout'>,</span><span class='chr'>'\64310'</span><span class='layout'>)</span>-<a name="line-1282"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64312'</span><span class='layout'>,</span><span class='chr'>'\64316'</span><span class='layout'>)</span>-<a name="line-1283"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64318'</span><span class='layout'>,</span><span class='chr'>'\64318'</span><span class='layout'>)</span>-<a name="line-1284"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64320'</span><span class='layout'>,</span><span class='chr'>'\64321'</span><span class='layout'>)</span>-<a name="line-1285"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64323'</span><span class='layout'>,</span><span class='chr'>'\64324'</span><span class='layout'>)</span>-<a name="line-1286"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64326'</span><span class='layout'>,</span><span class='chr'>'\64433'</span><span class='layout'>)</span>-<a name="line-1287"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64467'</span><span class='layout'>,</span><span class='chr'>'\64829'</span><span class='layout'>)</span>-<a name="line-1288"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64848'</span><span class='layout'>,</span><span class='chr'>'\64911'</span><span class='layout'>)</span>-<a name="line-1289"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64914'</span><span class='layout'>,</span><span class='chr'>'\64967'</span><span class='layout'>)</span>-<a name="line-1290"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65008'</span><span class='layout'>,</span><span class='chr'>'\65019'</span><span class='layout'>)</span>-<a name="line-1291"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65136'</span><span class='layout'>,</span><span class='chr'>'\65140'</span><span class='layout'>)</span>-<a name="line-1292"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65142'</span><span class='layout'>,</span><span class='chr'>'\65276'</span><span class='layout'>)</span>-<a name="line-1293"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65382'</span><span class='layout'>,</span><span class='chr'>'\65391'</span><span class='layout'>)</span>-<a name="line-1294"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65393'</span><span class='layout'>,</span><span class='chr'>'\65437'</span><span class='layout'>)</span>-<a name="line-1295"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65440'</span><span class='layout'>,</span><span class='chr'>'\65470'</span><span class='layout'>)</span>-<a name="line-1296"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65474'</span><span class='layout'>,</span><span class='chr'>'\65479'</span><span class='layout'>)</span>-<a name="line-1297"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65482'</span><span class='layout'>,</span><span class='chr'>'\65487'</span><span class='layout'>)</span>-<a name="line-1298"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65490'</span><span class='layout'>,</span><span class='chr'>'\65495'</span><span class='layout'>)</span>-<a name="line-1299"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65498'</span><span class='layout'>,</span><span class='chr'>'\65500'</span><span class='layout'>)</span>-<a name="line-1300"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65536'</span><span class='layout'>,</span><span class='chr'>'\65547'</span><span class='layout'>)</span>-<a name="line-1301"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65549'</span><span class='layout'>,</span><span class='chr'>'\65574'</span><span class='layout'>)</span>-<a name="line-1302"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65576'</span><span class='layout'>,</span><span class='chr'>'\65594'</span><span class='layout'>)</span>-<a name="line-1303"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65596'</span><span class='layout'>,</span><span class='chr'>'\65597'</span><span class='layout'>)</span>-<a name="line-1304"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65599'</span><span class='layout'>,</span><span class='chr'>'\65613'</span><span class='layout'>)</span>-<a name="line-1305"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65616'</span><span class='layout'>,</span><span class='chr'>'\65629'</span><span class='layout'>)</span>-<a name="line-1306"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65664'</span><span class='layout'>,</span><span class='chr'>'\65786'</span><span class='layout'>)</span>-<a name="line-1307"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\66304'</span><span class='layout'>,</span><span class='chr'>'\66334'</span><span class='layout'>)</span>-<a name="line-1308"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\66352'</span><span class='layout'>,</span><span class='chr'>'\66368'</span><span class='layout'>)</span>-<a name="line-1309"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\66370'</span><span class='layout'>,</span><span class='chr'>'\66377'</span><span class='layout'>)</span>-<a name="line-1310"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\66432'</span><span class='layout'>,</span><span class='chr'>'\66461'</span><span class='layout'>)</span>-<a name="line-1311"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\66464'</span><span class='layout'>,</span><span class='chr'>'\66499'</span><span class='layout'>)</span>-<a name="line-1312"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\66504'</span><span class='layout'>,</span><span class='chr'>'\66511'</span><span class='layout'>)</span>-<a name="line-1313"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\66640'</span><span class='layout'>,</span><span class='chr'>'\66717'</span><span class='layout'>)</span>-<a name="line-1314"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\67584'</span><span class='layout'>,</span><span class='chr'>'\67589'</span><span class='layout'>)</span>-<a name="line-1315"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\67592'</span><span class='layout'>,</span><span class='chr'>'\67592'</span><span class='layout'>)</span>-<a name="line-1316"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\67594'</span><span class='layout'>,</span><span class='chr'>'\67637'</span><span class='layout'>)</span>-<a name="line-1317"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\67639'</span><span class='layout'>,</span><span class='chr'>'\67640'</span><span class='layout'>)</span>-<a name="line-1318"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\67644'</span><span class='layout'>,</span><span class='chr'>'\67644'</span><span class='layout'>)</span>-<a name="line-1319"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\67647'</span><span class='layout'>,</span><span class='chr'>'\67647'</span><span class='layout'>)</span>-<a name="line-1320"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\67840'</span><span class='layout'>,</span><span class='chr'>'\67861'</span><span class='layout'>)</span>-<a name="line-1321"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\68096'</span><span class='layout'>,</span><span class='chr'>'\68096'</span><span class='layout'>)</span>-<a name="line-1322"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\68112'</span><span class='layout'>,</span><span class='chr'>'\68115'</span><span class='layout'>)</span>-<a name="line-1323"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\68117'</span><span class='layout'>,</span><span class='chr'>'\68119'</span><span class='layout'>)</span>-<a name="line-1324"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\68121'</span><span class='layout'>,</span><span class='chr'>'\68147'</span><span class='layout'>)</span>-<a name="line-1325"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\73728'</span><span class='layout'>,</span><span class='chr'>'\74606'</span><span class='layout'>)</span>-<a name="line-1326"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\131072'</span><span class='layout'>,</span><span class='chr'>'\131072'</span><span class='layout'>)</span>-<a name="line-1327"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\173782'</span><span class='layout'>,</span><span class='chr'>'\173782'</span><span class='layout'>)</span>-<a name="line-1328"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\194560'</span><span class='layout'>,</span><span class='chr'>'\195101'</span><span class='layout'>)</span>-<a name="line-1329"></a> <span class='keyglyph'>]</span>-<a name="line-1330"></a>-<a name="line-1331"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-1332"></a>-<a name="line-1333"></a><a name="isUnicodeLt"></a><span class='definition'>isUnicodeLt</span> <span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-1334"></a><span class='definition'>isUnicodeLt</span> <span class='varid'>c</span>-<a name="line-1335"></a> <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>-<a name="line-1336"></a> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\453'</span><span class='layout'>,</span><span class='chr'>'\453'</span><span class='layout'>)</span>-<a name="line-1337"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\456'</span><span class='layout'>,</span><span class='chr'>'\456'</span><span class='layout'>)</span>-<a name="line-1338"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\459'</span><span class='layout'>,</span><span class='chr'>'\459'</span><span class='layout'>)</span>-<a name="line-1339"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\498'</span><span class='layout'>,</span><span class='chr'>'\498'</span><span class='layout'>)</span>-<a name="line-1340"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8072'</span><span class='layout'>,</span><span class='chr'>'\8079'</span><span class='layout'>)</span>-<a name="line-1341"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8088'</span><span class='layout'>,</span><span class='chr'>'\8095'</span><span class='layout'>)</span>-<a name="line-1342"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8104'</span><span class='layout'>,</span><span class='chr'>'\8111'</span><span class='layout'>)</span>-<a name="line-1343"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8124'</span><span class='layout'>,</span><span class='chr'>'\8124'</span><span class='layout'>)</span>-<a name="line-1344"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8140'</span><span class='layout'>,</span><span class='chr'>'\8140'</span><span class='layout'>)</span>-<a name="line-1345"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8188'</span><span class='layout'>,</span><span class='chr'>'\8188'</span><span class='layout'>)</span>-<a name="line-1346"></a> <span class='keyglyph'>]</span>-<a name="line-1347"></a>-<a name="line-1348"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-1349"></a>-<a name="line-1350"></a><a name="isUnicodeLu"></a><span class='definition'>isUnicodeLu</span> <span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-1351"></a><span class='definition'>isUnicodeLu</span> <span class='varid'>c</span>-<a name="line-1352"></a> <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>-<a name="line-1353"></a> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'A'</span><span class='layout'>,</span><span class='chr'>'Z'</span><span class='layout'>)</span>-<a name="line-1354"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\192'</span><span class='layout'>,</span><span class='chr'>'\214'</span><span class='layout'>)</span>-<a name="line-1355"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\216'</span><span class='layout'>,</span><span class='chr'>'\222'</span><span class='layout'>)</span>-<a name="line-1356"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\256'</span><span class='layout'>,</span><span class='chr'>'\256'</span><span class='layout'>)</span>-<a name="line-1357"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\258'</span><span class='layout'>,</span><span class='chr'>'\258'</span><span class='layout'>)</span>-<a name="line-1358"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\260'</span><span class='layout'>,</span><span class='chr'>'\260'</span><span class='layout'>)</span>-<a name="line-1359"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\262'</span><span class='layout'>,</span><span class='chr'>'\262'</span><span class='layout'>)</span>-<a name="line-1360"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\264'</span><span class='layout'>,</span><span class='chr'>'\264'</span><span class='layout'>)</span>-<a name="line-1361"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\266'</span><span class='layout'>,</span><span class='chr'>'\266'</span><span class='layout'>)</span>-<a name="line-1362"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\268'</span><span class='layout'>,</span><span class='chr'>'\268'</span><span class='layout'>)</span>-<a name="line-1363"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\270'</span><span class='layout'>,</span><span class='chr'>'\270'</span><span class='layout'>)</span>-<a name="line-1364"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\272'</span><span class='layout'>,</span><span class='chr'>'\272'</span><span class='layout'>)</span>-<a name="line-1365"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\274'</span><span class='layout'>,</span><span class='chr'>'\274'</span><span class='layout'>)</span>-<a name="line-1366"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\276'</span><span class='layout'>,</span><span class='chr'>'\276'</span><span class='layout'>)</span>-<a name="line-1367"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\278'</span><span class='layout'>,</span><span class='chr'>'\278'</span><span class='layout'>)</span>-<a name="line-1368"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\280'</span><span class='layout'>,</span><span class='chr'>'\280'</span><span class='layout'>)</span>-<a name="line-1369"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\282'</span><span class='layout'>,</span><span class='chr'>'\282'</span><span class='layout'>)</span>-<a name="line-1370"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\284'</span><span class='layout'>,</span><span class='chr'>'\284'</span><span class='layout'>)</span>-<a name="line-1371"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\286'</span><span class='layout'>,</span><span class='chr'>'\286'</span><span class='layout'>)</span>-<a name="line-1372"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\288'</span><span class='layout'>,</span><span class='chr'>'\288'</span><span class='layout'>)</span>-<a name="line-1373"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\290'</span><span class='layout'>,</span><span class='chr'>'\290'</span><span class='layout'>)</span>-<a name="line-1374"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\292'</span><span class='layout'>,</span><span class='chr'>'\292'</span><span class='layout'>)</span>-<a name="line-1375"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\294'</span><span class='layout'>,</span><span class='chr'>'\294'</span><span class='layout'>)</span>-<a name="line-1376"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\296'</span><span class='layout'>,</span><span class='chr'>'\296'</span><span class='layout'>)</span>-<a name="line-1377"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\298'</span><span class='layout'>,</span><span class='chr'>'\298'</span><span class='layout'>)</span>-<a name="line-1378"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\300'</span><span class='layout'>,</span><span class='chr'>'\300'</span><span class='layout'>)</span>-<a name="line-1379"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\302'</span><span class='layout'>,</span><span class='chr'>'\302'</span><span class='layout'>)</span>-<a name="line-1380"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\304'</span><span class='layout'>,</span><span class='chr'>'\304'</span><span class='layout'>)</span>-<a name="line-1381"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\306'</span><span class='layout'>,</span><span class='chr'>'\306'</span><span class='layout'>)</span>-<a name="line-1382"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\308'</span><span class='layout'>,</span><span class='chr'>'\308'</span><span class='layout'>)</span>-<a name="line-1383"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\310'</span><span class='layout'>,</span><span class='chr'>'\310'</span><span class='layout'>)</span>-<a name="line-1384"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\313'</span><span class='layout'>,</span><span class='chr'>'\313'</span><span class='layout'>)</span>-<a name="line-1385"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\315'</span><span class='layout'>,</span><span class='chr'>'\315'</span><span class='layout'>)</span>-<a name="line-1386"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\317'</span><span class='layout'>,</span><span class='chr'>'\317'</span><span class='layout'>)</span>-<a name="line-1387"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\319'</span><span class='layout'>,</span><span class='chr'>'\319'</span><span class='layout'>)</span>-<a name="line-1388"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\321'</span><span class='layout'>,</span><span class='chr'>'\321'</span><span class='layout'>)</span>-<a name="line-1389"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\323'</span><span class='layout'>,</span><span class='chr'>'\323'</span><span class='layout'>)</span>-<a name="line-1390"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\325'</span><span class='layout'>,</span><span class='chr'>'\325'</span><span class='layout'>)</span>-<a name="line-1391"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\327'</span><span class='layout'>,</span><span class='chr'>'\327'</span><span class='layout'>)</span>-<a name="line-1392"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\330'</span><span class='layout'>,</span><span class='chr'>'\330'</span><span class='layout'>)</span>-<a name="line-1393"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\332'</span><span class='layout'>,</span><span class='chr'>'\332'</span><span class='layout'>)</span>-<a name="line-1394"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\334'</span><span class='layout'>,</span><span class='chr'>'\334'</span><span class='layout'>)</span>-<a name="line-1395"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\336'</span><span class='layout'>,</span><span class='chr'>'\336'</span><span class='layout'>)</span>-<a name="line-1396"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\338'</span><span class='layout'>,</span><span class='chr'>'\338'</span><span class='layout'>)</span>-<a name="line-1397"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\340'</span><span class='layout'>,</span><span class='chr'>'\340'</span><span class='layout'>)</span>-<a name="line-1398"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\342'</span><span class='layout'>,</span><span class='chr'>'\342'</span><span class='layout'>)</span>-<a name="line-1399"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\344'</span><span class='layout'>,</span><span class='chr'>'\344'</span><span class='layout'>)</span>-<a name="line-1400"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\346'</span><span class='layout'>,</span><span class='chr'>'\346'</span><span class='layout'>)</span>-<a name="line-1401"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\348'</span><span class='layout'>,</span><span class='chr'>'\348'</span><span class='layout'>)</span>-<a name="line-1402"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\350'</span><span class='layout'>,</span><span class='chr'>'\350'</span><span class='layout'>)</span>-<a name="line-1403"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\352'</span><span class='layout'>,</span><span class='chr'>'\352'</span><span class='layout'>)</span>-<a name="line-1404"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\354'</span><span class='layout'>,</span><span class='chr'>'\354'</span><span class='layout'>)</span>-<a name="line-1405"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\356'</span><span class='layout'>,</span><span class='chr'>'\356'</span><span class='layout'>)</span>-<a name="line-1406"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\358'</span><span class='layout'>,</span><span class='chr'>'\358'</span><span class='layout'>)</span>-<a name="line-1407"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\360'</span><span class='layout'>,</span><span class='chr'>'\360'</span><span class='layout'>)</span>-<a name="line-1408"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\362'</span><span class='layout'>,</span><span class='chr'>'\362'</span><span class='layout'>)</span>-<a name="line-1409"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\364'</span><span class='layout'>,</span><span class='chr'>'\364'</span><span class='layout'>)</span>-<a name="line-1410"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\366'</span><span class='layout'>,</span><span class='chr'>'\366'</span><span class='layout'>)</span>-<a name="line-1411"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\368'</span><span class='layout'>,</span><span class='chr'>'\368'</span><span class='layout'>)</span>-<a name="line-1412"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\370'</span><span class='layout'>,</span><span class='chr'>'\370'</span><span class='layout'>)</span>-<a name="line-1413"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\372'</span><span class='layout'>,</span><span class='chr'>'\372'</span><span class='layout'>)</span>-<a name="line-1414"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\374'</span><span class='layout'>,</span><span class='chr'>'\374'</span><span class='layout'>)</span>-<a name="line-1415"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\376'</span><span class='layout'>,</span><span class='chr'>'\377'</span><span class='layout'>)</span>-<a name="line-1416"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\379'</span><span class='layout'>,</span><span class='chr'>'\379'</span><span class='layout'>)</span>-<a name="line-1417"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\381'</span><span class='layout'>,</span><span class='chr'>'\381'</span><span class='layout'>)</span>-<a name="line-1418"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\385'</span><span class='layout'>,</span><span class='chr'>'\386'</span><span class='layout'>)</span>-<a name="line-1419"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\388'</span><span class='layout'>,</span><span class='chr'>'\388'</span><span class='layout'>)</span>-<a name="line-1420"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\390'</span><span class='layout'>,</span><span class='chr'>'\391'</span><span class='layout'>)</span>-<a name="line-1421"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\393'</span><span class='layout'>,</span><span class='chr'>'\395'</span><span class='layout'>)</span>-<a name="line-1422"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\398'</span><span class='layout'>,</span><span class='chr'>'\401'</span><span class='layout'>)</span>-<a name="line-1423"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\403'</span><span class='layout'>,</span><span class='chr'>'\404'</span><span class='layout'>)</span>-<a name="line-1424"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\406'</span><span class='layout'>,</span><span class='chr'>'\408'</span><span class='layout'>)</span>-<a name="line-1425"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\412'</span><span class='layout'>,</span><span class='chr'>'\413'</span><span class='layout'>)</span>-<a name="line-1426"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\415'</span><span class='layout'>,</span><span class='chr'>'\416'</span><span class='layout'>)</span>-<a name="line-1427"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\418'</span><span class='layout'>,</span><span class='chr'>'\418'</span><span class='layout'>)</span>-<a name="line-1428"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\420'</span><span class='layout'>,</span><span class='chr'>'\420'</span><span class='layout'>)</span>-<a name="line-1429"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\422'</span><span class='layout'>,</span><span class='chr'>'\423'</span><span class='layout'>)</span>-<a name="line-1430"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\425'</span><span class='layout'>,</span><span class='chr'>'\425'</span><span class='layout'>)</span>-<a name="line-1431"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\428'</span><span class='layout'>,</span><span class='chr'>'\428'</span><span class='layout'>)</span>-<a name="line-1432"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\430'</span><span class='layout'>,</span><span class='chr'>'\431'</span><span class='layout'>)</span>-<a name="line-1433"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\433'</span><span class='layout'>,</span><span class='chr'>'\435'</span><span class='layout'>)</span>-<a name="line-1434"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\437'</span><span class='layout'>,</span><span class='chr'>'\437'</span><span class='layout'>)</span>-<a name="line-1435"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\439'</span><span class='layout'>,</span><span class='chr'>'\440'</span><span class='layout'>)</span>-<a name="line-1436"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\444'</span><span class='layout'>,</span><span class='chr'>'\444'</span><span class='layout'>)</span>-<a name="line-1437"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\452'</span><span class='layout'>,</span><span class='chr'>'\452'</span><span class='layout'>)</span>-<a name="line-1438"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\455'</span><span class='layout'>,</span><span class='chr'>'\455'</span><span class='layout'>)</span>-<a name="line-1439"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\458'</span><span class='layout'>,</span><span class='chr'>'\458'</span><span class='layout'>)</span>-<a name="line-1440"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\461'</span><span class='layout'>,</span><span class='chr'>'\461'</span><span class='layout'>)</span>-<a name="line-1441"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\463'</span><span class='layout'>,</span><span class='chr'>'\463'</span><span class='layout'>)</span>-<a name="line-1442"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\465'</span><span class='layout'>,</span><span class='chr'>'\465'</span><span class='layout'>)</span>-<a name="line-1443"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\467'</span><span class='layout'>,</span><span class='chr'>'\467'</span><span class='layout'>)</span>-<a name="line-1444"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\469'</span><span class='layout'>,</span><span class='chr'>'\469'</span><span class='layout'>)</span>-<a name="line-1445"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\471'</span><span class='layout'>,</span><span class='chr'>'\471'</span><span class='layout'>)</span>-<a name="line-1446"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\473'</span><span class='layout'>,</span><span class='chr'>'\473'</span><span class='layout'>)</span>-<a name="line-1447"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\475'</span><span class='layout'>,</span><span class='chr'>'\475'</span><span class='layout'>)</span>-<a name="line-1448"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\478'</span><span class='layout'>,</span><span class='chr'>'\478'</span><span class='layout'>)</span>-<a name="line-1449"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\480'</span><span class='layout'>,</span><span class='chr'>'\480'</span><span class='layout'>)</span>-<a name="line-1450"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\482'</span><span class='layout'>,</span><span class='chr'>'\482'</span><span class='layout'>)</span>-<a name="line-1451"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\484'</span><span class='layout'>,</span><span class='chr'>'\484'</span><span class='layout'>)</span>-<a name="line-1452"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\486'</span><span class='layout'>,</span><span class='chr'>'\486'</span><span class='layout'>)</span>-<a name="line-1453"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\488'</span><span class='layout'>,</span><span class='chr'>'\488'</span><span class='layout'>)</span>-<a name="line-1454"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\490'</span><span class='layout'>,</span><span class='chr'>'\490'</span><span class='layout'>)</span>-<a name="line-1455"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\492'</span><span class='layout'>,</span><span class='chr'>'\492'</span><span class='layout'>)</span>-<a name="line-1456"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\494'</span><span class='layout'>,</span><span class='chr'>'\494'</span><span class='layout'>)</span>-<a name="line-1457"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\497'</span><span class='layout'>,</span><span class='chr'>'\497'</span><span class='layout'>)</span>-<a name="line-1458"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\500'</span><span class='layout'>,</span><span class='chr'>'\500'</span><span class='layout'>)</span>-<a name="line-1459"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\502'</span><span class='layout'>,</span><span class='chr'>'\504'</span><span class='layout'>)</span>-<a name="line-1460"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\506'</span><span class='layout'>,</span><span class='chr'>'\506'</span><span class='layout'>)</span>-<a name="line-1461"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\508'</span><span class='layout'>,</span><span class='chr'>'\508'</span><span class='layout'>)</span>-<a name="line-1462"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\510'</span><span class='layout'>,</span><span class='chr'>'\510'</span><span class='layout'>)</span>-<a name="line-1463"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\512'</span><span class='layout'>,</span><span class='chr'>'\512'</span><span class='layout'>)</span>-<a name="line-1464"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\514'</span><span class='layout'>,</span><span class='chr'>'\514'</span><span class='layout'>)</span>-<a name="line-1465"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\516'</span><span class='layout'>,</span><span class='chr'>'\516'</span><span class='layout'>)</span>-<a name="line-1466"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\518'</span><span class='layout'>,</span><span class='chr'>'\518'</span><span class='layout'>)</span>-<a name="line-1467"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\520'</span><span class='layout'>,</span><span class='chr'>'\520'</span><span class='layout'>)</span>-<a name="line-1468"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\522'</span><span class='layout'>,</span><span class='chr'>'\522'</span><span class='layout'>)</span>-<a name="line-1469"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\524'</span><span class='layout'>,</span><span class='chr'>'\524'</span><span class='layout'>)</span>-<a name="line-1470"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\526'</span><span class='layout'>,</span><span class='chr'>'\526'</span><span class='layout'>)</span>-<a name="line-1471"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\528'</span><span class='layout'>,</span><span class='chr'>'\528'</span><span class='layout'>)</span>-<a name="line-1472"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\530'</span><span class='layout'>,</span><span class='chr'>'\530'</span><span class='layout'>)</span>-<a name="line-1473"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\532'</span><span class='layout'>,</span><span class='chr'>'\532'</span><span class='layout'>)</span>-<a name="line-1474"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\534'</span><span class='layout'>,</span><span class='chr'>'\534'</span><span class='layout'>)</span>-<a name="line-1475"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\536'</span><span class='layout'>,</span><span class='chr'>'\536'</span><span class='layout'>)</span>-<a name="line-1476"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\538'</span><span class='layout'>,</span><span class='chr'>'\538'</span><span class='layout'>)</span>-<a name="line-1477"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\540'</span><span class='layout'>,</span><span class='chr'>'\540'</span><span class='layout'>)</span>-<a name="line-1478"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\542'</span><span class='layout'>,</span><span class='chr'>'\542'</span><span class='layout'>)</span>-<a name="line-1479"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\544'</span><span class='layout'>,</span><span class='chr'>'\544'</span><span class='layout'>)</span>-<a name="line-1480"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\546'</span><span class='layout'>,</span><span class='chr'>'\546'</span><span class='layout'>)</span>-<a name="line-1481"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\548'</span><span class='layout'>,</span><span class='chr'>'\548'</span><span class='layout'>)</span>-<a name="line-1482"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\550'</span><span class='layout'>,</span><span class='chr'>'\550'</span><span class='layout'>)</span>-<a name="line-1483"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\552'</span><span class='layout'>,</span><span class='chr'>'\552'</span><span class='layout'>)</span>-<a name="line-1484"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\554'</span><span class='layout'>,</span><span class='chr'>'\554'</span><span class='layout'>)</span>-<a name="line-1485"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\556'</span><span class='layout'>,</span><span class='chr'>'\556'</span><span class='layout'>)</span>-<a name="line-1486"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\558'</span><span class='layout'>,</span><span class='chr'>'\558'</span><span class='layout'>)</span>-<a name="line-1487"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\560'</span><span class='layout'>,</span><span class='chr'>'\560'</span><span class='layout'>)</span>-<a name="line-1488"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\562'</span><span class='layout'>,</span><span class='chr'>'\562'</span><span class='layout'>)</span>-<a name="line-1489"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\570'</span><span class='layout'>,</span><span class='chr'>'\571'</span><span class='layout'>)</span>-<a name="line-1490"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\573'</span><span class='layout'>,</span><span class='chr'>'\574'</span><span class='layout'>)</span>-<a name="line-1491"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\577'</span><span class='layout'>,</span><span class='chr'>'\577'</span><span class='layout'>)</span>-<a name="line-1492"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\579'</span><span class='layout'>,</span><span class='chr'>'\582'</span><span class='layout'>)</span>-<a name="line-1493"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\584'</span><span class='layout'>,</span><span class='chr'>'\584'</span><span class='layout'>)</span>-<a name="line-1494"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\586'</span><span class='layout'>,</span><span class='chr'>'\586'</span><span class='layout'>)</span>-<a name="line-1495"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\588'</span><span class='layout'>,</span><span class='chr'>'\588'</span><span class='layout'>)</span>-<a name="line-1496"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\590'</span><span class='layout'>,</span><span class='chr'>'\590'</span><span class='layout'>)</span>-<a name="line-1497"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\902'</span><span class='layout'>,</span><span class='chr'>'\902'</span><span class='layout'>)</span>-<a name="line-1498"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\904'</span><span class='layout'>,</span><span class='chr'>'\906'</span><span class='layout'>)</span>-<a name="line-1499"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\908'</span><span class='layout'>,</span><span class='chr'>'\908'</span><span class='layout'>)</span>-<a name="line-1500"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\910'</span><span class='layout'>,</span><span class='chr'>'\911'</span><span class='layout'>)</span>-<a name="line-1501"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\913'</span><span class='layout'>,</span><span class='chr'>'\929'</span><span class='layout'>)</span>-<a name="line-1502"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\931'</span><span class='layout'>,</span><span class='chr'>'\939'</span><span class='layout'>)</span>-<a name="line-1503"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\978'</span><span class='layout'>,</span><span class='chr'>'\980'</span><span class='layout'>)</span>-<a name="line-1504"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\984'</span><span class='layout'>,</span><span class='chr'>'\984'</span><span class='layout'>)</span>-<a name="line-1505"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\986'</span><span class='layout'>,</span><span class='chr'>'\986'</span><span class='layout'>)</span>-<a name="line-1506"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\988'</span><span class='layout'>,</span><span class='chr'>'\988'</span><span class='layout'>)</span>-<a name="line-1507"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\990'</span><span class='layout'>,</span><span class='chr'>'\990'</span><span class='layout'>)</span>-<a name="line-1508"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\992'</span><span class='layout'>,</span><span class='chr'>'\992'</span><span class='layout'>)</span>-<a name="line-1509"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\994'</span><span class='layout'>,</span><span class='chr'>'\994'</span><span class='layout'>)</span>-<a name="line-1510"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\996'</span><span class='layout'>,</span><span class='chr'>'\996'</span><span class='layout'>)</span>-<a name="line-1511"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\998'</span><span class='layout'>,</span><span class='chr'>'\998'</span><span class='layout'>)</span>-<a name="line-1512"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1000'</span><span class='layout'>,</span><span class='chr'>'\1000'</span><span class='layout'>)</span>-<a name="line-1513"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1002'</span><span class='layout'>,</span><span class='chr'>'\1002'</span><span class='layout'>)</span>-<a name="line-1514"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1004'</span><span class='layout'>,</span><span class='chr'>'\1004'</span><span class='layout'>)</span>-<a name="line-1515"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1006'</span><span class='layout'>,</span><span class='chr'>'\1006'</span><span class='layout'>)</span>-<a name="line-1516"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1012'</span><span class='layout'>,</span><span class='chr'>'\1012'</span><span class='layout'>)</span>-<a name="line-1517"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1015'</span><span class='layout'>,</span><span class='chr'>'\1015'</span><span class='layout'>)</span>-<a name="line-1518"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1017'</span><span class='layout'>,</span><span class='chr'>'\1018'</span><span class='layout'>)</span>-<a name="line-1519"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1021'</span><span class='layout'>,</span><span class='chr'>'\1071'</span><span class='layout'>)</span>-<a name="line-1520"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1120'</span><span class='layout'>,</span><span class='chr'>'\1120'</span><span class='layout'>)</span>-<a name="line-1521"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1122'</span><span class='layout'>,</span><span class='chr'>'\1122'</span><span class='layout'>)</span>-<a name="line-1522"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1124'</span><span class='layout'>,</span><span class='chr'>'\1124'</span><span class='layout'>)</span>-<a name="line-1523"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1126'</span><span class='layout'>,</span><span class='chr'>'\1126'</span><span class='layout'>)</span>-<a name="line-1524"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1128'</span><span class='layout'>,</span><span class='chr'>'\1128'</span><span class='layout'>)</span>-<a name="line-1525"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1130'</span><span class='layout'>,</span><span class='chr'>'\1130'</span><span class='layout'>)</span>-<a name="line-1526"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1132'</span><span class='layout'>,</span><span class='chr'>'\1132'</span><span class='layout'>)</span>-<a name="line-1527"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1134'</span><span class='layout'>,</span><span class='chr'>'\1134'</span><span class='layout'>)</span>-<a name="line-1528"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1136'</span><span class='layout'>,</span><span class='chr'>'\1136'</span><span class='layout'>)</span>-<a name="line-1529"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1138'</span><span class='layout'>,</span><span class='chr'>'\1138'</span><span class='layout'>)</span>-<a name="line-1530"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1140'</span><span class='layout'>,</span><span class='chr'>'\1140'</span><span class='layout'>)</span>-<a name="line-1531"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1142'</span><span class='layout'>,</span><span class='chr'>'\1142'</span><span class='layout'>)</span>-<a name="line-1532"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1144'</span><span class='layout'>,</span><span class='chr'>'\1144'</span><span class='layout'>)</span>-<a name="line-1533"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1146'</span><span class='layout'>,</span><span class='chr'>'\1146'</span><span class='layout'>)</span>-<a name="line-1534"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1148'</span><span class='layout'>,</span><span class='chr'>'\1148'</span><span class='layout'>)</span>-<a name="line-1535"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1150'</span><span class='layout'>,</span><span class='chr'>'\1150'</span><span class='layout'>)</span>-<a name="line-1536"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1152'</span><span class='layout'>,</span><span class='chr'>'\1152'</span><span class='layout'>)</span>-<a name="line-1537"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1162'</span><span class='layout'>,</span><span class='chr'>'\1162'</span><span class='layout'>)</span>-<a name="line-1538"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1164'</span><span class='layout'>,</span><span class='chr'>'\1164'</span><span class='layout'>)</span>-<a name="line-1539"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1166'</span><span class='layout'>,</span><span class='chr'>'\1166'</span><span class='layout'>)</span>-<a name="line-1540"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1168'</span><span class='layout'>,</span><span class='chr'>'\1168'</span><span class='layout'>)</span>-<a name="line-1541"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1170'</span><span class='layout'>,</span><span class='chr'>'\1170'</span><span class='layout'>)</span>-<a name="line-1542"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1172'</span><span class='layout'>,</span><span class='chr'>'\1172'</span><span class='layout'>)</span>-<a name="line-1543"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1174'</span><span class='layout'>,</span><span class='chr'>'\1174'</span><span class='layout'>)</span>-<a name="line-1544"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1176'</span><span class='layout'>,</span><span class='chr'>'\1176'</span><span class='layout'>)</span>-<a name="line-1545"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1178'</span><span class='layout'>,</span><span class='chr'>'\1178'</span><span class='layout'>)</span>-<a name="line-1546"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1180'</span><span class='layout'>,</span><span class='chr'>'\1180'</span><span class='layout'>)</span>-<a name="line-1547"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1182'</span><span class='layout'>,</span><span class='chr'>'\1182'</span><span class='layout'>)</span>-<a name="line-1548"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1184'</span><span class='layout'>,</span><span class='chr'>'\1184'</span><span class='layout'>)</span>-<a name="line-1549"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1186'</span><span class='layout'>,</span><span class='chr'>'\1186'</span><span class='layout'>)</span>-<a name="line-1550"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1188'</span><span class='layout'>,</span><span class='chr'>'\1188'</span><span class='layout'>)</span>-<a name="line-1551"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1190'</span><span class='layout'>,</span><span class='chr'>'\1190'</span><span class='layout'>)</span>-<a name="line-1552"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1192'</span><span class='layout'>,</span><span class='chr'>'\1192'</span><span class='layout'>)</span>-<a name="line-1553"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1194'</span><span class='layout'>,</span><span class='chr'>'\1194'</span><span class='layout'>)</span>-<a name="line-1554"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1196'</span><span class='layout'>,</span><span class='chr'>'\1196'</span><span class='layout'>)</span>-<a name="line-1555"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1198'</span><span class='layout'>,</span><span class='chr'>'\1198'</span><span class='layout'>)</span>-<a name="line-1556"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1200'</span><span class='layout'>,</span><span class='chr'>'\1200'</span><span class='layout'>)</span>-<a name="line-1557"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1202'</span><span class='layout'>,</span><span class='chr'>'\1202'</span><span class='layout'>)</span>-<a name="line-1558"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1204'</span><span class='layout'>,</span><span class='chr'>'\1204'</span><span class='layout'>)</span>-<a name="line-1559"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1206'</span><span class='layout'>,</span><span class='chr'>'\1206'</span><span class='layout'>)</span>-<a name="line-1560"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1208'</span><span class='layout'>,</span><span class='chr'>'\1208'</span><span class='layout'>)</span>-<a name="line-1561"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1210'</span><span class='layout'>,</span><span class='chr'>'\1210'</span><span class='layout'>)</span>-<a name="line-1562"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1212'</span><span class='layout'>,</span><span class='chr'>'\1212'</span><span class='layout'>)</span>-<a name="line-1563"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1214'</span><span class='layout'>,</span><span class='chr'>'\1214'</span><span class='layout'>)</span>-<a name="line-1564"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1216'</span><span class='layout'>,</span><span class='chr'>'\1217'</span><span class='layout'>)</span>-<a name="line-1565"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1219'</span><span class='layout'>,</span><span class='chr'>'\1219'</span><span class='layout'>)</span>-<a name="line-1566"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1221'</span><span class='layout'>,</span><span class='chr'>'\1221'</span><span class='layout'>)</span>-<a name="line-1567"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1223'</span><span class='layout'>,</span><span class='chr'>'\1223'</span><span class='layout'>)</span>-<a name="line-1568"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1225'</span><span class='layout'>,</span><span class='chr'>'\1225'</span><span class='layout'>)</span>-<a name="line-1569"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1227'</span><span class='layout'>,</span><span class='chr'>'\1227'</span><span class='layout'>)</span>-<a name="line-1570"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1229'</span><span class='layout'>,</span><span class='chr'>'\1229'</span><span class='layout'>)</span>-<a name="line-1571"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1232'</span><span class='layout'>,</span><span class='chr'>'\1232'</span><span class='layout'>)</span>-<a name="line-1572"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1234'</span><span class='layout'>,</span><span class='chr'>'\1234'</span><span class='layout'>)</span>-<a name="line-1573"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1236'</span><span class='layout'>,</span><span class='chr'>'\1236'</span><span class='layout'>)</span>-<a name="line-1574"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1238'</span><span class='layout'>,</span><span class='chr'>'\1238'</span><span class='layout'>)</span>-<a name="line-1575"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1240'</span><span class='layout'>,</span><span class='chr'>'\1240'</span><span class='layout'>)</span>-<a name="line-1576"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1242'</span><span class='layout'>,</span><span class='chr'>'\1242'</span><span class='layout'>)</span>-<a name="line-1577"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1244'</span><span class='layout'>,</span><span class='chr'>'\1244'</span><span class='layout'>)</span>-<a name="line-1578"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1246'</span><span class='layout'>,</span><span class='chr'>'\1246'</span><span class='layout'>)</span>-<a name="line-1579"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1248'</span><span class='layout'>,</span><span class='chr'>'\1248'</span><span class='layout'>)</span>-<a name="line-1580"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1250'</span><span class='layout'>,</span><span class='chr'>'\1250'</span><span class='layout'>)</span>-<a name="line-1581"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1252'</span><span class='layout'>,</span><span class='chr'>'\1252'</span><span class='layout'>)</span>-<a name="line-1582"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1254'</span><span class='layout'>,</span><span class='chr'>'\1254'</span><span class='layout'>)</span>-<a name="line-1583"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1256'</span><span class='layout'>,</span><span class='chr'>'\1256'</span><span class='layout'>)</span>-<a name="line-1584"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1258'</span><span class='layout'>,</span><span class='chr'>'\1258'</span><span class='layout'>)</span>-<a name="line-1585"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1260'</span><span class='layout'>,</span><span class='chr'>'\1260'</span><span class='layout'>)</span>-<a name="line-1586"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1262'</span><span class='layout'>,</span><span class='chr'>'\1262'</span><span class='layout'>)</span>-<a name="line-1587"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1264'</span><span class='layout'>,</span><span class='chr'>'\1264'</span><span class='layout'>)</span>-<a name="line-1588"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1266'</span><span class='layout'>,</span><span class='chr'>'\1266'</span><span class='layout'>)</span>-<a name="line-1589"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1268'</span><span class='layout'>,</span><span class='chr'>'\1268'</span><span class='layout'>)</span>-<a name="line-1590"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1270'</span><span class='layout'>,</span><span class='chr'>'\1270'</span><span class='layout'>)</span>-<a name="line-1591"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1272'</span><span class='layout'>,</span><span class='chr'>'\1272'</span><span class='layout'>)</span>-<a name="line-1592"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1274'</span><span class='layout'>,</span><span class='chr'>'\1274'</span><span class='layout'>)</span>-<a name="line-1593"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1276'</span><span class='layout'>,</span><span class='chr'>'\1276'</span><span class='layout'>)</span>-<a name="line-1594"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1278'</span><span class='layout'>,</span><span class='chr'>'\1278'</span><span class='layout'>)</span>-<a name="line-1595"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1280'</span><span class='layout'>,</span><span class='chr'>'\1280'</span><span class='layout'>)</span>-<a name="line-1596"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1282'</span><span class='layout'>,</span><span class='chr'>'\1282'</span><span class='layout'>)</span>-<a name="line-1597"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1284'</span><span class='layout'>,</span><span class='chr'>'\1284'</span><span class='layout'>)</span>-<a name="line-1598"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1286'</span><span class='layout'>,</span><span class='chr'>'\1286'</span><span class='layout'>)</span>-<a name="line-1599"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1288'</span><span class='layout'>,</span><span class='chr'>'\1288'</span><span class='layout'>)</span>-<a name="line-1600"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1290'</span><span class='layout'>,</span><span class='chr'>'\1290'</span><span class='layout'>)</span>-<a name="line-1601"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1292'</span><span class='layout'>,</span><span class='chr'>'\1292'</span><span class='layout'>)</span>-<a name="line-1602"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1294'</span><span class='layout'>,</span><span class='chr'>'\1294'</span><span class='layout'>)</span>-<a name="line-1603"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1296'</span><span class='layout'>,</span><span class='chr'>'\1296'</span><span class='layout'>)</span>-<a name="line-1604"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1298'</span><span class='layout'>,</span><span class='chr'>'\1298'</span><span class='layout'>)</span>-<a name="line-1605"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1329'</span><span class='layout'>,</span><span class='chr'>'\1366'</span><span class='layout'>)</span>-<a name="line-1606"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4256'</span><span class='layout'>,</span><span class='chr'>'\4293'</span><span class='layout'>)</span>-<a name="line-1607"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7680'</span><span class='layout'>,</span><span class='chr'>'\7680'</span><span class='layout'>)</span>-<a name="line-1608"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7682'</span><span class='layout'>,</span><span class='chr'>'\7682'</span><span class='layout'>)</span>-<a name="line-1609"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7684'</span><span class='layout'>,</span><span class='chr'>'\7684'</span><span class='layout'>)</span>-<a name="line-1610"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7686'</span><span class='layout'>,</span><span class='chr'>'\7686'</span><span class='layout'>)</span>-<a name="line-1611"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7688'</span><span class='layout'>,</span><span class='chr'>'\7688'</span><span class='layout'>)</span>-<a name="line-1612"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7690'</span><span class='layout'>,</span><span class='chr'>'\7690'</span><span class='layout'>)</span>-<a name="line-1613"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7692'</span><span class='layout'>,</span><span class='chr'>'\7692'</span><span class='layout'>)</span>-<a name="line-1614"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7694'</span><span class='layout'>,</span><span class='chr'>'\7694'</span><span class='layout'>)</span>-<a name="line-1615"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7696'</span><span class='layout'>,</span><span class='chr'>'\7696'</span><span class='layout'>)</span>-<a name="line-1616"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7698'</span><span class='layout'>,</span><span class='chr'>'\7698'</span><span class='layout'>)</span>-<a name="line-1617"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7700'</span><span class='layout'>,</span><span class='chr'>'\7700'</span><span class='layout'>)</span>-<a name="line-1618"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7702'</span><span class='layout'>,</span><span class='chr'>'\7702'</span><span class='layout'>)</span>-<a name="line-1619"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7704'</span><span class='layout'>,</span><span class='chr'>'\7704'</span><span class='layout'>)</span>-<a name="line-1620"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7706'</span><span class='layout'>,</span><span class='chr'>'\7706'</span><span class='layout'>)</span>-<a name="line-1621"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7708'</span><span class='layout'>,</span><span class='chr'>'\7708'</span><span class='layout'>)</span>-<a name="line-1622"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7710'</span><span class='layout'>,</span><span class='chr'>'\7710'</span><span class='layout'>)</span>-<a name="line-1623"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7712'</span><span class='layout'>,</span><span class='chr'>'\7712'</span><span class='layout'>)</span>-<a name="line-1624"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7714'</span><span class='layout'>,</span><span class='chr'>'\7714'</span><span class='layout'>)</span>-<a name="line-1625"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7716'</span><span class='layout'>,</span><span class='chr'>'\7716'</span><span class='layout'>)</span>-<a name="line-1626"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7718'</span><span class='layout'>,</span><span class='chr'>'\7718'</span><span class='layout'>)</span>-<a name="line-1627"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7720'</span><span class='layout'>,</span><span class='chr'>'\7720'</span><span class='layout'>)</span>-<a name="line-1628"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7722'</span><span class='layout'>,</span><span class='chr'>'\7722'</span><span class='layout'>)</span>-<a name="line-1629"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7724'</span><span class='layout'>,</span><span class='chr'>'\7724'</span><span class='layout'>)</span>-<a name="line-1630"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7726'</span><span class='layout'>,</span><span class='chr'>'\7726'</span><span class='layout'>)</span>-<a name="line-1631"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7728'</span><span class='layout'>,</span><span class='chr'>'\7728'</span><span class='layout'>)</span>-<a name="line-1632"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7730'</span><span class='layout'>,</span><span class='chr'>'\7730'</span><span class='layout'>)</span>-<a name="line-1633"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7732'</span><span class='layout'>,</span><span class='chr'>'\7732'</span><span class='layout'>)</span>-<a name="line-1634"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7734'</span><span class='layout'>,</span><span class='chr'>'\7734'</span><span class='layout'>)</span>-<a name="line-1635"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7736'</span><span class='layout'>,</span><span class='chr'>'\7736'</span><span class='layout'>)</span>-<a name="line-1636"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7738'</span><span class='layout'>,</span><span class='chr'>'\7738'</span><span class='layout'>)</span>-<a name="line-1637"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7740'</span><span class='layout'>,</span><span class='chr'>'\7740'</span><span class='layout'>)</span>-<a name="line-1638"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7742'</span><span class='layout'>,</span><span class='chr'>'\7742'</span><span class='layout'>)</span>-<a name="line-1639"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7744'</span><span class='layout'>,</span><span class='chr'>'\7744'</span><span class='layout'>)</span>-<a name="line-1640"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7746'</span><span class='layout'>,</span><span class='chr'>'\7746'</span><span class='layout'>)</span>-<a name="line-1641"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7748'</span><span class='layout'>,</span><span class='chr'>'\7748'</span><span class='layout'>)</span>-<a name="line-1642"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7750'</span><span class='layout'>,</span><span class='chr'>'\7750'</span><span class='layout'>)</span>-<a name="line-1643"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7752'</span><span class='layout'>,</span><span class='chr'>'\7752'</span><span class='layout'>)</span>-<a name="line-1644"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7754'</span><span class='layout'>,</span><span class='chr'>'\7754'</span><span class='layout'>)</span>-<a name="line-1645"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7756'</span><span class='layout'>,</span><span class='chr'>'\7756'</span><span class='layout'>)</span>-<a name="line-1646"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7758'</span><span class='layout'>,</span><span class='chr'>'\7758'</span><span class='layout'>)</span>-<a name="line-1647"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7760'</span><span class='layout'>,</span><span class='chr'>'\7760'</span><span class='layout'>)</span>-<a name="line-1648"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7762'</span><span class='layout'>,</span><span class='chr'>'\7762'</span><span class='layout'>)</span>-<a name="line-1649"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7764'</span><span class='layout'>,</span><span class='chr'>'\7764'</span><span class='layout'>)</span>-<a name="line-1650"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7766'</span><span class='layout'>,</span><span class='chr'>'\7766'</span><span class='layout'>)</span>-<a name="line-1651"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7768'</span><span class='layout'>,</span><span class='chr'>'\7768'</span><span class='layout'>)</span>-<a name="line-1652"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7770'</span><span class='layout'>,</span><span class='chr'>'\7770'</span><span class='layout'>)</span>-<a name="line-1653"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7772'</span><span class='layout'>,</span><span class='chr'>'\7772'</span><span class='layout'>)</span>-<a name="line-1654"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7774'</span><span class='layout'>,</span><span class='chr'>'\7774'</span><span class='layout'>)</span>-<a name="line-1655"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7776'</span><span class='layout'>,</span><span class='chr'>'\7776'</span><span class='layout'>)</span>-<a name="line-1656"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7778'</span><span class='layout'>,</span><span class='chr'>'\7778'</span><span class='layout'>)</span>-<a name="line-1657"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7780'</span><span class='layout'>,</span><span class='chr'>'\7780'</span><span class='layout'>)</span>-<a name="line-1658"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7782'</span><span class='layout'>,</span><span class='chr'>'\7782'</span><span class='layout'>)</span>-<a name="line-1659"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7784'</span><span class='layout'>,</span><span class='chr'>'\7784'</span><span class='layout'>)</span>-<a name="line-1660"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7786'</span><span class='layout'>,</span><span class='chr'>'\7786'</span><span class='layout'>)</span>-<a name="line-1661"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7788'</span><span class='layout'>,</span><span class='chr'>'\7788'</span><span class='layout'>)</span>-<a name="line-1662"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7790'</span><span class='layout'>,</span><span class='chr'>'\7790'</span><span class='layout'>)</span>-<a name="line-1663"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7792'</span><span class='layout'>,</span><span class='chr'>'\7792'</span><span class='layout'>)</span>-<a name="line-1664"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7794'</span><span class='layout'>,</span><span class='chr'>'\7794'</span><span class='layout'>)</span>-<a name="line-1665"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7796'</span><span class='layout'>,</span><span class='chr'>'\7796'</span><span class='layout'>)</span>-<a name="line-1666"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7798'</span><span class='layout'>,</span><span class='chr'>'\7798'</span><span class='layout'>)</span>-<a name="line-1667"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7800'</span><span class='layout'>,</span><span class='chr'>'\7800'</span><span class='layout'>)</span>-<a name="line-1668"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7802'</span><span class='layout'>,</span><span class='chr'>'\7802'</span><span class='layout'>)</span>-<a name="line-1669"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7804'</span><span class='layout'>,</span><span class='chr'>'\7804'</span><span class='layout'>)</span>-<a name="line-1670"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7806'</span><span class='layout'>,</span><span class='chr'>'\7806'</span><span class='layout'>)</span>-<a name="line-1671"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7808'</span><span class='layout'>,</span><span class='chr'>'\7808'</span><span class='layout'>)</span>-<a name="line-1672"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7810'</span><span class='layout'>,</span><span class='chr'>'\7810'</span><span class='layout'>)</span>-<a name="line-1673"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7812'</span><span class='layout'>,</span><span class='chr'>'\7812'</span><span class='layout'>)</span>-<a name="line-1674"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7814'</span><span class='layout'>,</span><span class='chr'>'\7814'</span><span class='layout'>)</span>-<a name="line-1675"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7816'</span><span class='layout'>,</span><span class='chr'>'\7816'</span><span class='layout'>)</span>-<a name="line-1676"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7818'</span><span class='layout'>,</span><span class='chr'>'\7818'</span><span class='layout'>)</span>-<a name="line-1677"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7820'</span><span class='layout'>,</span><span class='chr'>'\7820'</span><span class='layout'>)</span>-<a name="line-1678"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7822'</span><span class='layout'>,</span><span class='chr'>'\7822'</span><span class='layout'>)</span>-<a name="line-1679"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7824'</span><span class='layout'>,</span><span class='chr'>'\7824'</span><span class='layout'>)</span>-<a name="line-1680"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7826'</span><span class='layout'>,</span><span class='chr'>'\7826'</span><span class='layout'>)</span>-<a name="line-1681"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7828'</span><span class='layout'>,</span><span class='chr'>'\7828'</span><span class='layout'>)</span>-<a name="line-1682"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7840'</span><span class='layout'>,</span><span class='chr'>'\7840'</span><span class='layout'>)</span>-<a name="line-1683"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7842'</span><span class='layout'>,</span><span class='chr'>'\7842'</span><span class='layout'>)</span>-<a name="line-1684"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7844'</span><span class='layout'>,</span><span class='chr'>'\7844'</span><span class='layout'>)</span>-<a name="line-1685"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7846'</span><span class='layout'>,</span><span class='chr'>'\7846'</span><span class='layout'>)</span>-<a name="line-1686"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7848'</span><span class='layout'>,</span><span class='chr'>'\7848'</span><span class='layout'>)</span>-<a name="line-1687"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7850'</span><span class='layout'>,</span><span class='chr'>'\7850'</span><span class='layout'>)</span>-<a name="line-1688"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7852'</span><span class='layout'>,</span><span class='chr'>'\7852'</span><span class='layout'>)</span>-<a name="line-1689"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7854'</span><span class='layout'>,</span><span class='chr'>'\7854'</span><span class='layout'>)</span>-<a name="line-1690"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7856'</span><span class='layout'>,</span><span class='chr'>'\7856'</span><span class='layout'>)</span>-<a name="line-1691"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7858'</span><span class='layout'>,</span><span class='chr'>'\7858'</span><span class='layout'>)</span>-<a name="line-1692"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7860'</span><span class='layout'>,</span><span class='chr'>'\7860'</span><span class='layout'>)</span>-<a name="line-1693"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7862'</span><span class='layout'>,</span><span class='chr'>'\7862'</span><span class='layout'>)</span>-<a name="line-1694"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7864'</span><span class='layout'>,</span><span class='chr'>'\7864'</span><span class='layout'>)</span>-<a name="line-1695"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7866'</span><span class='layout'>,</span><span class='chr'>'\7866'</span><span class='layout'>)</span>-<a name="line-1696"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7868'</span><span class='layout'>,</span><span class='chr'>'\7868'</span><span class='layout'>)</span>-<a name="line-1697"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7870'</span><span class='layout'>,</span><span class='chr'>'\7870'</span><span class='layout'>)</span>-<a name="line-1698"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7872'</span><span class='layout'>,</span><span class='chr'>'\7872'</span><span class='layout'>)</span>-<a name="line-1699"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7874'</span><span class='layout'>,</span><span class='chr'>'\7874'</span><span class='layout'>)</span>-<a name="line-1700"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7876'</span><span class='layout'>,</span><span class='chr'>'\7876'</span><span class='layout'>)</span>-<a name="line-1701"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7878'</span><span class='layout'>,</span><span class='chr'>'\7878'</span><span class='layout'>)</span>-<a name="line-1702"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7880'</span><span class='layout'>,</span><span class='chr'>'\7880'</span><span class='layout'>)</span>-<a name="line-1703"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7882'</span><span class='layout'>,</span><span class='chr'>'\7882'</span><span class='layout'>)</span>-<a name="line-1704"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7884'</span><span class='layout'>,</span><span class='chr'>'\7884'</span><span class='layout'>)</span>-<a name="line-1705"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7886'</span><span class='layout'>,</span><span class='chr'>'\7886'</span><span class='layout'>)</span>-<a name="line-1706"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7888'</span><span class='layout'>,</span><span class='chr'>'\7888'</span><span class='layout'>)</span>-<a name="line-1707"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7890'</span><span class='layout'>,</span><span class='chr'>'\7890'</span><span class='layout'>)</span>-<a name="line-1708"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7892'</span><span class='layout'>,</span><span class='chr'>'\7892'</span><span class='layout'>)</span>-<a name="line-1709"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7894'</span><span class='layout'>,</span><span class='chr'>'\7894'</span><span class='layout'>)</span>-<a name="line-1710"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7896'</span><span class='layout'>,</span><span class='chr'>'\7896'</span><span class='layout'>)</span>-<a name="line-1711"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7898'</span><span class='layout'>,</span><span class='chr'>'\7898'</span><span class='layout'>)</span>-<a name="line-1712"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7900'</span><span class='layout'>,</span><span class='chr'>'\7900'</span><span class='layout'>)</span>-<a name="line-1713"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7902'</span><span class='layout'>,</span><span class='chr'>'\7902'</span><span class='layout'>)</span>-<a name="line-1714"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7904'</span><span class='layout'>,</span><span class='chr'>'\7904'</span><span class='layout'>)</span>-<a name="line-1715"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7906'</span><span class='layout'>,</span><span class='chr'>'\7906'</span><span class='layout'>)</span>-<a name="line-1716"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7908'</span><span class='layout'>,</span><span class='chr'>'\7908'</span><span class='layout'>)</span>-<a name="line-1717"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7910'</span><span class='layout'>,</span><span class='chr'>'\7910'</span><span class='layout'>)</span>-<a name="line-1718"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7912'</span><span class='layout'>,</span><span class='chr'>'\7912'</span><span class='layout'>)</span>-<a name="line-1719"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7914'</span><span class='layout'>,</span><span class='chr'>'\7914'</span><span class='layout'>)</span>-<a name="line-1720"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7916'</span><span class='layout'>,</span><span class='chr'>'\7916'</span><span class='layout'>)</span>-<a name="line-1721"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7918'</span><span class='layout'>,</span><span class='chr'>'\7918'</span><span class='layout'>)</span>-<a name="line-1722"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7920'</span><span class='layout'>,</span><span class='chr'>'\7920'</span><span class='layout'>)</span>-<a name="line-1723"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7922'</span><span class='layout'>,</span><span class='chr'>'\7922'</span><span class='layout'>)</span>-<a name="line-1724"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7924'</span><span class='layout'>,</span><span class='chr'>'\7924'</span><span class='layout'>)</span>-<a name="line-1725"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7926'</span><span class='layout'>,</span><span class='chr'>'\7926'</span><span class='layout'>)</span>-<a name="line-1726"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7928'</span><span class='layout'>,</span><span class='chr'>'\7928'</span><span class='layout'>)</span>-<a name="line-1727"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7944'</span><span class='layout'>,</span><span class='chr'>'\7951'</span><span class='layout'>)</span>-<a name="line-1728"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7960'</span><span class='layout'>,</span><span class='chr'>'\7965'</span><span class='layout'>)</span>-<a name="line-1729"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7976'</span><span class='layout'>,</span><span class='chr'>'\7983'</span><span class='layout'>)</span>-<a name="line-1730"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7992'</span><span class='layout'>,</span><span class='chr'>'\7999'</span><span class='layout'>)</span>-<a name="line-1731"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8008'</span><span class='layout'>,</span><span class='chr'>'\8013'</span><span class='layout'>)</span>-<a name="line-1732"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8025'</span><span class='layout'>,</span><span class='chr'>'\8025'</span><span class='layout'>)</span>-<a name="line-1733"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8027'</span><span class='layout'>,</span><span class='chr'>'\8027'</span><span class='layout'>)</span>-<a name="line-1734"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8029'</span><span class='layout'>,</span><span class='chr'>'\8029'</span><span class='layout'>)</span>-<a name="line-1735"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8031'</span><span class='layout'>,</span><span class='chr'>'\8031'</span><span class='layout'>)</span>-<a name="line-1736"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8040'</span><span class='layout'>,</span><span class='chr'>'\8047'</span><span class='layout'>)</span>-<a name="line-1737"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8120'</span><span class='layout'>,</span><span class='chr'>'\8123'</span><span class='layout'>)</span>-<a name="line-1738"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8136'</span><span class='layout'>,</span><span class='chr'>'\8139'</span><span class='layout'>)</span>-<a name="line-1739"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8152'</span><span class='layout'>,</span><span class='chr'>'\8155'</span><span class='layout'>)</span>-<a name="line-1740"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8168'</span><span class='layout'>,</span><span class='chr'>'\8172'</span><span class='layout'>)</span>-<a name="line-1741"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8184'</span><span class='layout'>,</span><span class='chr'>'\8187'</span><span class='layout'>)</span>-<a name="line-1742"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8450'</span><span class='layout'>,</span><span class='chr'>'\8450'</span><span class='layout'>)</span>-<a name="line-1743"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8455'</span><span class='layout'>,</span><span class='chr'>'\8455'</span><span class='layout'>)</span>-<a name="line-1744"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8459'</span><span class='layout'>,</span><span class='chr'>'\8461'</span><span class='layout'>)</span>-<a name="line-1745"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8464'</span><span class='layout'>,</span><span class='chr'>'\8466'</span><span class='layout'>)</span>-<a name="line-1746"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8469'</span><span class='layout'>,</span><span class='chr'>'\8469'</span><span class='layout'>)</span>-<a name="line-1747"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8473'</span><span class='layout'>,</span><span class='chr'>'\8477'</span><span class='layout'>)</span>-<a name="line-1748"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8484'</span><span class='layout'>,</span><span class='chr'>'\8484'</span><span class='layout'>)</span>-<a name="line-1749"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8486'</span><span class='layout'>,</span><span class='chr'>'\8486'</span><span class='layout'>)</span>-<a name="line-1750"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8488'</span><span class='layout'>,</span><span class='chr'>'\8488'</span><span class='layout'>)</span>-<a name="line-1751"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8490'</span><span class='layout'>,</span><span class='chr'>'\8493'</span><span class='layout'>)</span>-<a name="line-1752"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8496'</span><span class='layout'>,</span><span class='chr'>'\8499'</span><span class='layout'>)</span>-<a name="line-1753"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8510'</span><span class='layout'>,</span><span class='chr'>'\8511'</span><span class='layout'>)</span>-<a name="line-1754"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8517'</span><span class='layout'>,</span><span class='chr'>'\8517'</span><span class='layout'>)</span>-<a name="line-1755"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8579'</span><span class='layout'>,</span><span class='chr'>'\8579'</span><span class='layout'>)</span>-<a name="line-1756"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11264'</span><span class='layout'>,</span><span class='chr'>'\11310'</span><span class='layout'>)</span>-<a name="line-1757"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11360'</span><span class='layout'>,</span><span class='chr'>'\11360'</span><span class='layout'>)</span>-<a name="line-1758"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11362'</span><span class='layout'>,</span><span class='chr'>'\11364'</span><span class='layout'>)</span>-<a name="line-1759"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11367'</span><span class='layout'>,</span><span class='chr'>'\11367'</span><span class='layout'>)</span>-<a name="line-1760"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11369'</span><span class='layout'>,</span><span class='chr'>'\11369'</span><span class='layout'>)</span>-<a name="line-1761"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11371'</span><span class='layout'>,</span><span class='chr'>'\11371'</span><span class='layout'>)</span>-<a name="line-1762"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11381'</span><span class='layout'>,</span><span class='chr'>'\11381'</span><span class='layout'>)</span>-<a name="line-1763"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11392'</span><span class='layout'>,</span><span class='chr'>'\11392'</span><span class='layout'>)</span>-<a name="line-1764"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11394'</span><span class='layout'>,</span><span class='chr'>'\11394'</span><span class='layout'>)</span>-<a name="line-1765"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11396'</span><span class='layout'>,</span><span class='chr'>'\11396'</span><span class='layout'>)</span>-<a name="line-1766"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11398'</span><span class='layout'>,</span><span class='chr'>'\11398'</span><span class='layout'>)</span>-<a name="line-1767"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11400'</span><span class='layout'>,</span><span class='chr'>'\11400'</span><span class='layout'>)</span>-<a name="line-1768"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11402'</span><span class='layout'>,</span><span class='chr'>'\11402'</span><span class='layout'>)</span>-<a name="line-1769"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11404'</span><span class='layout'>,</span><span class='chr'>'\11404'</span><span class='layout'>)</span>-<a name="line-1770"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11406'</span><span class='layout'>,</span><span class='chr'>'\11406'</span><span class='layout'>)</span>-<a name="line-1771"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11408'</span><span class='layout'>,</span><span class='chr'>'\11408'</span><span class='layout'>)</span>-<a name="line-1772"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11410'</span><span class='layout'>,</span><span class='chr'>'\11410'</span><span class='layout'>)</span>-<a name="line-1773"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11412'</span><span class='layout'>,</span><span class='chr'>'\11412'</span><span class='layout'>)</span>-<a name="line-1774"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11414'</span><span class='layout'>,</span><span class='chr'>'\11414'</span><span class='layout'>)</span>-<a name="line-1775"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11416'</span><span class='layout'>,</span><span class='chr'>'\11416'</span><span class='layout'>)</span>-<a name="line-1776"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11418'</span><span class='layout'>,</span><span class='chr'>'\11418'</span><span class='layout'>)</span>-<a name="line-1777"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11420'</span><span class='layout'>,</span><span class='chr'>'\11420'</span><span class='layout'>)</span>-<a name="line-1778"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11422'</span><span class='layout'>,</span><span class='chr'>'\11422'</span><span class='layout'>)</span>-<a name="line-1779"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11424'</span><span class='layout'>,</span><span class='chr'>'\11424'</span><span class='layout'>)</span>-<a name="line-1780"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11426'</span><span class='layout'>,</span><span class='chr'>'\11426'</span><span class='layout'>)</span>-<a name="line-1781"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11428'</span><span class='layout'>,</span><span class='chr'>'\11428'</span><span class='layout'>)</span>-<a name="line-1782"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11430'</span><span class='layout'>,</span><span class='chr'>'\11430'</span><span class='layout'>)</span>-<a name="line-1783"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11432'</span><span class='layout'>,</span><span class='chr'>'\11432'</span><span class='layout'>)</span>-<a name="line-1784"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11434'</span><span class='layout'>,</span><span class='chr'>'\11434'</span><span class='layout'>)</span>-<a name="line-1785"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11436'</span><span class='layout'>,</span><span class='chr'>'\11436'</span><span class='layout'>)</span>-<a name="line-1786"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11438'</span><span class='layout'>,</span><span class='chr'>'\11438'</span><span class='layout'>)</span>-<a name="line-1787"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11440'</span><span class='layout'>,</span><span class='chr'>'\11440'</span><span class='layout'>)</span>-<a name="line-1788"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11442'</span><span class='layout'>,</span><span class='chr'>'\11442'</span><span class='layout'>)</span>-<a name="line-1789"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11444'</span><span class='layout'>,</span><span class='chr'>'\11444'</span><span class='layout'>)</span>-<a name="line-1790"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11446'</span><span class='layout'>,</span><span class='chr'>'\11446'</span><span class='layout'>)</span>-<a name="line-1791"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11448'</span><span class='layout'>,</span><span class='chr'>'\11448'</span><span class='layout'>)</span>-<a name="line-1792"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11450'</span><span class='layout'>,</span><span class='chr'>'\11450'</span><span class='layout'>)</span>-<a name="line-1793"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11452'</span><span class='layout'>,</span><span class='chr'>'\11452'</span><span class='layout'>)</span>-<a name="line-1794"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11454'</span><span class='layout'>,</span><span class='chr'>'\11454'</span><span class='layout'>)</span>-<a name="line-1795"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11456'</span><span class='layout'>,</span><span class='chr'>'\11456'</span><span class='layout'>)</span>-<a name="line-1796"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11458'</span><span class='layout'>,</span><span class='chr'>'\11458'</span><span class='layout'>)</span>-<a name="line-1797"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11460'</span><span class='layout'>,</span><span class='chr'>'\11460'</span><span class='layout'>)</span>-<a name="line-1798"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11462'</span><span class='layout'>,</span><span class='chr'>'\11462'</span><span class='layout'>)</span>-<a name="line-1799"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11464'</span><span class='layout'>,</span><span class='chr'>'\11464'</span><span class='layout'>)</span>-<a name="line-1800"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11466'</span><span class='layout'>,</span><span class='chr'>'\11466'</span><span class='layout'>)</span>-<a name="line-1801"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11468'</span><span class='layout'>,</span><span class='chr'>'\11468'</span><span class='layout'>)</span>-<a name="line-1802"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11470'</span><span class='layout'>,</span><span class='chr'>'\11470'</span><span class='layout'>)</span>-<a name="line-1803"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11472'</span><span class='layout'>,</span><span class='chr'>'\11472'</span><span class='layout'>)</span>-<a name="line-1804"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11474'</span><span class='layout'>,</span><span class='chr'>'\11474'</span><span class='layout'>)</span>-<a name="line-1805"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11476'</span><span class='layout'>,</span><span class='chr'>'\11476'</span><span class='layout'>)</span>-<a name="line-1806"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11478'</span><span class='layout'>,</span><span class='chr'>'\11478'</span><span class='layout'>)</span>-<a name="line-1807"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11480'</span><span class='layout'>,</span><span class='chr'>'\11480'</span><span class='layout'>)</span>-<a name="line-1808"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11482'</span><span class='layout'>,</span><span class='chr'>'\11482'</span><span class='layout'>)</span>-<a name="line-1809"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11484'</span><span class='layout'>,</span><span class='chr'>'\11484'</span><span class='layout'>)</span>-<a name="line-1810"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11486'</span><span class='layout'>,</span><span class='chr'>'\11486'</span><span class='layout'>)</span>-<a name="line-1811"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11488'</span><span class='layout'>,</span><span class='chr'>'\11488'</span><span class='layout'>)</span>-<a name="line-1812"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11490'</span><span class='layout'>,</span><span class='chr'>'\11490'</span><span class='layout'>)</span>-<a name="line-1813"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65313'</span><span class='layout'>,</span><span class='chr'>'\65338'</span><span class='layout'>)</span>-<a name="line-1814"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\66560'</span><span class='layout'>,</span><span class='chr'>'\66599'</span><span class='layout'>)</span>-<a name="line-1815"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119808'</span><span class='layout'>,</span><span class='chr'>'\119833'</span><span class='layout'>)</span>-<a name="line-1816"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119860'</span><span class='layout'>,</span><span class='chr'>'\119885'</span><span class='layout'>)</span>-<a name="line-1817"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119912'</span><span class='layout'>,</span><span class='chr'>'\119937'</span><span class='layout'>)</span>-<a name="line-1818"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119964'</span><span class='layout'>,</span><span class='chr'>'\119964'</span><span class='layout'>)</span>-<a name="line-1819"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119966'</span><span class='layout'>,</span><span class='chr'>'\119967'</span><span class='layout'>)</span>-<a name="line-1820"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119970'</span><span class='layout'>,</span><span class='chr'>'\119970'</span><span class='layout'>)</span>-<a name="line-1821"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119973'</span><span class='layout'>,</span><span class='chr'>'\119974'</span><span class='layout'>)</span>-<a name="line-1822"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119977'</span><span class='layout'>,</span><span class='chr'>'\119980'</span><span class='layout'>)</span>-<a name="line-1823"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119982'</span><span class='layout'>,</span><span class='chr'>'\119989'</span><span class='layout'>)</span>-<a name="line-1824"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120016'</span><span class='layout'>,</span><span class='chr'>'\120041'</span><span class='layout'>)</span>-<a name="line-1825"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120068'</span><span class='layout'>,</span><span class='chr'>'\120069'</span><span class='layout'>)</span>-<a name="line-1826"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120071'</span><span class='layout'>,</span><span class='chr'>'\120074'</span><span class='layout'>)</span>-<a name="line-1827"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120077'</span><span class='layout'>,</span><span class='chr'>'\120084'</span><span class='layout'>)</span>-<a name="line-1828"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120086'</span><span class='layout'>,</span><span class='chr'>'\120092'</span><span class='layout'>)</span>-<a name="line-1829"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120120'</span><span class='layout'>,</span><span class='chr'>'\120121'</span><span class='layout'>)</span>-<a name="line-1830"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120123'</span><span class='layout'>,</span><span class='chr'>'\120126'</span><span class='layout'>)</span>-<a name="line-1831"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120128'</span><span class='layout'>,</span><span class='chr'>'\120132'</span><span class='layout'>)</span>-<a name="line-1832"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120134'</span><span class='layout'>,</span><span class='chr'>'\120134'</span><span class='layout'>)</span>-<a name="line-1833"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120138'</span><span class='layout'>,</span><span class='chr'>'\120144'</span><span class='layout'>)</span>-<a name="line-1834"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120172'</span><span class='layout'>,</span><span class='chr'>'\120197'</span><span class='layout'>)</span>-<a name="line-1835"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120224'</span><span class='layout'>,</span><span class='chr'>'\120249'</span><span class='layout'>)</span>-<a name="line-1836"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120276'</span><span class='layout'>,</span><span class='chr'>'\120301'</span><span class='layout'>)</span>-<a name="line-1837"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120328'</span><span class='layout'>,</span><span class='chr'>'\120353'</span><span class='layout'>)</span>-<a name="line-1838"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120380'</span><span class='layout'>,</span><span class='chr'>'\120405'</span><span class='layout'>)</span>-<a name="line-1839"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120432'</span><span class='layout'>,</span><span class='chr'>'\120457'</span><span class='layout'>)</span>-<a name="line-1840"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120488'</span><span class='layout'>,</span><span class='chr'>'\120512'</span><span class='layout'>)</span>-<a name="line-1841"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120546'</span><span class='layout'>,</span><span class='chr'>'\120570'</span><span class='layout'>)</span>-<a name="line-1842"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120604'</span><span class='layout'>,</span><span class='chr'>'\120628'</span><span class='layout'>)</span>-<a name="line-1843"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120662'</span><span class='layout'>,</span><span class='chr'>'\120686'</span><span class='layout'>)</span>-<a name="line-1844"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120720'</span><span class='layout'>,</span><span class='chr'>'\120744'</span><span class='layout'>)</span>-<a name="line-1845"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120778'</span><span class='layout'>,</span><span class='chr'>'\120778'</span><span class='layout'>)</span>-<a name="line-1846"></a> <span class='keyglyph'>]</span>-<a name="line-1847"></a>-<a name="line-1848"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-1849"></a>-<a name="line-1850"></a><a name="isUnicodeM"></a><span class='definition'>isUnicodeM</span> <span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-1851"></a><span class='definition'>isUnicodeM</span> <span class='varid'>c</span>-<a name="line-1852"></a> <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>-<a name="line-1853"></a> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\768'</span><span class='layout'>,</span><span class='chr'>'\879'</span><span class='layout'>)</span>-<a name="line-1854"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1155'</span><span class='layout'>,</span><span class='chr'>'\1158'</span><span class='layout'>)</span>-<a name="line-1855"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1160'</span><span class='layout'>,</span><span class='chr'>'\1161'</span><span class='layout'>)</span>-<a name="line-1856"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1425'</span><span class='layout'>,</span><span class='chr'>'\1469'</span><span class='layout'>)</span>-<a name="line-1857"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1471'</span><span class='layout'>,</span><span class='chr'>'\1471'</span><span class='layout'>)</span>-<a name="line-1858"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1473'</span><span class='layout'>,</span><span class='chr'>'\1474'</span><span class='layout'>)</span>-<a name="line-1859"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1476'</span><span class='layout'>,</span><span class='chr'>'\1477'</span><span class='layout'>)</span>-<a name="line-1860"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1479'</span><span class='layout'>,</span><span class='chr'>'\1479'</span><span class='layout'>)</span>-<a name="line-1861"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1552'</span><span class='layout'>,</span><span class='chr'>'\1557'</span><span class='layout'>)</span>-<a name="line-1862"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1611'</span><span class='layout'>,</span><span class='chr'>'\1630'</span><span class='layout'>)</span>-<a name="line-1863"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1648'</span><span class='layout'>,</span><span class='chr'>'\1648'</span><span class='layout'>)</span>-<a name="line-1864"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1750'</span><span class='layout'>,</span><span class='chr'>'\1756'</span><span class='layout'>)</span>-<a name="line-1865"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1758'</span><span class='layout'>,</span><span class='chr'>'\1764'</span><span class='layout'>)</span>-<a name="line-1866"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1767'</span><span class='layout'>,</span><span class='chr'>'\1768'</span><span class='layout'>)</span>-<a name="line-1867"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1770'</span><span class='layout'>,</span><span class='chr'>'\1773'</span><span class='layout'>)</span>-<a name="line-1868"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1809'</span><span class='layout'>,</span><span class='chr'>'\1809'</span><span class='layout'>)</span>-<a name="line-1869"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1840'</span><span class='layout'>,</span><span class='chr'>'\1866'</span><span class='layout'>)</span>-<a name="line-1870"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1958'</span><span class='layout'>,</span><span class='chr'>'\1968'</span><span class='layout'>)</span>-<a name="line-1871"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2027'</span><span class='layout'>,</span><span class='chr'>'\2035'</span><span class='layout'>)</span>-<a name="line-1872"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2305'</span><span class='layout'>,</span><span class='chr'>'\2307'</span><span class='layout'>)</span>-<a name="line-1873"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2364'</span><span class='layout'>,</span><span class='chr'>'\2364'</span><span class='layout'>)</span>-<a name="line-1874"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2366'</span><span class='layout'>,</span><span class='chr'>'\2381'</span><span class='layout'>)</span>-<a name="line-1875"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2385'</span><span class='layout'>,</span><span class='chr'>'\2388'</span><span class='layout'>)</span>-<a name="line-1876"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2402'</span><span class='layout'>,</span><span class='chr'>'\2403'</span><span class='layout'>)</span>-<a name="line-1877"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2433'</span><span class='layout'>,</span><span class='chr'>'\2435'</span><span class='layout'>)</span>-<a name="line-1878"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2492'</span><span class='layout'>,</span><span class='chr'>'\2492'</span><span class='layout'>)</span>-<a name="line-1879"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2494'</span><span class='layout'>,</span><span class='chr'>'\2500'</span><span class='layout'>)</span>-<a name="line-1880"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2503'</span><span class='layout'>,</span><span class='chr'>'\2504'</span><span class='layout'>)</span>-<a name="line-1881"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2507'</span><span class='layout'>,</span><span class='chr'>'\2509'</span><span class='layout'>)</span>-<a name="line-1882"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2519'</span><span class='layout'>,</span><span class='chr'>'\2519'</span><span class='layout'>)</span>-<a name="line-1883"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2530'</span><span class='layout'>,</span><span class='chr'>'\2531'</span><span class='layout'>)</span>-<a name="line-1884"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2561'</span><span class='layout'>,</span><span class='chr'>'\2563'</span><span class='layout'>)</span>-<a name="line-1885"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2620'</span><span class='layout'>,</span><span class='chr'>'\2620'</span><span class='layout'>)</span>-<a name="line-1886"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2622'</span><span class='layout'>,</span><span class='chr'>'\2626'</span><span class='layout'>)</span>-<a name="line-1887"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2631'</span><span class='layout'>,</span><span class='chr'>'\2632'</span><span class='layout'>)</span>-<a name="line-1888"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2635'</span><span class='layout'>,</span><span class='chr'>'\2637'</span><span class='layout'>)</span>-<a name="line-1889"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2672'</span><span class='layout'>,</span><span class='chr'>'\2673'</span><span class='layout'>)</span>-<a name="line-1890"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2689'</span><span class='layout'>,</span><span class='chr'>'\2691'</span><span class='layout'>)</span>-<a name="line-1891"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2748'</span><span class='layout'>,</span><span class='chr'>'\2748'</span><span class='layout'>)</span>-<a name="line-1892"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2750'</span><span class='layout'>,</span><span class='chr'>'\2757'</span><span class='layout'>)</span>-<a name="line-1893"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2759'</span><span class='layout'>,</span><span class='chr'>'\2761'</span><span class='layout'>)</span>-<a name="line-1894"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2763'</span><span class='layout'>,</span><span class='chr'>'\2765'</span><span class='layout'>)</span>-<a name="line-1895"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2786'</span><span class='layout'>,</span><span class='chr'>'\2787'</span><span class='layout'>)</span>-<a name="line-1896"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2817'</span><span class='layout'>,</span><span class='chr'>'\2819'</span><span class='layout'>)</span>-<a name="line-1897"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2876'</span><span class='layout'>,</span><span class='chr'>'\2876'</span><span class='layout'>)</span>-<a name="line-1898"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2878'</span><span class='layout'>,</span><span class='chr'>'\2883'</span><span class='layout'>)</span>-<a name="line-1899"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2887'</span><span class='layout'>,</span><span class='chr'>'\2888'</span><span class='layout'>)</span>-<a name="line-1900"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2891'</span><span class='layout'>,</span><span class='chr'>'\2893'</span><span class='layout'>)</span>-<a name="line-1901"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2902'</span><span class='layout'>,</span><span class='chr'>'\2903'</span><span class='layout'>)</span>-<a name="line-1902"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2946'</span><span class='layout'>,</span><span class='chr'>'\2946'</span><span class='layout'>)</span>-<a name="line-1903"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3006'</span><span class='layout'>,</span><span class='chr'>'\3010'</span><span class='layout'>)</span>-<a name="line-1904"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3014'</span><span class='layout'>,</span><span class='chr'>'\3016'</span><span class='layout'>)</span>-<a name="line-1905"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3018'</span><span class='layout'>,</span><span class='chr'>'\3021'</span><span class='layout'>)</span>-<a name="line-1906"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3031'</span><span class='layout'>,</span><span class='chr'>'\3031'</span><span class='layout'>)</span>-<a name="line-1907"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3073'</span><span class='layout'>,</span><span class='chr'>'\3075'</span><span class='layout'>)</span>-<a name="line-1908"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3134'</span><span class='layout'>,</span><span class='chr'>'\3140'</span><span class='layout'>)</span>-<a name="line-1909"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3142'</span><span class='layout'>,</span><span class='chr'>'\3144'</span><span class='layout'>)</span>-<a name="line-1910"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3146'</span><span class='layout'>,</span><span class='chr'>'\3149'</span><span class='layout'>)</span>-<a name="line-1911"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3157'</span><span class='layout'>,</span><span class='chr'>'\3158'</span><span class='layout'>)</span>-<a name="line-1912"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3202'</span><span class='layout'>,</span><span class='chr'>'\3203'</span><span class='layout'>)</span>-<a name="line-1913"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3260'</span><span class='layout'>,</span><span class='chr'>'\3260'</span><span class='layout'>)</span>-<a name="line-1914"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3262'</span><span class='layout'>,</span><span class='chr'>'\3268'</span><span class='layout'>)</span>-<a name="line-1915"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3270'</span><span class='layout'>,</span><span class='chr'>'\3272'</span><span class='layout'>)</span>-<a name="line-1916"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3274'</span><span class='layout'>,</span><span class='chr'>'\3277'</span><span class='layout'>)</span>-<a name="line-1917"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3285'</span><span class='layout'>,</span><span class='chr'>'\3286'</span><span class='layout'>)</span>-<a name="line-1918"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3298'</span><span class='layout'>,</span><span class='chr'>'\3299'</span><span class='layout'>)</span>-<a name="line-1919"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3330'</span><span class='layout'>,</span><span class='chr'>'\3331'</span><span class='layout'>)</span>-<a name="line-1920"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3390'</span><span class='layout'>,</span><span class='chr'>'\3395'</span><span class='layout'>)</span>-<a name="line-1921"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3398'</span><span class='layout'>,</span><span class='chr'>'\3400'</span><span class='layout'>)</span>-<a name="line-1922"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3402'</span><span class='layout'>,</span><span class='chr'>'\3405'</span><span class='layout'>)</span>-<a name="line-1923"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3415'</span><span class='layout'>,</span><span class='chr'>'\3415'</span><span class='layout'>)</span>-<a name="line-1924"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3458'</span><span class='layout'>,</span><span class='chr'>'\3459'</span><span class='layout'>)</span>-<a name="line-1925"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3530'</span><span class='layout'>,</span><span class='chr'>'\3530'</span><span class='layout'>)</span>-<a name="line-1926"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3535'</span><span class='layout'>,</span><span class='chr'>'\3540'</span><span class='layout'>)</span>-<a name="line-1927"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3542'</span><span class='layout'>,</span><span class='chr'>'\3542'</span><span class='layout'>)</span>-<a name="line-1928"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3544'</span><span class='layout'>,</span><span class='chr'>'\3551'</span><span class='layout'>)</span>-<a name="line-1929"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3570'</span><span class='layout'>,</span><span class='chr'>'\3571'</span><span class='layout'>)</span>-<a name="line-1930"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3633'</span><span class='layout'>,</span><span class='chr'>'\3633'</span><span class='layout'>)</span>-<a name="line-1931"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3636'</span><span class='layout'>,</span><span class='chr'>'\3642'</span><span class='layout'>)</span>-<a name="line-1932"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3655'</span><span class='layout'>,</span><span class='chr'>'\3662'</span><span class='layout'>)</span>-<a name="line-1933"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3761'</span><span class='layout'>,</span><span class='chr'>'\3761'</span><span class='layout'>)</span>-<a name="line-1934"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3764'</span><span class='layout'>,</span><span class='chr'>'\3769'</span><span class='layout'>)</span>-<a name="line-1935"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3771'</span><span class='layout'>,</span><span class='chr'>'\3772'</span><span class='layout'>)</span>-<a name="line-1936"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3784'</span><span class='layout'>,</span><span class='chr'>'\3789'</span><span class='layout'>)</span>-<a name="line-1937"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3864'</span><span class='layout'>,</span><span class='chr'>'\3865'</span><span class='layout'>)</span>-<a name="line-1938"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3893'</span><span class='layout'>,</span><span class='chr'>'\3893'</span><span class='layout'>)</span>-<a name="line-1939"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3895'</span><span class='layout'>,</span><span class='chr'>'\3895'</span><span class='layout'>)</span>-<a name="line-1940"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3897'</span><span class='layout'>,</span><span class='chr'>'\3897'</span><span class='layout'>)</span>-<a name="line-1941"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3902'</span><span class='layout'>,</span><span class='chr'>'\3903'</span><span class='layout'>)</span>-<a name="line-1942"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3953'</span><span class='layout'>,</span><span class='chr'>'\3972'</span><span class='layout'>)</span>-<a name="line-1943"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3974'</span><span class='layout'>,</span><span class='chr'>'\3975'</span><span class='layout'>)</span>-<a name="line-1944"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3984'</span><span class='layout'>,</span><span class='chr'>'\3991'</span><span class='layout'>)</span>-<a name="line-1945"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3993'</span><span class='layout'>,</span><span class='chr'>'\4028'</span><span class='layout'>)</span>-<a name="line-1946"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4038'</span><span class='layout'>,</span><span class='chr'>'\4038'</span><span class='layout'>)</span>-<a name="line-1947"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4140'</span><span class='layout'>,</span><span class='chr'>'\4146'</span><span class='layout'>)</span>-<a name="line-1948"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4150'</span><span class='layout'>,</span><span class='chr'>'\4153'</span><span class='layout'>)</span>-<a name="line-1949"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4182'</span><span class='layout'>,</span><span class='chr'>'\4185'</span><span class='layout'>)</span>-<a name="line-1950"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4959'</span><span class='layout'>,</span><span class='chr'>'\4959'</span><span class='layout'>)</span>-<a name="line-1951"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5906'</span><span class='layout'>,</span><span class='chr'>'\5908'</span><span class='layout'>)</span>-<a name="line-1952"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5938'</span><span class='layout'>,</span><span class='chr'>'\5940'</span><span class='layout'>)</span>-<a name="line-1953"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5970'</span><span class='layout'>,</span><span class='chr'>'\5971'</span><span class='layout'>)</span>-<a name="line-1954"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6002'</span><span class='layout'>,</span><span class='chr'>'\6003'</span><span class='layout'>)</span>-<a name="line-1955"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6070'</span><span class='layout'>,</span><span class='chr'>'\6099'</span><span class='layout'>)</span>-<a name="line-1956"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6109'</span><span class='layout'>,</span><span class='chr'>'\6109'</span><span class='layout'>)</span>-<a name="line-1957"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6155'</span><span class='layout'>,</span><span class='chr'>'\6157'</span><span class='layout'>)</span>-<a name="line-1958"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6313'</span><span class='layout'>,</span><span class='chr'>'\6313'</span><span class='layout'>)</span>-<a name="line-1959"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6432'</span><span class='layout'>,</span><span class='chr'>'\6443'</span><span class='layout'>)</span>-<a name="line-1960"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6448'</span><span class='layout'>,</span><span class='chr'>'\6459'</span><span class='layout'>)</span>-<a name="line-1961"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6576'</span><span class='layout'>,</span><span class='chr'>'\6592'</span><span class='layout'>)</span>-<a name="line-1962"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6600'</span><span class='layout'>,</span><span class='chr'>'\6601'</span><span class='layout'>)</span>-<a name="line-1963"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6679'</span><span class='layout'>,</span><span class='chr'>'\6683'</span><span class='layout'>)</span>-<a name="line-1964"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6912'</span><span class='layout'>,</span><span class='chr'>'\6916'</span><span class='layout'>)</span>-<a name="line-1965"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6964'</span><span class='layout'>,</span><span class='chr'>'\6980'</span><span class='layout'>)</span>-<a name="line-1966"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7019'</span><span class='layout'>,</span><span class='chr'>'\7027'</span><span class='layout'>)</span>-<a name="line-1967"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7616'</span><span class='layout'>,</span><span class='chr'>'\7626'</span><span class='layout'>)</span>-<a name="line-1968"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7678'</span><span class='layout'>,</span><span class='chr'>'\7679'</span><span class='layout'>)</span>-<a name="line-1969"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8400'</span><span class='layout'>,</span><span class='chr'>'\8431'</span><span class='layout'>)</span>-<a name="line-1970"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12330'</span><span class='layout'>,</span><span class='chr'>'\12335'</span><span class='layout'>)</span>-<a name="line-1971"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12441'</span><span class='layout'>,</span><span class='chr'>'\12442'</span><span class='layout'>)</span>-<a name="line-1972"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\43010'</span><span class='layout'>,</span><span class='chr'>'\43010'</span><span class='layout'>)</span>-<a name="line-1973"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\43014'</span><span class='layout'>,</span><span class='chr'>'\43014'</span><span class='layout'>)</span>-<a name="line-1974"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\43019'</span><span class='layout'>,</span><span class='chr'>'\43019'</span><span class='layout'>)</span>-<a name="line-1975"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\43043'</span><span class='layout'>,</span><span class='chr'>'\43047'</span><span class='layout'>)</span>-<a name="line-1976"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64286'</span><span class='layout'>,</span><span class='chr'>'\64286'</span><span class='layout'>)</span>-<a name="line-1977"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65024'</span><span class='layout'>,</span><span class='chr'>'\65039'</span><span class='layout'>)</span>-<a name="line-1978"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65056'</span><span class='layout'>,</span><span class='chr'>'\65059'</span><span class='layout'>)</span>-<a name="line-1979"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\68097'</span><span class='layout'>,</span><span class='chr'>'\68099'</span><span class='layout'>)</span>-<a name="line-1980"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\68101'</span><span class='layout'>,</span><span class='chr'>'\68102'</span><span class='layout'>)</span>-<a name="line-1981"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\68108'</span><span class='layout'>,</span><span class='chr'>'\68111'</span><span class='layout'>)</span>-<a name="line-1982"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\68152'</span><span class='layout'>,</span><span class='chr'>'\68154'</span><span class='layout'>)</span>-<a name="line-1983"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\68159'</span><span class='layout'>,</span><span class='chr'>'\68159'</span><span class='layout'>)</span>-<a name="line-1984"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119141'</span><span class='layout'>,</span><span class='chr'>'\119145'</span><span class='layout'>)</span>-<a name="line-1985"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119149'</span><span class='layout'>,</span><span class='chr'>'\119154'</span><span class='layout'>)</span>-<a name="line-1986"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119163'</span><span class='layout'>,</span><span class='chr'>'\119170'</span><span class='layout'>)</span>-<a name="line-1987"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119173'</span><span class='layout'>,</span><span class='chr'>'\119179'</span><span class='layout'>)</span>-<a name="line-1988"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119210'</span><span class='layout'>,</span><span class='chr'>'\119213'</span><span class='layout'>)</span>-<a name="line-1989"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119362'</span><span class='layout'>,</span><span class='chr'>'\119364'</span><span class='layout'>)</span>-<a name="line-1990"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\917760'</span><span class='layout'>,</span><span class='chr'>'\917999'</span><span class='layout'>)</span>-<a name="line-1991"></a> <span class='keyglyph'>]</span>-<a name="line-1992"></a>-<a name="line-1993"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-1994"></a>-<a name="line-1995"></a><a name="isUnicodeMc"></a><span class='definition'>isUnicodeMc</span> <span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-1996"></a><span class='definition'>isUnicodeMc</span> <span class='varid'>c</span>-<a name="line-1997"></a> <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>-<a name="line-1998"></a> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\2307'</span><span class='layout'>,</span><span class='chr'>'\2307'</span><span class='layout'>)</span>-<a name="line-1999"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2366'</span><span class='layout'>,</span><span class='chr'>'\2368'</span><span class='layout'>)</span>-<a name="line-2000"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2377'</span><span class='layout'>,</span><span class='chr'>'\2380'</span><span class='layout'>)</span>-<a name="line-2001"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2434'</span><span class='layout'>,</span><span class='chr'>'\2435'</span><span class='layout'>)</span>-<a name="line-2002"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2494'</span><span class='layout'>,</span><span class='chr'>'\2496'</span><span class='layout'>)</span>-<a name="line-2003"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2503'</span><span class='layout'>,</span><span class='chr'>'\2504'</span><span class='layout'>)</span>-<a name="line-2004"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2507'</span><span class='layout'>,</span><span class='chr'>'\2508'</span><span class='layout'>)</span>-<a name="line-2005"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2519'</span><span class='layout'>,</span><span class='chr'>'\2519'</span><span class='layout'>)</span>-<a name="line-2006"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2563'</span><span class='layout'>,</span><span class='chr'>'\2563'</span><span class='layout'>)</span>-<a name="line-2007"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2622'</span><span class='layout'>,</span><span class='chr'>'\2624'</span><span class='layout'>)</span>-<a name="line-2008"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2691'</span><span class='layout'>,</span><span class='chr'>'\2691'</span><span class='layout'>)</span>-<a name="line-2009"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2750'</span><span class='layout'>,</span><span class='chr'>'\2752'</span><span class='layout'>)</span>-<a name="line-2010"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2761'</span><span class='layout'>,</span><span class='chr'>'\2761'</span><span class='layout'>)</span>-<a name="line-2011"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2763'</span><span class='layout'>,</span><span class='chr'>'\2764'</span><span class='layout'>)</span>-<a name="line-2012"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2818'</span><span class='layout'>,</span><span class='chr'>'\2819'</span><span class='layout'>)</span>-<a name="line-2013"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2878'</span><span class='layout'>,</span><span class='chr'>'\2878'</span><span class='layout'>)</span>-<a name="line-2014"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2880'</span><span class='layout'>,</span><span class='chr'>'\2880'</span><span class='layout'>)</span>-<a name="line-2015"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2887'</span><span class='layout'>,</span><span class='chr'>'\2888'</span><span class='layout'>)</span>-<a name="line-2016"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2891'</span><span class='layout'>,</span><span class='chr'>'\2892'</span><span class='layout'>)</span>-<a name="line-2017"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2903'</span><span class='layout'>,</span><span class='chr'>'\2903'</span><span class='layout'>)</span>-<a name="line-2018"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3006'</span><span class='layout'>,</span><span class='chr'>'\3007'</span><span class='layout'>)</span>-<a name="line-2019"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3009'</span><span class='layout'>,</span><span class='chr'>'\3010'</span><span class='layout'>)</span>-<a name="line-2020"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3014'</span><span class='layout'>,</span><span class='chr'>'\3016'</span><span class='layout'>)</span>-<a name="line-2021"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3018'</span><span class='layout'>,</span><span class='chr'>'\3020'</span><span class='layout'>)</span>-<a name="line-2022"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3031'</span><span class='layout'>,</span><span class='chr'>'\3031'</span><span class='layout'>)</span>-<a name="line-2023"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3073'</span><span class='layout'>,</span><span class='chr'>'\3075'</span><span class='layout'>)</span>-<a name="line-2024"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3137'</span><span class='layout'>,</span><span class='chr'>'\3140'</span><span class='layout'>)</span>-<a name="line-2025"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3202'</span><span class='layout'>,</span><span class='chr'>'\3203'</span><span class='layout'>)</span>-<a name="line-2026"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3262'</span><span class='layout'>,</span><span class='chr'>'\3262'</span><span class='layout'>)</span>-<a name="line-2027"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3264'</span><span class='layout'>,</span><span class='chr'>'\3268'</span><span class='layout'>)</span>-<a name="line-2028"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3271'</span><span class='layout'>,</span><span class='chr'>'\3272'</span><span class='layout'>)</span>-<a name="line-2029"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3274'</span><span class='layout'>,</span><span class='chr'>'\3275'</span><span class='layout'>)</span>-<a name="line-2030"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3285'</span><span class='layout'>,</span><span class='chr'>'\3286'</span><span class='layout'>)</span>-<a name="line-2031"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3330'</span><span class='layout'>,</span><span class='chr'>'\3331'</span><span class='layout'>)</span>-<a name="line-2032"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3390'</span><span class='layout'>,</span><span class='chr'>'\3392'</span><span class='layout'>)</span>-<a name="line-2033"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3398'</span><span class='layout'>,</span><span class='chr'>'\3400'</span><span class='layout'>)</span>-<a name="line-2034"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3402'</span><span class='layout'>,</span><span class='chr'>'\3404'</span><span class='layout'>)</span>-<a name="line-2035"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3415'</span><span class='layout'>,</span><span class='chr'>'\3415'</span><span class='layout'>)</span>-<a name="line-2036"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3458'</span><span class='layout'>,</span><span class='chr'>'\3459'</span><span class='layout'>)</span>-<a name="line-2037"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3535'</span><span class='layout'>,</span><span class='chr'>'\3537'</span><span class='layout'>)</span>-<a name="line-2038"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3544'</span><span class='layout'>,</span><span class='chr'>'\3551'</span><span class='layout'>)</span>-<a name="line-2039"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3570'</span><span class='layout'>,</span><span class='chr'>'\3571'</span><span class='layout'>)</span>-<a name="line-2040"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3902'</span><span class='layout'>,</span><span class='chr'>'\3903'</span><span class='layout'>)</span>-<a name="line-2041"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3967'</span><span class='layout'>,</span><span class='chr'>'\3967'</span><span class='layout'>)</span>-<a name="line-2042"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4140'</span><span class='layout'>,</span><span class='chr'>'\4140'</span><span class='layout'>)</span>-<a name="line-2043"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4145'</span><span class='layout'>,</span><span class='chr'>'\4145'</span><span class='layout'>)</span>-<a name="line-2044"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4152'</span><span class='layout'>,</span><span class='chr'>'\4152'</span><span class='layout'>)</span>-<a name="line-2045"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4182'</span><span class='layout'>,</span><span class='chr'>'\4183'</span><span class='layout'>)</span>-<a name="line-2046"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6070'</span><span class='layout'>,</span><span class='chr'>'\6070'</span><span class='layout'>)</span>-<a name="line-2047"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6078'</span><span class='layout'>,</span><span class='chr'>'\6085'</span><span class='layout'>)</span>-<a name="line-2048"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6087'</span><span class='layout'>,</span><span class='chr'>'\6088'</span><span class='layout'>)</span>-<a name="line-2049"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6435'</span><span class='layout'>,</span><span class='chr'>'\6438'</span><span class='layout'>)</span>-<a name="line-2050"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6441'</span><span class='layout'>,</span><span class='chr'>'\6443'</span><span class='layout'>)</span>-<a name="line-2051"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6448'</span><span class='layout'>,</span><span class='chr'>'\6449'</span><span class='layout'>)</span>-<a name="line-2052"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6451'</span><span class='layout'>,</span><span class='chr'>'\6456'</span><span class='layout'>)</span>-<a name="line-2053"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6576'</span><span class='layout'>,</span><span class='chr'>'\6592'</span><span class='layout'>)</span>-<a name="line-2054"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6600'</span><span class='layout'>,</span><span class='chr'>'\6601'</span><span class='layout'>)</span>-<a name="line-2055"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6681'</span><span class='layout'>,</span><span class='chr'>'\6683'</span><span class='layout'>)</span>-<a name="line-2056"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6916'</span><span class='layout'>,</span><span class='chr'>'\6916'</span><span class='layout'>)</span>-<a name="line-2057"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6965'</span><span class='layout'>,</span><span class='chr'>'\6965'</span><span class='layout'>)</span>-<a name="line-2058"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6971'</span><span class='layout'>,</span><span class='chr'>'\6971'</span><span class='layout'>)</span>-<a name="line-2059"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6973'</span><span class='layout'>,</span><span class='chr'>'\6977'</span><span class='layout'>)</span>-<a name="line-2060"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6979'</span><span class='layout'>,</span><span class='chr'>'\6980'</span><span class='layout'>)</span>-<a name="line-2061"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\43010'</span><span class='layout'>,</span><span class='chr'>'\43010'</span><span class='layout'>)</span>-<a name="line-2062"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\43043'</span><span class='layout'>,</span><span class='chr'>'\43044'</span><span class='layout'>)</span>-<a name="line-2063"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\43047'</span><span class='layout'>,</span><span class='chr'>'\43047'</span><span class='layout'>)</span>-<a name="line-2064"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119141'</span><span class='layout'>,</span><span class='chr'>'\119142'</span><span class='layout'>)</span>-<a name="line-2065"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119149'</span><span class='layout'>,</span><span class='chr'>'\119154'</span><span class='layout'>)</span>-<a name="line-2066"></a> <span class='keyglyph'>]</span>-<a name="line-2067"></a>-<a name="line-2068"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2069"></a>-<a name="line-2070"></a><a name="isUnicodeMe"></a><span class='definition'>isUnicodeMe</span> <span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-2071"></a><span class='definition'>isUnicodeMe</span> <span class='varid'>c</span>-<a name="line-2072"></a> <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>-<a name="line-2073"></a> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\1160'</span><span class='layout'>,</span><span class='chr'>'\1161'</span><span class='layout'>)</span>-<a name="line-2074"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1758'</span><span class='layout'>,</span><span class='chr'>'\1758'</span><span class='layout'>)</span>-<a name="line-2075"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8413'</span><span class='layout'>,</span><span class='chr'>'\8416'</span><span class='layout'>)</span>-<a name="line-2076"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8418'</span><span class='layout'>,</span><span class='chr'>'\8420'</span><span class='layout'>)</span>-<a name="line-2077"></a> <span class='keyglyph'>]</span>-<a name="line-2078"></a>-<a name="line-2079"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2080"></a>-<a name="line-2081"></a><a name="isUnicodeMn"></a><span class='definition'>isUnicodeMn</span> <span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-2082"></a><span class='definition'>isUnicodeMn</span> <span class='varid'>c</span>-<a name="line-2083"></a> <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>-<a name="line-2084"></a> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\768'</span><span class='layout'>,</span><span class='chr'>'\879'</span><span class='layout'>)</span>-<a name="line-2085"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1155'</span><span class='layout'>,</span><span class='chr'>'\1158'</span><span class='layout'>)</span>-<a name="line-2086"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1425'</span><span class='layout'>,</span><span class='chr'>'\1469'</span><span class='layout'>)</span>-<a name="line-2087"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1471'</span><span class='layout'>,</span><span class='chr'>'\1471'</span><span class='layout'>)</span>-<a name="line-2088"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1473'</span><span class='layout'>,</span><span class='chr'>'\1474'</span><span class='layout'>)</span>-<a name="line-2089"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1476'</span><span class='layout'>,</span><span class='chr'>'\1477'</span><span class='layout'>)</span>-<a name="line-2090"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1479'</span><span class='layout'>,</span><span class='chr'>'\1479'</span><span class='layout'>)</span>-<a name="line-2091"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1552'</span><span class='layout'>,</span><span class='chr'>'\1557'</span><span class='layout'>)</span>-<a name="line-2092"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1611'</span><span class='layout'>,</span><span class='chr'>'\1630'</span><span class='layout'>)</span>-<a name="line-2093"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1648'</span><span class='layout'>,</span><span class='chr'>'\1648'</span><span class='layout'>)</span>-<a name="line-2094"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1750'</span><span class='layout'>,</span><span class='chr'>'\1756'</span><span class='layout'>)</span>-<a name="line-2095"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1759'</span><span class='layout'>,</span><span class='chr'>'\1764'</span><span class='layout'>)</span>-<a name="line-2096"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1767'</span><span class='layout'>,</span><span class='chr'>'\1768'</span><span class='layout'>)</span>-<a name="line-2097"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1770'</span><span class='layout'>,</span><span class='chr'>'\1773'</span><span class='layout'>)</span>-<a name="line-2098"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1809'</span><span class='layout'>,</span><span class='chr'>'\1809'</span><span class='layout'>)</span>-<a name="line-2099"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1840'</span><span class='layout'>,</span><span class='chr'>'\1866'</span><span class='layout'>)</span>-<a name="line-2100"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1958'</span><span class='layout'>,</span><span class='chr'>'\1968'</span><span class='layout'>)</span>-<a name="line-2101"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2027'</span><span class='layout'>,</span><span class='chr'>'\2035'</span><span class='layout'>)</span>-<a name="line-2102"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2305'</span><span class='layout'>,</span><span class='chr'>'\2306'</span><span class='layout'>)</span>-<a name="line-2103"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2364'</span><span class='layout'>,</span><span class='chr'>'\2364'</span><span class='layout'>)</span>-<a name="line-2104"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2369'</span><span class='layout'>,</span><span class='chr'>'\2376'</span><span class='layout'>)</span>-<a name="line-2105"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2381'</span><span class='layout'>,</span><span class='chr'>'\2381'</span><span class='layout'>)</span>-<a name="line-2106"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2385'</span><span class='layout'>,</span><span class='chr'>'\2388'</span><span class='layout'>)</span>-<a name="line-2107"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2402'</span><span class='layout'>,</span><span class='chr'>'\2403'</span><span class='layout'>)</span>-<a name="line-2108"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2433'</span><span class='layout'>,</span><span class='chr'>'\2433'</span><span class='layout'>)</span>-<a name="line-2109"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2492'</span><span class='layout'>,</span><span class='chr'>'\2492'</span><span class='layout'>)</span>-<a name="line-2110"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2497'</span><span class='layout'>,</span><span class='chr'>'\2500'</span><span class='layout'>)</span>-<a name="line-2111"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2509'</span><span class='layout'>,</span><span class='chr'>'\2509'</span><span class='layout'>)</span>-<a name="line-2112"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2530'</span><span class='layout'>,</span><span class='chr'>'\2531'</span><span class='layout'>)</span>-<a name="line-2113"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2561'</span><span class='layout'>,</span><span class='chr'>'\2562'</span><span class='layout'>)</span>-<a name="line-2114"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2620'</span><span class='layout'>,</span><span class='chr'>'\2620'</span><span class='layout'>)</span>-<a name="line-2115"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2625'</span><span class='layout'>,</span><span class='chr'>'\2626'</span><span class='layout'>)</span>-<a name="line-2116"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2631'</span><span class='layout'>,</span><span class='chr'>'\2632'</span><span class='layout'>)</span>-<a name="line-2117"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2635'</span><span class='layout'>,</span><span class='chr'>'\2637'</span><span class='layout'>)</span>-<a name="line-2118"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2672'</span><span class='layout'>,</span><span class='chr'>'\2673'</span><span class='layout'>)</span>-<a name="line-2119"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2689'</span><span class='layout'>,</span><span class='chr'>'\2690'</span><span class='layout'>)</span>-<a name="line-2120"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2748'</span><span class='layout'>,</span><span class='chr'>'\2748'</span><span class='layout'>)</span>-<a name="line-2121"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2753'</span><span class='layout'>,</span><span class='chr'>'\2757'</span><span class='layout'>)</span>-<a name="line-2122"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2759'</span><span class='layout'>,</span><span class='chr'>'\2760'</span><span class='layout'>)</span>-<a name="line-2123"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2765'</span><span class='layout'>,</span><span class='chr'>'\2765'</span><span class='layout'>)</span>-<a name="line-2124"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2786'</span><span class='layout'>,</span><span class='chr'>'\2787'</span><span class='layout'>)</span>-<a name="line-2125"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2817'</span><span class='layout'>,</span><span class='chr'>'\2817'</span><span class='layout'>)</span>-<a name="line-2126"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2876'</span><span class='layout'>,</span><span class='chr'>'\2876'</span><span class='layout'>)</span>-<a name="line-2127"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2879'</span><span class='layout'>,</span><span class='chr'>'\2879'</span><span class='layout'>)</span>-<a name="line-2128"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2881'</span><span class='layout'>,</span><span class='chr'>'\2883'</span><span class='layout'>)</span>-<a name="line-2129"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2893'</span><span class='layout'>,</span><span class='chr'>'\2893'</span><span class='layout'>)</span>-<a name="line-2130"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2902'</span><span class='layout'>,</span><span class='chr'>'\2902'</span><span class='layout'>)</span>-<a name="line-2131"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2946'</span><span class='layout'>,</span><span class='chr'>'\2946'</span><span class='layout'>)</span>-<a name="line-2132"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3008'</span><span class='layout'>,</span><span class='chr'>'\3008'</span><span class='layout'>)</span>-<a name="line-2133"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3021'</span><span class='layout'>,</span><span class='chr'>'\3021'</span><span class='layout'>)</span>-<a name="line-2134"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3134'</span><span class='layout'>,</span><span class='chr'>'\3136'</span><span class='layout'>)</span>-<a name="line-2135"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3142'</span><span class='layout'>,</span><span class='chr'>'\3144'</span><span class='layout'>)</span>-<a name="line-2136"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3146'</span><span class='layout'>,</span><span class='chr'>'\3149'</span><span class='layout'>)</span>-<a name="line-2137"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3157'</span><span class='layout'>,</span><span class='chr'>'\3158'</span><span class='layout'>)</span>-<a name="line-2138"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3260'</span><span class='layout'>,</span><span class='chr'>'\3260'</span><span class='layout'>)</span>-<a name="line-2139"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3263'</span><span class='layout'>,</span><span class='chr'>'\3263'</span><span class='layout'>)</span>-<a name="line-2140"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3270'</span><span class='layout'>,</span><span class='chr'>'\3270'</span><span class='layout'>)</span>-<a name="line-2141"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3276'</span><span class='layout'>,</span><span class='chr'>'\3277'</span><span class='layout'>)</span>-<a name="line-2142"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3298'</span><span class='layout'>,</span><span class='chr'>'\3299'</span><span class='layout'>)</span>-<a name="line-2143"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3393'</span><span class='layout'>,</span><span class='chr'>'\3395'</span><span class='layout'>)</span>-<a name="line-2144"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3405'</span><span class='layout'>,</span><span class='chr'>'\3405'</span><span class='layout'>)</span>-<a name="line-2145"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3530'</span><span class='layout'>,</span><span class='chr'>'\3530'</span><span class='layout'>)</span>-<a name="line-2146"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3538'</span><span class='layout'>,</span><span class='chr'>'\3540'</span><span class='layout'>)</span>-<a name="line-2147"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3542'</span><span class='layout'>,</span><span class='chr'>'\3542'</span><span class='layout'>)</span>-<a name="line-2148"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3633'</span><span class='layout'>,</span><span class='chr'>'\3633'</span><span class='layout'>)</span>-<a name="line-2149"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3636'</span><span class='layout'>,</span><span class='chr'>'\3642'</span><span class='layout'>)</span>-<a name="line-2150"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3655'</span><span class='layout'>,</span><span class='chr'>'\3662'</span><span class='layout'>)</span>-<a name="line-2151"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3761'</span><span class='layout'>,</span><span class='chr'>'\3761'</span><span class='layout'>)</span>-<a name="line-2152"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3764'</span><span class='layout'>,</span><span class='chr'>'\3769'</span><span class='layout'>)</span>-<a name="line-2153"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3771'</span><span class='layout'>,</span><span class='chr'>'\3772'</span><span class='layout'>)</span>-<a name="line-2154"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3784'</span><span class='layout'>,</span><span class='chr'>'\3789'</span><span class='layout'>)</span>-<a name="line-2155"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3864'</span><span class='layout'>,</span><span class='chr'>'\3865'</span><span class='layout'>)</span>-<a name="line-2156"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3893'</span><span class='layout'>,</span><span class='chr'>'\3893'</span><span class='layout'>)</span>-<a name="line-2157"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3895'</span><span class='layout'>,</span><span class='chr'>'\3895'</span><span class='layout'>)</span>-<a name="line-2158"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3897'</span><span class='layout'>,</span><span class='chr'>'\3897'</span><span class='layout'>)</span>-<a name="line-2159"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3953'</span><span class='layout'>,</span><span class='chr'>'\3966'</span><span class='layout'>)</span>-<a name="line-2160"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3968'</span><span class='layout'>,</span><span class='chr'>'\3972'</span><span class='layout'>)</span>-<a name="line-2161"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3974'</span><span class='layout'>,</span><span class='chr'>'\3975'</span><span class='layout'>)</span>-<a name="line-2162"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3984'</span><span class='layout'>,</span><span class='chr'>'\3991'</span><span class='layout'>)</span>-<a name="line-2163"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3993'</span><span class='layout'>,</span><span class='chr'>'\4028'</span><span class='layout'>)</span>-<a name="line-2164"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4038'</span><span class='layout'>,</span><span class='chr'>'\4038'</span><span class='layout'>)</span>-<a name="line-2165"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4141'</span><span class='layout'>,</span><span class='chr'>'\4144'</span><span class='layout'>)</span>-<a name="line-2166"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4146'</span><span class='layout'>,</span><span class='chr'>'\4146'</span><span class='layout'>)</span>-<a name="line-2167"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4150'</span><span class='layout'>,</span><span class='chr'>'\4151'</span><span class='layout'>)</span>-<a name="line-2168"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4153'</span><span class='layout'>,</span><span class='chr'>'\4153'</span><span class='layout'>)</span>-<a name="line-2169"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4184'</span><span class='layout'>,</span><span class='chr'>'\4185'</span><span class='layout'>)</span>-<a name="line-2170"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4959'</span><span class='layout'>,</span><span class='chr'>'\4959'</span><span class='layout'>)</span>-<a name="line-2171"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5906'</span><span class='layout'>,</span><span class='chr'>'\5908'</span><span class='layout'>)</span>-<a name="line-2172"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5938'</span><span class='layout'>,</span><span class='chr'>'\5940'</span><span class='layout'>)</span>-<a name="line-2173"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5970'</span><span class='layout'>,</span><span class='chr'>'\5971'</span><span class='layout'>)</span>-<a name="line-2174"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6002'</span><span class='layout'>,</span><span class='chr'>'\6003'</span><span class='layout'>)</span>-<a name="line-2175"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6071'</span><span class='layout'>,</span><span class='chr'>'\6077'</span><span class='layout'>)</span>-<a name="line-2176"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6086'</span><span class='layout'>,</span><span class='chr'>'\6086'</span><span class='layout'>)</span>-<a name="line-2177"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6089'</span><span class='layout'>,</span><span class='chr'>'\6099'</span><span class='layout'>)</span>-<a name="line-2178"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6109'</span><span class='layout'>,</span><span class='chr'>'\6109'</span><span class='layout'>)</span>-<a name="line-2179"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6155'</span><span class='layout'>,</span><span class='chr'>'\6157'</span><span class='layout'>)</span>-<a name="line-2180"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6313'</span><span class='layout'>,</span><span class='chr'>'\6313'</span><span class='layout'>)</span>-<a name="line-2181"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6432'</span><span class='layout'>,</span><span class='chr'>'\6434'</span><span class='layout'>)</span>-<a name="line-2182"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6439'</span><span class='layout'>,</span><span class='chr'>'\6440'</span><span class='layout'>)</span>-<a name="line-2183"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6450'</span><span class='layout'>,</span><span class='chr'>'\6450'</span><span class='layout'>)</span>-<a name="line-2184"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6457'</span><span class='layout'>,</span><span class='chr'>'\6459'</span><span class='layout'>)</span>-<a name="line-2185"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6679'</span><span class='layout'>,</span><span class='chr'>'\6680'</span><span class='layout'>)</span>-<a name="line-2186"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6912'</span><span class='layout'>,</span><span class='chr'>'\6915'</span><span class='layout'>)</span>-<a name="line-2187"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6964'</span><span class='layout'>,</span><span class='chr'>'\6964'</span><span class='layout'>)</span>-<a name="line-2188"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6966'</span><span class='layout'>,</span><span class='chr'>'\6970'</span><span class='layout'>)</span>-<a name="line-2189"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6972'</span><span class='layout'>,</span><span class='chr'>'\6972'</span><span class='layout'>)</span>-<a name="line-2190"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6978'</span><span class='layout'>,</span><span class='chr'>'\6978'</span><span class='layout'>)</span>-<a name="line-2191"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7019'</span><span class='layout'>,</span><span class='chr'>'\7027'</span><span class='layout'>)</span>-<a name="line-2192"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7616'</span><span class='layout'>,</span><span class='chr'>'\7626'</span><span class='layout'>)</span>-<a name="line-2193"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7678'</span><span class='layout'>,</span><span class='chr'>'\7679'</span><span class='layout'>)</span>-<a name="line-2194"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8400'</span><span class='layout'>,</span><span class='chr'>'\8412'</span><span class='layout'>)</span>-<a name="line-2195"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8417'</span><span class='layout'>,</span><span class='chr'>'\8417'</span><span class='layout'>)</span>-<a name="line-2196"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8421'</span><span class='layout'>,</span><span class='chr'>'\8431'</span><span class='layout'>)</span>-<a name="line-2197"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12330'</span><span class='layout'>,</span><span class='chr'>'\12335'</span><span class='layout'>)</span>-<a name="line-2198"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12441'</span><span class='layout'>,</span><span class='chr'>'\12442'</span><span class='layout'>)</span>-<a name="line-2199"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\43014'</span><span class='layout'>,</span><span class='chr'>'\43014'</span><span class='layout'>)</span>-<a name="line-2200"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\43019'</span><span class='layout'>,</span><span class='chr'>'\43019'</span><span class='layout'>)</span>-<a name="line-2201"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\43045'</span><span class='layout'>,</span><span class='chr'>'\43046'</span><span class='layout'>)</span>-<a name="line-2202"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64286'</span><span class='layout'>,</span><span class='chr'>'\64286'</span><span class='layout'>)</span>-<a name="line-2203"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65024'</span><span class='layout'>,</span><span class='chr'>'\65039'</span><span class='layout'>)</span>-<a name="line-2204"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65056'</span><span class='layout'>,</span><span class='chr'>'\65059'</span><span class='layout'>)</span>-<a name="line-2205"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\68097'</span><span class='layout'>,</span><span class='chr'>'\68099'</span><span class='layout'>)</span>-<a name="line-2206"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\68101'</span><span class='layout'>,</span><span class='chr'>'\68102'</span><span class='layout'>)</span>-<a name="line-2207"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\68108'</span><span class='layout'>,</span><span class='chr'>'\68111'</span><span class='layout'>)</span>-<a name="line-2208"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\68152'</span><span class='layout'>,</span><span class='chr'>'\68154'</span><span class='layout'>)</span>-<a name="line-2209"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\68159'</span><span class='layout'>,</span><span class='chr'>'\68159'</span><span class='layout'>)</span>-<a name="line-2210"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119143'</span><span class='layout'>,</span><span class='chr'>'\119145'</span><span class='layout'>)</span>-<a name="line-2211"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119163'</span><span class='layout'>,</span><span class='chr'>'\119170'</span><span class='layout'>)</span>-<a name="line-2212"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119173'</span><span class='layout'>,</span><span class='chr'>'\119179'</span><span class='layout'>)</span>-<a name="line-2213"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119210'</span><span class='layout'>,</span><span class='chr'>'\119213'</span><span class='layout'>)</span>-<a name="line-2214"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119362'</span><span class='layout'>,</span><span class='chr'>'\119364'</span><span class='layout'>)</span>-<a name="line-2215"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\917760'</span><span class='layout'>,</span><span class='chr'>'\917999'</span><span class='layout'>)</span>-<a name="line-2216"></a> <span class='keyglyph'>]</span>-<a name="line-2217"></a>-<a name="line-2218"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2219"></a>-<a name="line-2220"></a><a name="isUnicodeN"></a><span class='definition'>isUnicodeN</span> <span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-2221"></a><span class='definition'>isUnicodeN</span> <span class='varid'>c</span>-<a name="line-2222"></a> <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>-<a name="line-2223"></a> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'0'</span><span class='layout'>,</span><span class='chr'>'9'</span><span class='layout'>)</span>-<a name="line-2224"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\178'</span><span class='layout'>,</span><span class='chr'>'\179'</span><span class='layout'>)</span>-<a name="line-2225"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\185'</span><span class='layout'>,</span><span class='chr'>'\185'</span><span class='layout'>)</span>-<a name="line-2226"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\188'</span><span class='layout'>,</span><span class='chr'>'\190'</span><span class='layout'>)</span>-<a name="line-2227"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1632'</span><span class='layout'>,</span><span class='chr'>'\1641'</span><span class='layout'>)</span>-<a name="line-2228"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1776'</span><span class='layout'>,</span><span class='chr'>'\1785'</span><span class='layout'>)</span>-<a name="line-2229"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1984'</span><span class='layout'>,</span><span class='chr'>'\1993'</span><span class='layout'>)</span>-<a name="line-2230"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2406'</span><span class='layout'>,</span><span class='chr'>'\2415'</span><span class='layout'>)</span>-<a name="line-2231"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2534'</span><span class='layout'>,</span><span class='chr'>'\2543'</span><span class='layout'>)</span>-<a name="line-2232"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2548'</span><span class='layout'>,</span><span class='chr'>'\2553'</span><span class='layout'>)</span>-<a name="line-2233"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2662'</span><span class='layout'>,</span><span class='chr'>'\2671'</span><span class='layout'>)</span>-<a name="line-2234"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2790'</span><span class='layout'>,</span><span class='chr'>'\2799'</span><span class='layout'>)</span>-<a name="line-2235"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2918'</span><span class='layout'>,</span><span class='chr'>'\2927'</span><span class='layout'>)</span>-<a name="line-2236"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3046'</span><span class='layout'>,</span><span class='chr'>'\3058'</span><span class='layout'>)</span>-<a name="line-2237"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3174'</span><span class='layout'>,</span><span class='chr'>'\3183'</span><span class='layout'>)</span>-<a name="line-2238"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3302'</span><span class='layout'>,</span><span class='chr'>'\3311'</span><span class='layout'>)</span>-<a name="line-2239"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3430'</span><span class='layout'>,</span><span class='chr'>'\3439'</span><span class='layout'>)</span>-<a name="line-2240"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3664'</span><span class='layout'>,</span><span class='chr'>'\3673'</span><span class='layout'>)</span>-<a name="line-2241"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3792'</span><span class='layout'>,</span><span class='chr'>'\3801'</span><span class='layout'>)</span>-<a name="line-2242"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3872'</span><span class='layout'>,</span><span class='chr'>'\3891'</span><span class='layout'>)</span>-<a name="line-2243"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4160'</span><span class='layout'>,</span><span class='chr'>'\4169'</span><span class='layout'>)</span>-<a name="line-2244"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4969'</span><span class='layout'>,</span><span class='chr'>'\4988'</span><span class='layout'>)</span>-<a name="line-2245"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5870'</span><span class='layout'>,</span><span class='chr'>'\5872'</span><span class='layout'>)</span>-<a name="line-2246"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6112'</span><span class='layout'>,</span><span class='chr'>'\6121'</span><span class='layout'>)</span>-<a name="line-2247"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6128'</span><span class='layout'>,</span><span class='chr'>'\6137'</span><span class='layout'>)</span>-<a name="line-2248"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6160'</span><span class='layout'>,</span><span class='chr'>'\6169'</span><span class='layout'>)</span>-<a name="line-2249"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6470'</span><span class='layout'>,</span><span class='chr'>'\6479'</span><span class='layout'>)</span>-<a name="line-2250"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6608'</span><span class='layout'>,</span><span class='chr'>'\6617'</span><span class='layout'>)</span>-<a name="line-2251"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6992'</span><span class='layout'>,</span><span class='chr'>'\7001'</span><span class='layout'>)</span>-<a name="line-2252"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8304'</span><span class='layout'>,</span><span class='chr'>'\8304'</span><span class='layout'>)</span>-<a name="line-2253"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8308'</span><span class='layout'>,</span><span class='chr'>'\8313'</span><span class='layout'>)</span>-<a name="line-2254"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8320'</span><span class='layout'>,</span><span class='chr'>'\8329'</span><span class='layout'>)</span>-<a name="line-2255"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8531'</span><span class='layout'>,</span><span class='chr'>'\8578'</span><span class='layout'>)</span>-<a name="line-2256"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9312'</span><span class='layout'>,</span><span class='chr'>'\9371'</span><span class='layout'>)</span>-<a name="line-2257"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9450'</span><span class='layout'>,</span><span class='chr'>'\9471'</span><span class='layout'>)</span>-<a name="line-2258"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10102'</span><span class='layout'>,</span><span class='chr'>'\10131'</span><span class='layout'>)</span>-<a name="line-2259"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11517'</span><span class='layout'>,</span><span class='chr'>'\11517'</span><span class='layout'>)</span>-<a name="line-2260"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12295'</span><span class='layout'>,</span><span class='chr'>'\12295'</span><span class='layout'>)</span>-<a name="line-2261"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12321'</span><span class='layout'>,</span><span class='chr'>'\12329'</span><span class='layout'>)</span>-<a name="line-2262"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12344'</span><span class='layout'>,</span><span class='chr'>'\12346'</span><span class='layout'>)</span>-<a name="line-2263"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12690'</span><span class='layout'>,</span><span class='chr'>'\12693'</span><span class='layout'>)</span>-<a name="line-2264"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12832'</span><span class='layout'>,</span><span class='chr'>'\12841'</span><span class='layout'>)</span>-<a name="line-2265"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12881'</span><span class='layout'>,</span><span class='chr'>'\12895'</span><span class='layout'>)</span>-<a name="line-2266"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12928'</span><span class='layout'>,</span><span class='chr'>'\12937'</span><span class='layout'>)</span>-<a name="line-2267"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12977'</span><span class='layout'>,</span><span class='chr'>'\12991'</span><span class='layout'>)</span>-<a name="line-2268"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65296'</span><span class='layout'>,</span><span class='chr'>'\65305'</span><span class='layout'>)</span>-<a name="line-2269"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65799'</span><span class='layout'>,</span><span class='chr'>'\65843'</span><span class='layout'>)</span>-<a name="line-2270"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65856'</span><span class='layout'>,</span><span class='chr'>'\65912'</span><span class='layout'>)</span>-<a name="line-2271"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65930'</span><span class='layout'>,</span><span class='chr'>'\65930'</span><span class='layout'>)</span>-<a name="line-2272"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\66336'</span><span class='layout'>,</span><span class='chr'>'\66339'</span><span class='layout'>)</span>-<a name="line-2273"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\66369'</span><span class='layout'>,</span><span class='chr'>'\66369'</span><span class='layout'>)</span>-<a name="line-2274"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\66378'</span><span class='layout'>,</span><span class='chr'>'\66378'</span><span class='layout'>)</span>-<a name="line-2275"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\66513'</span><span class='layout'>,</span><span class='chr'>'\66517'</span><span class='layout'>)</span>-<a name="line-2276"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\66720'</span><span class='layout'>,</span><span class='chr'>'\66729'</span><span class='layout'>)</span>-<a name="line-2277"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\67862'</span><span class='layout'>,</span><span class='chr'>'\67865'</span><span class='layout'>)</span>-<a name="line-2278"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\68160'</span><span class='layout'>,</span><span class='chr'>'\68167'</span><span class='layout'>)</span>-<a name="line-2279"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\74752'</span><span class='layout'>,</span><span class='chr'>'\74850'</span><span class='layout'>)</span>-<a name="line-2280"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119648'</span><span class='layout'>,</span><span class='chr'>'\119665'</span><span class='layout'>)</span>-<a name="line-2281"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120782'</span><span class='layout'>,</span><span class='chr'>'\120831'</span><span class='layout'>)</span>-<a name="line-2282"></a> <span class='keyglyph'>]</span>-<a name="line-2283"></a>-<a name="line-2284"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2285"></a>-<a name="line-2286"></a><a name="isUnicodeNd"></a><span class='definition'>isUnicodeNd</span> <span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-2287"></a><span class='definition'>isUnicodeNd</span> <span class='varid'>c</span>-<a name="line-2288"></a> <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>-<a name="line-2289"></a> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'0'</span><span class='layout'>,</span><span class='chr'>'9'</span><span class='layout'>)</span>-<a name="line-2290"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1632'</span><span class='layout'>,</span><span class='chr'>'\1641'</span><span class='layout'>)</span>-<a name="line-2291"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1776'</span><span class='layout'>,</span><span class='chr'>'\1785'</span><span class='layout'>)</span>-<a name="line-2292"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1984'</span><span class='layout'>,</span><span class='chr'>'\1993'</span><span class='layout'>)</span>-<a name="line-2293"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2406'</span><span class='layout'>,</span><span class='chr'>'\2415'</span><span class='layout'>)</span>-<a name="line-2294"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2534'</span><span class='layout'>,</span><span class='chr'>'\2543'</span><span class='layout'>)</span>-<a name="line-2295"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2662'</span><span class='layout'>,</span><span class='chr'>'\2671'</span><span class='layout'>)</span>-<a name="line-2296"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2790'</span><span class='layout'>,</span><span class='chr'>'\2799'</span><span class='layout'>)</span>-<a name="line-2297"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2918'</span><span class='layout'>,</span><span class='chr'>'\2927'</span><span class='layout'>)</span>-<a name="line-2298"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3046'</span><span class='layout'>,</span><span class='chr'>'\3055'</span><span class='layout'>)</span>-<a name="line-2299"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3174'</span><span class='layout'>,</span><span class='chr'>'\3183'</span><span class='layout'>)</span>-<a name="line-2300"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3302'</span><span class='layout'>,</span><span class='chr'>'\3311'</span><span class='layout'>)</span>-<a name="line-2301"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3430'</span><span class='layout'>,</span><span class='chr'>'\3439'</span><span class='layout'>)</span>-<a name="line-2302"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3664'</span><span class='layout'>,</span><span class='chr'>'\3673'</span><span class='layout'>)</span>-<a name="line-2303"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3792'</span><span class='layout'>,</span><span class='chr'>'\3801'</span><span class='layout'>)</span>-<a name="line-2304"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3872'</span><span class='layout'>,</span><span class='chr'>'\3881'</span><span class='layout'>)</span>-<a name="line-2305"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4160'</span><span class='layout'>,</span><span class='chr'>'\4169'</span><span class='layout'>)</span>-<a name="line-2306"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6112'</span><span class='layout'>,</span><span class='chr'>'\6121'</span><span class='layout'>)</span>-<a name="line-2307"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6160'</span><span class='layout'>,</span><span class='chr'>'\6169'</span><span class='layout'>)</span>-<a name="line-2308"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6470'</span><span class='layout'>,</span><span class='chr'>'\6479'</span><span class='layout'>)</span>-<a name="line-2309"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6608'</span><span class='layout'>,</span><span class='chr'>'\6617'</span><span class='layout'>)</span>-<a name="line-2310"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6992'</span><span class='layout'>,</span><span class='chr'>'\7001'</span><span class='layout'>)</span>-<a name="line-2311"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65296'</span><span class='layout'>,</span><span class='chr'>'\65305'</span><span class='layout'>)</span>-<a name="line-2312"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\66720'</span><span class='layout'>,</span><span class='chr'>'\66729'</span><span class='layout'>)</span>-<a name="line-2313"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120782'</span><span class='layout'>,</span><span class='chr'>'\120831'</span><span class='layout'>)</span>-<a name="line-2314"></a> <span class='keyglyph'>]</span>-<a name="line-2315"></a>-<a name="line-2316"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2317"></a>-<a name="line-2318"></a><a name="isUnicodeNl"></a><span class='definition'>isUnicodeNl</span> <span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-2319"></a><span class='definition'>isUnicodeNl</span> <span class='varid'>c</span>-<a name="line-2320"></a> <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>-<a name="line-2321"></a> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\5870'</span><span class='layout'>,</span><span class='chr'>'\5872'</span><span class='layout'>)</span>-<a name="line-2322"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8544'</span><span class='layout'>,</span><span class='chr'>'\8578'</span><span class='layout'>)</span>-<a name="line-2323"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12295'</span><span class='layout'>,</span><span class='chr'>'\12295'</span><span class='layout'>)</span>-<a name="line-2324"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12321'</span><span class='layout'>,</span><span class='chr'>'\12329'</span><span class='layout'>)</span>-<a name="line-2325"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12344'</span><span class='layout'>,</span><span class='chr'>'\12346'</span><span class='layout'>)</span>-<a name="line-2326"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65856'</span><span class='layout'>,</span><span class='chr'>'\65908'</span><span class='layout'>)</span>-<a name="line-2327"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\66369'</span><span class='layout'>,</span><span class='chr'>'\66369'</span><span class='layout'>)</span>-<a name="line-2328"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\66378'</span><span class='layout'>,</span><span class='chr'>'\66378'</span><span class='layout'>)</span>-<a name="line-2329"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\66513'</span><span class='layout'>,</span><span class='chr'>'\66517'</span><span class='layout'>)</span>-<a name="line-2330"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\74752'</span><span class='layout'>,</span><span class='chr'>'\74850'</span><span class='layout'>)</span>-<a name="line-2331"></a> <span class='keyglyph'>]</span>-<a name="line-2332"></a>-<a name="line-2333"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2334"></a>-<a name="line-2335"></a><a name="isUnicodeNo"></a><span class='definition'>isUnicodeNo</span> <span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-2336"></a><span class='definition'>isUnicodeNo</span> <span class='varid'>c</span>-<a name="line-2337"></a> <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>-<a name="line-2338"></a> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\178'</span><span class='layout'>,</span><span class='chr'>'\179'</span><span class='layout'>)</span>-<a name="line-2339"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\185'</span><span class='layout'>,</span><span class='chr'>'\185'</span><span class='layout'>)</span>-<a name="line-2340"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\188'</span><span class='layout'>,</span><span class='chr'>'\190'</span><span class='layout'>)</span>-<a name="line-2341"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2548'</span><span class='layout'>,</span><span class='chr'>'\2553'</span><span class='layout'>)</span>-<a name="line-2342"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3056'</span><span class='layout'>,</span><span class='chr'>'\3058'</span><span class='layout'>)</span>-<a name="line-2343"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3882'</span><span class='layout'>,</span><span class='chr'>'\3891'</span><span class='layout'>)</span>-<a name="line-2344"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4969'</span><span class='layout'>,</span><span class='chr'>'\4988'</span><span class='layout'>)</span>-<a name="line-2345"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6128'</span><span class='layout'>,</span><span class='chr'>'\6137'</span><span class='layout'>)</span>-<a name="line-2346"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8304'</span><span class='layout'>,</span><span class='chr'>'\8304'</span><span class='layout'>)</span>-<a name="line-2347"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8308'</span><span class='layout'>,</span><span class='chr'>'\8313'</span><span class='layout'>)</span>-<a name="line-2348"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8320'</span><span class='layout'>,</span><span class='chr'>'\8329'</span><span class='layout'>)</span>-<a name="line-2349"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8531'</span><span class='layout'>,</span><span class='chr'>'\8543'</span><span class='layout'>)</span>-<a name="line-2350"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9312'</span><span class='layout'>,</span><span class='chr'>'\9371'</span><span class='layout'>)</span>-<a name="line-2351"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9450'</span><span class='layout'>,</span><span class='chr'>'\9471'</span><span class='layout'>)</span>-<a name="line-2352"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10102'</span><span class='layout'>,</span><span class='chr'>'\10131'</span><span class='layout'>)</span>-<a name="line-2353"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11517'</span><span class='layout'>,</span><span class='chr'>'\11517'</span><span class='layout'>)</span>-<a name="line-2354"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12690'</span><span class='layout'>,</span><span class='chr'>'\12693'</span><span class='layout'>)</span>-<a name="line-2355"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12832'</span><span class='layout'>,</span><span class='chr'>'\12841'</span><span class='layout'>)</span>-<a name="line-2356"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12881'</span><span class='layout'>,</span><span class='chr'>'\12895'</span><span class='layout'>)</span>-<a name="line-2357"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12928'</span><span class='layout'>,</span><span class='chr'>'\12937'</span><span class='layout'>)</span>-<a name="line-2358"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12977'</span><span class='layout'>,</span><span class='chr'>'\12991'</span><span class='layout'>)</span>-<a name="line-2359"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65799'</span><span class='layout'>,</span><span class='chr'>'\65843'</span><span class='layout'>)</span>-<a name="line-2360"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65909'</span><span class='layout'>,</span><span class='chr'>'\65912'</span><span class='layout'>)</span>-<a name="line-2361"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65930'</span><span class='layout'>,</span><span class='chr'>'\65930'</span><span class='layout'>)</span>-<a name="line-2362"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\66336'</span><span class='layout'>,</span><span class='chr'>'\66339'</span><span class='layout'>)</span>-<a name="line-2363"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\67862'</span><span class='layout'>,</span><span class='chr'>'\67865'</span><span class='layout'>)</span>-<a name="line-2364"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\68160'</span><span class='layout'>,</span><span class='chr'>'\68167'</span><span class='layout'>)</span>-<a name="line-2365"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119648'</span><span class='layout'>,</span><span class='chr'>'\119665'</span><span class='layout'>)</span>-<a name="line-2366"></a> <span class='keyglyph'>]</span>-<a name="line-2367"></a>-<a name="line-2368"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2369"></a>-<a name="line-2370"></a><a name="isUnicodeP"></a><span class='definition'>isUnicodeP</span> <span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-2371"></a><span class='definition'>isUnicodeP</span> <span class='varid'>c</span>-<a name="line-2372"></a> <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>-<a name="line-2373"></a> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'!'</span><span class='layout'>,</span><span class='chr'>'#'</span><span class='layout'>)</span>-<a name="line-2374"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'%'</span><span class='layout'>,</span><span class='chr'>'*'</span><span class='layout'>)</span>-<a name="line-2375"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>','</span><span class='layout'>,</span><span class='chr'>'/'</span><span class='layout'>)</span>-<a name="line-2376"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>':'</span><span class='layout'>,</span><span class='chr'>';'</span><span class='layout'>)</span>-<a name="line-2377"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'?'</span><span class='layout'>,</span><span class='chr'>'@'</span><span class='layout'>)</span>-<a name="line-2378"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'['</span><span class='layout'>,</span><span class='chr'>']'</span><span class='layout'>)</span>-<a name="line-2379"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'_'</span><span class='layout'>,</span><span class='chr'>'_'</span><span class='layout'>)</span>-<a name="line-2380"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'{'</span><span class='layout'>,</span><span class='chr'>'{'</span><span class='layout'>)</span>-<a name="line-2381"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'}'</span><span class='layout'>,</span><span class='chr'>'}'</span><span class='layout'>)</span>-<a name="line-2382"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\161'</span><span class='layout'>,</span><span class='chr'>'\161'</span><span class='layout'>)</span>-<a name="line-2383"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\171'</span><span class='layout'>,</span><span class='chr'>'\171'</span><span class='layout'>)</span>-<a name="line-2384"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\183'</span><span class='layout'>,</span><span class='chr'>'\183'</span><span class='layout'>)</span>-<a name="line-2385"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\187'</span><span class='layout'>,</span><span class='chr'>'\187'</span><span class='layout'>)</span>-<a name="line-2386"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\191'</span><span class='layout'>,</span><span class='chr'>'\191'</span><span class='layout'>)</span>-<a name="line-2387"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\894'</span><span class='layout'>,</span><span class='chr'>'\894'</span><span class='layout'>)</span>-<a name="line-2388"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\903'</span><span class='layout'>,</span><span class='chr'>'\903'</span><span class='layout'>)</span>-<a name="line-2389"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1370'</span><span class='layout'>,</span><span class='chr'>'\1375'</span><span class='layout'>)</span>-<a name="line-2390"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1417'</span><span class='layout'>,</span><span class='chr'>'\1418'</span><span class='layout'>)</span>-<a name="line-2391"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1470'</span><span class='layout'>,</span><span class='chr'>'\1470'</span><span class='layout'>)</span>-<a name="line-2392"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1472'</span><span class='layout'>,</span><span class='chr'>'\1472'</span><span class='layout'>)</span>-<a name="line-2393"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1475'</span><span class='layout'>,</span><span class='chr'>'\1475'</span><span class='layout'>)</span>-<a name="line-2394"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1478'</span><span class='layout'>,</span><span class='chr'>'\1478'</span><span class='layout'>)</span>-<a name="line-2395"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1523'</span><span class='layout'>,</span><span class='chr'>'\1524'</span><span class='layout'>)</span>-<a name="line-2396"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1548'</span><span class='layout'>,</span><span class='chr'>'\1549'</span><span class='layout'>)</span>-<a name="line-2397"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1563'</span><span class='layout'>,</span><span class='chr'>'\1563'</span><span class='layout'>)</span>-<a name="line-2398"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1566'</span><span class='layout'>,</span><span class='chr'>'\1567'</span><span class='layout'>)</span>-<a name="line-2399"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1642'</span><span class='layout'>,</span><span class='chr'>'\1645'</span><span class='layout'>)</span>-<a name="line-2400"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1748'</span><span class='layout'>,</span><span class='chr'>'\1748'</span><span class='layout'>)</span>-<a name="line-2401"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1792'</span><span class='layout'>,</span><span class='chr'>'\1805'</span><span class='layout'>)</span>-<a name="line-2402"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2039'</span><span class='layout'>,</span><span class='chr'>'\2041'</span><span class='layout'>)</span>-<a name="line-2403"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2404'</span><span class='layout'>,</span><span class='chr'>'\2405'</span><span class='layout'>)</span>-<a name="line-2404"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2416'</span><span class='layout'>,</span><span class='chr'>'\2416'</span><span class='layout'>)</span>-<a name="line-2405"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3572'</span><span class='layout'>,</span><span class='chr'>'\3572'</span><span class='layout'>)</span>-<a name="line-2406"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3663'</span><span class='layout'>,</span><span class='chr'>'\3663'</span><span class='layout'>)</span>-<a name="line-2407"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3674'</span><span class='layout'>,</span><span class='chr'>'\3675'</span><span class='layout'>)</span>-<a name="line-2408"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3844'</span><span class='layout'>,</span><span class='chr'>'\3858'</span><span class='layout'>)</span>-<a name="line-2409"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3898'</span><span class='layout'>,</span><span class='chr'>'\3901'</span><span class='layout'>)</span>-<a name="line-2410"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3973'</span><span class='layout'>,</span><span class='chr'>'\3973'</span><span class='layout'>)</span>-<a name="line-2411"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4048'</span><span class='layout'>,</span><span class='chr'>'\4049'</span><span class='layout'>)</span>-<a name="line-2412"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4170'</span><span class='layout'>,</span><span class='chr'>'\4175'</span><span class='layout'>)</span>-<a name="line-2413"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4347'</span><span class='layout'>,</span><span class='chr'>'\4347'</span><span class='layout'>)</span>-<a name="line-2414"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4961'</span><span class='layout'>,</span><span class='chr'>'\4968'</span><span class='layout'>)</span>-<a name="line-2415"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5741'</span><span class='layout'>,</span><span class='chr'>'\5742'</span><span class='layout'>)</span>-<a name="line-2416"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5787'</span><span class='layout'>,</span><span class='chr'>'\5788'</span><span class='layout'>)</span>-<a name="line-2417"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5867'</span><span class='layout'>,</span><span class='chr'>'\5869'</span><span class='layout'>)</span>-<a name="line-2418"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5941'</span><span class='layout'>,</span><span class='chr'>'\5942'</span><span class='layout'>)</span>-<a name="line-2419"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6100'</span><span class='layout'>,</span><span class='chr'>'\6102'</span><span class='layout'>)</span>-<a name="line-2420"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6104'</span><span class='layout'>,</span><span class='chr'>'\6106'</span><span class='layout'>)</span>-<a name="line-2421"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6144'</span><span class='layout'>,</span><span class='chr'>'\6154'</span><span class='layout'>)</span>-<a name="line-2422"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6468'</span><span class='layout'>,</span><span class='chr'>'\6469'</span><span class='layout'>)</span>-<a name="line-2423"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6622'</span><span class='layout'>,</span><span class='chr'>'\6623'</span><span class='layout'>)</span>-<a name="line-2424"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6686'</span><span class='layout'>,</span><span class='chr'>'\6687'</span><span class='layout'>)</span>-<a name="line-2425"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7002'</span><span class='layout'>,</span><span class='chr'>'\7008'</span><span class='layout'>)</span>-<a name="line-2426"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8208'</span><span class='layout'>,</span><span class='chr'>'\8231'</span><span class='layout'>)</span>-<a name="line-2427"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8240'</span><span class='layout'>,</span><span class='chr'>'\8259'</span><span class='layout'>)</span>-<a name="line-2428"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8261'</span><span class='layout'>,</span><span class='chr'>'\8273'</span><span class='layout'>)</span>-<a name="line-2429"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8275'</span><span class='layout'>,</span><span class='chr'>'\8286'</span><span class='layout'>)</span>-<a name="line-2430"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8317'</span><span class='layout'>,</span><span class='chr'>'\8318'</span><span class='layout'>)</span>-<a name="line-2431"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8333'</span><span class='layout'>,</span><span class='chr'>'\8334'</span><span class='layout'>)</span>-<a name="line-2432"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9001'</span><span class='layout'>,</span><span class='chr'>'\9002'</span><span class='layout'>)</span>-<a name="line-2433"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10088'</span><span class='layout'>,</span><span class='chr'>'\10101'</span><span class='layout'>)</span>-<a name="line-2434"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10181'</span><span class='layout'>,</span><span class='chr'>'\10182'</span><span class='layout'>)</span>-<a name="line-2435"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10214'</span><span class='layout'>,</span><span class='chr'>'\10219'</span><span class='layout'>)</span>-<a name="line-2436"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10627'</span><span class='layout'>,</span><span class='chr'>'\10648'</span><span class='layout'>)</span>-<a name="line-2437"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10712'</span><span class='layout'>,</span><span class='chr'>'\10715'</span><span class='layout'>)</span>-<a name="line-2438"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10748'</span><span class='layout'>,</span><span class='chr'>'\10749'</span><span class='layout'>)</span>-<a name="line-2439"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11513'</span><span class='layout'>,</span><span class='chr'>'\11516'</span><span class='layout'>)</span>-<a name="line-2440"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11518'</span><span class='layout'>,</span><span class='chr'>'\11519'</span><span class='layout'>)</span>-<a name="line-2441"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11776'</span><span class='layout'>,</span><span class='chr'>'\11799'</span><span class='layout'>)</span>-<a name="line-2442"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11804'</span><span class='layout'>,</span><span class='chr'>'\11805'</span><span class='layout'>)</span>-<a name="line-2443"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12289'</span><span class='layout'>,</span><span class='chr'>'\12291'</span><span class='layout'>)</span>-<a name="line-2444"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12296'</span><span class='layout'>,</span><span class='chr'>'\12305'</span><span class='layout'>)</span>-<a name="line-2445"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12308'</span><span class='layout'>,</span><span class='chr'>'\12319'</span><span class='layout'>)</span>-<a name="line-2446"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12336'</span><span class='layout'>,</span><span class='chr'>'\12336'</span><span class='layout'>)</span>-<a name="line-2447"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12349'</span><span class='layout'>,</span><span class='chr'>'\12349'</span><span class='layout'>)</span>-<a name="line-2448"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12448'</span><span class='layout'>,</span><span class='chr'>'\12448'</span><span class='layout'>)</span>-<a name="line-2449"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12539'</span><span class='layout'>,</span><span class='chr'>'\12539'</span><span class='layout'>)</span>-<a name="line-2450"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\43124'</span><span class='layout'>,</span><span class='chr'>'\43127'</span><span class='layout'>)</span>-<a name="line-2451"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64830'</span><span class='layout'>,</span><span class='chr'>'\64831'</span><span class='layout'>)</span>-<a name="line-2452"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65040'</span><span class='layout'>,</span><span class='chr'>'\65049'</span><span class='layout'>)</span>-<a name="line-2453"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65072'</span><span class='layout'>,</span><span class='chr'>'\65106'</span><span class='layout'>)</span>-<a name="line-2454"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65108'</span><span class='layout'>,</span><span class='chr'>'\65121'</span><span class='layout'>)</span>-<a name="line-2455"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65123'</span><span class='layout'>,</span><span class='chr'>'\65123'</span><span class='layout'>)</span>-<a name="line-2456"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65128'</span><span class='layout'>,</span><span class='chr'>'\65128'</span><span class='layout'>)</span>-<a name="line-2457"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65130'</span><span class='layout'>,</span><span class='chr'>'\65131'</span><span class='layout'>)</span>-<a name="line-2458"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65281'</span><span class='layout'>,</span><span class='chr'>'\65283'</span><span class='layout'>)</span>-<a name="line-2459"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65285'</span><span class='layout'>,</span><span class='chr'>'\65290'</span><span class='layout'>)</span>-<a name="line-2460"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65292'</span><span class='layout'>,</span><span class='chr'>'\65295'</span><span class='layout'>)</span>-<a name="line-2461"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65306'</span><span class='layout'>,</span><span class='chr'>'\65307'</span><span class='layout'>)</span>-<a name="line-2462"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65311'</span><span class='layout'>,</span><span class='chr'>'\65312'</span><span class='layout'>)</span>-<a name="line-2463"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65339'</span><span class='layout'>,</span><span class='chr'>'\65341'</span><span class='layout'>)</span>-<a name="line-2464"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65343'</span><span class='layout'>,</span><span class='chr'>'\65343'</span><span class='layout'>)</span>-<a name="line-2465"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65371'</span><span class='layout'>,</span><span class='chr'>'\65371'</span><span class='layout'>)</span>-<a name="line-2466"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65373'</span><span class='layout'>,</span><span class='chr'>'\65373'</span><span class='layout'>)</span>-<a name="line-2467"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65375'</span><span class='layout'>,</span><span class='chr'>'\65381'</span><span class='layout'>)</span>-<a name="line-2468"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65792'</span><span class='layout'>,</span><span class='chr'>'\65793'</span><span class='layout'>)</span>-<a name="line-2469"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\66463'</span><span class='layout'>,</span><span class='chr'>'\66463'</span><span class='layout'>)</span>-<a name="line-2470"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\66512'</span><span class='layout'>,</span><span class='chr'>'\66512'</span><span class='layout'>)</span>-<a name="line-2471"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\67871'</span><span class='layout'>,</span><span class='chr'>'\67871'</span><span class='layout'>)</span>-<a name="line-2472"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\68176'</span><span class='layout'>,</span><span class='chr'>'\68184'</span><span class='layout'>)</span>-<a name="line-2473"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\74864'</span><span class='layout'>,</span><span class='chr'>'\74867'</span><span class='layout'>)</span>-<a name="line-2474"></a> <span class='keyglyph'>]</span>-<a name="line-2475"></a>-<a name="line-2476"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2477"></a>-<a name="line-2478"></a><a name="isUnicodePc"></a><span class='definition'>isUnicodePc</span> <span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-2479"></a><span class='definition'>isUnicodePc</span> <span class='varid'>c</span>-<a name="line-2480"></a> <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>-<a name="line-2481"></a> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'_'</span><span class='layout'>,</span><span class='chr'>'_'</span><span class='layout'>)</span>-<a name="line-2482"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8255'</span><span class='layout'>,</span><span class='chr'>'\8256'</span><span class='layout'>)</span>-<a name="line-2483"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8276'</span><span class='layout'>,</span><span class='chr'>'\8276'</span><span class='layout'>)</span>-<a name="line-2484"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65075'</span><span class='layout'>,</span><span class='chr'>'\65076'</span><span class='layout'>)</span>-<a name="line-2485"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65101'</span><span class='layout'>,</span><span class='chr'>'\65103'</span><span class='layout'>)</span>-<a name="line-2486"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65343'</span><span class='layout'>,</span><span class='chr'>'\65343'</span><span class='layout'>)</span>-<a name="line-2487"></a> <span class='keyglyph'>]</span>-<a name="line-2488"></a>-<a name="line-2489"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2490"></a>-<a name="line-2491"></a><a name="isUnicodePd"></a><span class='definition'>isUnicodePd</span> <span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-2492"></a><span class='definition'>isUnicodePd</span> <span class='varid'>c</span>-<a name="line-2493"></a> <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>-<a name="line-2494"></a> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'-'</span><span class='layout'>,</span><span class='chr'>'-'</span><span class='layout'>)</span>-<a name="line-2495"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1418'</span><span class='layout'>,</span><span class='chr'>'\1418'</span><span class='layout'>)</span>-<a name="line-2496"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6150'</span><span class='layout'>,</span><span class='chr'>'\6150'</span><span class='layout'>)</span>-<a name="line-2497"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8208'</span><span class='layout'>,</span><span class='chr'>'\8213'</span><span class='layout'>)</span>-<a name="line-2498"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11799'</span><span class='layout'>,</span><span class='chr'>'\11799'</span><span class='layout'>)</span>-<a name="line-2499"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12316'</span><span class='layout'>,</span><span class='chr'>'\12316'</span><span class='layout'>)</span>-<a name="line-2500"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12336'</span><span class='layout'>,</span><span class='chr'>'\12336'</span><span class='layout'>)</span>-<a name="line-2501"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12448'</span><span class='layout'>,</span><span class='chr'>'\12448'</span><span class='layout'>)</span>-<a name="line-2502"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65073'</span><span class='layout'>,</span><span class='chr'>'\65074'</span><span class='layout'>)</span>-<a name="line-2503"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65112'</span><span class='layout'>,</span><span class='chr'>'\65112'</span><span class='layout'>)</span>-<a name="line-2504"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65123'</span><span class='layout'>,</span><span class='chr'>'\65123'</span><span class='layout'>)</span>-<a name="line-2505"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65293'</span><span class='layout'>,</span><span class='chr'>'\65293'</span><span class='layout'>)</span>-<a name="line-2506"></a> <span class='keyglyph'>]</span>-<a name="line-2507"></a>-<a name="line-2508"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2509"></a>-<a name="line-2510"></a><a name="isUnicodePe"></a><span class='definition'>isUnicodePe</span> <span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-2511"></a><span class='definition'>isUnicodePe</span> <span class='varid'>c</span>-<a name="line-2512"></a> <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>-<a name="line-2513"></a> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>')'</span><span class='layout'>,</span><span class='chr'>')'</span><span class='layout'>)</span>-<a name="line-2514"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>']'</span><span class='layout'>,</span><span class='chr'>']'</span><span class='layout'>)</span>-<a name="line-2515"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'}'</span><span class='layout'>,</span><span class='chr'>'}'</span><span class='layout'>)</span>-<a name="line-2516"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3899'</span><span class='layout'>,</span><span class='chr'>'\3899'</span><span class='layout'>)</span>-<a name="line-2517"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3901'</span><span class='layout'>,</span><span class='chr'>'\3901'</span><span class='layout'>)</span>-<a name="line-2518"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5788'</span><span class='layout'>,</span><span class='chr'>'\5788'</span><span class='layout'>)</span>-<a name="line-2519"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8262'</span><span class='layout'>,</span><span class='chr'>'\8262'</span><span class='layout'>)</span>-<a name="line-2520"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8318'</span><span class='layout'>,</span><span class='chr'>'\8318'</span><span class='layout'>)</span>-<a name="line-2521"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8334'</span><span class='layout'>,</span><span class='chr'>'\8334'</span><span class='layout'>)</span>-<a name="line-2522"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9002'</span><span class='layout'>,</span><span class='chr'>'\9002'</span><span class='layout'>)</span>-<a name="line-2523"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10089'</span><span class='layout'>,</span><span class='chr'>'\10089'</span><span class='layout'>)</span>-<a name="line-2524"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10091'</span><span class='layout'>,</span><span class='chr'>'\10091'</span><span class='layout'>)</span>-<a name="line-2525"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10093'</span><span class='layout'>,</span><span class='chr'>'\10093'</span><span class='layout'>)</span>-<a name="line-2526"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10095'</span><span class='layout'>,</span><span class='chr'>'\10095'</span><span class='layout'>)</span>-<a name="line-2527"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10097'</span><span class='layout'>,</span><span class='chr'>'\10097'</span><span class='layout'>)</span>-<a name="line-2528"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10099'</span><span class='layout'>,</span><span class='chr'>'\10099'</span><span class='layout'>)</span>-<a name="line-2529"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10101'</span><span class='layout'>,</span><span class='chr'>'\10101'</span><span class='layout'>)</span>-<a name="line-2530"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10182'</span><span class='layout'>,</span><span class='chr'>'\10182'</span><span class='layout'>)</span>-<a name="line-2531"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10215'</span><span class='layout'>,</span><span class='chr'>'\10215'</span><span class='layout'>)</span>-<a name="line-2532"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10217'</span><span class='layout'>,</span><span class='chr'>'\10217'</span><span class='layout'>)</span>-<a name="line-2533"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10219'</span><span class='layout'>,</span><span class='chr'>'\10219'</span><span class='layout'>)</span>-<a name="line-2534"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10628'</span><span class='layout'>,</span><span class='chr'>'\10628'</span><span class='layout'>)</span>-<a name="line-2535"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10630'</span><span class='layout'>,</span><span class='chr'>'\10630'</span><span class='layout'>)</span>-<a name="line-2536"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10632'</span><span class='layout'>,</span><span class='chr'>'\10632'</span><span class='layout'>)</span>-<a name="line-2537"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10634'</span><span class='layout'>,</span><span class='chr'>'\10634'</span><span class='layout'>)</span>-<a name="line-2538"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10636'</span><span class='layout'>,</span><span class='chr'>'\10636'</span><span class='layout'>)</span>-<a name="line-2539"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10638'</span><span class='layout'>,</span><span class='chr'>'\10638'</span><span class='layout'>)</span>-<a name="line-2540"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10640'</span><span class='layout'>,</span><span class='chr'>'\10640'</span><span class='layout'>)</span>-<a name="line-2541"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10642'</span><span class='layout'>,</span><span class='chr'>'\10642'</span><span class='layout'>)</span>-<a name="line-2542"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10644'</span><span class='layout'>,</span><span class='chr'>'\10644'</span><span class='layout'>)</span>-<a name="line-2543"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10646'</span><span class='layout'>,</span><span class='chr'>'\10646'</span><span class='layout'>)</span>-<a name="line-2544"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10648'</span><span class='layout'>,</span><span class='chr'>'\10648'</span><span class='layout'>)</span>-<a name="line-2545"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10713'</span><span class='layout'>,</span><span class='chr'>'\10713'</span><span class='layout'>)</span>-<a name="line-2546"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10715'</span><span class='layout'>,</span><span class='chr'>'\10715'</span><span class='layout'>)</span>-<a name="line-2547"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10749'</span><span class='layout'>,</span><span class='chr'>'\10749'</span><span class='layout'>)</span>-<a name="line-2548"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12297'</span><span class='layout'>,</span><span class='chr'>'\12297'</span><span class='layout'>)</span>-<a name="line-2549"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12299'</span><span class='layout'>,</span><span class='chr'>'\12299'</span><span class='layout'>)</span>-<a name="line-2550"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12301'</span><span class='layout'>,</span><span class='chr'>'\12301'</span><span class='layout'>)</span>-<a name="line-2551"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12303'</span><span class='layout'>,</span><span class='chr'>'\12303'</span><span class='layout'>)</span>-<a name="line-2552"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12305'</span><span class='layout'>,</span><span class='chr'>'\12305'</span><span class='layout'>)</span>-<a name="line-2553"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12309'</span><span class='layout'>,</span><span class='chr'>'\12309'</span><span class='layout'>)</span>-<a name="line-2554"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12311'</span><span class='layout'>,</span><span class='chr'>'\12311'</span><span class='layout'>)</span>-<a name="line-2555"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12313'</span><span class='layout'>,</span><span class='chr'>'\12313'</span><span class='layout'>)</span>-<a name="line-2556"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12315'</span><span class='layout'>,</span><span class='chr'>'\12315'</span><span class='layout'>)</span>-<a name="line-2557"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12318'</span><span class='layout'>,</span><span class='chr'>'\12319'</span><span class='layout'>)</span>-<a name="line-2558"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64831'</span><span class='layout'>,</span><span class='chr'>'\64831'</span><span class='layout'>)</span>-<a name="line-2559"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65048'</span><span class='layout'>,</span><span class='chr'>'\65048'</span><span class='layout'>)</span>-<a name="line-2560"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65078'</span><span class='layout'>,</span><span class='chr'>'\65078'</span><span class='layout'>)</span>-<a name="line-2561"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65080'</span><span class='layout'>,</span><span class='chr'>'\65080'</span><span class='layout'>)</span>-<a name="line-2562"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65082'</span><span class='layout'>,</span><span class='chr'>'\65082'</span><span class='layout'>)</span>-<a name="line-2563"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65084'</span><span class='layout'>,</span><span class='chr'>'\65084'</span><span class='layout'>)</span>-<a name="line-2564"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65086'</span><span class='layout'>,</span><span class='chr'>'\65086'</span><span class='layout'>)</span>-<a name="line-2565"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65088'</span><span class='layout'>,</span><span class='chr'>'\65088'</span><span class='layout'>)</span>-<a name="line-2566"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65090'</span><span class='layout'>,</span><span class='chr'>'\65090'</span><span class='layout'>)</span>-<a name="line-2567"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65092'</span><span class='layout'>,</span><span class='chr'>'\65092'</span><span class='layout'>)</span>-<a name="line-2568"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65096'</span><span class='layout'>,</span><span class='chr'>'\65096'</span><span class='layout'>)</span>-<a name="line-2569"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65114'</span><span class='layout'>,</span><span class='chr'>'\65114'</span><span class='layout'>)</span>-<a name="line-2570"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65116'</span><span class='layout'>,</span><span class='chr'>'\65116'</span><span class='layout'>)</span>-<a name="line-2571"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65118'</span><span class='layout'>,</span><span class='chr'>'\65118'</span><span class='layout'>)</span>-<a name="line-2572"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65289'</span><span class='layout'>,</span><span class='chr'>'\65289'</span><span class='layout'>)</span>-<a name="line-2573"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65341'</span><span class='layout'>,</span><span class='chr'>'\65341'</span><span class='layout'>)</span>-<a name="line-2574"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65373'</span><span class='layout'>,</span><span class='chr'>'\65373'</span><span class='layout'>)</span>-<a name="line-2575"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65376'</span><span class='layout'>,</span><span class='chr'>'\65376'</span><span class='layout'>)</span>-<a name="line-2576"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65379'</span><span class='layout'>,</span><span class='chr'>'\65379'</span><span class='layout'>)</span>-<a name="line-2577"></a> <span class='keyglyph'>]</span>-<a name="line-2578"></a>-<a name="line-2579"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2580"></a>-<a name="line-2581"></a><a name="isUnicodePf"></a><span class='definition'>isUnicodePf</span> <span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-2582"></a><span class='definition'>isUnicodePf</span> <span class='varid'>c</span>-<a name="line-2583"></a> <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>-<a name="line-2584"></a> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\187'</span><span class='layout'>,</span><span class='chr'>'\187'</span><span class='layout'>)</span>-<a name="line-2585"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8217'</span><span class='layout'>,</span><span class='chr'>'\8217'</span><span class='layout'>)</span>-<a name="line-2586"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8221'</span><span class='layout'>,</span><span class='chr'>'\8221'</span><span class='layout'>)</span>-<a name="line-2587"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8250'</span><span class='layout'>,</span><span class='chr'>'\8250'</span><span class='layout'>)</span>-<a name="line-2588"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11779'</span><span class='layout'>,</span><span class='chr'>'\11779'</span><span class='layout'>)</span>-<a name="line-2589"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11781'</span><span class='layout'>,</span><span class='chr'>'\11781'</span><span class='layout'>)</span>-<a name="line-2590"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11786'</span><span class='layout'>,</span><span class='chr'>'\11786'</span><span class='layout'>)</span>-<a name="line-2591"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11789'</span><span class='layout'>,</span><span class='chr'>'\11789'</span><span class='layout'>)</span>-<a name="line-2592"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11805'</span><span class='layout'>,</span><span class='chr'>'\11805'</span><span class='layout'>)</span>-<a name="line-2593"></a> <span class='keyglyph'>]</span>-<a name="line-2594"></a>-<a name="line-2595"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2596"></a>-<a name="line-2597"></a><a name="isUnicodePi"></a><span class='definition'>isUnicodePi</span> <span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-2598"></a><span class='definition'>isUnicodePi</span> <span class='varid'>c</span>-<a name="line-2599"></a> <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>-<a name="line-2600"></a> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\171'</span><span class='layout'>,</span><span class='chr'>'\171'</span><span class='layout'>)</span>-<a name="line-2601"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8216'</span><span class='layout'>,</span><span class='chr'>'\8216'</span><span class='layout'>)</span>-<a name="line-2602"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8219'</span><span class='layout'>,</span><span class='chr'>'\8220'</span><span class='layout'>)</span>-<a name="line-2603"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8223'</span><span class='layout'>,</span><span class='chr'>'\8223'</span><span class='layout'>)</span>-<a name="line-2604"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8249'</span><span class='layout'>,</span><span class='chr'>'\8249'</span><span class='layout'>)</span>-<a name="line-2605"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11778'</span><span class='layout'>,</span><span class='chr'>'\11778'</span><span class='layout'>)</span>-<a name="line-2606"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11780'</span><span class='layout'>,</span><span class='chr'>'\11780'</span><span class='layout'>)</span>-<a name="line-2607"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11785'</span><span class='layout'>,</span><span class='chr'>'\11785'</span><span class='layout'>)</span>-<a name="line-2608"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11788'</span><span class='layout'>,</span><span class='chr'>'\11788'</span><span class='layout'>)</span>-<a name="line-2609"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11804'</span><span class='layout'>,</span><span class='chr'>'\11804'</span><span class='layout'>)</span>-<a name="line-2610"></a> <span class='keyglyph'>]</span>-<a name="line-2611"></a>-<a name="line-2612"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2613"></a>-<a name="line-2614"></a><a name="isUnicodePo"></a><span class='definition'>isUnicodePo</span> <span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-2615"></a><span class='definition'>isUnicodePo</span> <span class='varid'>c</span>-<a name="line-2616"></a> <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>-<a name="line-2617"></a> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'!'</span><span class='layout'>,</span><span class='chr'>'#'</span><span class='layout'>)</span>-<a name="line-2618"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'%'</span><span class='layout'>,</span><span class='chr'>'\''</span><span class='layout'>)</span>-<a name="line-2619"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'*'</span><span class='layout'>,</span><span class='chr'>'*'</span><span class='layout'>)</span>-<a name="line-2620"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>','</span><span class='layout'>,</span><span class='chr'>','</span><span class='layout'>)</span>-<a name="line-2621"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'.'</span><span class='layout'>,</span><span class='chr'>'/'</span><span class='layout'>)</span>-<a name="line-2622"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>':'</span><span class='layout'>,</span><span class='chr'>';'</span><span class='layout'>)</span>-<a name="line-2623"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'?'</span><span class='layout'>,</span><span class='chr'>'@'</span><span class='layout'>)</span>-<a name="line-2624"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\\'</span><span class='layout'>,</span><span class='chr'>'\\'</span><span class='layout'>)</span>-<a name="line-2625"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\161'</span><span class='layout'>,</span><span class='chr'>'\161'</span><span class='layout'>)</span>-<a name="line-2626"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\183'</span><span class='layout'>,</span><span class='chr'>'\183'</span><span class='layout'>)</span>-<a name="line-2627"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\191'</span><span class='layout'>,</span><span class='chr'>'\191'</span><span class='layout'>)</span>-<a name="line-2628"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\894'</span><span class='layout'>,</span><span class='chr'>'\894'</span><span class='layout'>)</span>-<a name="line-2629"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\903'</span><span class='layout'>,</span><span class='chr'>'\903'</span><span class='layout'>)</span>-<a name="line-2630"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1370'</span><span class='layout'>,</span><span class='chr'>'\1375'</span><span class='layout'>)</span>-<a name="line-2631"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1417'</span><span class='layout'>,</span><span class='chr'>'\1417'</span><span class='layout'>)</span>-<a name="line-2632"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1470'</span><span class='layout'>,</span><span class='chr'>'\1470'</span><span class='layout'>)</span>-<a name="line-2633"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1472'</span><span class='layout'>,</span><span class='chr'>'\1472'</span><span class='layout'>)</span>-<a name="line-2634"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1475'</span><span class='layout'>,</span><span class='chr'>'\1475'</span><span class='layout'>)</span>-<a name="line-2635"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1478'</span><span class='layout'>,</span><span class='chr'>'\1478'</span><span class='layout'>)</span>-<a name="line-2636"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1523'</span><span class='layout'>,</span><span class='chr'>'\1524'</span><span class='layout'>)</span>-<a name="line-2637"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1548'</span><span class='layout'>,</span><span class='chr'>'\1549'</span><span class='layout'>)</span>-<a name="line-2638"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1563'</span><span class='layout'>,</span><span class='chr'>'\1563'</span><span class='layout'>)</span>-<a name="line-2639"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1566'</span><span class='layout'>,</span><span class='chr'>'\1567'</span><span class='layout'>)</span>-<a name="line-2640"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1642'</span><span class='layout'>,</span><span class='chr'>'\1645'</span><span class='layout'>)</span>-<a name="line-2641"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1748'</span><span class='layout'>,</span><span class='chr'>'\1748'</span><span class='layout'>)</span>-<a name="line-2642"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1792'</span><span class='layout'>,</span><span class='chr'>'\1805'</span><span class='layout'>)</span>-<a name="line-2643"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2039'</span><span class='layout'>,</span><span class='chr'>'\2041'</span><span class='layout'>)</span>-<a name="line-2644"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2404'</span><span class='layout'>,</span><span class='chr'>'\2405'</span><span class='layout'>)</span>-<a name="line-2645"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2416'</span><span class='layout'>,</span><span class='chr'>'\2416'</span><span class='layout'>)</span>-<a name="line-2646"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3572'</span><span class='layout'>,</span><span class='chr'>'\3572'</span><span class='layout'>)</span>-<a name="line-2647"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3663'</span><span class='layout'>,</span><span class='chr'>'\3663'</span><span class='layout'>)</span>-<a name="line-2648"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3674'</span><span class='layout'>,</span><span class='chr'>'\3675'</span><span class='layout'>)</span>-<a name="line-2649"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3844'</span><span class='layout'>,</span><span class='chr'>'\3858'</span><span class='layout'>)</span>-<a name="line-2650"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3973'</span><span class='layout'>,</span><span class='chr'>'\3973'</span><span class='layout'>)</span>-<a name="line-2651"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4048'</span><span class='layout'>,</span><span class='chr'>'\4049'</span><span class='layout'>)</span>-<a name="line-2652"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4170'</span><span class='layout'>,</span><span class='chr'>'\4175'</span><span class='layout'>)</span>-<a name="line-2653"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4347'</span><span class='layout'>,</span><span class='chr'>'\4347'</span><span class='layout'>)</span>-<a name="line-2654"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4961'</span><span class='layout'>,</span><span class='chr'>'\4968'</span><span class='layout'>)</span>-<a name="line-2655"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5741'</span><span class='layout'>,</span><span class='chr'>'\5742'</span><span class='layout'>)</span>-<a name="line-2656"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5867'</span><span class='layout'>,</span><span class='chr'>'\5869'</span><span class='layout'>)</span>-<a name="line-2657"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5941'</span><span class='layout'>,</span><span class='chr'>'\5942'</span><span class='layout'>)</span>-<a name="line-2658"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6100'</span><span class='layout'>,</span><span class='chr'>'\6102'</span><span class='layout'>)</span>-<a name="line-2659"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6104'</span><span class='layout'>,</span><span class='chr'>'\6106'</span><span class='layout'>)</span>-<a name="line-2660"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6144'</span><span class='layout'>,</span><span class='chr'>'\6149'</span><span class='layout'>)</span>-<a name="line-2661"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6151'</span><span class='layout'>,</span><span class='chr'>'\6154'</span><span class='layout'>)</span>-<a name="line-2662"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6468'</span><span class='layout'>,</span><span class='chr'>'\6469'</span><span class='layout'>)</span>-<a name="line-2663"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6622'</span><span class='layout'>,</span><span class='chr'>'\6623'</span><span class='layout'>)</span>-<a name="line-2664"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6686'</span><span class='layout'>,</span><span class='chr'>'\6687'</span><span class='layout'>)</span>-<a name="line-2665"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7002'</span><span class='layout'>,</span><span class='chr'>'\7008'</span><span class='layout'>)</span>-<a name="line-2666"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8214'</span><span class='layout'>,</span><span class='chr'>'\8215'</span><span class='layout'>)</span>-<a name="line-2667"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8224'</span><span class='layout'>,</span><span class='chr'>'\8231'</span><span class='layout'>)</span>-<a name="line-2668"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8240'</span><span class='layout'>,</span><span class='chr'>'\8248'</span><span class='layout'>)</span>-<a name="line-2669"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8251'</span><span class='layout'>,</span><span class='chr'>'\8254'</span><span class='layout'>)</span>-<a name="line-2670"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8257'</span><span class='layout'>,</span><span class='chr'>'\8259'</span><span class='layout'>)</span>-<a name="line-2671"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8263'</span><span class='layout'>,</span><span class='chr'>'\8273'</span><span class='layout'>)</span>-<a name="line-2672"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8275'</span><span class='layout'>,</span><span class='chr'>'\8275'</span><span class='layout'>)</span>-<a name="line-2673"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8277'</span><span class='layout'>,</span><span class='chr'>'\8286'</span><span class='layout'>)</span>-<a name="line-2674"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11513'</span><span class='layout'>,</span><span class='chr'>'\11516'</span><span class='layout'>)</span>-<a name="line-2675"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11518'</span><span class='layout'>,</span><span class='chr'>'\11519'</span><span class='layout'>)</span>-<a name="line-2676"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11776'</span><span class='layout'>,</span><span class='chr'>'\11777'</span><span class='layout'>)</span>-<a name="line-2677"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11782'</span><span class='layout'>,</span><span class='chr'>'\11784'</span><span class='layout'>)</span>-<a name="line-2678"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11787'</span><span class='layout'>,</span><span class='chr'>'\11787'</span><span class='layout'>)</span>-<a name="line-2679"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11790'</span><span class='layout'>,</span><span class='chr'>'\11798'</span><span class='layout'>)</span>-<a name="line-2680"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12289'</span><span class='layout'>,</span><span class='chr'>'\12291'</span><span class='layout'>)</span>-<a name="line-2681"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12349'</span><span class='layout'>,</span><span class='chr'>'\12349'</span><span class='layout'>)</span>-<a name="line-2682"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12539'</span><span class='layout'>,</span><span class='chr'>'\12539'</span><span class='layout'>)</span>-<a name="line-2683"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\43124'</span><span class='layout'>,</span><span class='chr'>'\43127'</span><span class='layout'>)</span>-<a name="line-2684"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65040'</span><span class='layout'>,</span><span class='chr'>'\65046'</span><span class='layout'>)</span>-<a name="line-2685"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65049'</span><span class='layout'>,</span><span class='chr'>'\65049'</span><span class='layout'>)</span>-<a name="line-2686"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65072'</span><span class='layout'>,</span><span class='chr'>'\65072'</span><span class='layout'>)</span>-<a name="line-2687"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65093'</span><span class='layout'>,</span><span class='chr'>'\65094'</span><span class='layout'>)</span>-<a name="line-2688"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65097'</span><span class='layout'>,</span><span class='chr'>'\65100'</span><span class='layout'>)</span>-<a name="line-2689"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65104'</span><span class='layout'>,</span><span class='chr'>'\65106'</span><span class='layout'>)</span>-<a name="line-2690"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65108'</span><span class='layout'>,</span><span class='chr'>'\65111'</span><span class='layout'>)</span>-<a name="line-2691"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65119'</span><span class='layout'>,</span><span class='chr'>'\65121'</span><span class='layout'>)</span>-<a name="line-2692"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65128'</span><span class='layout'>,</span><span class='chr'>'\65128'</span><span class='layout'>)</span>-<a name="line-2693"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65130'</span><span class='layout'>,</span><span class='chr'>'\65131'</span><span class='layout'>)</span>-<a name="line-2694"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65281'</span><span class='layout'>,</span><span class='chr'>'\65283'</span><span class='layout'>)</span>-<a name="line-2695"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65285'</span><span class='layout'>,</span><span class='chr'>'\65287'</span><span class='layout'>)</span>-<a name="line-2696"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65290'</span><span class='layout'>,</span><span class='chr'>'\65290'</span><span class='layout'>)</span>-<a name="line-2697"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65292'</span><span class='layout'>,</span><span class='chr'>'\65292'</span><span class='layout'>)</span>-<a name="line-2698"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65294'</span><span class='layout'>,</span><span class='chr'>'\65295'</span><span class='layout'>)</span>-<a name="line-2699"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65306'</span><span class='layout'>,</span><span class='chr'>'\65307'</span><span class='layout'>)</span>-<a name="line-2700"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65311'</span><span class='layout'>,</span><span class='chr'>'\65312'</span><span class='layout'>)</span>-<a name="line-2701"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65340'</span><span class='layout'>,</span><span class='chr'>'\65340'</span><span class='layout'>)</span>-<a name="line-2702"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65377'</span><span class='layout'>,</span><span class='chr'>'\65377'</span><span class='layout'>)</span>-<a name="line-2703"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65380'</span><span class='layout'>,</span><span class='chr'>'\65381'</span><span class='layout'>)</span>-<a name="line-2704"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65792'</span><span class='layout'>,</span><span class='chr'>'\65793'</span><span class='layout'>)</span>-<a name="line-2705"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\66463'</span><span class='layout'>,</span><span class='chr'>'\66463'</span><span class='layout'>)</span>-<a name="line-2706"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\66512'</span><span class='layout'>,</span><span class='chr'>'\66512'</span><span class='layout'>)</span>-<a name="line-2707"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\67871'</span><span class='layout'>,</span><span class='chr'>'\67871'</span><span class='layout'>)</span>-<a name="line-2708"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\68176'</span><span class='layout'>,</span><span class='chr'>'\68184'</span><span class='layout'>)</span>-<a name="line-2709"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\74864'</span><span class='layout'>,</span><span class='chr'>'\74867'</span><span class='layout'>)</span>-<a name="line-2710"></a> <span class='keyglyph'>]</span>-<a name="line-2711"></a>-<a name="line-2712"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2713"></a>-<a name="line-2714"></a><a name="isUnicodePs"></a><span class='definition'>isUnicodePs</span> <span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-2715"></a><span class='definition'>isUnicodePs</span> <span class='varid'>c</span>-<a name="line-2716"></a> <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>-<a name="line-2717"></a> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'('</span><span class='layout'>,</span><span class='chr'>'('</span><span class='layout'>)</span>-<a name="line-2718"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'['</span><span class='layout'>,</span><span class='chr'>'['</span><span class='layout'>)</span>-<a name="line-2719"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'{'</span><span class='layout'>,</span><span class='chr'>'{'</span><span class='layout'>)</span>-<a name="line-2720"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3898'</span><span class='layout'>,</span><span class='chr'>'\3898'</span><span class='layout'>)</span>-<a name="line-2721"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3900'</span><span class='layout'>,</span><span class='chr'>'\3900'</span><span class='layout'>)</span>-<a name="line-2722"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5787'</span><span class='layout'>,</span><span class='chr'>'\5787'</span><span class='layout'>)</span>-<a name="line-2723"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8218'</span><span class='layout'>,</span><span class='chr'>'\8218'</span><span class='layout'>)</span>-<a name="line-2724"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8222'</span><span class='layout'>,</span><span class='chr'>'\8222'</span><span class='layout'>)</span>-<a name="line-2725"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8261'</span><span class='layout'>,</span><span class='chr'>'\8261'</span><span class='layout'>)</span>-<a name="line-2726"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8317'</span><span class='layout'>,</span><span class='chr'>'\8317'</span><span class='layout'>)</span>-<a name="line-2727"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8333'</span><span class='layout'>,</span><span class='chr'>'\8333'</span><span class='layout'>)</span>-<a name="line-2728"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9001'</span><span class='layout'>,</span><span class='chr'>'\9001'</span><span class='layout'>)</span>-<a name="line-2729"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10088'</span><span class='layout'>,</span><span class='chr'>'\10088'</span><span class='layout'>)</span>-<a name="line-2730"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10090'</span><span class='layout'>,</span><span class='chr'>'\10090'</span><span class='layout'>)</span>-<a name="line-2731"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10092'</span><span class='layout'>,</span><span class='chr'>'\10092'</span><span class='layout'>)</span>-<a name="line-2732"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10094'</span><span class='layout'>,</span><span class='chr'>'\10094'</span><span class='layout'>)</span>-<a name="line-2733"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10096'</span><span class='layout'>,</span><span class='chr'>'\10096'</span><span class='layout'>)</span>-<a name="line-2734"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10098'</span><span class='layout'>,</span><span class='chr'>'\10098'</span><span class='layout'>)</span>-<a name="line-2735"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10100'</span><span class='layout'>,</span><span class='chr'>'\10100'</span><span class='layout'>)</span>-<a name="line-2736"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10181'</span><span class='layout'>,</span><span class='chr'>'\10181'</span><span class='layout'>)</span>-<a name="line-2737"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10214'</span><span class='layout'>,</span><span class='chr'>'\10214'</span><span class='layout'>)</span>-<a name="line-2738"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10216'</span><span class='layout'>,</span><span class='chr'>'\10216'</span><span class='layout'>)</span>-<a name="line-2739"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10218'</span><span class='layout'>,</span><span class='chr'>'\10218'</span><span class='layout'>)</span>-<a name="line-2740"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10627'</span><span class='layout'>,</span><span class='chr'>'\10627'</span><span class='layout'>)</span>-<a name="line-2741"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10629'</span><span class='layout'>,</span><span class='chr'>'\10629'</span><span class='layout'>)</span>-<a name="line-2742"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10631'</span><span class='layout'>,</span><span class='chr'>'\10631'</span><span class='layout'>)</span>-<a name="line-2743"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10633'</span><span class='layout'>,</span><span class='chr'>'\10633'</span><span class='layout'>)</span>-<a name="line-2744"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10635'</span><span class='layout'>,</span><span class='chr'>'\10635'</span><span class='layout'>)</span>-<a name="line-2745"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10637'</span><span class='layout'>,</span><span class='chr'>'\10637'</span><span class='layout'>)</span>-<a name="line-2746"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10639'</span><span class='layout'>,</span><span class='chr'>'\10639'</span><span class='layout'>)</span>-<a name="line-2747"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10641'</span><span class='layout'>,</span><span class='chr'>'\10641'</span><span class='layout'>)</span>-<a name="line-2748"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10643'</span><span class='layout'>,</span><span class='chr'>'\10643'</span><span class='layout'>)</span>-<a name="line-2749"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10645'</span><span class='layout'>,</span><span class='chr'>'\10645'</span><span class='layout'>)</span>-<a name="line-2750"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10647'</span><span class='layout'>,</span><span class='chr'>'\10647'</span><span class='layout'>)</span>-<a name="line-2751"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10712'</span><span class='layout'>,</span><span class='chr'>'\10712'</span><span class='layout'>)</span>-<a name="line-2752"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10714'</span><span class='layout'>,</span><span class='chr'>'\10714'</span><span class='layout'>)</span>-<a name="line-2753"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10748'</span><span class='layout'>,</span><span class='chr'>'\10748'</span><span class='layout'>)</span>-<a name="line-2754"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12296'</span><span class='layout'>,</span><span class='chr'>'\12296'</span><span class='layout'>)</span>-<a name="line-2755"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12298'</span><span class='layout'>,</span><span class='chr'>'\12298'</span><span class='layout'>)</span>-<a name="line-2756"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12300'</span><span class='layout'>,</span><span class='chr'>'\12300'</span><span class='layout'>)</span>-<a name="line-2757"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12302'</span><span class='layout'>,</span><span class='chr'>'\12302'</span><span class='layout'>)</span>-<a name="line-2758"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12304'</span><span class='layout'>,</span><span class='chr'>'\12304'</span><span class='layout'>)</span>-<a name="line-2759"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12308'</span><span class='layout'>,</span><span class='chr'>'\12308'</span><span class='layout'>)</span>-<a name="line-2760"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12310'</span><span class='layout'>,</span><span class='chr'>'\12310'</span><span class='layout'>)</span>-<a name="line-2761"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12312'</span><span class='layout'>,</span><span class='chr'>'\12312'</span><span class='layout'>)</span>-<a name="line-2762"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12314'</span><span class='layout'>,</span><span class='chr'>'\12314'</span><span class='layout'>)</span>-<a name="line-2763"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12317'</span><span class='layout'>,</span><span class='chr'>'\12317'</span><span class='layout'>)</span>-<a name="line-2764"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64830'</span><span class='layout'>,</span><span class='chr'>'\64830'</span><span class='layout'>)</span>-<a name="line-2765"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65047'</span><span class='layout'>,</span><span class='chr'>'\65047'</span><span class='layout'>)</span>-<a name="line-2766"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65077'</span><span class='layout'>,</span><span class='chr'>'\65077'</span><span class='layout'>)</span>-<a name="line-2767"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65079'</span><span class='layout'>,</span><span class='chr'>'\65079'</span><span class='layout'>)</span>-<a name="line-2768"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65081'</span><span class='layout'>,</span><span class='chr'>'\65081'</span><span class='layout'>)</span>-<a name="line-2769"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65083'</span><span class='layout'>,</span><span class='chr'>'\65083'</span><span class='layout'>)</span>-<a name="line-2770"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65085'</span><span class='layout'>,</span><span class='chr'>'\65085'</span><span class='layout'>)</span>-<a name="line-2771"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65087'</span><span class='layout'>,</span><span class='chr'>'\65087'</span><span class='layout'>)</span>-<a name="line-2772"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65089'</span><span class='layout'>,</span><span class='chr'>'\65089'</span><span class='layout'>)</span>-<a name="line-2773"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65091'</span><span class='layout'>,</span><span class='chr'>'\65091'</span><span class='layout'>)</span>-<a name="line-2774"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65095'</span><span class='layout'>,</span><span class='chr'>'\65095'</span><span class='layout'>)</span>-<a name="line-2775"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65113'</span><span class='layout'>,</span><span class='chr'>'\65113'</span><span class='layout'>)</span>-<a name="line-2776"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65115'</span><span class='layout'>,</span><span class='chr'>'\65115'</span><span class='layout'>)</span>-<a name="line-2777"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65117'</span><span class='layout'>,</span><span class='chr'>'\65117'</span><span class='layout'>)</span>-<a name="line-2778"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65288'</span><span class='layout'>,</span><span class='chr'>'\65288'</span><span class='layout'>)</span>-<a name="line-2779"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65339'</span><span class='layout'>,</span><span class='chr'>'\65339'</span><span class='layout'>)</span>-<a name="line-2780"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65371'</span><span class='layout'>,</span><span class='chr'>'\65371'</span><span class='layout'>)</span>-<a name="line-2781"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65375'</span><span class='layout'>,</span><span class='chr'>'\65375'</span><span class='layout'>)</span>-<a name="line-2782"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65378'</span><span class='layout'>,</span><span class='chr'>'\65378'</span><span class='layout'>)</span>-<a name="line-2783"></a> <span class='keyglyph'>]</span>-<a name="line-2784"></a>-<a name="line-2785"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2786"></a>-<a name="line-2787"></a><a name="isUnicodeS"></a><span class='definition'>isUnicodeS</span> <span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-2788"></a><span class='definition'>isUnicodeS</span> <span class='varid'>c</span>-<a name="line-2789"></a> <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>-<a name="line-2790"></a> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'$'</span><span class='layout'>,</span><span class='chr'>'$'</span><span class='layout'>)</span>-<a name="line-2791"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'+'</span><span class='layout'>,</span><span class='chr'>'+'</span><span class='layout'>)</span>-<a name="line-2792"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'<'</span><span class='layout'>,</span><span class='chr'>'>'</span><span class='layout'>)</span>-<a name="line-2793"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'^'</span><span class='layout'>,</span><span class='chr'>'^'</span><span class='layout'>)</span>-<a name="line-2794"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'`'</span><span class='layout'>,</span><span class='chr'>'`'</span><span class='layout'>)</span>-<a name="line-2795"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'|'</span><span class='layout'>,</span><span class='chr'>'|'</span><span class='layout'>)</span>-<a name="line-2796"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'~'</span><span class='layout'>,</span><span class='chr'>'~'</span><span class='layout'>)</span>-<a name="line-2797"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\162'</span><span class='layout'>,</span><span class='chr'>'\169'</span><span class='layout'>)</span>-<a name="line-2798"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\172'</span><span class='layout'>,</span><span class='chr'>'\172'</span><span class='layout'>)</span>-<a name="line-2799"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\174'</span><span class='layout'>,</span><span class='chr'>'\177'</span><span class='layout'>)</span>-<a name="line-2800"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\180'</span><span class='layout'>,</span><span class='chr'>'\180'</span><span class='layout'>)</span>-<a name="line-2801"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\182'</span><span class='layout'>,</span><span class='chr'>'\182'</span><span class='layout'>)</span>-<a name="line-2802"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\184'</span><span class='layout'>,</span><span class='chr'>'\184'</span><span class='layout'>)</span>-<a name="line-2803"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\215'</span><span class='layout'>,</span><span class='chr'>'\215'</span><span class='layout'>)</span>-<a name="line-2804"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\247'</span><span class='layout'>,</span><span class='chr'>'\247'</span><span class='layout'>)</span>-<a name="line-2805"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\706'</span><span class='layout'>,</span><span class='chr'>'\709'</span><span class='layout'>)</span>-<a name="line-2806"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\722'</span><span class='layout'>,</span><span class='chr'>'\735'</span><span class='layout'>)</span>-<a name="line-2807"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\741'</span><span class='layout'>,</span><span class='chr'>'\749'</span><span class='layout'>)</span>-<a name="line-2808"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\751'</span><span class='layout'>,</span><span class='chr'>'\767'</span><span class='layout'>)</span>-<a name="line-2809"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\884'</span><span class='layout'>,</span><span class='chr'>'\885'</span><span class='layout'>)</span>-<a name="line-2810"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\900'</span><span class='layout'>,</span><span class='chr'>'\901'</span><span class='layout'>)</span>-<a name="line-2811"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1014'</span><span class='layout'>,</span><span class='chr'>'\1014'</span><span class='layout'>)</span>-<a name="line-2812"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1154'</span><span class='layout'>,</span><span class='chr'>'\1154'</span><span class='layout'>)</span>-<a name="line-2813"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1547'</span><span class='layout'>,</span><span class='chr'>'\1547'</span><span class='layout'>)</span>-<a name="line-2814"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1550'</span><span class='layout'>,</span><span class='chr'>'\1551'</span><span class='layout'>)</span>-<a name="line-2815"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1769'</span><span class='layout'>,</span><span class='chr'>'\1769'</span><span class='layout'>)</span>-<a name="line-2816"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1789'</span><span class='layout'>,</span><span class='chr'>'\1790'</span><span class='layout'>)</span>-<a name="line-2817"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2038'</span><span class='layout'>,</span><span class='chr'>'\2038'</span><span class='layout'>)</span>-<a name="line-2818"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2546'</span><span class='layout'>,</span><span class='chr'>'\2547'</span><span class='layout'>)</span>-<a name="line-2819"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2554'</span><span class='layout'>,</span><span class='chr'>'\2554'</span><span class='layout'>)</span>-<a name="line-2820"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2801'</span><span class='layout'>,</span><span class='chr'>'\2801'</span><span class='layout'>)</span>-<a name="line-2821"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2928'</span><span class='layout'>,</span><span class='chr'>'\2928'</span><span class='layout'>)</span>-<a name="line-2822"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3059'</span><span class='layout'>,</span><span class='chr'>'\3066'</span><span class='layout'>)</span>-<a name="line-2823"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3313'</span><span class='layout'>,</span><span class='chr'>'\3314'</span><span class='layout'>)</span>-<a name="line-2824"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3647'</span><span class='layout'>,</span><span class='chr'>'\3647'</span><span class='layout'>)</span>-<a name="line-2825"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3841'</span><span class='layout'>,</span><span class='chr'>'\3843'</span><span class='layout'>)</span>-<a name="line-2826"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3859'</span><span class='layout'>,</span><span class='chr'>'\3863'</span><span class='layout'>)</span>-<a name="line-2827"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3866'</span><span class='layout'>,</span><span class='chr'>'\3871'</span><span class='layout'>)</span>-<a name="line-2828"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3892'</span><span class='layout'>,</span><span class='chr'>'\3892'</span><span class='layout'>)</span>-<a name="line-2829"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3894'</span><span class='layout'>,</span><span class='chr'>'\3894'</span><span class='layout'>)</span>-<a name="line-2830"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3896'</span><span class='layout'>,</span><span class='chr'>'\3896'</span><span class='layout'>)</span>-<a name="line-2831"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4030'</span><span class='layout'>,</span><span class='chr'>'\4037'</span><span class='layout'>)</span>-<a name="line-2832"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4039'</span><span class='layout'>,</span><span class='chr'>'\4044'</span><span class='layout'>)</span>-<a name="line-2833"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4047'</span><span class='layout'>,</span><span class='chr'>'\4047'</span><span class='layout'>)</span>-<a name="line-2834"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4960'</span><span class='layout'>,</span><span class='chr'>'\4960'</span><span class='layout'>)</span>-<a name="line-2835"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5008'</span><span class='layout'>,</span><span class='chr'>'\5017'</span><span class='layout'>)</span>-<a name="line-2836"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6107'</span><span class='layout'>,</span><span class='chr'>'\6107'</span><span class='layout'>)</span>-<a name="line-2837"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6464'</span><span class='layout'>,</span><span class='chr'>'\6464'</span><span class='layout'>)</span>-<a name="line-2838"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6624'</span><span class='layout'>,</span><span class='chr'>'\6655'</span><span class='layout'>)</span>-<a name="line-2839"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7009'</span><span class='layout'>,</span><span class='chr'>'\7018'</span><span class='layout'>)</span>-<a name="line-2840"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7028'</span><span class='layout'>,</span><span class='chr'>'\7036'</span><span class='layout'>)</span>-<a name="line-2841"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8125'</span><span class='layout'>,</span><span class='chr'>'\8125'</span><span class='layout'>)</span>-<a name="line-2842"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8127'</span><span class='layout'>,</span><span class='chr'>'\8129'</span><span class='layout'>)</span>-<a name="line-2843"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8141'</span><span class='layout'>,</span><span class='chr'>'\8143'</span><span class='layout'>)</span>-<a name="line-2844"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8157'</span><span class='layout'>,</span><span class='chr'>'\8159'</span><span class='layout'>)</span>-<a name="line-2845"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8173'</span><span class='layout'>,</span><span class='chr'>'\8175'</span><span class='layout'>)</span>-<a name="line-2846"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8189'</span><span class='layout'>,</span><span class='chr'>'\8190'</span><span class='layout'>)</span>-<a name="line-2847"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8260'</span><span class='layout'>,</span><span class='chr'>'\8260'</span><span class='layout'>)</span>-<a name="line-2848"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8274'</span><span class='layout'>,</span><span class='chr'>'\8274'</span><span class='layout'>)</span>-<a name="line-2849"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8314'</span><span class='layout'>,</span><span class='chr'>'\8316'</span><span class='layout'>)</span>-<a name="line-2850"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8330'</span><span class='layout'>,</span><span class='chr'>'\8332'</span><span class='layout'>)</span>-<a name="line-2851"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8352'</span><span class='layout'>,</span><span class='chr'>'\8373'</span><span class='layout'>)</span>-<a name="line-2852"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8448'</span><span class='layout'>,</span><span class='chr'>'\8449'</span><span class='layout'>)</span>-<a name="line-2853"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8451'</span><span class='layout'>,</span><span class='chr'>'\8454'</span><span class='layout'>)</span>-<a name="line-2854"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8456'</span><span class='layout'>,</span><span class='chr'>'\8457'</span><span class='layout'>)</span>-<a name="line-2855"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8468'</span><span class='layout'>,</span><span class='chr'>'\8468'</span><span class='layout'>)</span>-<a name="line-2856"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8470'</span><span class='layout'>,</span><span class='chr'>'\8472'</span><span class='layout'>)</span>-<a name="line-2857"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8478'</span><span class='layout'>,</span><span class='chr'>'\8483'</span><span class='layout'>)</span>-<a name="line-2858"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8485'</span><span class='layout'>,</span><span class='chr'>'\8485'</span><span class='layout'>)</span>-<a name="line-2859"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8487'</span><span class='layout'>,</span><span class='chr'>'\8487'</span><span class='layout'>)</span>-<a name="line-2860"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8489'</span><span class='layout'>,</span><span class='chr'>'\8489'</span><span class='layout'>)</span>-<a name="line-2861"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8494'</span><span class='layout'>,</span><span class='chr'>'\8494'</span><span class='layout'>)</span>-<a name="line-2862"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8506'</span><span class='layout'>,</span><span class='chr'>'\8507'</span><span class='layout'>)</span>-<a name="line-2863"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8512'</span><span class='layout'>,</span><span class='chr'>'\8516'</span><span class='layout'>)</span>-<a name="line-2864"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8522'</span><span class='layout'>,</span><span class='chr'>'\8525'</span><span class='layout'>)</span>-<a name="line-2865"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8592'</span><span class='layout'>,</span><span class='chr'>'\9000'</span><span class='layout'>)</span>-<a name="line-2866"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9003'</span><span class='layout'>,</span><span class='chr'>'\9191'</span><span class='layout'>)</span>-<a name="line-2867"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9216'</span><span class='layout'>,</span><span class='chr'>'\9254'</span><span class='layout'>)</span>-<a name="line-2868"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9280'</span><span class='layout'>,</span><span class='chr'>'\9290'</span><span class='layout'>)</span>-<a name="line-2869"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9372'</span><span class='layout'>,</span><span class='chr'>'\9449'</span><span class='layout'>)</span>-<a name="line-2870"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9472'</span><span class='layout'>,</span><span class='chr'>'\9884'</span><span class='layout'>)</span>-<a name="line-2871"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9888'</span><span class='layout'>,</span><span class='chr'>'\9906'</span><span class='layout'>)</span>-<a name="line-2872"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9985'</span><span class='layout'>,</span><span class='chr'>'\9988'</span><span class='layout'>)</span>-<a name="line-2873"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9990'</span><span class='layout'>,</span><span class='chr'>'\9993'</span><span class='layout'>)</span>-<a name="line-2874"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9996'</span><span class='layout'>,</span><span class='chr'>'\10023'</span><span class='layout'>)</span>-<a name="line-2875"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10025'</span><span class='layout'>,</span><span class='chr'>'\10059'</span><span class='layout'>)</span>-<a name="line-2876"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10061'</span><span class='layout'>,</span><span class='chr'>'\10061'</span><span class='layout'>)</span>-<a name="line-2877"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10063'</span><span class='layout'>,</span><span class='chr'>'\10066'</span><span class='layout'>)</span>-<a name="line-2878"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10070'</span><span class='layout'>,</span><span class='chr'>'\10070'</span><span class='layout'>)</span>-<a name="line-2879"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10072'</span><span class='layout'>,</span><span class='chr'>'\10078'</span><span class='layout'>)</span>-<a name="line-2880"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10081'</span><span class='layout'>,</span><span class='chr'>'\10087'</span><span class='layout'>)</span>-<a name="line-2881"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10132'</span><span class='layout'>,</span><span class='chr'>'\10132'</span><span class='layout'>)</span>-<a name="line-2882"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10136'</span><span class='layout'>,</span><span class='chr'>'\10159'</span><span class='layout'>)</span>-<a name="line-2883"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10161'</span><span class='layout'>,</span><span class='chr'>'\10174'</span><span class='layout'>)</span>-<a name="line-2884"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10176'</span><span class='layout'>,</span><span class='chr'>'\10180'</span><span class='layout'>)</span>-<a name="line-2885"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10183'</span><span class='layout'>,</span><span class='chr'>'\10186'</span><span class='layout'>)</span>-<a name="line-2886"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10192'</span><span class='layout'>,</span><span class='chr'>'\10213'</span><span class='layout'>)</span>-<a name="line-2887"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10224'</span><span class='layout'>,</span><span class='chr'>'\10626'</span><span class='layout'>)</span>-<a name="line-2888"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10649'</span><span class='layout'>,</span><span class='chr'>'\10711'</span><span class='layout'>)</span>-<a name="line-2889"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10716'</span><span class='layout'>,</span><span class='chr'>'\10747'</span><span class='layout'>)</span>-<a name="line-2890"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10750'</span><span class='layout'>,</span><span class='chr'>'\11034'</span><span class='layout'>)</span>-<a name="line-2891"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11040'</span><span class='layout'>,</span><span class='chr'>'\11043'</span><span class='layout'>)</span>-<a name="line-2892"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11493'</span><span class='layout'>,</span><span class='chr'>'\11498'</span><span class='layout'>)</span>-<a name="line-2893"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11904'</span><span class='layout'>,</span><span class='chr'>'\11929'</span><span class='layout'>)</span>-<a name="line-2894"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11931'</span><span class='layout'>,</span><span class='chr'>'\12019'</span><span class='layout'>)</span>-<a name="line-2895"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12032'</span><span class='layout'>,</span><span class='chr'>'\12245'</span><span class='layout'>)</span>-<a name="line-2896"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12272'</span><span class='layout'>,</span><span class='chr'>'\12283'</span><span class='layout'>)</span>-<a name="line-2897"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12292'</span><span class='layout'>,</span><span class='chr'>'\12292'</span><span class='layout'>)</span>-<a name="line-2898"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12306'</span><span class='layout'>,</span><span class='chr'>'\12307'</span><span class='layout'>)</span>-<a name="line-2899"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12320'</span><span class='layout'>,</span><span class='chr'>'\12320'</span><span class='layout'>)</span>-<a name="line-2900"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12342'</span><span class='layout'>,</span><span class='chr'>'\12343'</span><span class='layout'>)</span>-<a name="line-2901"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12350'</span><span class='layout'>,</span><span class='chr'>'\12351'</span><span class='layout'>)</span>-<a name="line-2902"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12443'</span><span class='layout'>,</span><span class='chr'>'\12444'</span><span class='layout'>)</span>-<a name="line-2903"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12688'</span><span class='layout'>,</span><span class='chr'>'\12689'</span><span class='layout'>)</span>-<a name="line-2904"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12694'</span><span class='layout'>,</span><span class='chr'>'\12703'</span><span class='layout'>)</span>-<a name="line-2905"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12736'</span><span class='layout'>,</span><span class='chr'>'\12751'</span><span class='layout'>)</span>-<a name="line-2906"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12800'</span><span class='layout'>,</span><span class='chr'>'\12830'</span><span class='layout'>)</span>-<a name="line-2907"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12842'</span><span class='layout'>,</span><span class='chr'>'\12867'</span><span class='layout'>)</span>-<a name="line-2908"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12880'</span><span class='layout'>,</span><span class='chr'>'\12880'</span><span class='layout'>)</span>-<a name="line-2909"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12896'</span><span class='layout'>,</span><span class='chr'>'\12927'</span><span class='layout'>)</span>-<a name="line-2910"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12938'</span><span class='layout'>,</span><span class='chr'>'\12976'</span><span class='layout'>)</span>-<a name="line-2911"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12992'</span><span class='layout'>,</span><span class='chr'>'\13054'</span><span class='layout'>)</span>-<a name="line-2912"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\13056'</span><span class='layout'>,</span><span class='chr'>'\13311'</span><span class='layout'>)</span>-<a name="line-2913"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\19904'</span><span class='layout'>,</span><span class='chr'>'\19967'</span><span class='layout'>)</span>-<a name="line-2914"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\42128'</span><span class='layout'>,</span><span class='chr'>'\42182'</span><span class='layout'>)</span>-<a name="line-2915"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\42752'</span><span class='layout'>,</span><span class='chr'>'\42774'</span><span class='layout'>)</span>-<a name="line-2916"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\42784'</span><span class='layout'>,</span><span class='chr'>'\42785'</span><span class='layout'>)</span>-<a name="line-2917"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\43048'</span><span class='layout'>,</span><span class='chr'>'\43051'</span><span class='layout'>)</span>-<a name="line-2918"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64297'</span><span class='layout'>,</span><span class='chr'>'\64297'</span><span class='layout'>)</span>-<a name="line-2919"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65020'</span><span class='layout'>,</span><span class='chr'>'\65021'</span><span class='layout'>)</span>-<a name="line-2920"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65122'</span><span class='layout'>,</span><span class='chr'>'\65122'</span><span class='layout'>)</span>-<a name="line-2921"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65124'</span><span class='layout'>,</span><span class='chr'>'\65126'</span><span class='layout'>)</span>-<a name="line-2922"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65129'</span><span class='layout'>,</span><span class='chr'>'\65129'</span><span class='layout'>)</span>-<a name="line-2923"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65284'</span><span class='layout'>,</span><span class='chr'>'\65284'</span><span class='layout'>)</span>-<a name="line-2924"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65291'</span><span class='layout'>,</span><span class='chr'>'\65291'</span><span class='layout'>)</span>-<a name="line-2925"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65308'</span><span class='layout'>,</span><span class='chr'>'\65310'</span><span class='layout'>)</span>-<a name="line-2926"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65342'</span><span class='layout'>,</span><span class='chr'>'\65342'</span><span class='layout'>)</span>-<a name="line-2927"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65344'</span><span class='layout'>,</span><span class='chr'>'\65344'</span><span class='layout'>)</span>-<a name="line-2928"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65372'</span><span class='layout'>,</span><span class='chr'>'\65372'</span><span class='layout'>)</span>-<a name="line-2929"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65374'</span><span class='layout'>,</span><span class='chr'>'\65374'</span><span class='layout'>)</span>-<a name="line-2930"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65504'</span><span class='layout'>,</span><span class='chr'>'\65510'</span><span class='layout'>)</span>-<a name="line-2931"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65512'</span><span class='layout'>,</span><span class='chr'>'\65518'</span><span class='layout'>)</span>-<a name="line-2932"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65532'</span><span class='layout'>,</span><span class='chr'>'\65533'</span><span class='layout'>)</span>-<a name="line-2933"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65794'</span><span class='layout'>,</span><span class='chr'>'\65794'</span><span class='layout'>)</span>-<a name="line-2934"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65847'</span><span class='layout'>,</span><span class='chr'>'\65855'</span><span class='layout'>)</span>-<a name="line-2935"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65913'</span><span class='layout'>,</span><span class='chr'>'\65929'</span><span class='layout'>)</span>-<a name="line-2936"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\118784'</span><span class='layout'>,</span><span class='chr'>'\119029'</span><span class='layout'>)</span>-<a name="line-2937"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119040'</span><span class='layout'>,</span><span class='chr'>'\119078'</span><span class='layout'>)</span>-<a name="line-2938"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119082'</span><span class='layout'>,</span><span class='chr'>'\119140'</span><span class='layout'>)</span>-<a name="line-2939"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119146'</span><span class='layout'>,</span><span class='chr'>'\119148'</span><span class='layout'>)</span>-<a name="line-2940"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119171'</span><span class='layout'>,</span><span class='chr'>'\119172'</span><span class='layout'>)</span>-<a name="line-2941"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119180'</span><span class='layout'>,</span><span class='chr'>'\119209'</span><span class='layout'>)</span>-<a name="line-2942"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119214'</span><span class='layout'>,</span><span class='chr'>'\119261'</span><span class='layout'>)</span>-<a name="line-2943"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119296'</span><span class='layout'>,</span><span class='chr'>'\119361'</span><span class='layout'>)</span>-<a name="line-2944"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119365'</span><span class='layout'>,</span><span class='chr'>'\119365'</span><span class='layout'>)</span>-<a name="line-2945"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119552'</span><span class='layout'>,</span><span class='chr'>'\119638'</span><span class='layout'>)</span>-<a name="line-2946"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120513'</span><span class='layout'>,</span><span class='chr'>'\120513'</span><span class='layout'>)</span>-<a name="line-2947"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120539'</span><span class='layout'>,</span><span class='chr'>'\120539'</span><span class='layout'>)</span>-<a name="line-2948"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120571'</span><span class='layout'>,</span><span class='chr'>'\120571'</span><span class='layout'>)</span>-<a name="line-2949"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120597'</span><span class='layout'>,</span><span class='chr'>'\120597'</span><span class='layout'>)</span>-<a name="line-2950"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120629'</span><span class='layout'>,</span><span class='chr'>'\120629'</span><span class='layout'>)</span>-<a name="line-2951"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120655'</span><span class='layout'>,</span><span class='chr'>'\120655'</span><span class='layout'>)</span>-<a name="line-2952"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120687'</span><span class='layout'>,</span><span class='chr'>'\120687'</span><span class='layout'>)</span>-<a name="line-2953"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120713'</span><span class='layout'>,</span><span class='chr'>'\120713'</span><span class='layout'>)</span>-<a name="line-2954"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120745'</span><span class='layout'>,</span><span class='chr'>'\120745'</span><span class='layout'>)</span>-<a name="line-2955"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120771'</span><span class='layout'>,</span><span class='chr'>'\120771'</span><span class='layout'>)</span>-<a name="line-2956"></a> <span class='keyglyph'>]</span>-<a name="line-2957"></a>-<a name="line-2958"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2959"></a>-<a name="line-2960"></a><a name="isUnicodeSc"></a><span class='definition'>isUnicodeSc</span> <span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-2961"></a><span class='definition'>isUnicodeSc</span> <span class='varid'>c</span>-<a name="line-2962"></a> <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>-<a name="line-2963"></a> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'$'</span><span class='layout'>,</span><span class='chr'>'$'</span><span class='layout'>)</span>-<a name="line-2964"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\162'</span><span class='layout'>,</span><span class='chr'>'\165'</span><span class='layout'>)</span>-<a name="line-2965"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1547'</span><span class='layout'>,</span><span class='chr'>'\1547'</span><span class='layout'>)</span>-<a name="line-2966"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2546'</span><span class='layout'>,</span><span class='chr'>'\2547'</span><span class='layout'>)</span>-<a name="line-2967"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2801'</span><span class='layout'>,</span><span class='chr'>'\2801'</span><span class='layout'>)</span>-<a name="line-2968"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3065'</span><span class='layout'>,</span><span class='chr'>'\3065'</span><span class='layout'>)</span>-<a name="line-2969"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3647'</span><span class='layout'>,</span><span class='chr'>'\3647'</span><span class='layout'>)</span>-<a name="line-2970"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6107'</span><span class='layout'>,</span><span class='chr'>'\6107'</span><span class='layout'>)</span>-<a name="line-2971"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8352'</span><span class='layout'>,</span><span class='chr'>'\8373'</span><span class='layout'>)</span>-<a name="line-2972"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65020'</span><span class='layout'>,</span><span class='chr'>'\65020'</span><span class='layout'>)</span>-<a name="line-2973"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65129'</span><span class='layout'>,</span><span class='chr'>'\65129'</span><span class='layout'>)</span>-<a name="line-2974"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65284'</span><span class='layout'>,</span><span class='chr'>'\65284'</span><span class='layout'>)</span>-<a name="line-2975"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65504'</span><span class='layout'>,</span><span class='chr'>'\65505'</span><span class='layout'>)</span>-<a name="line-2976"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65509'</span><span class='layout'>,</span><span class='chr'>'\65510'</span><span class='layout'>)</span>-<a name="line-2977"></a> <span class='keyglyph'>]</span>-<a name="line-2978"></a>-<a name="line-2979"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2980"></a>-<a name="line-2981"></a><a name="isUnicodeSk"></a><span class='definition'>isUnicodeSk</span> <span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-2982"></a><span class='definition'>isUnicodeSk</span> <span class='varid'>c</span>-<a name="line-2983"></a> <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>-<a name="line-2984"></a> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'^'</span><span class='layout'>,</span><span class='chr'>'^'</span><span class='layout'>)</span>-<a name="line-2985"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'`'</span><span class='layout'>,</span><span class='chr'>'`'</span><span class='layout'>)</span>-<a name="line-2986"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\168'</span><span class='layout'>,</span><span class='chr'>'\168'</span><span class='layout'>)</span>-<a name="line-2987"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\175'</span><span class='layout'>,</span><span class='chr'>'\175'</span><span class='layout'>)</span>-<a name="line-2988"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\180'</span><span class='layout'>,</span><span class='chr'>'\180'</span><span class='layout'>)</span>-<a name="line-2989"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\184'</span><span class='layout'>,</span><span class='chr'>'\184'</span><span class='layout'>)</span>-<a name="line-2990"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\706'</span><span class='layout'>,</span><span class='chr'>'\709'</span><span class='layout'>)</span>-<a name="line-2991"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\722'</span><span class='layout'>,</span><span class='chr'>'\735'</span><span class='layout'>)</span>-<a name="line-2992"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\741'</span><span class='layout'>,</span><span class='chr'>'\749'</span><span class='layout'>)</span>-<a name="line-2993"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\751'</span><span class='layout'>,</span><span class='chr'>'\767'</span><span class='layout'>)</span>-<a name="line-2994"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\884'</span><span class='layout'>,</span><span class='chr'>'\885'</span><span class='layout'>)</span>-<a name="line-2995"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\900'</span><span class='layout'>,</span><span class='chr'>'\901'</span><span class='layout'>)</span>-<a name="line-2996"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8125'</span><span class='layout'>,</span><span class='chr'>'\8125'</span><span class='layout'>)</span>-<a name="line-2997"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8127'</span><span class='layout'>,</span><span class='chr'>'\8129'</span><span class='layout'>)</span>-<a name="line-2998"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8141'</span><span class='layout'>,</span><span class='chr'>'\8143'</span><span class='layout'>)</span>-<a name="line-2999"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8157'</span><span class='layout'>,</span><span class='chr'>'\8159'</span><span class='layout'>)</span>-<a name="line-3000"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8173'</span><span class='layout'>,</span><span class='chr'>'\8175'</span><span class='layout'>)</span>-<a name="line-3001"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8189'</span><span class='layout'>,</span><span class='chr'>'\8190'</span><span class='layout'>)</span>-<a name="line-3002"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12443'</span><span class='layout'>,</span><span class='chr'>'\12444'</span><span class='layout'>)</span>-<a name="line-3003"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\42752'</span><span class='layout'>,</span><span class='chr'>'\42774'</span><span class='layout'>)</span>-<a name="line-3004"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\42784'</span><span class='layout'>,</span><span class='chr'>'\42785'</span><span class='layout'>)</span>-<a name="line-3005"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65342'</span><span class='layout'>,</span><span class='chr'>'\65342'</span><span class='layout'>)</span>-<a name="line-3006"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65344'</span><span class='layout'>,</span><span class='chr'>'\65344'</span><span class='layout'>)</span>-<a name="line-3007"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65507'</span><span class='layout'>,</span><span class='chr'>'\65507'</span><span class='layout'>)</span>-<a name="line-3008"></a> <span class='keyglyph'>]</span>-<a name="line-3009"></a>-<a name="line-3010"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-3011"></a>-<a name="line-3012"></a><a name="isUnicodeSm"></a><span class='definition'>isUnicodeSm</span> <span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-3013"></a><span class='definition'>isUnicodeSm</span> <span class='varid'>c</span>-<a name="line-3014"></a> <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>-<a name="line-3015"></a> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'+'</span><span class='layout'>,</span><span class='chr'>'+'</span><span class='layout'>)</span>-<a name="line-3016"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'<'</span><span class='layout'>,</span><span class='chr'>'>'</span><span class='layout'>)</span>-<a name="line-3017"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'|'</span><span class='layout'>,</span><span class='chr'>'|'</span><span class='layout'>)</span>-<a name="line-3018"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'~'</span><span class='layout'>,</span><span class='chr'>'~'</span><span class='layout'>)</span>-<a name="line-3019"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\172'</span><span class='layout'>,</span><span class='chr'>'\172'</span><span class='layout'>)</span>-<a name="line-3020"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\177'</span><span class='layout'>,</span><span class='chr'>'\177'</span><span class='layout'>)</span>-<a name="line-3021"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\215'</span><span class='layout'>,</span><span class='chr'>'\215'</span><span class='layout'>)</span>-<a name="line-3022"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\247'</span><span class='layout'>,</span><span class='chr'>'\247'</span><span class='layout'>)</span>-<a name="line-3023"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1014'</span><span class='layout'>,</span><span class='chr'>'\1014'</span><span class='layout'>)</span>-<a name="line-3024"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8260'</span><span class='layout'>,</span><span class='chr'>'\8260'</span><span class='layout'>)</span>-<a name="line-3025"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8274'</span><span class='layout'>,</span><span class='chr'>'\8274'</span><span class='layout'>)</span>-<a name="line-3026"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8314'</span><span class='layout'>,</span><span class='chr'>'\8316'</span><span class='layout'>)</span>-<a name="line-3027"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8330'</span><span class='layout'>,</span><span class='chr'>'\8332'</span><span class='layout'>)</span>-<a name="line-3028"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8512'</span><span class='layout'>,</span><span class='chr'>'\8516'</span><span class='layout'>)</span>-<a name="line-3029"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8523'</span><span class='layout'>,</span><span class='chr'>'\8523'</span><span class='layout'>)</span>-<a name="line-3030"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8592'</span><span class='layout'>,</span><span class='chr'>'\8596'</span><span class='layout'>)</span>-<a name="line-3031"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8602'</span><span class='layout'>,</span><span class='chr'>'\8603'</span><span class='layout'>)</span>-<a name="line-3032"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8608'</span><span class='layout'>,</span><span class='chr'>'\8608'</span><span class='layout'>)</span>-<a name="line-3033"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8611'</span><span class='layout'>,</span><span class='chr'>'\8611'</span><span class='layout'>)</span>-<a name="line-3034"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8614'</span><span class='layout'>,</span><span class='chr'>'\8614'</span><span class='layout'>)</span>-<a name="line-3035"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8622'</span><span class='layout'>,</span><span class='chr'>'\8622'</span><span class='layout'>)</span>-<a name="line-3036"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8654'</span><span class='layout'>,</span><span class='chr'>'\8655'</span><span class='layout'>)</span>-<a name="line-3037"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8658'</span><span class='layout'>,</span><span class='chr'>'\8658'</span><span class='layout'>)</span>-<a name="line-3038"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8660'</span><span class='layout'>,</span><span class='chr'>'\8660'</span><span class='layout'>)</span>-<a name="line-3039"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8692'</span><span class='layout'>,</span><span class='chr'>'\8959'</span><span class='layout'>)</span>-<a name="line-3040"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8968'</span><span class='layout'>,</span><span class='chr'>'\8971'</span><span class='layout'>)</span>-<a name="line-3041"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8992'</span><span class='layout'>,</span><span class='chr'>'\8993'</span><span class='layout'>)</span>-<a name="line-3042"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9084'</span><span class='layout'>,</span><span class='chr'>'\9084'</span><span class='layout'>)</span>-<a name="line-3043"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9115'</span><span class='layout'>,</span><span class='chr'>'\9139'</span><span class='layout'>)</span>-<a name="line-3044"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9180'</span><span class='layout'>,</span><span class='chr'>'\9185'</span><span class='layout'>)</span>-<a name="line-3045"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9655'</span><span class='layout'>,</span><span class='chr'>'\9655'</span><span class='layout'>)</span>-<a name="line-3046"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9665'</span><span class='layout'>,</span><span class='chr'>'\9665'</span><span class='layout'>)</span>-<a name="line-3047"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9720'</span><span class='layout'>,</span><span class='chr'>'\9727'</span><span class='layout'>)</span>-<a name="line-3048"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9839'</span><span class='layout'>,</span><span class='chr'>'\9839'</span><span class='layout'>)</span>-<a name="line-3049"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10176'</span><span class='layout'>,</span><span class='chr'>'\10180'</span><span class='layout'>)</span>-<a name="line-3050"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10183'</span><span class='layout'>,</span><span class='chr'>'\10186'</span><span class='layout'>)</span>-<a name="line-3051"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10192'</span><span class='layout'>,</span><span class='chr'>'\10213'</span><span class='layout'>)</span>-<a name="line-3052"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10224'</span><span class='layout'>,</span><span class='chr'>'\10239'</span><span class='layout'>)</span>-<a name="line-3053"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10496'</span><span class='layout'>,</span><span class='chr'>'\10626'</span><span class='layout'>)</span>-<a name="line-3054"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10649'</span><span class='layout'>,</span><span class='chr'>'\10711'</span><span class='layout'>)</span>-<a name="line-3055"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10716'</span><span class='layout'>,</span><span class='chr'>'\10747'</span><span class='layout'>)</span>-<a name="line-3056"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10750'</span><span class='layout'>,</span><span class='chr'>'\11007'</span><span class='layout'>)</span>-<a name="line-3057"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\64297'</span><span class='layout'>,</span><span class='chr'>'\64297'</span><span class='layout'>)</span>-<a name="line-3058"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65122'</span><span class='layout'>,</span><span class='chr'>'\65122'</span><span class='layout'>)</span>-<a name="line-3059"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65124'</span><span class='layout'>,</span><span class='chr'>'\65126'</span><span class='layout'>)</span>-<a name="line-3060"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65291'</span><span class='layout'>,</span><span class='chr'>'\65291'</span><span class='layout'>)</span>-<a name="line-3061"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65308'</span><span class='layout'>,</span><span class='chr'>'\65310'</span><span class='layout'>)</span>-<a name="line-3062"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65372'</span><span class='layout'>,</span><span class='chr'>'\65372'</span><span class='layout'>)</span>-<a name="line-3063"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65374'</span><span class='layout'>,</span><span class='chr'>'\65374'</span><span class='layout'>)</span>-<a name="line-3064"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65506'</span><span class='layout'>,</span><span class='chr'>'\65506'</span><span class='layout'>)</span>-<a name="line-3065"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65513'</span><span class='layout'>,</span><span class='chr'>'\65516'</span><span class='layout'>)</span>-<a name="line-3066"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120513'</span><span class='layout'>,</span><span class='chr'>'\120513'</span><span class='layout'>)</span>-<a name="line-3067"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120539'</span><span class='layout'>,</span><span class='chr'>'\120539'</span><span class='layout'>)</span>-<a name="line-3068"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120571'</span><span class='layout'>,</span><span class='chr'>'\120571'</span><span class='layout'>)</span>-<a name="line-3069"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120597'</span><span class='layout'>,</span><span class='chr'>'\120597'</span><span class='layout'>)</span>-<a name="line-3070"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120629'</span><span class='layout'>,</span><span class='chr'>'\120629'</span><span class='layout'>)</span>-<a name="line-3071"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120655'</span><span class='layout'>,</span><span class='chr'>'\120655'</span><span class='layout'>)</span>-<a name="line-3072"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120687'</span><span class='layout'>,</span><span class='chr'>'\120687'</span><span class='layout'>)</span>-<a name="line-3073"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120713'</span><span class='layout'>,</span><span class='chr'>'\120713'</span><span class='layout'>)</span>-<a name="line-3074"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120745'</span><span class='layout'>,</span><span class='chr'>'\120745'</span><span class='layout'>)</span>-<a name="line-3075"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\120771'</span><span class='layout'>,</span><span class='chr'>'\120771'</span><span class='layout'>)</span>-<a name="line-3076"></a> <span class='keyglyph'>]</span>-<a name="line-3077"></a>-<a name="line-3078"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-3079"></a>-<a name="line-3080"></a><a name="isUnicodeSo"></a><span class='definition'>isUnicodeSo</span> <span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-3081"></a><span class='definition'>isUnicodeSo</span> <span class='varid'>c</span>-<a name="line-3082"></a> <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>-<a name="line-3083"></a> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\166'</span><span class='layout'>,</span><span class='chr'>'\167'</span><span class='layout'>)</span>-<a name="line-3084"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\169'</span><span class='layout'>,</span><span class='chr'>'\169'</span><span class='layout'>)</span>-<a name="line-3085"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\174'</span><span class='layout'>,</span><span class='chr'>'\174'</span><span class='layout'>)</span>-<a name="line-3086"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\176'</span><span class='layout'>,</span><span class='chr'>'\176'</span><span class='layout'>)</span>-<a name="line-3087"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\182'</span><span class='layout'>,</span><span class='chr'>'\182'</span><span class='layout'>)</span>-<a name="line-3088"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1154'</span><span class='layout'>,</span><span class='chr'>'\1154'</span><span class='layout'>)</span>-<a name="line-3089"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1550'</span><span class='layout'>,</span><span class='chr'>'\1551'</span><span class='layout'>)</span>-<a name="line-3090"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1769'</span><span class='layout'>,</span><span class='chr'>'\1769'</span><span class='layout'>)</span>-<a name="line-3091"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\1789'</span><span class='layout'>,</span><span class='chr'>'\1790'</span><span class='layout'>)</span>-<a name="line-3092"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2038'</span><span class='layout'>,</span><span class='chr'>'\2038'</span><span class='layout'>)</span>-<a name="line-3093"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2554'</span><span class='layout'>,</span><span class='chr'>'\2554'</span><span class='layout'>)</span>-<a name="line-3094"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\2928'</span><span class='layout'>,</span><span class='chr'>'\2928'</span><span class='layout'>)</span>-<a name="line-3095"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3059'</span><span class='layout'>,</span><span class='chr'>'\3064'</span><span class='layout'>)</span>-<a name="line-3096"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3066'</span><span class='layout'>,</span><span class='chr'>'\3066'</span><span class='layout'>)</span>-<a name="line-3097"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3313'</span><span class='layout'>,</span><span class='chr'>'\3314'</span><span class='layout'>)</span>-<a name="line-3098"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3841'</span><span class='layout'>,</span><span class='chr'>'\3843'</span><span class='layout'>)</span>-<a name="line-3099"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3859'</span><span class='layout'>,</span><span class='chr'>'\3863'</span><span class='layout'>)</span>-<a name="line-3100"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3866'</span><span class='layout'>,</span><span class='chr'>'\3871'</span><span class='layout'>)</span>-<a name="line-3101"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3892'</span><span class='layout'>,</span><span class='chr'>'\3892'</span><span class='layout'>)</span>-<a name="line-3102"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3894'</span><span class='layout'>,</span><span class='chr'>'\3894'</span><span class='layout'>)</span>-<a name="line-3103"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\3896'</span><span class='layout'>,</span><span class='chr'>'\3896'</span><span class='layout'>)</span>-<a name="line-3104"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4030'</span><span class='layout'>,</span><span class='chr'>'\4037'</span><span class='layout'>)</span>-<a name="line-3105"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4039'</span><span class='layout'>,</span><span class='chr'>'\4044'</span><span class='layout'>)</span>-<a name="line-3106"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4047'</span><span class='layout'>,</span><span class='chr'>'\4047'</span><span class='layout'>)</span>-<a name="line-3107"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\4960'</span><span class='layout'>,</span><span class='chr'>'\4960'</span><span class='layout'>)</span>-<a name="line-3108"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5008'</span><span class='layout'>,</span><span class='chr'>'\5017'</span><span class='layout'>)</span>-<a name="line-3109"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6464'</span><span class='layout'>,</span><span class='chr'>'\6464'</span><span class='layout'>)</span>-<a name="line-3110"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6624'</span><span class='layout'>,</span><span class='chr'>'\6655'</span><span class='layout'>)</span>-<a name="line-3111"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7009'</span><span class='layout'>,</span><span class='chr'>'\7018'</span><span class='layout'>)</span>-<a name="line-3112"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\7028'</span><span class='layout'>,</span><span class='chr'>'\7036'</span><span class='layout'>)</span>-<a name="line-3113"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8448'</span><span class='layout'>,</span><span class='chr'>'\8449'</span><span class='layout'>)</span>-<a name="line-3114"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8451'</span><span class='layout'>,</span><span class='chr'>'\8454'</span><span class='layout'>)</span>-<a name="line-3115"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8456'</span><span class='layout'>,</span><span class='chr'>'\8457'</span><span class='layout'>)</span>-<a name="line-3116"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8468'</span><span class='layout'>,</span><span class='chr'>'\8468'</span><span class='layout'>)</span>-<a name="line-3117"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8470'</span><span class='layout'>,</span><span class='chr'>'\8472'</span><span class='layout'>)</span>-<a name="line-3118"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8478'</span><span class='layout'>,</span><span class='chr'>'\8483'</span><span class='layout'>)</span>-<a name="line-3119"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8485'</span><span class='layout'>,</span><span class='chr'>'\8485'</span><span class='layout'>)</span>-<a name="line-3120"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8487'</span><span class='layout'>,</span><span class='chr'>'\8487'</span><span class='layout'>)</span>-<a name="line-3121"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8489'</span><span class='layout'>,</span><span class='chr'>'\8489'</span><span class='layout'>)</span>-<a name="line-3122"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8494'</span><span class='layout'>,</span><span class='chr'>'\8494'</span><span class='layout'>)</span>-<a name="line-3123"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8506'</span><span class='layout'>,</span><span class='chr'>'\8507'</span><span class='layout'>)</span>-<a name="line-3124"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8522'</span><span class='layout'>,</span><span class='chr'>'\8522'</span><span class='layout'>)</span>-<a name="line-3125"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8524'</span><span class='layout'>,</span><span class='chr'>'\8525'</span><span class='layout'>)</span>-<a name="line-3126"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8597'</span><span class='layout'>,</span><span class='chr'>'\8601'</span><span class='layout'>)</span>-<a name="line-3127"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8604'</span><span class='layout'>,</span><span class='chr'>'\8607'</span><span class='layout'>)</span>-<a name="line-3128"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8609'</span><span class='layout'>,</span><span class='chr'>'\8610'</span><span class='layout'>)</span>-<a name="line-3129"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8612'</span><span class='layout'>,</span><span class='chr'>'\8613'</span><span class='layout'>)</span>-<a name="line-3130"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8615'</span><span class='layout'>,</span><span class='chr'>'\8621'</span><span class='layout'>)</span>-<a name="line-3131"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8623'</span><span class='layout'>,</span><span class='chr'>'\8653'</span><span class='layout'>)</span>-<a name="line-3132"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8656'</span><span class='layout'>,</span><span class='chr'>'\8657'</span><span class='layout'>)</span>-<a name="line-3133"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8659'</span><span class='layout'>,</span><span class='chr'>'\8659'</span><span class='layout'>)</span>-<a name="line-3134"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8661'</span><span class='layout'>,</span><span class='chr'>'\8691'</span><span class='layout'>)</span>-<a name="line-3135"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8960'</span><span class='layout'>,</span><span class='chr'>'\8967'</span><span class='layout'>)</span>-<a name="line-3136"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8972'</span><span class='layout'>,</span><span class='chr'>'\8991'</span><span class='layout'>)</span>-<a name="line-3137"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8994'</span><span class='layout'>,</span><span class='chr'>'\9000'</span><span class='layout'>)</span>-<a name="line-3138"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9003'</span><span class='layout'>,</span><span class='chr'>'\9083'</span><span class='layout'>)</span>-<a name="line-3139"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9085'</span><span class='layout'>,</span><span class='chr'>'\9114'</span><span class='layout'>)</span>-<a name="line-3140"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9140'</span><span class='layout'>,</span><span class='chr'>'\9179'</span><span class='layout'>)</span>-<a name="line-3141"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9186'</span><span class='layout'>,</span><span class='chr'>'\9191'</span><span class='layout'>)</span>-<a name="line-3142"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9216'</span><span class='layout'>,</span><span class='chr'>'\9254'</span><span class='layout'>)</span>-<a name="line-3143"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9280'</span><span class='layout'>,</span><span class='chr'>'\9290'</span><span class='layout'>)</span>-<a name="line-3144"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9372'</span><span class='layout'>,</span><span class='chr'>'\9449'</span><span class='layout'>)</span>-<a name="line-3145"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9472'</span><span class='layout'>,</span><span class='chr'>'\9654'</span><span class='layout'>)</span>-<a name="line-3146"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9656'</span><span class='layout'>,</span><span class='chr'>'\9664'</span><span class='layout'>)</span>-<a name="line-3147"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9666'</span><span class='layout'>,</span><span class='chr'>'\9719'</span><span class='layout'>)</span>-<a name="line-3148"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9728'</span><span class='layout'>,</span><span class='chr'>'\9838'</span><span class='layout'>)</span>-<a name="line-3149"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9840'</span><span class='layout'>,</span><span class='chr'>'\9884'</span><span class='layout'>)</span>-<a name="line-3150"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9888'</span><span class='layout'>,</span><span class='chr'>'\9906'</span><span class='layout'>)</span>-<a name="line-3151"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9985'</span><span class='layout'>,</span><span class='chr'>'\9988'</span><span class='layout'>)</span>-<a name="line-3152"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9990'</span><span class='layout'>,</span><span class='chr'>'\9993'</span><span class='layout'>)</span>-<a name="line-3153"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\9996'</span><span class='layout'>,</span><span class='chr'>'\10023'</span><span class='layout'>)</span>-<a name="line-3154"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10025'</span><span class='layout'>,</span><span class='chr'>'\10059'</span><span class='layout'>)</span>-<a name="line-3155"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10061'</span><span class='layout'>,</span><span class='chr'>'\10061'</span><span class='layout'>)</span>-<a name="line-3156"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10063'</span><span class='layout'>,</span><span class='chr'>'\10066'</span><span class='layout'>)</span>-<a name="line-3157"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10070'</span><span class='layout'>,</span><span class='chr'>'\10070'</span><span class='layout'>)</span>-<a name="line-3158"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10072'</span><span class='layout'>,</span><span class='chr'>'\10078'</span><span class='layout'>)</span>-<a name="line-3159"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10081'</span><span class='layout'>,</span><span class='chr'>'\10087'</span><span class='layout'>)</span>-<a name="line-3160"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10132'</span><span class='layout'>,</span><span class='chr'>'\10132'</span><span class='layout'>)</span>-<a name="line-3161"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10136'</span><span class='layout'>,</span><span class='chr'>'\10159'</span><span class='layout'>)</span>-<a name="line-3162"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10161'</span><span class='layout'>,</span><span class='chr'>'\10174'</span><span class='layout'>)</span>-<a name="line-3163"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\10240'</span><span class='layout'>,</span><span class='chr'>'\10495'</span><span class='layout'>)</span>-<a name="line-3164"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11008'</span><span class='layout'>,</span><span class='chr'>'\11034'</span><span class='layout'>)</span>-<a name="line-3165"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11040'</span><span class='layout'>,</span><span class='chr'>'\11043'</span><span class='layout'>)</span>-<a name="line-3166"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11493'</span><span class='layout'>,</span><span class='chr'>'\11498'</span><span class='layout'>)</span>-<a name="line-3167"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11904'</span><span class='layout'>,</span><span class='chr'>'\11929'</span><span class='layout'>)</span>-<a name="line-3168"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\11931'</span><span class='layout'>,</span><span class='chr'>'\12019'</span><span class='layout'>)</span>-<a name="line-3169"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12032'</span><span class='layout'>,</span><span class='chr'>'\12245'</span><span class='layout'>)</span>-<a name="line-3170"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12272'</span><span class='layout'>,</span><span class='chr'>'\12283'</span><span class='layout'>)</span>-<a name="line-3171"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12292'</span><span class='layout'>,</span><span class='chr'>'\12292'</span><span class='layout'>)</span>-<a name="line-3172"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12306'</span><span class='layout'>,</span><span class='chr'>'\12307'</span><span class='layout'>)</span>-<a name="line-3173"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12320'</span><span class='layout'>,</span><span class='chr'>'\12320'</span><span class='layout'>)</span>-<a name="line-3174"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12342'</span><span class='layout'>,</span><span class='chr'>'\12343'</span><span class='layout'>)</span>-<a name="line-3175"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12350'</span><span class='layout'>,</span><span class='chr'>'\12351'</span><span class='layout'>)</span>-<a name="line-3176"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12688'</span><span class='layout'>,</span><span class='chr'>'\12689'</span><span class='layout'>)</span>-<a name="line-3177"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12694'</span><span class='layout'>,</span><span class='chr'>'\12703'</span><span class='layout'>)</span>-<a name="line-3178"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12736'</span><span class='layout'>,</span><span class='chr'>'\12751'</span><span class='layout'>)</span>-<a name="line-3179"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12800'</span><span class='layout'>,</span><span class='chr'>'\12830'</span><span class='layout'>)</span>-<a name="line-3180"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12842'</span><span class='layout'>,</span><span class='chr'>'\12867'</span><span class='layout'>)</span>-<a name="line-3181"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12880'</span><span class='layout'>,</span><span class='chr'>'\12880'</span><span class='layout'>)</span>-<a name="line-3182"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12896'</span><span class='layout'>,</span><span class='chr'>'\12927'</span><span class='layout'>)</span>-<a name="line-3183"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12938'</span><span class='layout'>,</span><span class='chr'>'\12976'</span><span class='layout'>)</span>-<a name="line-3184"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12992'</span><span class='layout'>,</span><span class='chr'>'\13054'</span><span class='layout'>)</span>-<a name="line-3185"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\13056'</span><span class='layout'>,</span><span class='chr'>'\13311'</span><span class='layout'>)</span>-<a name="line-3186"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\19904'</span><span class='layout'>,</span><span class='chr'>'\19967'</span><span class='layout'>)</span>-<a name="line-3187"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\42128'</span><span class='layout'>,</span><span class='chr'>'\42182'</span><span class='layout'>)</span>-<a name="line-3188"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\43048'</span><span class='layout'>,</span><span class='chr'>'\43051'</span><span class='layout'>)</span>-<a name="line-3189"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65021'</span><span class='layout'>,</span><span class='chr'>'\65021'</span><span class='layout'>)</span>-<a name="line-3190"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65508'</span><span class='layout'>,</span><span class='chr'>'\65508'</span><span class='layout'>)</span>-<a name="line-3191"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65512'</span><span class='layout'>,</span><span class='chr'>'\65512'</span><span class='layout'>)</span>-<a name="line-3192"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65517'</span><span class='layout'>,</span><span class='chr'>'\65518'</span><span class='layout'>)</span>-<a name="line-3193"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65532'</span><span class='layout'>,</span><span class='chr'>'\65533'</span><span class='layout'>)</span>-<a name="line-3194"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65794'</span><span class='layout'>,</span><span class='chr'>'\65794'</span><span class='layout'>)</span>-<a name="line-3195"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65847'</span><span class='layout'>,</span><span class='chr'>'\65855'</span><span class='layout'>)</span>-<a name="line-3196"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\65913'</span><span class='layout'>,</span><span class='chr'>'\65929'</span><span class='layout'>)</span>-<a name="line-3197"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\118784'</span><span class='layout'>,</span><span class='chr'>'\119029'</span><span class='layout'>)</span>-<a name="line-3198"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119040'</span><span class='layout'>,</span><span class='chr'>'\119078'</span><span class='layout'>)</span>-<a name="line-3199"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119082'</span><span class='layout'>,</span><span class='chr'>'\119140'</span><span class='layout'>)</span>-<a name="line-3200"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119146'</span><span class='layout'>,</span><span class='chr'>'\119148'</span><span class='layout'>)</span>-<a name="line-3201"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119171'</span><span class='layout'>,</span><span class='chr'>'\119172'</span><span class='layout'>)</span>-<a name="line-3202"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119180'</span><span class='layout'>,</span><span class='chr'>'\119209'</span><span class='layout'>)</span>-<a name="line-3203"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119214'</span><span class='layout'>,</span><span class='chr'>'\119261'</span><span class='layout'>)</span>-<a name="line-3204"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119296'</span><span class='layout'>,</span><span class='chr'>'\119361'</span><span class='layout'>)</span>-<a name="line-3205"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119365'</span><span class='layout'>,</span><span class='chr'>'\119365'</span><span class='layout'>)</span>-<a name="line-3206"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\119552'</span><span class='layout'>,</span><span class='chr'>'\119638'</span><span class='layout'>)</span>-<a name="line-3207"></a> <span class='keyglyph'>]</span>-<a name="line-3208"></a>-<a name="line-3209"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-3210"></a>-<a name="line-3211"></a><a name="isUnicodeZ"></a><span class='definition'>isUnicodeZ</span> <span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-3212"></a><span class='definition'>isUnicodeZ</span> <span class='varid'>c</span>-<a name="line-3213"></a> <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>-<a name="line-3214"></a> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>' '</span><span class='layout'>,</span><span class='chr'>' '</span><span class='layout'>)</span>-<a name="line-3215"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\160'</span><span class='layout'>,</span><span class='chr'>'\160'</span><span class='layout'>)</span>-<a name="line-3216"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5760'</span><span class='layout'>,</span><span class='chr'>'\5760'</span><span class='layout'>)</span>-<a name="line-3217"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6158'</span><span class='layout'>,</span><span class='chr'>'\6158'</span><span class='layout'>)</span>-<a name="line-3218"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8192'</span><span class='layout'>,</span><span class='chr'>'\8202'</span><span class='layout'>)</span>-<a name="line-3219"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8232'</span><span class='layout'>,</span><span class='chr'>'\8233'</span><span class='layout'>)</span>-<a name="line-3220"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8239'</span><span class='layout'>,</span><span class='chr'>'\8239'</span><span class='layout'>)</span>-<a name="line-3221"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8287'</span><span class='layout'>,</span><span class='chr'>'\8287'</span><span class='layout'>)</span>-<a name="line-3222"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12288'</span><span class='layout'>,</span><span class='chr'>'\12288'</span><span class='layout'>)</span>-<a name="line-3223"></a> <span class='keyglyph'>]</span>-<a name="line-3224"></a>-<a name="line-3225"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-3226"></a>-<a name="line-3227"></a><a name="isUnicodeZl"></a><span class='definition'>isUnicodeZl</span> <span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-3228"></a><span class='definition'>isUnicodeZl</span> <span class='varid'>c</span>-<a name="line-3229"></a> <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>-<a name="line-3230"></a> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\8232'</span><span class='layout'>,</span><span class='chr'>'\8232'</span><span class='layout'>)</span>-<a name="line-3231"></a> <span class='keyglyph'>]</span>-<a name="line-3232"></a>-<a name="line-3233"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-3234"></a>-<a name="line-3235"></a><a name="isUnicodeZp"></a><span class='definition'>isUnicodeZp</span> <span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-3236"></a><span class='definition'>isUnicodeZp</span> <span class='varid'>c</span>-<a name="line-3237"></a> <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>-<a name="line-3238"></a> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'\8233'</span><span class='layout'>,</span><span class='chr'>'\8233'</span><span class='layout'>)</span>-<a name="line-3239"></a> <span class='keyglyph'>]</span>-<a name="line-3240"></a>-<a name="line-3241"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-3242"></a>-<a name="line-3243"></a><a name="isUnicodeZs"></a><span class='definition'>isUnicodeZs</span> <span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-3244"></a><span class='definition'>isUnicodeZs</span> <span class='varid'>c</span>-<a name="line-3245"></a> <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>-<a name="line-3246"></a> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>' '</span><span class='layout'>,</span><span class='chr'>' '</span><span class='layout'>)</span>-<a name="line-3247"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\160'</span><span class='layout'>,</span><span class='chr'>'\160'</span><span class='layout'>)</span>-<a name="line-3248"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\5760'</span><span class='layout'>,</span><span class='chr'>'\5760'</span><span class='layout'>)</span>-<a name="line-3249"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\6158'</span><span class='layout'>,</span><span class='chr'>'\6158'</span><span class='layout'>)</span>-<a name="line-3250"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8192'</span><span class='layout'>,</span><span class='chr'>'\8202'</span><span class='layout'>)</span>-<a name="line-3251"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8239'</span><span class='layout'>,</span><span class='chr'>'\8239'</span><span class='layout'>)</span>-<a name="line-3252"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\8287'</span><span class='layout'>,</span><span class='chr'>'\8287'</span><span class='layout'>)</span>-<a name="line-3253"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'\12288'</span><span class='layout'>,</span><span class='chr'>'\12288'</span><span class='layout'>)</span>-<a name="line-3254"></a> <span class='keyglyph'>]</span>-<a name="line-3255"></a>-<a name="line-3256"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-3257"></a>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-RelaxNG-Utils.html
@@ -1,171 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Text.XML.HXT.RelaxNG.Utils-<a name="line-5"></a> Copyright : Copyright (C) 2008 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe@fh-wedel.de)-<a name="line-9"></a> Stability : stable-<a name="line-10"></a> Portability: portable-<a name="line-11"></a>-<a name="line-12"></a> Helper functions for RelaxNG validation-<a name="line-13"></a>-<a name="line-14"></a>-}</span>-<a name="line-15"></a>-<a name="line-16"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-17"></a>-<a name="line-18"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>Utils</span>-<a name="line-19"></a> <span class='layout'>(</span> <span class='varid'>isRelaxAnyURI</span>-<a name="line-20"></a> <span class='layout'>,</span> <span class='varid'>compareURI</span>-<a name="line-21"></a> <span class='layout'>,</span> <span class='varid'>normalizeURI</span>-<a name="line-22"></a> <span class='layout'>,</span> <span class='varid'>isNumber</span>-<a name="line-23"></a> <span class='layout'>,</span> <span class='varid'>isNmtoken</span>-<a name="line-24"></a> <span class='layout'>,</span> <span class='varid'>isName</span>-<a name="line-25"></a> <span class='layout'>,</span> <span class='varid'>formatStringList</span>-<a name="line-26"></a> <span class='layout'>,</span> <span class='varid'>formatStringListPatt</span>-<a name="line-27"></a> <span class='layout'>,</span> <span class='varid'>formatStringListId</span>-<a name="line-28"></a> <span class='layout'>,</span> <span class='varid'>formatStringListQuot</span>-<a name="line-29"></a> <span class='layout'>,</span> <span class='varid'>formatStringListPairs</span>-<a name="line-30"></a> <span class='layout'>,</span> <span class='varid'>formatStringListArr</span>-<a name="line-31"></a> <span class='layout'>)</span>-<a name="line-32"></a><span class='keyword'>where</span>-<a name="line-33"></a>-<a name="line-34"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>ParserCombinators</span><span class='varop'>.</span><span class='conid'>Parsec</span>-<a name="line-35"></a>-<a name="line-36"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Parser</span><span class='varop'>.</span><span class='conid'>XmlTokenParser</span>-<a name="line-37"></a> <span class='layout'>(</span> <span class='varid'>skipS0</span>-<a name="line-38"></a> <span class='layout'>,</span> <span class='varid'>nmtoken</span>-<a name="line-39"></a> <span class='layout'>,</span> <span class='varid'>name</span>-<a name="line-40"></a> <span class='layout'>)</span>-<a name="line-41"></a>-<a name="line-42"></a><span class='keyword'>import</span> <span class='conid'>Network</span><span class='varop'>.</span><span class='conid'>URI</span>-<a name="line-43"></a> <span class='layout'>(</span> <span class='varid'>isURI</span>-<a name="line-44"></a> <span class='layout'>,</span> <span class='varid'>isRelativeReference</span>-<a name="line-45"></a> <span class='layout'>,</span> <span class='varid'>parseURI</span>-<a name="line-46"></a> <span class='layout'>,</span> <span class='conid'>URI</span><span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span>-<a name="line-47"></a> <span class='layout'>)</span>-<a name="line-48"></a>-<a name="line-49"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>-<a name="line-50"></a> <span class='layout'>(</span> <span class='varid'>fromMaybe</span>-<a name="line-51"></a> <span class='layout'>)</span>-<a name="line-52"></a>-<a name="line-53"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Char</span>-<a name="line-54"></a> <span class='layout'>(</span> <span class='varid'>toLower</span>-<a name="line-55"></a> <span class='layout'>)</span>-<a name="line-56"></a>-<a name="line-57"></a>-<a name="line-58"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-59"></a>-<a name="line-60"></a>-<a name="line-61"></a><span class='comment'>-- | Tests whether a URI matches the Relax NG anyURI symbol</span>-<a name="line-62"></a>-<a name="line-63"></a><a name="isRelaxAnyURI"></a><span class='definition'>isRelaxAnyURI</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-64"></a><span class='definition'>isRelaxAnyURI</span> <span class='varid'>s</span> -<a name="line-65"></a> <span class='keyglyph'>=</span> <span class='varid'>s</span> <span class='varop'>==</span> <span class='str'>""</span> <span class='varop'>||</span>-<a name="line-66"></a> <span class='layout'>(</span> <span class='varid'>isURI</span> <span class='varid'>s</span> <span class='varop'>&&</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>isRelativeReference</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='varop'>&&</span>-<a name="line-67"></a> <span class='layout'>(</span> <span class='keyword'>let</span> <span class='layout'>(</span><span class='conid'>URI</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='varid'>path</span> <span class='keyword'>_</span> <span class='varid'>frag</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>fromMaybe</span> <span class='layout'>(</span><span class='conid'>URI</span> <span class='str'>""</span> <span class='conid'>Nothing</span> <span class='str'>""</span> <span class='str'>""</span> <span class='str'>""</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>parseURI</span> <span class='varid'>s</span>-<a name="line-68"></a> <span class='keyword'>in</span> <span class='layout'>(</span><span class='varid'>frag</span> <span class='varop'>==</span> <span class='str'>""</span> <span class='varop'>&&</span> <span class='varid'>path</span> <span class='varop'>/=</span> <span class='str'>""</span><span class='layout'>)</span>-<a name="line-69"></a> <span class='layout'>)</span>-<a name="line-70"></a> <span class='layout'>)</span>-<a name="line-71"></a>-<a name="line-72"></a>-<a name="line-73"></a><span class='comment'>-- | Tests whether two URIs are equal after 'normalizeURI' is performed</span>-<a name="line-74"></a>-<a name="line-75"></a><a name="compareURI"></a><span class='definition'>compareURI</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-76"></a><span class='definition'>compareURI</span> <span class='varid'>uri1</span> <span class='varid'>uri2</span>-<a name="line-77"></a> <span class='keyglyph'>=</span> <span class='varid'>normalizeURI</span> <span class='varid'>uri1</span> <span class='varop'>==</span> <span class='varid'>normalizeURI</span> <span class='varid'>uri2</span>-<a name="line-78"></a>-<a name="line-79"></a>-<a name="line-80"></a><span class='comment'>-- | Converts all letters to the corresponding lower-case letter </span>-<a name="line-81"></a><span class='comment'>-- and removes a trailing \"\/\" </span>-<a name="line-82"></a>-<a name="line-83"></a><a name="normalizeURI"></a><span class='definition'>normalizeURI</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-84"></a><span class='definition'>normalizeURI</span> <span class='str'>""</span>-<a name="line-85"></a> <span class='keyglyph'>=</span> <span class='str'>""</span>-<a name="line-86"></a><span class='definition'>normalizeURI</span> <span class='varid'>uri</span>-<a name="line-87"></a> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>toLower</span> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>last</span> <span class='varid'>uri</span> <span class='varop'>==</span> <span class='chr'>'/'</span>-<a name="line-88"></a> <span class='keyword'>then</span> <span class='varid'>init</span> <span class='varid'>uri</span>-<a name="line-89"></a> <span class='keyword'>else</span> <span class='varid'>uri</span>-<a name="line-90"></a> <span class='layout'>)</span>-<a name="line-91"></a>-<a name="line-92"></a><a name="checkByParsing"></a><span class='definition'>checkByParsing</span> <span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-93"></a><span class='definition'>checkByParsing</span> <span class='varid'>p</span> <span class='varid'>s</span>-<a name="line-94"></a> <span class='keyglyph'>=</span> <span class='varid'>either</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='conid'>False</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='conid'>True</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>parse</span> <span class='varid'>p'</span> <span class='str'>""</span> <span class='varid'>s</span><span class='layout'>)</span>-<a name="line-95"></a> <span class='keyword'>where</span>-<a name="line-96"></a> <span class='varid'>p'</span> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-97"></a> <span class='varid'>r</span> <span class='keyglyph'><-</span> <span class='varid'>p</span>-<a name="line-98"></a> <span class='varid'>eof</span>-<a name="line-99"></a> <span class='varid'>return</span> <span class='varid'>r</span>-<a name="line-100"></a>-<a name="line-101"></a><a name="isNumber"></a><span class='comment'>-- | Tests whether a string matches a number [-](0-9)*</span>-<a name="line-102"></a><span class='definition'>isNumber</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-103"></a><span class='definition'>isNumber</span>-<a name="line-104"></a> <span class='keyglyph'>=</span> <span class='varid'>checkByParsing</span> <span class='varid'>parseNumber'</span>-<a name="line-105"></a> <span class='keyword'>where</span>-<a name="line-106"></a> <span class='varid'>parseNumber'</span> <span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>String</span>-<a name="line-107"></a> <span class='varid'>parseNumber'</span>-<a name="line-108"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-109"></a> <span class='varid'>skipS0</span>-<a name="line-110"></a> <span class='varid'>m</span> <span class='keyglyph'><-</span> <span class='varid'>option</span> <span class='str'>""</span> <span class='layout'>(</span><span class='varid'>string</span> <span class='str'>"-"</span><span class='layout'>)</span>-<a name="line-111"></a> <span class='varid'>n</span> <span class='keyglyph'><-</span> <span class='varid'>many1</span> <span class='varid'>digit</span>-<a name="line-112"></a> <span class='varid'>skipS0</span>-<a name="line-113"></a> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>m</span> <span class='varop'>++</span> <span class='varid'>n</span>-<a name="line-114"></a>-<a name="line-115"></a><a name="isNmtoken"></a><span class='definition'>isNmtoken</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-116"></a><span class='definition'>isNmtoken</span> <span class='keyglyph'>=</span> <span class='varid'>checkByParsing</span> <span class='varid'>nmtoken</span>-<a name="line-117"></a>-<a name="line-118"></a><a name="isName"></a><span class='definition'>isName</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-119"></a><span class='definition'>isName</span> <span class='keyglyph'>=</span> <span class='varid'>checkByParsing</span> <span class='varid'>name</span>-<a name="line-120"></a>-<a name="line-121"></a><span class='comment'>{- | -<a name="line-122"></a>-<a name="line-123"></a>Formats a list of strings into a single string.-<a name="line-124"></a>The first parameter formats the elements, the 2. is inserted-<a name="line-125"></a>between two elements.-<a name="line-126"></a>-<a name="line-127"></a>example:-<a name="line-128"></a>-<a name="line-129"></a>> formatStringList show ", " ["foo", "bar", "baz"] -> "foo", "bar", "baz"-<a name="line-130"></a>-<a name="line-131"></a>-}</span>-<a name="line-132"></a>-<a name="line-133"></a><a name="formatStringListPatt"></a><span class='definition'>formatStringListPatt</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-134"></a><span class='definition'>formatStringListPatt</span>-<a name="line-135"></a> <span class='keyglyph'>=</span> <span class='varid'>formatStringList</span> <span class='layout'>(</span><span class='varop'>++</span> <span class='str'>"-"</span><span class='layout'>)</span> <span class='str'>", "</span>-<a name="line-136"></a>-<a name="line-137"></a><a name="formatStringListPairs"></a><span class='definition'>formatStringListPairs</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span><span class='conid'>String</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-138"></a><span class='definition'>formatStringListPairs</span>-<a name="line-139"></a> <span class='keyglyph'>=</span> <span class='varid'>formatStringList</span> <span class='varid'>id</span> <span class='str'>", "</span>-<a name="line-140"></a> <span class='varop'>.</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='varop'>++</span> <span class='str'>" = "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>b</span><span class='layout'>)</span>-<a name="line-141"></a>-<a name="line-142"></a><a name="formatStringListQuot"></a><span class='definition'>formatStringListQuot</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-143"></a><span class='definition'>formatStringListQuot</span>-<a name="line-144"></a> <span class='keyglyph'>=</span> <span class='varid'>formatStringList</span> <span class='varid'>show</span> <span class='str'>", "</span>-<a name="line-145"></a>-<a name="line-146"></a><a name="formatStringListId"></a><span class='definition'>formatStringListId</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-147"></a><span class='definition'>formatStringListId</span>-<a name="line-148"></a> <span class='keyglyph'>=</span> <span class='varid'>formatStringList</span> <span class='varid'>id</span> <span class='str'>", "</span>-<a name="line-149"></a>-<a name="line-150"></a><a name="formatStringListArr"></a><span class='definition'>formatStringListArr</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-151"></a><span class='definition'>formatStringListArr</span>-<a name="line-152"></a> <span class='keyglyph'>=</span> <span class='varid'>formatStringList</span> <span class='varid'>show</span> <span class='str'>" -> "</span>-<a name="line-153"></a>-<a name="line-154"></a><a name="formatStringList"></a><span class='definition'>formatStringList</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-155"></a><span class='definition'>formatStringList</span> <span class='sel'>_sf</span> <span class='sel'>_sp</span> <span class='conid'>[]</span>-<a name="line-156"></a> <span class='keyglyph'>=</span> <span class='str'>""</span>-<a name="line-157"></a><span class='definition'>formatStringList</span> <span class='varid'>sf</span> <span class='varid'>spacer</span> <span class='varid'>l</span>-<a name="line-158"></a> <span class='keyglyph'>=</span> <span class='varid'>reverse</span> <span class='varop'>$</span> <span class='varid'>drop</span> <span class='layout'>(</span><span class='varid'>length</span> <span class='varid'>spacer</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>reverse</span> <span class='varop'>$</span> -<a name="line-159"></a> <span class='varid'>foldr</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>e</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='layout'>(</span><span class='keyword'>if</span> <span class='varid'>e</span> <span class='varop'>/=</span> <span class='str'>""</span> <span class='keyword'>then</span> <span class='varid'>sf</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='varid'>spacer</span> <span class='keyword'>else</span> <span class='str'>""</span><span class='layout'>)</span> <span class='varop'>++</span><span class='layout'>)</span><span class='layout'>)</span> <span class='str'>""</span> <span class='varid'>l</span>-<a name="line-160"></a>-<a name="line-161"></a><span class='comment'>-- ----------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-RelaxNG-Validation.html
@@ -1,627 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Text.XML.HXT.RelaxNG.Validation-<a name="line-5"></a> Copyright : Copyright (C) 2008 Torben Kuseler, Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe@fh-wedel.de)-<a name="line-9"></a> Stability : stable-<a name="line-10"></a> Portability: portable-<a name="line-11"></a>-<a name="line-12"></a> Validation of a XML document with respect to a valid Relax NG schema in simple form.-<a name="line-13"></a> Copied and modified from \"An algorithm for RELAX NG validation\" by James Clark-<a name="line-14"></a> (<<a href="http://www.thaiopensource.com/relaxng/derivative.html">http://www.thaiopensource.com/relaxng/derivative.html</a>>).-<a name="line-15"></a>-<a name="line-16"></a>-}</span>-<a name="line-17"></a>-<a name="line-18"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-19"></a>-<a name="line-20"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>Validation</span>-<a name="line-21"></a> <span class='layout'>(</span> <span class='varid'>validateWithRelaxAndHandleErrors</span>-<a name="line-22"></a> <span class='layout'>,</span> <span class='varid'>validateDocWithRelax</span>-<a name="line-23"></a> <span class='layout'>,</span> <span class='varid'>validateRelax</span>-<a name="line-24"></a> <span class='layout'>,</span> <span class='varid'>validateXMLDoc</span>-<a name="line-25"></a> <span class='layout'>,</span> <span class='varid'>readForRelax</span>-<a name="line-26"></a> <span class='layout'>,</span> <span class='varid'>normalizeForRelaxValidation</span>-<a name="line-27"></a> <span class='layout'>,</span> <span class='varid'>contains</span>-<a name="line-28"></a> <span class='layout'>)</span>-<a name="line-29"></a><span class='keyword'>where</span>-<a name="line-30"></a>-<a name="line-31"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ListArrows</span>-<a name="line-32"></a>-<a name="line-33"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>-<a name="line-34"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlNode</span> <span class='keyword'>as</span> <span class='conid'>XN</span>-<a name="line-35"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Unicode</span>-<a name="line-36"></a> <span class='layout'>(</span> <span class='varid'>isXmlSpaceChar</span>-<a name="line-37"></a> <span class='layout'>)</span>-<a name="line-38"></a>-<a name="line-39"></a>-<a name="line-40"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlArrow</span>-<a name="line-41"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlIOStateArrow</span>-<a name="line-42"></a>-<a name="line-43"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>Edit</span>-<a name="line-44"></a> <span class='layout'>(</span> <span class='varid'>canonicalizeAllNodes</span>-<a name="line-45"></a> <span class='layout'>,</span> <span class='varid'>collapseAllXText</span>-<a name="line-46"></a> <span class='layout'>)</span>-<a name="line-47"></a>-<a name="line-48"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ProcessDocument</span>-<a name="line-49"></a> <span class='layout'>(</span> <span class='varid'>propagateAndValidateNamespaces</span>-<a name="line-50"></a> <span class='layout'>,</span> <span class='varid'>getDocumentContents</span>-<a name="line-51"></a> <span class='layout'>,</span> <span class='varid'>parseXmlDocument</span>-<a name="line-52"></a> <span class='layout'>)</span>-<a name="line-53"></a>-<a name="line-54"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>DataTypes</span>-<a name="line-55"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>CreatePattern</span>-<a name="line-56"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>PatternToString</span>-<a name="line-57"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>DataTypeLibraries</span>-<a name="line-58"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>Utils</span>-<a name="line-59"></a> <span class='layout'>(</span> <span class='varid'>formatStringListQuot</span>-<a name="line-60"></a> <span class='layout'>,</span> <span class='varid'>compareURI</span>-<a name="line-61"></a> <span class='layout'>)</span>-<a name="line-62"></a>-<a name="line-63"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>-<a name="line-64"></a> <span class='layout'>(</span> <span class='varid'>fromJust</span>-<a name="line-65"></a> <span class='layout'>)</span>-<a name="line-66"></a>-<a name="line-67"></a><span class='comment'>{--<a name="line-68"></a>import qualified Debug.Trace as T-<a name="line-69"></a>-}</span>-<a name="line-70"></a>-<a name="line-71"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-72"></a>-<a name="line-73"></a><a name="validateWithRelaxAndHandleErrors"></a><span class='definition'>validateWithRelaxAndHandleErrors</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-74"></a><span class='definition'>validateWithRelaxAndHandleErrors</span> <span class='varid'>theSchema</span>-<a name="line-75"></a> <span class='keyglyph'>=</span> <span class='varid'>validateWithRelax</span> <span class='varid'>theSchema</span>-<a name="line-76"></a> <span class='varop'>>>></span>-<a name="line-77"></a> <span class='varid'>handleErrors</span>-<a name="line-78"></a>-<a name="line-79"></a><a name="validateWithRelax"></a><span class='definition'>validateWithRelax</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-80"></a><span class='definition'>validateWithRelax</span> <span class='varid'>theSchema</span>-<a name="line-81"></a> <span class='keyglyph'>=</span> <span class='varid'>traceMsg</span> <span class='num'>2</span> <span class='str'>"validate with Relax NG schema"</span>-<a name="line-82"></a> <span class='varop'>>>></span>-<a name="line-83"></a> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>normalizeForRelaxValidation</span> <span class='comment'>-- prepare the document for validation</span>-<a name="line-84"></a> <span class='varop'>>>></span>-<a name="line-85"></a> <span class='varid'>getChildren</span>-<a name="line-86"></a> <span class='varop'>>>></span>-<a name="line-87"></a> <span class='varid'>isElem</span> <span class='comment'>-- and select the root element</span>-<a name="line-88"></a> <span class='layout'>)</span>-<a name="line-89"></a> <span class='varop'>&&&</span>-<a name="line-90"></a> <span class='varid'>theSchema</span>-<a name="line-91"></a> <span class='layout'>)</span>-<a name="line-92"></a> <span class='varop'>>>></span>-<a name="line-93"></a> <span class='varid'>arr2A</span> <span class='varid'>validateRelax</span> <span class='comment'>-- compute vaidation errors as a document</span>-<a name="line-94"></a>-<a name="line-95"></a><a name="handleErrors"></a><span class='definition'>handleErrors</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-96"></a><span class='definition'>handleErrors</span>-<a name="line-97"></a> <span class='keyglyph'>=</span> <span class='varid'>traceDoc</span> <span class='str'>"error found when validating with Relax NG schema"</span>-<a name="line-98"></a> <span class='varop'>>>></span>-<a name="line-99"></a> <span class='layout'>(</span> <span class='varid'>getChildren</span> <span class='comment'>-- prepare error format</span>-<a name="line-100"></a> <span class='varop'>>>></span>-<a name="line-101"></a> <span class='varid'>getText</span>-<a name="line-102"></a> <span class='varop'>>>></span>-<a name="line-103"></a> <span class='varid'>arr</span> <span class='layout'>(</span><span class='str'>"Relax NG validation: "</span> <span class='varop'>++</span><span class='layout'>)</span>-<a name="line-104"></a> <span class='varop'>>>></span>-<a name="line-105"></a> <span class='varid'>mkError</span> <span class='varid'>c_err</span>-<a name="line-106"></a> <span class='layout'>)</span>-<a name="line-107"></a> <span class='varop'>>>></span>-<a name="line-108"></a> <span class='varid'>filterErrorMsg</span> <span class='comment'>-- issue errors and set system status</span>-<a name="line-109"></a>-<a name="line-110"></a>-<a name="line-111"></a><span class='comment'>{- |-<a name="line-112"></a> normalize a document for validation with Relax NG: remove all namespace declaration attributes,-<a name="line-113"></a> remove all processing instructions and merge all sequences of text nodes into a single text node-<a name="line-114"></a>-}</span>-<a name="line-115"></a>-<a name="line-116"></a><a name="normalizeForRelaxValidation"></a><span class='definition'>normalizeForRelaxValidation</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-117"></a><span class='definition'>normalizeForRelaxValidation</span>-<a name="line-118"></a> <span class='keyglyph'>=</span> <span class='varid'>processTopDownWithAttrl</span>-<a name="line-119"></a> <span class='layout'>(</span>-<a name="line-120"></a> <span class='layout'>(</span> <span class='varid'>none</span> <span class='varop'>`when`</span> <span class='comment'>-- remove all namespace attributes</span>-<a name="line-121"></a> <span class='layout'>(</span> <span class='varid'>isAttr</span>-<a name="line-122"></a> <span class='varop'>>>></span> -<a name="line-123"></a> <span class='varid'>getNamespaceUri</span>-<a name="line-124"></a> <span class='varop'>>>></span>-<a name="line-125"></a> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>compareURI</span> <span class='varid'>xmlnsNamespace</span><span class='layout'>)</span>-<a name="line-126"></a> <span class='layout'>)</span>-<a name="line-127"></a> <span class='layout'>)</span>-<a name="line-128"></a> <span class='varop'>>>></span>-<a name="line-129"></a> <span class='layout'>(</span><span class='varid'>none</span> <span class='varop'>`when`</span> <span class='varid'>isPi</span><span class='layout'>)</span> <span class='comment'>-- processing instructions</span>-<a name="line-130"></a> <span class='layout'>)</span>-<a name="line-131"></a> <span class='varop'>>>></span>-<a name="line-132"></a> <span class='varid'>collapseAllXText</span> <span class='comment'>-- all text node sequences are merged into a single text node</span>-<a name="line-133"></a>-<a name="line-134"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-135"></a>-<a name="line-136"></a><span class='comment'>{- | Validates a xml document with respect to a Relax NG schema-<a name="line-137"></a>-<a name="line-138"></a> * 1.parameter : the arrow for computing the Relax NG schema-<a name="line-139"></a>-<a name="line-140"></a> - 2.parameter : list of options for reading and validating-<a name="line-141"></a> -<a name="line-142"></a> - 3.parameter : XML document URI-<a name="line-143"></a>-<a name="line-144"></a> - arrow-input : ignored-<a name="line-145"></a> -<a name="line-146"></a> - arrow-output : list of errors or 'none'-<a name="line-147"></a>-}</span> -<a name="line-148"></a>-<a name="line-149"></a><a name="validateDocWithRelax"></a><span class='definition'>validateDocWithRelax</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-150"></a><span class='definition'>validateDocWithRelax</span> <span class='varid'>theSchema</span> <span class='varid'>al</span> <span class='varid'>doc</span>-<a name="line-151"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>doc</span>-<a name="line-152"></a> <span class='keyword'>then</span> <span class='varid'>root</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-153"></a> <span class='keyword'>else</span> <span class='varid'>readForRelax</span> <span class='varid'>al</span> <span class='varid'>doc</span>-<a name="line-154"></a> <span class='layout'>)</span>-<a name="line-155"></a> <span class='varop'>>>></span>-<a name="line-156"></a> <span class='varid'>validateWithRelax</span> <span class='varid'>theSchema</span>-<a name="line-157"></a> <span class='varop'>>>></span>-<a name="line-158"></a> <span class='varid'>perform</span> <span class='varid'>handleErrors</span>-<a name="line-159"></a>-<a name="line-160"></a>-<a name="line-161"></a><span class='comment'>{- | Validates a xml document with respect to a Relax NG schema-<a name="line-162"></a>-<a name="line-163"></a> * 1.parameter : XML document-<a name="line-164"></a>-<a name="line-165"></a> - arrow-input : Relax NG schema-<a name="line-166"></a> -<a name="line-167"></a> - arrow-output : list of errors or 'none'-<a name="line-168"></a>-}</span>-<a name="line-169"></a>-<a name="line-170"></a><a name="validateRelax"></a><span class='definition'>validateRelax</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-171"></a><span class='definition'>validateRelax</span> <span class='varid'>xmlDoc</span>-<a name="line-172"></a> <span class='keyglyph'>=</span> <span class='varid'>fromLA</span>-<a name="line-173"></a> <span class='layout'>(</span> <span class='varid'>createPatternFromXmlTree</span>-<a name="line-174"></a> <span class='varop'>>>></span>-<a name="line-175"></a> <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>p</span> <span class='keyglyph'>-></span> <span class='varid'>childDeriv</span> <span class='layout'>(</span><span class='str'>""</span><span class='layout'>,</span><span class='conid'>[]</span><span class='layout'>)</span> <span class='varid'>p</span> <span class='varid'>xmlDoc</span><span class='layout'>)</span>-<a name="line-176"></a> <span class='varop'>>>></span>-<a name="line-177"></a> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>nullable</span><span class='layout'>)</span>-<a name="line-178"></a> <span class='varop'>`guardsP`</span>-<a name="line-179"></a> <span class='varid'>root</span> <span class='conid'>[]</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>take</span> <span class='num'>1024</span> <span class='varop'>.</span> <span class='varid'>show</span><span class='layout'>)</span> <span class='varop'>^>></span> <span class='varid'>mkText</span> <span class='keyglyph'>]</span> <span class='comment'>-- pattern may be recursive, so the string representation</span>-<a name="line-180"></a> <span class='comment'>-- is truncated to 1024 chars to assure termination</span>-<a name="line-181"></a> <span class='layout'>)</span>-<a name="line-182"></a> <span class='layout'>)</span>-<a name="line-183"></a>-<a name="line-184"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-185"></a>-<a name="line-186"></a><a name="readForRelax"></a><span class='definition'>readForRelax</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>IOSArrow</span> <span class='varid'>b</span> <span class='conid'>XmlTree</span>-<a name="line-187"></a><span class='definition'>readForRelax</span> <span class='varid'>options</span> <span class='varid'>schema</span>-<a name="line-188"></a> <span class='keyglyph'>=</span> <span class='varid'>getDocumentContents</span> <span class='varid'>options</span> <span class='varid'>schema</span>-<a name="line-189"></a> <span class='varop'>>>></span>-<a name="line-190"></a> <span class='varid'>parseXmlDocument</span> <span class='conid'>False</span>-<a name="line-191"></a> <span class='varop'>>>></span>-<a name="line-192"></a> <span class='varid'>canonicalizeAllNodes</span>-<a name="line-193"></a> <span class='varop'>>>></span>-<a name="line-194"></a> <span class='varid'>propagateAndValidateNamespaces</span>-<a name="line-195"></a>-<a name="line-196"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-197"></a>-<a name="line-198"></a><span class='comment'>{- old stuff -}</span>-<a name="line-199"></a>-<a name="line-200"></a><a name="validateXMLDoc"></a><span class='definition'>validateXMLDoc</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-201"></a><span class='definition'>validateXMLDoc</span> <span class='varid'>al</span> <span class='varid'>xmlDoc</span>-<a name="line-202"></a> <span class='keyglyph'>=</span> <span class='varid'>validateRelax</span>-<a name="line-203"></a> <span class='varop'>$<</span>-<a name="line-204"></a> <span class='layout'>(</span> <span class='varid'>readForRelax</span> <span class='varid'>al</span> <span class='varid'>xmlDoc</span>-<a name="line-205"></a> <span class='varop'>>>></span>-<a name="line-206"></a> <span class='varid'>normalizeForRelaxValidation</span>-<a name="line-207"></a> <span class='varop'>>>></span>-<a name="line-208"></a> <span class='varid'>getChildren</span>-<a name="line-209"></a> <span class='layout'>)</span>-<a name="line-210"></a>-<a name="line-211"></a>-<a name="line-212"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-213"></a><span class='comment'>--</span>-<a name="line-214"></a><span class='comment'>-- | tests whether a 'NameClass' contains a particular 'QName'</span>-<a name="line-215"></a>-<a name="line-216"></a><a name="contains"></a><span class='definition'>contains</span> <span class='keyglyph'>::</span> <span class='conid'>NameClass</span> <span class='keyglyph'>-></span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-217"></a><span class='definition'>contains</span> <span class='conid'>AnyName</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-218"></a><span class='definition'>contains</span> <span class='layout'>(</span><span class='conid'>AnyNameExcept</span> <span class='varid'>nc</span><span class='layout'>)</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>contains</span> <span class='varid'>nc</span> <span class='varid'>n</span><span class='layout'>)</span>-<a name="line-219"></a><span class='definition'>contains</span> <span class='layout'>(</span><span class='conid'>NsName</span> <span class='varid'>ns1</span><span class='layout'>)</span> <span class='varid'>qn</span> <span class='keyglyph'>=</span> <span class='varid'>ns1</span> <span class='varop'>==</span> <span class='varid'>namespaceUri</span> <span class='varid'>qn</span>-<a name="line-220"></a><span class='definition'>contains</span> <span class='layout'>(</span><span class='conid'>NsNameExcept</span> <span class='varid'>ns1</span> <span class='varid'>nc</span><span class='layout'>)</span> <span class='varid'>qn</span> <span class='keyglyph'>=</span> <span class='varid'>ns1</span> <span class='varop'>==</span> <span class='varid'>namespaceUri</span> <span class='varid'>qn</span> <span class='varop'>&&</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>contains</span> <span class='varid'>nc</span> <span class='varid'>qn</span><span class='layout'>)</span>-<a name="line-221"></a><span class='definition'>contains</span> <span class='layout'>(</span><span class='conid'>Name</span> <span class='varid'>ns1</span> <span class='varid'>ln1</span><span class='layout'>)</span> <span class='varid'>qn</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>ns1</span> <span class='varop'>==</span> <span class='varid'>namespaceUri</span> <span class='varid'>qn</span><span class='layout'>)</span> <span class='varop'>&&</span> <span class='layout'>(</span><span class='varid'>ln1</span> <span class='varop'>==</span> <span class='varid'>localPart</span> <span class='varid'>qn</span><span class='layout'>)</span>-<a name="line-222"></a><span class='definition'>contains</span> <span class='layout'>(</span><span class='conid'>NameClassChoice</span> <span class='varid'>nc1</span> <span class='varid'>nc2</span><span class='layout'>)</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>contains</span> <span class='varid'>nc1</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='varop'>||</span> <span class='layout'>(</span><span class='varid'>contains</span> <span class='varid'>nc2</span> <span class='varid'>n</span><span class='layout'>)</span>-<a name="line-223"></a><span class='definition'>contains</span> <span class='layout'>(</span><span class='conid'>NCError</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-224"></a>-<a name="line-225"></a>-<a name="line-226"></a><a name="nullable"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-227"></a><span class='comment'>-- </span>-<a name="line-228"></a><span class='comment'>-- | tests whether a pattern matches the empty sequence</span>-<a name="line-229"></a><span class='definition'>nullable</span><span class='keyglyph'>::</span> <span class='conid'>Pattern</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-230"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>Group</span> <span class='varid'>p1</span> <span class='varid'>p2</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>nullable</span> <span class='varid'>p1</span> <span class='varop'>&&</span> <span class='varid'>nullable</span> <span class='varid'>p2</span>-<a name="line-231"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>Interleave</span> <span class='varid'>p1</span> <span class='varid'>p2</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>nullable</span> <span class='varid'>p1</span> <span class='varop'>&&</span> <span class='varid'>nullable</span> <span class='varid'>p2</span>-<a name="line-232"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>Choice</span> <span class='varid'>p1</span> <span class='varid'>p2</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>nullable</span> <span class='varid'>p1</span> <span class='varop'>||</span> <span class='varid'>nullable</span> <span class='varid'>p2</span>-<a name="line-233"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>OneOrMore</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>nullable</span> <span class='varid'>p</span>-<a name="line-234"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>Element</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-235"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>Attribute</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-236"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>List</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-237"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>Value</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-238"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>Data</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-239"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>DataExcept</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-240"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>NotAllowed</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-241"></a><span class='definition'>nullable</span> <span class='conid'>Empty</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-242"></a><span class='definition'>nullable</span> <span class='conid'>Text</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-243"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>After</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-244"></a>-<a name="line-245"></a>-<a name="line-246"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-247"></a><span class='comment'>-- </span>-<a name="line-248"></a><span class='comment'>-- | computes the derivative of a pattern with respect to a XML-Child and a 'Context'</span>-<a name="line-249"></a>-<a name="line-250"></a><a name="childDeriv"></a><span class='definition'>childDeriv</span> <span class='keyglyph'>::</span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='conid'>Pattern</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>Pattern</span>-<a name="line-251"></a>-<a name="line-252"></a><span class='definition'>childDeriv</span> <span class='varid'>cx</span> <span class='varid'>p</span> <span class='varid'>t</span>-<a name="line-253"></a> <span class='keyglyph'>|</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isText</span> <span class='varid'>t</span> <span class='keyglyph'>=</span> <span class='varid'>textDeriv</span> <span class='varid'>cx</span> <span class='varid'>p</span> <span class='varop'>.</span> <span class='varid'>fromJust</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getText</span> <span class='varop'>$</span> <span class='varid'>t</span>-<a name="line-254"></a> <span class='keyglyph'>|</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isElem</span> <span class='varid'>t</span> <span class='keyglyph'>=</span> <span class='varid'>endTagDeriv</span> <span class='varid'>p4</span>-<a name="line-255"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>notAllowed</span> <span class='str'>"Call to childDeriv with wrong arguments"</span>-<a name="line-256"></a> <span class='keyword'>where</span>-<a name="line-257"></a> <span class='varid'>children</span> <span class='keyglyph'>=</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getChildren</span> <span class='varop'>$</span> <span class='varid'>t</span>-<a name="line-258"></a> <span class='varid'>qn</span> <span class='keyglyph'>=</span> <span class='varid'>fromJust</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getElemName</span> <span class='varop'>$</span> <span class='varid'>t</span> -<a name="line-259"></a> <span class='varid'>atts</span> <span class='keyglyph'>=</span> <span class='varid'>fromJust</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getAttrl</span> <span class='varop'>$</span> <span class='varid'>t</span>-<a name="line-260"></a> <span class='varid'>cx1</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='str'>""</span><span class='layout'>,</span><span class='conid'>[]</span><span class='layout'>)</span>-<a name="line-261"></a> <span class='varid'>p1</span> <span class='keyglyph'>=</span> <span class='varid'>startTagOpenDeriv</span> <span class='varid'>p</span> <span class='varid'>qn</span>-<a name="line-262"></a> <span class='varid'>p2</span> <span class='keyglyph'>=</span> <span class='varid'>attsDeriv</span> <span class='varid'>cx1</span> <span class='varid'>p1</span> <span class='varid'>atts</span>-<a name="line-263"></a> <span class='varid'>p3</span> <span class='keyglyph'>=</span> <span class='varid'>startTagCloseDeriv</span> <span class='varid'>p2</span>-<a name="line-264"></a> <span class='varid'>p4</span> <span class='keyglyph'>=</span> <span class='varid'>childrenDeriv</span> <span class='varid'>cx1</span> <span class='varid'>p3</span> <span class='varid'>children</span>-<a name="line-265"></a>-<a name="line-266"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-267"></a><span class='comment'>-- </span>-<a name="line-268"></a><span class='comment'>-- | computes the derivative of a pattern with respect to a text node</span>-<a name="line-269"></a>-<a name="line-270"></a><a name="textDeriv"></a><span class='definition'>textDeriv</span> <span class='keyglyph'>::</span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='conid'>Pattern</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Pattern</span>-<a name="line-271"></a>-<a name="line-272"></a><span class='definition'>textDeriv</span> <span class='varid'>cx</span> <span class='layout'>(</span><span class='conid'>Choice</span> <span class='varid'>p1</span> <span class='varid'>p2</span><span class='layout'>)</span> <span class='varid'>s</span>-<a name="line-273"></a> <span class='keyglyph'>=</span> <span class='varid'>choice</span> <span class='layout'>(</span><span class='varid'>textDeriv</span> <span class='varid'>cx</span> <span class='varid'>p1</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>textDeriv</span> <span class='varid'>cx</span> <span class='varid'>p2</span> <span class='varid'>s</span><span class='layout'>)</span>-<a name="line-274"></a>-<a name="line-275"></a><span class='definition'>textDeriv</span> <span class='varid'>cx</span> <span class='layout'>(</span><span class='conid'>Interleave</span> <span class='varid'>p1</span> <span class='varid'>p2</span><span class='layout'>)</span> <span class='varid'>s</span>-<a name="line-276"></a> <span class='keyglyph'>=</span> <span class='varid'>choice</span>-<a name="line-277"></a> <span class='layout'>(</span><span class='varid'>interleave</span> <span class='layout'>(</span><span class='varid'>textDeriv</span> <span class='varid'>cx</span> <span class='varid'>p1</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='varid'>p2</span><span class='layout'>)</span>-<a name="line-278"></a> <span class='layout'>(</span><span class='varid'>interleave</span> <span class='varid'>p1</span> <span class='layout'>(</span><span class='varid'>textDeriv</span> <span class='varid'>cx</span> <span class='varid'>p2</span> <span class='varid'>s</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-279"></a>-<a name="line-280"></a><span class='definition'>textDeriv</span> <span class='varid'>cx</span> <span class='layout'>(</span><span class='conid'>Group</span> <span class='varid'>p1</span> <span class='varid'>p2</span><span class='layout'>)</span> <span class='varid'>s</span>-<a name="line-281"></a> <span class='keyglyph'>=</span> <span class='keyword'>let</span>-<a name="line-282"></a> <span class='varid'>p</span> <span class='keyglyph'>=</span> <span class='varid'>group</span> <span class='layout'>(</span><span class='varid'>textDeriv</span> <span class='varid'>cx</span> <span class='varid'>p1</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='varid'>p2</span>-<a name="line-283"></a> <span class='keyword'>in</span>-<a name="line-284"></a> <span class='keyword'>if</span> <span class='varid'>nullable</span> <span class='varid'>p1</span>-<a name="line-285"></a> <span class='keyword'>then</span> <span class='varid'>choice</span> <span class='varid'>p</span> <span class='layout'>(</span><span class='varid'>textDeriv</span> <span class='varid'>cx</span> <span class='varid'>p2</span> <span class='varid'>s</span><span class='layout'>)</span>-<a name="line-286"></a> <span class='keyword'>else</span> <span class='varid'>p</span>-<a name="line-287"></a>-<a name="line-288"></a><span class='definition'>textDeriv</span> <span class='varid'>cx</span> <span class='layout'>(</span><span class='conid'>After</span> <span class='varid'>p1</span> <span class='varid'>p2</span><span class='layout'>)</span> <span class='varid'>s</span>-<a name="line-289"></a> <span class='keyglyph'>=</span> <span class='varid'>after</span> <span class='layout'>(</span><span class='varid'>textDeriv</span> <span class='varid'>cx</span> <span class='varid'>p1</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='varid'>p2</span>-<a name="line-290"></a>-<a name="line-291"></a><span class='definition'>textDeriv</span> <span class='varid'>cx</span> <span class='layout'>(</span><span class='conid'>OneOrMore</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='varid'>s</span>-<a name="line-292"></a> <span class='keyglyph'>=</span> <span class='varid'>group</span> <span class='layout'>(</span><span class='varid'>textDeriv</span> <span class='varid'>cx</span> <span class='varid'>p</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>choice</span> <span class='layout'>(</span><span class='conid'>OneOrMore</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='conid'>Empty</span><span class='layout'>)</span>-<a name="line-293"></a>-<a name="line-294"></a><span class='definition'>textDeriv</span> <span class='keyword'>_</span> <span class='conid'>Text</span> <span class='keyword'>_</span>-<a name="line-295"></a> <span class='keyglyph'>=</span> <span class='conid'>Text</span>-<a name="line-296"></a>-<a name="line-297"></a><span class='definition'>textDeriv</span> <span class='varid'>cx1</span> <span class='layout'>(</span><span class='conid'>Value</span> <span class='layout'>(</span><span class='varid'>uri</span><span class='layout'>,</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='varid'>value</span> <span class='varid'>cx2</span><span class='layout'>)</span> <span class='varid'>s1</span>-<a name="line-298"></a> <span class='keyglyph'>=</span> <span class='keyword'>case</span> <span class='varid'>datatypeEqual</span> <span class='varid'>uri</span> <span class='varid'>s</span> <span class='varid'>value</span> <span class='varid'>cx2</span> <span class='varid'>s1</span> <span class='varid'>cx1</span>-<a name="line-299"></a> <span class='keyword'>of</span>-<a name="line-300"></a> <span class='conid'>Nothing</span> <span class='keyglyph'>-></span> <span class='conid'>Empty</span> -<a name="line-301"></a> <span class='conid'>Just</span> <span class='varid'>errStr</span> <span class='keyglyph'>-></span> <span class='varid'>notAllowed</span> <span class='varid'>errStr</span>-<a name="line-302"></a>-<a name="line-303"></a><span class='definition'>textDeriv</span> <span class='varid'>cx</span> <span class='layout'>(</span><span class='conid'>Data</span> <span class='layout'>(</span><span class='varid'>uri</span><span class='layout'>,</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='varid'>params</span><span class='layout'>)</span> <span class='varid'>s1</span>-<a name="line-304"></a> <span class='keyglyph'>=</span> <span class='keyword'>case</span> <span class='varid'>datatypeAllows</span> <span class='varid'>uri</span> <span class='varid'>s</span> <span class='varid'>params</span> <span class='varid'>s1</span> <span class='varid'>cx</span>-<a name="line-305"></a> <span class='keyword'>of</span>-<a name="line-306"></a> <span class='conid'>Nothing</span> <span class='keyglyph'>-></span> <span class='conid'>Empty</span> -<a name="line-307"></a> <span class='conid'>Just</span> <span class='varid'>errStr</span> <span class='keyglyph'>-></span> <span class='varid'>notAllowed2</span> <span class='varid'>errStr</span>-<a name="line-308"></a>-<a name="line-309"></a><span class='definition'>textDeriv</span> <span class='varid'>cx</span> <span class='layout'>(</span><span class='conid'>DataExcept</span> <span class='layout'>(</span><span class='varid'>uri</span><span class='layout'>,</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='varid'>params</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='varid'>s1</span>-<a name="line-310"></a> <span class='keyglyph'>=</span> <span class='keyword'>case</span> <span class='layout'>(</span><span class='varid'>datatypeAllows</span> <span class='varid'>uri</span> <span class='varid'>s</span> <span class='varid'>params</span> <span class='varid'>s1</span> <span class='varid'>cx</span><span class='layout'>)</span>-<a name="line-311"></a> <span class='keyword'>of</span>-<a name="line-312"></a> <span class='conid'>Nothing</span> <span class='keyglyph'>-></span> <span class='keyword'>if</span> <span class='varid'>not</span> <span class='varop'>$</span> <span class='varid'>nullable</span> <span class='varop'>$</span> <span class='varid'>textDeriv</span> <span class='varid'>cx</span> <span class='varid'>p</span> <span class='varid'>s1</span> -<a name="line-313"></a> <span class='keyword'>then</span> <span class='conid'>Empty</span> -<a name="line-314"></a> <span class='keyword'>else</span> <span class='varid'>notAllowed</span>-<a name="line-315"></a> <span class='layout'>(</span> <span class='str'>"Any value except "</span> <span class='varop'>++</span>-<a name="line-316"></a> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='varop'>++</span> -<a name="line-317"></a> <span class='str'>" expected, but value "</span> <span class='varop'>++</span>-<a name="line-318"></a> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>s1</span><span class='layout'>)</span> <span class='varop'>++</span>-<a name="line-319"></a> <span class='str'>" found"</span>-<a name="line-320"></a> <span class='layout'>)</span>-<a name="line-321"></a> <span class='conid'>Just</span> <span class='varid'>errStr</span> <span class='keyglyph'>-></span> <span class='varid'>notAllowed</span> <span class='varid'>errStr</span>-<a name="line-322"></a>-<a name="line-323"></a><span class='definition'>textDeriv</span> <span class='varid'>cx</span> <span class='layout'>(</span><span class='conid'>List</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='varid'>s</span>-<a name="line-324"></a> <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>nullable</span> <span class='layout'>(</span><span class='varid'>listDeriv</span> <span class='varid'>cx</span> <span class='varid'>p</span> <span class='layout'>(</span><span class='varid'>words</span> <span class='varid'>s</span><span class='layout'>)</span><span class='layout'>)</span> -<a name="line-325"></a> <span class='keyword'>then</span> <span class='conid'>Empty</span>-<a name="line-326"></a> <span class='keyword'>else</span> <span class='varid'>notAllowed</span>-<a name="line-327"></a> <span class='layout'>(</span> <span class='str'>"List with value(s) "</span> <span class='varop'>++</span>-<a name="line-328"></a> <span class='varid'>show</span> <span class='varid'>p</span> <span class='varop'>++</span> -<a name="line-329"></a> <span class='str'>" expected, but value(s) "</span> <span class='varop'>++</span> -<a name="line-330"></a> <span class='varid'>formatStringListQuot</span> <span class='layout'>(</span><span class='varid'>words</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='varop'>++</span>-<a name="line-331"></a> <span class='str'>" found"</span>-<a name="line-332"></a> <span class='layout'>)</span>-<a name="line-333"></a>-<a name="line-334"></a><span class='definition'>textDeriv</span> <span class='keyword'>_</span> <span class='varid'>n</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NotAllowed</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyword'>_</span>-<a name="line-335"></a> <span class='keyglyph'>=</span> <span class='varid'>n</span>-<a name="line-336"></a>-<a name="line-337"></a><span class='definition'>textDeriv</span> <span class='keyword'>_</span> <span class='varid'>p</span> <span class='varid'>s</span>-<a name="line-338"></a> <span class='keyglyph'>=</span> <span class='varid'>notAllowed</span>-<a name="line-339"></a> <span class='layout'>(</span> <span class='str'>"Pattern "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>getPatternName</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='varop'>++</span>-<a name="line-340"></a> <span class='str'>" expected, but text "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>s</span> <span class='varop'>++</span> <span class='str'>" found"</span>-<a name="line-341"></a> <span class='layout'>)</span>-<a name="line-342"></a>-<a name="line-343"></a>-<a name="line-344"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-345"></a><span class='comment'>-- </span>-<a name="line-346"></a><span class='comment'>-- | To compute the derivative of a pattern with respect to a list of strings, </span>-<a name="line-347"></a><span class='comment'>-- simply compute the derivative with respect to each member of the list in turn.</span>-<a name="line-348"></a>-<a name="line-349"></a><a name="listDeriv"></a><span class='definition'>listDeriv</span> <span class='keyglyph'>::</span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='conid'>Pattern</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>Pattern</span>-<a name="line-350"></a>-<a name="line-351"></a><span class='definition'>listDeriv</span> <span class='keyword'>_</span> <span class='varid'>p</span> <span class='conid'>[]</span>-<a name="line-352"></a> <span class='keyglyph'>=</span> <span class='varid'>p</span>-<a name="line-353"></a>-<a name="line-354"></a><span class='definition'>listDeriv</span> <span class='varid'>cx</span> <span class='varid'>p</span> <span class='layout'>(</span><span class='varid'>x</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span>-<a name="line-355"></a> <span class='keyglyph'>=</span> <span class='varid'>listDeriv</span> <span class='varid'>cx</span> <span class='layout'>(</span><span class='varid'>textDeriv</span> <span class='varid'>cx</span> <span class='varid'>p</span> <span class='varid'>x</span><span class='layout'>)</span> <span class='varid'>xs</span>-<a name="line-356"></a> -<a name="line-357"></a>-<a name="line-358"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-359"></a><span class='comment'>-- </span>-<a name="line-360"></a><span class='comment'>-- | computes the derivative of a pattern with respect to a start tag open</span>-<a name="line-361"></a>-<a name="line-362"></a><a name="startTagOpenDeriv"></a><span class='definition'>startTagOpenDeriv</span> <span class='keyglyph'>::</span> <span class='conid'>Pattern</span> <span class='keyglyph'>-></span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='conid'>Pattern</span>-<a name="line-363"></a>-<a name="line-364"></a><span class='definition'>startTagOpenDeriv</span> <span class='layout'>(</span><span class='conid'>Choice</span> <span class='varid'>p1</span> <span class='varid'>p2</span><span class='layout'>)</span> <span class='varid'>qn</span>-<a name="line-365"></a> <span class='keyglyph'>=</span> <span class='varid'>choice</span> <span class='layout'>(</span><span class='varid'>startTagOpenDeriv</span> <span class='varid'>p1</span> <span class='varid'>qn</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>startTagOpenDeriv</span> <span class='varid'>p2</span> <span class='varid'>qn</span><span class='layout'>)</span>-<a name="line-366"></a>-<a name="line-367"></a><span class='definition'>startTagOpenDeriv</span> <span class='layout'>(</span><span class='conid'>Element</span> <span class='varid'>nc</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='varid'>qn</span>-<a name="line-368"></a> <span class='keyglyph'>|</span> <span class='varid'>contains</span> <span class='varid'>nc</span> <span class='varid'>qn</span>-<a name="line-369"></a> <span class='keyglyph'>=</span> <span class='varid'>after</span> <span class='varid'>p</span> <span class='conid'>Empty</span>-<a name="line-370"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-371"></a> <span class='keyglyph'>=</span> <span class='varid'>notAllowed</span> <span class='varop'>$</span>-<a name="line-372"></a> <span class='str'>"Element with name "</span> <span class='varop'>++</span> <span class='varid'>nameClassToString</span> <span class='varid'>nc</span> <span class='varop'>++</span> -<a name="line-373"></a> <span class='str'>" expected, but "</span> <span class='varop'>++</span> <span class='varid'>universalName</span> <span class='varid'>qn</span> <span class='varop'>++</span> <span class='str'>" found"</span>-<a name="line-374"></a>-<a name="line-375"></a><span class='definition'>startTagOpenDeriv</span> <span class='layout'>(</span><span class='conid'>Interleave</span> <span class='varid'>p1</span> <span class='varid'>p2</span><span class='layout'>)</span> <span class='varid'>qn</span>-<a name="line-376"></a> <span class='keyglyph'>=</span> <span class='varid'>choice</span>-<a name="line-377"></a> <span class='layout'>(</span><span class='varid'>applyAfter</span> <span class='layout'>(</span><span class='varid'>flip</span> <span class='varid'>interleave</span> <span class='varid'>p2</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>startTagOpenDeriv</span> <span class='varid'>p1</span> <span class='varid'>qn</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-378"></a> <span class='layout'>(</span><span class='varid'>applyAfter</span> <span class='layout'>(</span><span class='varid'>interleave</span> <span class='varid'>p1</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>startTagOpenDeriv</span> <span class='varid'>p2</span> <span class='varid'>qn</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-379"></a>-<a name="line-380"></a><span class='definition'>startTagOpenDeriv</span> <span class='layout'>(</span><span class='conid'>OneOrMore</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='varid'>qn</span>-<a name="line-381"></a> <span class='keyglyph'>=</span> <span class='varid'>applyAfter</span>-<a name="line-382"></a> <span class='layout'>(</span><span class='varid'>flip</span> <span class='varid'>group</span> <span class='layout'>(</span><span class='varid'>choice</span> <span class='layout'>(</span><span class='conid'>OneOrMore</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='conid'>Empty</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-383"></a> <span class='layout'>(</span><span class='varid'>startTagOpenDeriv</span> <span class='varid'>p</span> <span class='varid'>qn</span><span class='layout'>)</span>-<a name="line-384"></a>-<a name="line-385"></a><span class='definition'>startTagOpenDeriv</span> <span class='layout'>(</span><span class='conid'>Group</span> <span class='varid'>p1</span> <span class='varid'>p2</span><span class='layout'>)</span> <span class='varid'>qn</span>-<a name="line-386"></a> <span class='keyglyph'>=</span> <span class='keyword'>let</span>-<a name="line-387"></a> <span class='varid'>x</span> <span class='keyglyph'>=</span> <span class='varid'>applyAfter</span> <span class='layout'>(</span><span class='varid'>flip</span> <span class='varid'>group</span> <span class='varid'>p2</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>startTagOpenDeriv</span> <span class='varid'>p1</span> <span class='varid'>qn</span><span class='layout'>)</span>-<a name="line-388"></a> <span class='keyword'>in</span>-<a name="line-389"></a> <span class='keyword'>if</span> <span class='varid'>nullable</span> <span class='varid'>p1</span> -<a name="line-390"></a> <span class='keyword'>then</span> <span class='varid'>choice</span> <span class='varid'>x</span> <span class='layout'>(</span><span class='varid'>startTagOpenDeriv</span> <span class='varid'>p2</span> <span class='varid'>qn</span><span class='layout'>)</span>-<a name="line-391"></a> <span class='keyword'>else</span> <span class='varid'>x</span>-<a name="line-392"></a>-<a name="line-393"></a><span class='definition'>startTagOpenDeriv</span> <span class='layout'>(</span><span class='conid'>After</span> <span class='varid'>p1</span> <span class='varid'>p2</span><span class='layout'>)</span> <span class='varid'>qn</span>-<a name="line-394"></a> <span class='keyglyph'>=</span> <span class='varid'>applyAfter</span> <span class='layout'>(</span><span class='varid'>flip</span> <span class='varid'>after</span> <span class='varid'>p2</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>startTagOpenDeriv</span> <span class='varid'>p1</span> <span class='varid'>qn</span><span class='layout'>)</span>-<a name="line-395"></a>-<a name="line-396"></a><span class='definition'>startTagOpenDeriv</span> <span class='varid'>n</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NotAllowed</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyword'>_</span>-<a name="line-397"></a> <span class='keyglyph'>=</span> <span class='varid'>n</span>-<a name="line-398"></a>-<a name="line-399"></a><span class='definition'>startTagOpenDeriv</span> <span class='varid'>p</span> <span class='varid'>qn</span>-<a name="line-400"></a> <span class='keyglyph'>=</span> <span class='varid'>notAllowed</span> <span class='layout'>(</span> <span class='varid'>show</span> <span class='varid'>p</span> <span class='varop'>++</span> <span class='str'>" expected, but Element "</span> <span class='varop'>++</span> <span class='varid'>universalName</span> <span class='varid'>qn</span> <span class='varop'>++</span> <span class='str'>" found"</span> <span class='layout'>)</span>-<a name="line-401"></a>-<a name="line-402"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-403"></a>-<a name="line-404"></a><span class='comment'>-- auxiliary functions for tracing</span>-<a name="line-405"></a><span class='comment'>{--<a name="line-406"></a>attsDeriv' cx p ts-<a name="line-407"></a> = T.trace ("attsDeriv: p=" ++ (take 1000 . show) p ++ ", t=" ++ showXts ts) $-<a name="line-408"></a> T.trace ("res= " ++ (take 1000 . show) res) res-<a name="line-409"></a> where-<a name="line-410"></a> res = attsDeriv cx p ts-<a name="line-411"></a>-<a name="line-412"></a>attDeriv' cx p t-<a name="line-413"></a> = T.trace ("attDeriv: p=" ++ (take 1000 . show) p ++ ", t=" ++ showXts [t]) $-<a name="line-414"></a> T.trace ("res= " ++ (take 1000 . show) res) res-<a name="line-415"></a> where-<a name="line-416"></a> res = attDeriv cx p t-<a name="line-417"></a>-}</span>-<a name="line-418"></a>-<a name="line-419"></a><span class='comment'>-- | To compute the derivative of a pattern with respect to a sequence of attributes, </span>-<a name="line-420"></a><span class='comment'>-- simply compute the derivative with respect to each attribute in turn.</span>-<a name="line-421"></a>-<a name="line-422"></a><a name="attsDeriv"></a><span class='definition'>attsDeriv</span> <span class='keyglyph'>::</span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='conid'>Pattern</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>Pattern</span>-<a name="line-423"></a>-<a name="line-424"></a><span class='definition'>attsDeriv</span> <span class='keyword'>_</span> <span class='varid'>p</span> <span class='conid'>[]</span>-<a name="line-425"></a> <span class='keyglyph'>=</span> <span class='varid'>p</span>-<a name="line-426"></a><span class='definition'>attsDeriv</span> <span class='varid'>cx</span> <span class='varid'>p</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='conop'>:</span> <span class='varid'>ts</span><span class='layout'>)</span>-<a name="line-427"></a> <span class='keyglyph'>|</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isAttr</span> <span class='varid'>t</span>-<a name="line-428"></a> <span class='keyglyph'>=</span> <span class='varid'>attsDeriv</span> <span class='varid'>cx</span> <span class='layout'>(</span><span class='varid'>attDeriv</span> <span class='varid'>cx</span> <span class='varid'>p</span> <span class='varid'>t</span><span class='layout'>)</span> <span class='varid'>ts</span>-<a name="line-429"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-430"></a> <span class='keyglyph'>=</span> <span class='varid'>notAllowed</span> <span class='str'>"Call to attsDeriv with wrong arguments"</span>-<a name="line-431"></a>-<a name="line-432"></a><a name="attDeriv"></a><span class='definition'>attDeriv</span> <span class='keyglyph'>::</span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='conid'>Pattern</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>Pattern</span>-<a name="line-433"></a>-<a name="line-434"></a><span class='definition'>attDeriv</span> <span class='varid'>cx</span> <span class='layout'>(</span><span class='conid'>After</span> <span class='varid'>p1</span> <span class='varid'>p2</span><span class='layout'>)</span> <span class='varid'>att</span>-<a name="line-435"></a> <span class='keyglyph'>=</span> <span class='varid'>after</span> <span class='layout'>(</span><span class='varid'>attDeriv</span> <span class='varid'>cx</span> <span class='varid'>p1</span> <span class='varid'>att</span><span class='layout'>)</span> <span class='varid'>p2</span>-<a name="line-436"></a>-<a name="line-437"></a><span class='definition'>attDeriv</span> <span class='varid'>cx</span> <span class='layout'>(</span><span class='conid'>Choice</span> <span class='varid'>p1</span> <span class='varid'>p2</span><span class='layout'>)</span> <span class='varid'>att</span>-<a name="line-438"></a> <span class='keyglyph'>=</span> <span class='varid'>choice</span> <span class='layout'>(</span><span class='varid'>attDeriv</span> <span class='varid'>cx</span> <span class='varid'>p1</span> <span class='varid'>att</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>attDeriv</span> <span class='varid'>cx</span> <span class='varid'>p2</span> <span class='varid'>att</span><span class='layout'>)</span>-<a name="line-439"></a>-<a name="line-440"></a><span class='definition'>attDeriv</span> <span class='varid'>cx</span> <span class='layout'>(</span><span class='conid'>Group</span> <span class='varid'>p1</span> <span class='varid'>p2</span><span class='layout'>)</span> <span class='varid'>att</span>-<a name="line-441"></a> <span class='keyglyph'>=</span> <span class='varid'>choice</span>-<a name="line-442"></a> <span class='layout'>(</span><span class='varid'>group</span> <span class='layout'>(</span><span class='varid'>attDeriv</span> <span class='varid'>cx</span> <span class='varid'>p1</span> <span class='varid'>att</span><span class='layout'>)</span> <span class='varid'>p2</span><span class='layout'>)</span>-<a name="line-443"></a> <span class='layout'>(</span><span class='varid'>group</span> <span class='varid'>p1</span> <span class='layout'>(</span><span class='varid'>attDeriv</span> <span class='varid'>cx</span> <span class='varid'>p2</span> <span class='varid'>att</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-444"></a>-<a name="line-445"></a><span class='definition'>attDeriv</span> <span class='varid'>cx</span> <span class='layout'>(</span><span class='conid'>Interleave</span> <span class='varid'>p1</span> <span class='varid'>p2</span><span class='layout'>)</span> <span class='varid'>att</span>-<a name="line-446"></a> <span class='keyglyph'>=</span> <span class='varid'>choice</span>-<a name="line-447"></a> <span class='layout'>(</span><span class='varid'>interleave</span> <span class='layout'>(</span><span class='varid'>attDeriv</span> <span class='varid'>cx</span> <span class='varid'>p1</span> <span class='varid'>att</span><span class='layout'>)</span> <span class='varid'>p2</span><span class='layout'>)</span>-<a name="line-448"></a> <span class='layout'>(</span><span class='varid'>interleave</span> <span class='varid'>p1</span> <span class='layout'>(</span><span class='varid'>attDeriv</span> <span class='varid'>cx</span> <span class='varid'>p2</span> <span class='varid'>att</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-449"></a>-<a name="line-450"></a><span class='definition'>attDeriv</span> <span class='varid'>cx</span> <span class='layout'>(</span><span class='conid'>OneOrMore</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='varid'>att</span>-<a name="line-451"></a> <span class='keyglyph'>=</span> <span class='varid'>group</span>-<a name="line-452"></a> <span class='layout'>(</span><span class='varid'>attDeriv</span> <span class='varid'>cx</span> <span class='varid'>p</span> <span class='varid'>att</span><span class='layout'>)</span>-<a name="line-453"></a> <span class='layout'>(</span><span class='varid'>choice</span> <span class='layout'>(</span><span class='conid'>OneOrMore</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='conid'>Empty</span><span class='layout'>)</span>-<a name="line-454"></a>-<a name="line-455"></a><span class='definition'>attDeriv</span> <span class='varid'>cx</span> <span class='layout'>(</span><span class='conid'>Attribute</span> <span class='varid'>nc</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='varid'>att</span>-<a name="line-456"></a> <span class='keyglyph'>|</span> <span class='varid'>isa</span>-<a name="line-457"></a> <span class='varop'>&&</span>-<a name="line-458"></a> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>contains</span> <span class='varid'>nc</span> <span class='varid'>qn</span><span class='layout'>)</span>-<a name="line-459"></a> <span class='keyglyph'>=</span> <span class='varid'>notAllowed1</span> <span class='varop'>$</span>-<a name="line-460"></a> <span class='str'>"Attribute with name "</span> <span class='varop'>++</span> <span class='varid'>nameClassToString</span> <span class='varid'>nc</span>-<a name="line-461"></a> <span class='varop'>++</span> <span class='str'>" expected, but "</span> <span class='varop'>++</span> <span class='varid'>universalName</span> <span class='varid'>qn</span> <span class='varop'>++</span> <span class='str'>" found"</span>-<a name="line-462"></a> <span class='keyglyph'>|</span> <span class='varid'>isa</span>-<a name="line-463"></a> <span class='varop'>&&</span>-<a name="line-464"></a> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>nullable</span> <span class='varid'>p</span>-<a name="line-465"></a> <span class='varop'>&&</span>-<a name="line-466"></a> <span class='varid'>whitespace</span> <span class='varid'>val</span>-<a name="line-467"></a> <span class='layout'>)</span>-<a name="line-468"></a> <span class='varop'>||</span> <span class='varid'>nullable</span> <span class='varid'>p'</span>-<a name="line-469"></a> <span class='layout'>)</span>-<a name="line-470"></a> <span class='keyglyph'>=</span> <span class='conid'>Empty</span>-<a name="line-471"></a> <span class='keyglyph'>|</span> <span class='varid'>isa</span>-<a name="line-472"></a> <span class='keyglyph'>=</span> <span class='varid'>err'</span> <span class='varid'>p'</span>-<a name="line-473"></a> <span class='keyword'>where</span>-<a name="line-474"></a> <span class='varid'>isa</span> <span class='keyglyph'>=</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isAttr</span> <span class='varop'>$</span> <span class='varid'>att</span>-<a name="line-475"></a> <span class='varid'>qn</span> <span class='keyglyph'>=</span> <span class='varid'>fromJust</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getAttrName</span> <span class='varop'>$</span> <span class='varid'>att</span>-<a name="line-476"></a> <span class='varid'>av</span> <span class='keyglyph'>=</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getChildren</span> <span class='varop'>$</span> <span class='varid'>att</span>-<a name="line-477"></a> <span class='varid'>val</span> <span class='keyglyph'>=</span> <span class='varid'>showXts</span> <span class='varid'>av</span>-<a name="line-478"></a> <span class='varid'>p'</span> <span class='keyglyph'>=</span> <span class='varid'>textDeriv</span> <span class='varid'>cx</span> <span class='varid'>p</span> <span class='varid'>val</span>-<a name="line-479"></a>-<a name="line-480"></a> <span class='varid'>err'</span> <span class='layout'>(</span><span class='conid'>NotAllowed</span> <span class='layout'>(</span><span class='conid'>ErrMsg</span> <span class='sel'>_l</span> <span class='varid'>es</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-481"></a> <span class='keyglyph'>=</span> <span class='varid'>err''</span> <span class='layout'>(</span><span class='str'>": "</span> <span class='varop'>++</span> <span class='varid'>head</span> <span class='varid'>es</span><span class='layout'>)</span>-<a name="line-482"></a> <span class='varid'>err'</span> <span class='keyword'>_</span>-<a name="line-483"></a> <span class='keyglyph'>=</span> <span class='varid'>err''</span> <span class='str'>""</span>-<a name="line-484"></a> <span class='varid'>err''</span> <span class='varid'>e</span>-<a name="line-485"></a> <span class='keyglyph'>=</span> <span class='varid'>notAllowed2</span> <span class='varop'>$</span>-<a name="line-486"></a> <span class='str'>"Attribute value \""</span> <span class='varop'>++</span> <span class='varid'>val</span> <span class='varop'>++</span>-<a name="line-487"></a> <span class='str'>"\" does not match datatype spec "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>p</span> <span class='varop'>++</span> <span class='varid'>e</span>-<a name="line-488"></a>-<a name="line-489"></a><span class='definition'>attDeriv</span> <span class='keyword'>_</span> <span class='varid'>n</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NotAllowed</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyword'>_</span>-<a name="line-490"></a> <span class='keyglyph'>=</span> <span class='varid'>n</span>-<a name="line-491"></a>-<a name="line-492"></a><span class='definition'>attDeriv</span> <span class='keyword'>_</span> <span class='sel'>_p</span> <span class='varid'>att</span>-<a name="line-493"></a> <span class='keyglyph'>=</span> <span class='varid'>notAllowed</span> <span class='varop'>$</span>-<a name="line-494"></a> <span class='str'>"No matching pattern for attribute '"</span> <span class='varop'>++</span> <span class='varid'>showXts</span> <span class='keyglyph'>[</span><span class='varid'>att</span><span class='keyglyph'>]</span> <span class='varop'>++</span> <span class='str'>"' found"</span>-<a name="line-495"></a>-<a name="line-496"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-497"></a><span class='comment'>-- </span>-<a name="line-498"></a><span class='comment'>-- | computes the derivative of a pattern with respect to a start tag close</span>-<a name="line-499"></a>-<a name="line-500"></a><a name="startTagCloseDeriv"></a><span class='definition'>startTagCloseDeriv</span> <span class='keyglyph'>::</span> <span class='conid'>Pattern</span> <span class='keyglyph'>-></span> <span class='conid'>Pattern</span>-<a name="line-501"></a>-<a name="line-502"></a><span class='definition'>startTagCloseDeriv</span> <span class='layout'>(</span><span class='conid'>After</span> <span class='varid'>p1</span> <span class='varid'>p2</span><span class='layout'>)</span>-<a name="line-503"></a> <span class='keyglyph'>=</span> <span class='varid'>after</span> <span class='layout'>(</span><span class='varid'>startTagCloseDeriv</span> <span class='varid'>p1</span><span class='layout'>)</span> <span class='varid'>p2</span>-<a name="line-504"></a>-<a name="line-505"></a><span class='definition'>startTagCloseDeriv</span> <span class='layout'>(</span><span class='conid'>Choice</span> <span class='varid'>p1</span> <span class='varid'>p2</span><span class='layout'>)</span>-<a name="line-506"></a> <span class='keyglyph'>=</span> <span class='varid'>choice</span>-<a name="line-507"></a> <span class='layout'>(</span><span class='varid'>startTagCloseDeriv</span> <span class='varid'>p1</span><span class='layout'>)</span>-<a name="line-508"></a> <span class='layout'>(</span><span class='varid'>startTagCloseDeriv</span> <span class='varid'>p2</span><span class='layout'>)</span>-<a name="line-509"></a>-<a name="line-510"></a><span class='definition'>startTagCloseDeriv</span> <span class='layout'>(</span><span class='conid'>Group</span> <span class='varid'>p1</span> <span class='varid'>p2</span><span class='layout'>)</span>-<a name="line-511"></a> <span class='keyglyph'>=</span> <span class='varid'>group</span>-<a name="line-512"></a> <span class='layout'>(</span><span class='varid'>startTagCloseDeriv</span> <span class='varid'>p1</span><span class='layout'>)</span>-<a name="line-513"></a> <span class='layout'>(</span><span class='varid'>startTagCloseDeriv</span> <span class='varid'>p2</span><span class='layout'>)</span>-<a name="line-514"></a>-<a name="line-515"></a><span class='definition'>startTagCloseDeriv</span> <span class='layout'>(</span><span class='conid'>Interleave</span> <span class='varid'>p1</span> <span class='varid'>p2</span><span class='layout'>)</span>-<a name="line-516"></a> <span class='keyglyph'>=</span> <span class='varid'>interleave</span>-<a name="line-517"></a> <span class='layout'>(</span><span class='varid'>startTagCloseDeriv</span> <span class='varid'>p1</span><span class='layout'>)</span>-<a name="line-518"></a> <span class='layout'>(</span><span class='varid'>startTagCloseDeriv</span> <span class='varid'>p2</span><span class='layout'>)</span>-<a name="line-519"></a>-<a name="line-520"></a><span class='definition'>startTagCloseDeriv</span> <span class='layout'>(</span><span class='conid'>OneOrMore</span> <span class='varid'>p</span><span class='layout'>)</span>-<a name="line-521"></a> <span class='keyglyph'>=</span> <span class='varid'>oneOrMore</span> <span class='layout'>(</span><span class='varid'>startTagCloseDeriv</span> <span class='varid'>p</span><span class='layout'>)</span>-<a name="line-522"></a>-<a name="line-523"></a><span class='definition'>startTagCloseDeriv</span> <span class='layout'>(</span><span class='conid'>Attribute</span> <span class='varid'>nc</span> <span class='keyword'>_</span><span class='layout'>)</span>-<a name="line-524"></a> <span class='keyglyph'>=</span> <span class='varid'>notAllowed1</span> <span class='varop'>$</span>-<a name="line-525"></a> <span class='str'>"Attribut with name, "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>nc</span> <span class='varop'>++</span> -<a name="line-526"></a> <span class='str'>" expected, but no more attributes found"</span>-<a name="line-527"></a>-<a name="line-528"></a><span class='definition'>startTagCloseDeriv</span> <span class='varid'>p</span>-<a name="line-529"></a> <span class='keyglyph'>=</span> <span class='varid'>p</span>-<a name="line-530"></a>-<a name="line-531"></a>-<a name="line-532"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-533"></a><span class='comment'>-- </span>-<a name="line-534"></a><span class='comment'>-- | Computing the derivative of a pattern with respect to a list of children involves </span>-<a name="line-535"></a><span class='comment'>-- computing the derivative with respect to each pattern in turn, except</span>-<a name="line-536"></a><span class='comment'>-- that whitespace requires special treatment.</span>-<a name="line-537"></a>-<a name="line-538"></a><a name="childrenDeriv"></a><span class='definition'>childrenDeriv</span> <span class='keyglyph'>::</span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='conid'>Pattern</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>Pattern</span>-<a name="line-539"></a><span class='definition'>childrenDeriv</span> <span class='sel'>_cx</span> <span class='varid'>p</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NotAllowed</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyword'>_</span>-<a name="line-540"></a> <span class='keyglyph'>=</span> <span class='varid'>p</span>-<a name="line-541"></a>-<a name="line-542"></a><span class='definition'>childrenDeriv</span> <span class='varid'>cx</span> <span class='varid'>p</span> <span class='conid'>[]</span>-<a name="line-543"></a> <span class='keyglyph'>=</span> <span class='varid'>childrenDeriv</span> <span class='varid'>cx</span> <span class='varid'>p</span> <span class='keyglyph'>[</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkText</span> <span class='str'>""</span><span class='keyglyph'>]</span>-<a name="line-544"></a>-<a name="line-545"></a><span class='definition'>childrenDeriv</span> <span class='varid'>cx</span> <span class='varid'>p</span> <span class='keyglyph'>[</span><span class='varid'>tt</span><span class='keyglyph'>]</span>-<a name="line-546"></a> <span class='keyglyph'>|</span> <span class='varid'>ist</span>-<a name="line-547"></a> <span class='varop'>&&</span>-<a name="line-548"></a> <span class='varid'>whitespace</span> <span class='varid'>s</span>-<a name="line-549"></a> <span class='keyglyph'>=</span> <span class='varid'>choice</span> <span class='varid'>p</span> <span class='varid'>p1</span>-<a name="line-550"></a> <span class='keyglyph'>|</span> <span class='varid'>ist</span>-<a name="line-551"></a> <span class='keyglyph'>=</span> <span class='varid'>p1</span>-<a name="line-552"></a> <span class='keyword'>where</span>-<a name="line-553"></a> <span class='varid'>ist</span> <span class='keyglyph'>=</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isText</span> <span class='varid'>tt</span>-<a name="line-554"></a> <span class='varid'>s</span> <span class='keyglyph'>=</span> <span class='varid'>fromJust</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getText</span> <span class='varop'>$</span> <span class='varid'>tt</span>-<a name="line-555"></a> <span class='varid'>p1</span> <span class='keyglyph'>=</span> <span class='varid'>childDeriv</span> <span class='varid'>cx</span> <span class='varid'>p</span> <span class='varid'>tt</span>-<a name="line-556"></a>-<a name="line-557"></a><span class='definition'>childrenDeriv</span> <span class='varid'>cx</span> <span class='varid'>p</span> <span class='varid'>children</span>-<a name="line-558"></a> <span class='keyglyph'>=</span> <span class='varid'>stripChildrenDeriv</span> <span class='varid'>cx</span> <span class='varid'>p</span> <span class='varid'>children</span> -<a name="line-559"></a>-<a name="line-560"></a><a name="stripChildrenDeriv"></a><span class='definition'>stripChildrenDeriv</span> <span class='keyglyph'>::</span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='conid'>Pattern</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>Pattern</span>-<a name="line-561"></a><span class='definition'>stripChildrenDeriv</span> <span class='keyword'>_</span> <span class='varid'>p</span> <span class='conid'>[]</span>-<a name="line-562"></a> <span class='keyglyph'>=</span> <span class='varid'>p</span>-<a name="line-563"></a>-<a name="line-564"></a><span class='definition'>stripChildrenDeriv</span> <span class='varid'>cx</span> <span class='varid'>p</span> <span class='layout'>(</span><span class='varid'>h</span><span class='conop'>:</span><span class='varid'>t</span><span class='layout'>)</span>-<a name="line-565"></a> <span class='keyglyph'>=</span> <span class='varid'>stripChildrenDeriv</span> <span class='varid'>cx</span>-<a name="line-566"></a> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>strip</span> <span class='varid'>h</span>-<a name="line-567"></a> <span class='keyword'>then</span> <span class='varid'>p</span>-<a name="line-568"></a> <span class='keyword'>else</span> <span class='layout'>(</span><span class='varid'>childDeriv</span> <span class='varid'>cx</span> <span class='varid'>p</span> <span class='varid'>h</span><span class='layout'>)</span>-<a name="line-569"></a> <span class='layout'>)</span> <span class='varid'>t</span>-<a name="line-570"></a>-<a name="line-571"></a>-<a name="line-572"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-573"></a><span class='comment'>-- </span>-<a name="line-574"></a><span class='comment'>-- | computes the derivative of a pattern with respect to a end tag</span>-<a name="line-575"></a>-<a name="line-576"></a><a name="endTagDeriv"></a><span class='definition'>endTagDeriv</span> <span class='keyglyph'>::</span> <span class='conid'>Pattern</span> <span class='keyglyph'>-></span> <span class='conid'>Pattern</span>-<a name="line-577"></a><span class='definition'>endTagDeriv</span> <span class='layout'>(</span><span class='conid'>Choice</span> <span class='varid'>p1</span> <span class='varid'>p2</span><span class='layout'>)</span>-<a name="line-578"></a> <span class='keyglyph'>=</span> <span class='varid'>choice</span> <span class='layout'>(</span><span class='varid'>endTagDeriv</span> <span class='varid'>p1</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>endTagDeriv</span> <span class='varid'>p2</span><span class='layout'>)</span>-<a name="line-579"></a>-<a name="line-580"></a><span class='definition'>endTagDeriv</span> <span class='layout'>(</span><span class='conid'>After</span> <span class='varid'>p1</span> <span class='varid'>p2</span><span class='layout'>)</span>-<a name="line-581"></a> <span class='keyglyph'>|</span> <span class='varid'>nullable</span> <span class='varid'>p1</span> -<a name="line-582"></a> <span class='keyglyph'>=</span> <span class='varid'>p2</span> -<a name="line-583"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-584"></a> <span class='keyglyph'>=</span> <span class='varid'>notAllowed</span> <span class='varop'>$</span>-<a name="line-585"></a> <span class='varid'>show</span> <span class='varid'>p1</span> <span class='varop'>++</span> <span class='str'>" expected"</span>-<a name="line-586"></a>-<a name="line-587"></a><span class='definition'>endTagDeriv</span> <span class='varid'>n</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NotAllowed</span> <span class='keyword'>_</span><span class='layout'>)</span>-<a name="line-588"></a> <span class='keyglyph'>=</span> <span class='varid'>n</span>-<a name="line-589"></a>-<a name="line-590"></a><span class='definition'>endTagDeriv</span> <span class='keyword'>_</span>-<a name="line-591"></a> <span class='keyglyph'>=</span> <span class='varid'>notAllowed</span> <span class='str'>"Call to endTagDeriv with wrong arguments"</span>-<a name="line-592"></a>-<a name="line-593"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-594"></a><span class='comment'>-- </span>-<a name="line-595"></a><span class='comment'>-- | applies a function (first parameter) to the second part of a after pattern</span>-<a name="line-596"></a>-<a name="line-597"></a><a name="applyAfter"></a><span class='definition'>applyAfter</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Pattern</span> <span class='keyglyph'>-></span> <span class='conid'>Pattern</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>Pattern</span> <span class='keyglyph'>-></span> <span class='conid'>Pattern</span>-<a name="line-598"></a>-<a name="line-599"></a><span class='definition'>applyAfter</span> <span class='varid'>f</span> <span class='layout'>(</span><span class='conid'>After</span> <span class='varid'>p1</span> <span class='varid'>p2</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>after</span> <span class='varid'>p1</span> <span class='layout'>(</span><span class='varid'>f</span> <span class='varid'>p2</span><span class='layout'>)</span>-<a name="line-600"></a><span class='definition'>applyAfter</span> <span class='varid'>f</span> <span class='layout'>(</span><span class='conid'>Choice</span> <span class='varid'>p1</span> <span class='varid'>p2</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>choice</span> <span class='layout'>(</span><span class='varid'>applyAfter</span> <span class='varid'>f</span> <span class='varid'>p1</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>applyAfter</span> <span class='varid'>f</span> <span class='varid'>p2</span><span class='layout'>)</span>-<a name="line-601"></a><span class='definition'>applyAfter</span> <span class='keyword'>_</span> <span class='varid'>n</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NotAllowed</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>n</span>-<a name="line-602"></a><span class='definition'>applyAfter</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='varid'>notAllowed</span> <span class='str'>"Call to applyAfter with wrong arguments"</span>-<a name="line-603"></a>-<a name="line-604"></a><span class='comment'>-- --------------------</span>-<a name="line-605"></a>-<a name="line-606"></a><span class='comment'>-- mothers little helpers</span>-<a name="line-607"></a>-<a name="line-608"></a><a name="strip"></a><span class='definition'>strip</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-609"></a><span class='definition'>strip</span> <span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='conid'>False</span> <span class='varid'>whitespace</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getText</span>-<a name="line-610"></a>-<a name="line-611"></a><a name="whitespace"></a><span class='definition'>whitespace</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-612"></a><span class='definition'>whitespace</span> <span class='keyglyph'>=</span> <span class='varid'>all</span> <span class='varid'>isXmlSpaceChar</span>-<a name="line-613"></a>-<a name="line-614"></a><a name="showXts"></a><span class='definition'>showXts</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-615"></a><span class='definition'>showXts</span> <span class='keyglyph'>=</span> <span class='varid'>concat</span> <span class='varop'>.</span> <span class='varid'>runLA</span> <span class='layout'>(</span><span class='varid'>xshow</span> <span class='varop'>$</span> <span class='varid'>arrL</span> <span class='varid'>id</span><span class='layout'>)</span>-<a name="line-616"></a>-<a name="line-617"></a><span class='comment'>-- ------------------------------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-RelaxNG-Validator.html
@@ -1,318 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- |</span>-<a name="line-2"></a><span class='comment'>-- This module exports the core functions from the basic validation und simplification libraries.</span>-<a name="line-3"></a><span class='comment'>-- It also exports some helper functions for easier access to the validation functionality.</span>-<a name="line-4"></a>-<a name="line-5"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>Validator</span>-<a name="line-6"></a> <span class='layout'>(</span> <span class='varid'>validateDocumentWithRelaxSchema</span>-<a name="line-7"></a> <span class='layout'>,</span> <span class='varid'>validateDocumentWithRelax</span>-<a name="line-8"></a>-<a name="line-9"></a> <span class='layout'>,</span> <span class='varid'>validate</span>-<a name="line-10"></a> <span class='layout'>,</span> <span class='varid'>validateSchema</span>-<a name="line-11"></a> <span class='layout'>,</span> <span class='varid'>validateWithSpezification</span>-<a name="line-12"></a> <span class='layout'>,</span> <span class='varid'>validateSchemaWithSpezification</span>-<a name="line-13"></a> <span class='layout'>,</span> <span class='varid'>validateWithoutSpezification</span>-<a name="line-14"></a> <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>Validation</span>-<a name="line-15"></a> <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>Simplification</span>-<a name="line-16"></a> <span class='layout'>)</span>-<a name="line-17"></a><span class='keyword'>where</span>-<a name="line-18"></a>-<a name="line-19"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ListArrows</span>-<a name="line-20"></a>-<a name="line-21"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>-<a name="line-22"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlArrow</span>-<a name="line-23"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlIOStateArrow</span>-<a name="line-24"></a>-<a name="line-25"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>Validation</span>-<a name="line-26"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>Simplification</span>-<a name="line-27"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>Schema</span> <span class='keyword'>as</span> <span class='conid'>S</span>-<a name="line-28"></a>-<a name="line-29"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-30"></a>-<a name="line-31"></a><span class='comment'>{- |-<a name="line-32"></a> validate a document with a Relax NG schema-<a name="line-33"></a>-<a name="line-34"></a> * 1.parameter : the option list for validation-<a name="line-35"></a>-<a name="line-36"></a> - 2.parameter : the URI of the Relax NG Schema-<a name="line-37"></a>-<a name="line-38"></a> - arrow-input : the document to be validated, namespaces must have been processed-<a name="line-39"></a>-<a name="line-40"></a> - arrow-output : the input document, or in case of validation errors, an empty document with status information in the root-<a name="line-41"></a>-<a name="line-42"></a>options evaluated by validateDocumentWithRelaxSchema:-<a name="line-43"></a>-<a name="line-44"></a> * 'a_check_restrictions' : check Relax NG schema restrictions when simplifying the schema (default: on)-<a name="line-45"></a> -<a name="line-46"></a> - 'a_validate_externalRef' : validate a Relax NG schema referenced by a externalRef-Pattern (default: on)-<a name="line-47"></a> -<a name="line-48"></a> - 'a_validate_include' : validate a Relax NG schema referenced by a include-Pattern (default: on)-<a name="line-49"></a> -<a name="line-50"></a>all other options are propagated to the read functions for schema input-<a name="line-51"></a>-<a name="line-52"></a>example:-<a name="line-53"></a>-<a name="line-54"></a>> validateDocumentWithRelaxSchema [(a_check_restrictions, "0")] "testSchema.rng"-<a name="line-55"></a>-<a name="line-56"></a>-<a name="line-57"></a>-}</span>-<a name="line-58"></a>-<a name="line-59"></a><a name="validateDocumentWithRelaxSchema"></a><span class='definition'>validateDocumentWithRelaxSchema</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-60"></a><span class='definition'>validateDocumentWithRelaxSchema</span> <span class='varid'>userOptions</span> <span class='varid'>relaxSchema</span>-<a name="line-61"></a> <span class='keyglyph'>=</span> <span class='varid'>withOtherUserState</span> <span class='conid'>()</span>-<a name="line-62"></a> <span class='varop'>$</span>-<a name="line-63"></a> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>validate'</span> <span class='varop'>$<</span> <span class='varid'>validSchema</span> <span class='layout'>)</span> <span class='comment'>-- try to validate, only possible if schema is o.k.</span>-<a name="line-64"></a> <span class='varop'>`orElse`</span>-<a name="line-65"></a> <span class='varid'>this</span>-<a name="line-66"></a> <span class='layout'>)</span>-<a name="line-67"></a> <span class='varop'>`when`</span>-<a name="line-68"></a> <span class='varid'>documentStatusOk</span> <span class='comment'>-- only do something when document status is ok</span>-<a name="line-69"></a> <span class='keyword'>where</span>-<a name="line-70"></a> <span class='varid'>validate'</span> <span class='varid'>schema</span>-<a name="line-71"></a> <span class='keyglyph'>=</span> <span class='varid'>setDocumentStatusFromSystemState</span> <span class='str'>"read and build Relax NG schema"</span>-<a name="line-72"></a> <span class='varop'>>>></span>-<a name="line-73"></a> <span class='varid'>validateDocumentWithRelax</span> <span class='varid'>schema</span>-<a name="line-74"></a>-<a name="line-75"></a> <span class='varid'>validSchema</span>-<a name="line-76"></a> <span class='keyglyph'>=</span> <span class='varid'>traceMsg</span> <span class='num'>2</span> <span class='layout'>(</span> <span class='str'>"read Relax NG schema document: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>relaxSchema</span> <span class='layout'>)</span>-<a name="line-77"></a> <span class='varop'>>>></span>-<a name="line-78"></a> <span class='varid'>readForRelax</span> <span class='varid'>remainingOptions</span> <span class='varid'>relaxSchema</span>-<a name="line-79"></a> <span class='varop'>>>></span>-<a name="line-80"></a> <span class='varid'>perform</span> <span class='layout'>(</span> <span class='keyword'>let</span> <span class='varid'>checkSchema</span> <span class='keyglyph'>=</span> <span class='conid'>True</span> <span class='keyword'>in</span> <span class='comment'>-- test option in al</span>-<a name="line-81"></a> <span class='keyword'>if</span> <span class='varid'>checkSchema</span>-<a name="line-82"></a> <span class='keyword'>then</span> <span class='varid'>validateWithRelaxAndHandleErrors</span> <span class='conid'>S</span><span class='varop'>.</span><span class='varid'>relaxSchemaArrow</span>-<a name="line-83"></a> <span class='keyword'>else</span> <span class='varid'>none</span>-<a name="line-84"></a> <span class='layout'>)</span>-<a name="line-85"></a> <span class='varop'>>>></span>-<a name="line-86"></a> <span class='varid'>traceMsg</span> <span class='num'>2</span> <span class='str'>"create simplified schema"</span>-<a name="line-87"></a> <span class='varop'>>>></span>-<a name="line-88"></a> <span class='varid'>createSimpleForm</span> <span class='varid'>remainingOptions</span>-<a name="line-89"></a> <span class='layout'>(</span> <span class='varid'>hasOption</span> <span class='varid'>a_check_restrictions</span> <span class='layout'>)</span>-<a name="line-90"></a> <span class='layout'>(</span> <span class='varid'>hasOption</span> <span class='varid'>a_validate_externalRef</span> <span class='layout'>)</span>-<a name="line-91"></a> <span class='layout'>(</span> <span class='varid'>hasOption</span> <span class='varid'>a_validate_include</span> <span class='layout'>)</span>-<a name="line-92"></a> <span class='varop'>>>></span>-<a name="line-93"></a> <span class='varid'>traceDoc</span> <span class='str'>"simplified schema"</span>-<a name="line-94"></a> <span class='varop'>>>></span>-<a name="line-95"></a> <span class='varid'>perform</span> <span class='layout'>(</span> <span class='varid'>getErrors</span>-<a name="line-96"></a> <span class='varop'>>>></span>-<a name="line-97"></a> <span class='varid'>handleSimplificationErrors</span>-<a name="line-98"></a> <span class='layout'>)</span>-<a name="line-99"></a> <span class='varid'>hasOption</span> <span class='varid'>n</span>-<a name="line-100"></a> <span class='keyglyph'>=</span> <span class='varid'>optionIsSet</span> <span class='varid'>n</span> <span class='varid'>options</span>-<a name="line-101"></a>-<a name="line-102"></a> <span class='varid'>options</span> <span class='keyglyph'>=</span> <span class='varid'>addEntries</span> <span class='varid'>userOptions</span> <span class='varid'>defaultOptions</span>-<a name="line-103"></a>-<a name="line-104"></a> <span class='varid'>defaultOptions</span>-<a name="line-105"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span> <span class='varid'>a_check_restrictions</span><span class='layout'>,</span> <span class='varid'>v_1</span> <span class='layout'>)</span>-<a name="line-106"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>a_validate_externalRef</span><span class='layout'>,</span> <span class='varid'>v_1</span> <span class='layout'>)</span>-<a name="line-107"></a> <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>a_validate_include</span><span class='layout'>,</span> <span class='varid'>v_1</span> <span class='layout'>)</span>-<a name="line-108"></a> <span class='keyglyph'>]</span>-<a name="line-109"></a>-<a name="line-110"></a> <span class='varid'>remainingOptions</span>-<a name="line-111"></a> <span class='keyglyph'>=</span> <span class='varid'>filter</span> <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>flip</span> <span class='varid'>hasEntry</span> <span class='varid'>defaultOptions</span> <span class='varop'>.</span> <span class='varid'>fst</span><span class='layout'>)</span> <span class='varid'>options</span>-<a name="line-112"></a>-<a name="line-113"></a>-<a name="line-114"></a>-<a name="line-115"></a><a name="handleSimplificationErrors"></a><span class='definition'>handleSimplificationErrors</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-116"></a><span class='definition'>handleSimplificationErrors</span>-<a name="line-117"></a> <span class='keyglyph'>=</span> <span class='varid'>traceDoc</span> <span class='str'>"simplification errors"</span>-<a name="line-118"></a> <span class='varop'>>>></span>-<a name="line-119"></a> <span class='varid'>getChildren</span> <span class='varop'>>>></span> <span class='varid'>getAttrValue</span> <span class='str'>"desc"</span>-<a name="line-120"></a> <span class='varop'>>>></span>-<a name="line-121"></a> <span class='varid'>arr</span> <span class='layout'>(</span><span class='str'>"Relax NG validation: "</span> <span class='varop'>++</span><span class='layout'>)</span>-<a name="line-122"></a> <span class='varop'>>>></span>-<a name="line-123"></a> <span class='varid'>mkError</span> <span class='varid'>c_err</span>-<a name="line-124"></a> <span class='varop'>>>></span>-<a name="line-125"></a> <span class='varid'>filterErrorMsg</span>-<a name="line-126"></a>-<a name="line-127"></a>-<a name="line-128"></a><span class='comment'>{- | validate an XML document with respect to a Relax NG schema-<a name="line-129"></a>-<a name="line-130"></a> * 1.parameter : the valid and simplified schema as XML tree-<a name="line-131"></a>-<a name="line-132"></a> - arrow-input : the document to be validated-<a name="line-133"></a>-<a name="line-134"></a> - arrow-output : the validated and unchanged document or the empty document with status information set in the root node-<a name="line-135"></a>-}</span>-<a name="line-136"></a>-<a name="line-137"></a><a name="validateDocumentWithRelax"></a><span class='definition'>validateDocumentWithRelax</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-138"></a><span class='definition'>validateDocumentWithRelax</span> <span class='varid'>schema</span>-<a name="line-139"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>traceMsg</span> <span class='num'>1</span> <span class='str'>"validate document with Relax NG schema"</span>-<a name="line-140"></a> <span class='varop'>>>></span>-<a name="line-141"></a> <span class='varid'>perform</span> <span class='layout'>(</span> <span class='varid'>validateWithRelaxAndHandleErrors</span> <span class='layout'>(</span><span class='varid'>constA</span> <span class='varid'>schema</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-142"></a> <span class='varop'>>>></span>-<a name="line-143"></a> <span class='varid'>setDocumentStatusFromSystemState</span> <span class='str'>"validate document with Relax NG schema"</span>-<a name="line-144"></a> <span class='layout'>)</span>-<a name="line-145"></a> <span class='varop'>`when`</span> <span class='varid'>documentStatusOk</span> <span class='comment'>-- only do something when document status is ok</span>-<a name="line-146"></a>-<a name="line-147"></a>-<a name="line-148"></a><span class='comment'>{- |-<a name="line-149"></a> normalize a document for Relax NG validation,-<a name="line-150"></a> call the 'Text.XML.HXT.RelaxNG.Validation.validateRelax' function for doing the hard work,-<a name="line-151"></a> and issue errors-<a name="line-152"></a>-<a name="line-153"></a> * 1.parameter : the arrow for computing the schema-<a name="line-154"></a>-<a name="line-155"></a> - arrow-input : the document to be validated-<a name="line-156"></a>-<a name="line-157"></a> - arrow-output : nothing-<a name="line-158"></a>-}</span>-<a name="line-159"></a>-<a name="line-160"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-161"></a>-<a name="line-162"></a><a name="validate"></a><span class='comment'>{- | Document validation-<a name="line-163"></a>-<a name="line-164"></a>Validates a xml document with respect to a Relax NG schema.-<a name="line-165"></a>-<a name="line-166"></a>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.-<a name="line-167"></a>-<a name="line-168"></a> * 1.parameter : list of options; namespace progagation is always done-<a name="line-169"></a>-<a name="line-170"></a> - 2.parameter : XML document-<a name="line-171"></a> -<a name="line-172"></a> - 3.parameter : Relax NG schema file-<a name="line-173"></a>-<a name="line-174"></a>available options:-<a name="line-175"></a>-<a name="line-176"></a> * 'a_do_not_check_restrictions' : do not check Relax NG schema restrictions (includes do-not-validate-externalRef, do-not-validate-include)-<a name="line-177"></a> -<a name="line-178"></a> - 'a_do_not_validate_externalRef' : do not validate a Relax NG schema referenced by a externalRef-Pattern-<a name="line-179"></a> -<a name="line-180"></a> - 'a_validate_externalRef' : validate a Relax NG schema referenced by a externalRef-Pattern (default)-<a name="line-181"></a> -<a name="line-182"></a> - 'a_do_not_validate_include' : do not validate a Relax NG schema referenced by a include-Pattern-<a name="line-183"></a> -<a name="line-184"></a> - 'a_validate_include' : validate a Relax NG schema referenced by a include-Pattern (default)-<a name="line-185"></a> -<a name="line-186"></a> - 'a_output_changes' : output Pattern transformations in case of an error-<a name="line-187"></a> -<a name="line-188"></a> - 'a_do_not_collect_errors' : stop Relax NG simplification after the first error has occurred-<a name="line-189"></a> -<a name="line-190"></a> - all 'Text.XML.HXT.Arrow.ReadDocument.readDocument' options-<a name="line-191"></a>-<a name="line-192"></a>example:-<a name="line-193"></a>-<a name="line-194"></a>> validate [(a_do_not_check_restrictions, "1")] "test.xml" "testSchema.rng"-<a name="line-195"></a>-<a name="line-196"></a>-}</span>-<a name="line-197"></a><span class='definition'>validate</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>IOSArrow</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span>-<a name="line-198"></a><span class='definition'>validate</span> <span class='varid'>al</span> <span class='varid'>xmlDocument</span> <span class='varid'>relaxSchema</span>-<a name="line-199"></a> <span class='keyglyph'>=</span> <span class='conid'>S</span><span class='varop'>.</span><span class='varid'>relaxSchemaArrow</span>-<a name="line-200"></a> <span class='varop'>>>></span> -<a name="line-201"></a> <span class='varid'>validateWithSpezification</span> <span class='varid'>al</span> <span class='varid'>xmlDocument</span> <span class='varid'>relaxSchema</span>-<a name="line-202"></a>-<a name="line-203"></a>-<a name="line-204"></a>-<a name="line-205"></a>-<a name="line-206"></a><a name="validateSchema"></a><span class='comment'>{- | Relax NG schema validation-<a name="line-207"></a>-<a name="line-208"></a>Validates a Relax NG schema with respect to the Relax NG Spezification.-<a name="line-209"></a>-<a name="line-210"></a> * 1.parameter : list of available options (see also: 'validate')-<a name="line-211"></a>-<a name="line-212"></a> - 2.parameter : Relax NG schema file-<a name="line-213"></a> -<a name="line-214"></a>-}</span>-<a name="line-215"></a><span class='definition'>validateSchema</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>IOSArrow</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span>-<a name="line-216"></a><span class='definition'>validateSchema</span> <span class='varid'>al</span> <span class='varid'>relaxSchema</span>-<a name="line-217"></a> <span class='keyglyph'>=</span> <span class='varid'>validate</span> <span class='varid'>al</span> <span class='str'>""</span> <span class='varid'>relaxSchema</span>-<a name="line-218"></a>-<a name="line-219"></a>-<a name="line-220"></a>-<a name="line-221"></a><a name="validateWithSpezification"></a><span class='comment'>{- | Document validation-<a name="line-222"></a>-<a name="line-223"></a>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.-<a name="line-224"></a>-<a name="line-225"></a> * 1.parameter : list of available options (see also: 'validate')-<a name="line-226"></a>-<a name="line-227"></a> - 2.parameter : XML document-<a name="line-228"></a> -<a name="line-229"></a> - 3.parameter : Relax NG schema file-<a name="line-230"></a> -<a name="line-231"></a> - arrow-input : Relax NG Specification in simple form-<a name="line-232"></a>-<a name="line-233"></a>example:-<a name="line-234"></a>-<a name="line-235"></a>> Text.XML.HXT.RelaxNG.Schema.relaxSchemaArrow-<a name="line-236"></a>> >>>-<a name="line-237"></a>> ( validateWithSpezification [] "foo.xml" "foo.rng"-<a name="line-238"></a>> &&&-<a name="line-239"></a>> validateWithSpezification [] "bar.xml" "bar.rng"-<a name="line-240"></a>> )-<a name="line-241"></a>-<a name="line-242"></a>-<a name="line-243"></a>-}</span>-<a name="line-244"></a><span class='definition'>validateWithSpezification</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-245"></a><span class='definition'>validateWithSpezification</span> <span class='varid'>al</span> <span class='varid'>xmlDocument</span> <span class='varid'>relaxSchema</span>-<a name="line-246"></a> <span class='keyglyph'>=</span> <span class='comment'>-- validation of the schema with respect to the specification</span>-<a name="line-247"></a> <span class='comment'>-- returns a list of errors or none if the schema is correct</span>-<a name="line-248"></a>-<a name="line-249"></a> <span class='layout'>(</span> <span class='varid'>validateRelax</span> <span class='varop'>$<</span> <span class='layout'>(</span> <span class='varid'>readForRelax</span> <span class='varid'>al</span> <span class='varid'>relaxSchema</span>-<a name="line-250"></a> <span class='varop'>>>></span>-<a name="line-251"></a> <span class='varid'>getChildren</span>-<a name="line-252"></a> <span class='layout'>)</span>-<a name="line-253"></a> <span class='layout'>)</span>-<a name="line-254"></a> <span class='varop'>`orElse`</span>-<a name="line-255"></a>-<a name="line-256"></a> <span class='comment'>-- validation of the xml document with respect to the schema</span>-<a name="line-257"></a> <span class='comment'>-- returns a list of errors or none if the xml document is correct </span>-<a name="line-258"></a>-<a name="line-259"></a> <span class='varid'>validateWithoutSpezification</span> <span class='varid'>al</span> <span class='varid'>xmlDocument</span> <span class='varid'>relaxSchema</span>-<a name="line-260"></a>-<a name="line-261"></a><span class='comment'>{- | Relax NG schema validation-<a name="line-262"></a>-<a name="line-263"></a> see 'validateSchema' and 'validateWithSpezification'-<a name="line-264"></a>-<a name="line-265"></a> * 1.parameter : list of available options (see also: 'validate')-<a name="line-266"></a>-<a name="line-267"></a> - 2.parameter : Relax NG schema file -<a name="line-268"></a> -<a name="line-269"></a> - arrow-input : Relax NG Specification in simple form-<a name="line-270"></a>-}</span>-<a name="line-271"></a>-<a name="line-272"></a><a name="validateSchemaWithSpezification"></a><span class='definition'>validateSchemaWithSpezification</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-273"></a><span class='definition'>validateSchemaWithSpezification</span> <span class='varid'>al</span> <span class='varid'>relaxSchema</span>-<a name="line-274"></a> <span class='keyglyph'>=</span> <span class='varid'>validateWithSpezification</span> <span class='varid'>al</span> <span class='str'>""</span> <span class='varid'>relaxSchema</span>-<a name="line-275"></a>-<a name="line-276"></a>-<a name="line-277"></a>-<a name="line-278"></a><span class='comment'>{- | Document validation-<a name="line-279"></a>-<a name="line-280"></a>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.-<a name="line-281"></a>-<a name="line-282"></a> * 1.parameter : list of available options (see also: 'validate')-<a name="line-283"></a>-<a name="line-284"></a> - 2.parameter : XML document-<a name="line-285"></a> -<a name="line-286"></a> - 3.parameter : Relax NG schema file-<a name="line-287"></a> -<a name="line-288"></a>-}</span>-<a name="line-289"></a>-<a name="line-290"></a>-<a name="line-291"></a><a name="validateWithoutSpezification"></a><span class='definition'>validateWithoutSpezification</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>IOSArrow</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span>-<a name="line-292"></a><span class='definition'>validateWithoutSpezification</span> <span class='varid'>al</span> <span class='varid'>xmlDocument</span> <span class='varid'>relaxSchema</span>-<a name="line-293"></a> <span class='keyglyph'>=</span> <span class='varid'>readForRelax</span> <span class='varid'>al</span> <span class='varid'>relaxSchema</span>-<a name="line-294"></a> <span class='varop'>>>></span> -<a name="line-295"></a> <span class='varid'>createSimpleForm</span> <span class='varid'>al</span> <span class='conid'>True</span> <span class='conid'>True</span> <span class='conid'>True</span>-<a name="line-296"></a> <span class='varop'>>>></span>-<a name="line-297"></a> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>getErrors</span> <span class='varop'>>>></span> <span class='varid'>perform</span> <span class='varid'>handleSimplificationErrors</span> <span class='layout'>)</span> <span class='comment'>-- issue errors in schema simplification</span>-<a name="line-298"></a> <span class='varop'>`orElse`</span>-<a name="line-299"></a> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>xmlDocument</span> <span class='comment'>-- no errors: validate document</span>-<a name="line-300"></a> <span class='keyword'>then</span> <span class='varid'>none</span>-<a name="line-301"></a> <span class='keyword'>else</span> <span class='varid'>validateRelax</span> <span class='varop'>$<</span> <span class='layout'>(</span> <span class='varid'>readForRelax</span> <span class='varid'>al</span> <span class='varid'>xmlDocument</span>-<a name="line-302"></a> <span class='varop'>>>></span>-<a name="line-303"></a> <span class='varid'>normalizeForRelaxValidation</span>-<a name="line-304"></a> <span class='varop'>>>></span>-<a name="line-305"></a> <span class='varid'>getChildren</span>-<a name="line-306"></a> <span class='layout'>)</span>-<a name="line-307"></a> <span class='layout'>)</span>-<a name="line-308"></a> <span class='layout'>)</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html
@@ -1,620 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C-<a name="line-5"></a> Copyright : Copyright (C) 2005 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe@fh-wedel.de)-<a name="line-9"></a> Stability : experimental-<a name="line-10"></a> Portability: portable-<a name="line-11"></a> Version : $Id$-<a name="line-12"></a>-<a name="line-13"></a> Datatype library for the W3C XML schema datatypes-<a name="line-14"></a>-<a name="line-15"></a>-}</span>-<a name="line-16"></a>-<a name="line-17"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-18"></a>-<a name="line-19"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>XmlSchema</span><span class='varop'>.</span><span class='conid'>DataTypeLibW3C</span>-<a name="line-20"></a> <span class='layout'>(</span> <span class='varid'>w3cNS</span>-<a name="line-21"></a> <span class='layout'>,</span> <span class='varid'>w3cDatatypeLib</span>-<a name="line-22"></a>-<a name="line-23"></a> <span class='layout'>,</span> <span class='varid'>xsd_string</span> <span class='comment'>-- data type names</span>-<a name="line-24"></a> <span class='layout'>,</span> <span class='varid'>xsd_normalizedString</span>-<a name="line-25"></a> <span class='layout'>,</span> <span class='varid'>xsd_token</span>-<a name="line-26"></a> <span class='layout'>,</span> <span class='varid'>xsd_language</span>-<a name="line-27"></a> <span class='layout'>,</span> <span class='varid'>xsd_NMTOKEN</span>-<a name="line-28"></a> <span class='layout'>,</span> <span class='varid'>xsd_NMTOKENS</span>-<a name="line-29"></a> <span class='layout'>,</span> <span class='varid'>xsd_Name</span>-<a name="line-30"></a> <span class='layout'>,</span> <span class='varid'>xsd_NCName</span>-<a name="line-31"></a> <span class='layout'>,</span> <span class='varid'>xsd_ID</span>-<a name="line-32"></a> <span class='layout'>,</span> <span class='varid'>xsd_IDREF</span>-<a name="line-33"></a> <span class='layout'>,</span> <span class='varid'>xsd_IDREFS</span>-<a name="line-34"></a> <span class='layout'>,</span> <span class='varid'>xsd_ENTITY</span>-<a name="line-35"></a> <span class='layout'>,</span> <span class='varid'>xsd_ENTITIES</span>-<a name="line-36"></a> <span class='layout'>,</span> <span class='varid'>xsd_anyURI</span>-<a name="line-37"></a> <span class='layout'>,</span> <span class='varid'>xsd_QName</span>-<a name="line-38"></a> <span class='layout'>,</span> <span class='varid'>xsd_NOTATION</span>-<a name="line-39"></a> <span class='layout'>,</span> <span class='varid'>xsd_hexBinary</span>-<a name="line-40"></a> <span class='layout'>,</span> <span class='varid'>xsd_base64Binary</span>-<a name="line-41"></a> <span class='layout'>,</span> <span class='varid'>xsd_decimal</span>-<a name="line-42"></a>-<a name="line-43"></a> <span class='layout'>,</span> <span class='varid'>xsd_length</span> <span class='comment'>-- facet names</span>-<a name="line-44"></a> <span class='layout'>,</span> <span class='varid'>xsd_maxLength</span>-<a name="line-45"></a> <span class='layout'>,</span> <span class='varid'>xsd_minLength</span>-<a name="line-46"></a> <span class='layout'>,</span> <span class='varid'>xsd_maxExclusive</span>-<a name="line-47"></a> <span class='layout'>,</span> <span class='varid'>xsd_minExclusive</span>-<a name="line-48"></a> <span class='layout'>,</span> <span class='varid'>xsd_maxInclusive</span>-<a name="line-49"></a> <span class='layout'>,</span> <span class='varid'>xsd_minInclusive</span>-<a name="line-50"></a> <span class='layout'>,</span> <span class='varid'>xsd_totalDigits</span>-<a name="line-51"></a> <span class='layout'>,</span> <span class='varid'>xsd_fractionDigits</span>-<a name="line-52"></a> <span class='layout'>,</span> <span class='varid'>xsd_pattern</span>-<a name="line-53"></a> <span class='layout'>,</span> <span class='varid'>xsd_enumeration</span>-<a name="line-54"></a> <span class='layout'>)</span>-<a name="line-55"></a><span class='keyword'>where</span>-<a name="line-56"></a>-<a name="line-57"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>-<a name="line-58"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Ratio</span>-<a name="line-59"></a>-<a name="line-60"></a><span class='keyword'>import</span> <span class='conid'>Network</span><span class='varop'>.</span><span class='conid'>URI</span> <span class='layout'>(</span> <span class='varid'>isURIReference</span> <span class='layout'>)</span>-<a name="line-61"></a>-<a name="line-62"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>QualifiedName</span> <span class='layout'>(</span> <span class='varid'>isWellformedQualifiedName</span>-<a name="line-63"></a> <span class='layout'>,</span> <span class='varid'>isNCName</span>-<a name="line-64"></a> <span class='layout'>)</span>-<a name="line-65"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>DataTypeLibUtils</span>-<a name="line-66"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>XmlSchema</span><span class='varop'>.</span><span class='conid'>Regex</span> <span class='layout'>(</span> <span class='conid'>Regex</span>-<a name="line-67"></a> <span class='layout'>,</span> <span class='varid'>matchWithRE</span>-<a name="line-68"></a> <span class='layout'>)</span>-<a name="line-69"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>XmlSchema</span><span class='varop'>.</span><span class='conid'>RegexParser</span>-<a name="line-70"></a> <span class='layout'>(</span> <span class='varid'>parseRegex</span>-<a name="line-71"></a> <span class='layout'>)</span>-<a name="line-72"></a> -<a name="line-73"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-74"></a>-<a name="line-75"></a><span class='comment'>-- | Namespace of the W3C XML schema datatype library</span>-<a name="line-76"></a>-<a name="line-77"></a><a name="w3cNS"></a><span class='definition'>w3cNS</span> <span class='keyglyph'>::</span> <span class='conid'>String</span>-<a name="line-78"></a><span class='definition'>w3cNS</span> <span class='keyglyph'>=</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span>-<a name="line-79"></a>-<a name="line-80"></a>-<a name="line-81"></a><a name="xsd_string"></a><span class='definition'>xsd_string</span>-<a name="line-82"></a> <span class='layout'>,</span> <span class='varid'>xsd_normalizedString</span>-<a name="line-83"></a> <span class='layout'>,</span> <span class='varid'>xsd_token</span>-<a name="line-84"></a> <span class='layout'>,</span> <span class='varid'>xsd_language</span>-<a name="line-85"></a> <span class='layout'>,</span> <span class='varid'>xsd_NMTOKEN</span>-<a name="line-86"></a> <span class='layout'>,</span> <span class='varid'>xsd_NMTOKENS</span>-<a name="line-87"></a> <span class='layout'>,</span> <span class='varid'>xsd_Name</span>-<a name="line-88"></a> <span class='layout'>,</span> <span class='varid'>xsd_NCName</span>-<a name="line-89"></a> <span class='layout'>,</span> <span class='varid'>xsd_ID</span>-<a name="line-90"></a> <span class='layout'>,</span> <span class='varid'>xsd_IDREF</span>-<a name="line-91"></a> <span class='layout'>,</span> <span class='varid'>xsd_IDREFS</span>-<a name="line-92"></a> <span class='layout'>,</span> <span class='varid'>xsd_ENTITY</span>-<a name="line-93"></a> <span class='layout'>,</span> <span class='varid'>xsd_ENTITIES</span>-<a name="line-94"></a> <span class='layout'>,</span> <span class='varid'>xsd_anyURI</span>-<a name="line-95"></a> <span class='layout'>,</span> <span class='varid'>xsd_QName</span>-<a name="line-96"></a> <span class='layout'>,</span> <span class='varid'>xsd_NOTATION</span>-<a name="line-97"></a> <span class='layout'>,</span> <span class='varid'>xsd_hexBinary</span>-<a name="line-98"></a> <span class='layout'>,</span> <span class='varid'>xsd_base64Binary</span>-<a name="line-99"></a> <span class='layout'>,</span> <span class='varid'>xsd_decimal</span>-<a name="line-100"></a> <span class='layout'>,</span> <span class='varid'>xsd_integer</span>-<a name="line-101"></a> <span class='layout'>,</span> <span class='varid'>xsd_nonPositiveInteger</span>-<a name="line-102"></a> <span class='layout'>,</span> <span class='varid'>xsd_negativeInteger</span>-<a name="line-103"></a> <span class='layout'>,</span> <span class='varid'>xsd_nonNegativeInteger</span>-<a name="line-104"></a> <span class='layout'>,</span> <span class='varid'>xsd_positiveInteger</span>-<a name="line-105"></a> <span class='layout'>,</span> <span class='varid'>xsd_long</span>-<a name="line-106"></a> <span class='layout'>,</span> <span class='varid'>xsd_int</span>-<a name="line-107"></a> <span class='layout'>,</span> <span class='varid'>xsd_short</span>-<a name="line-108"></a> <span class='layout'>,</span> <span class='varid'>xsd_byte</span>-<a name="line-109"></a> <span class='layout'>,</span> <span class='varid'>xsd_unsignedLong</span>-<a name="line-110"></a> <span class='layout'>,</span> <span class='varid'>xsd_unsignedInt</span>-<a name="line-111"></a> <span class='layout'>,</span> <span class='varid'>xsd_unsignedShort</span>-<a name="line-112"></a> <span class='layout'>,</span> <span class='varid'>xsd_unsignedByte</span> <span class='keyglyph'>::</span> <span class='conid'>String</span>-<a name="line-113"></a>-<a name="line-114"></a><span class='definition'>xsd_string</span> <span class='keyglyph'>=</span> <span class='str'>"string"</span>-<a name="line-115"></a><a name="xsd_normalizedString"></a><span class='definition'>xsd_normalizedString</span> <span class='keyglyph'>=</span> <span class='str'>"normalizedString"</span>-<a name="line-116"></a><a name="xsd_token"></a><span class='definition'>xsd_token</span> <span class='keyglyph'>=</span> <span class='str'>"token"</span>-<a name="line-117"></a><a name="xsd_language"></a><span class='definition'>xsd_language</span> <span class='keyglyph'>=</span> <span class='str'>"language"</span>-<a name="line-118"></a><a name="xsd_NMTOKEN"></a><span class='definition'>xsd_NMTOKEN</span> <span class='keyglyph'>=</span> <span class='str'>"NMTOKEN"</span>-<a name="line-119"></a><a name="xsd_NMTOKENS"></a><span class='definition'>xsd_NMTOKENS</span> <span class='keyglyph'>=</span> <span class='str'>"NMTOKENS"</span>-<a name="line-120"></a><a name="xsd_Name"></a><span class='definition'>xsd_Name</span> <span class='keyglyph'>=</span> <span class='str'>"Name"</span>-<a name="line-121"></a><a name="xsd_NCName"></a><span class='definition'>xsd_NCName</span> <span class='keyglyph'>=</span> <span class='str'>"NCName"</span>-<a name="line-122"></a><a name="xsd_ID"></a><span class='definition'>xsd_ID</span> <span class='keyglyph'>=</span> <span class='str'>"ID"</span>-<a name="line-123"></a><a name="xsd_IDREF"></a><span class='definition'>xsd_IDREF</span> <span class='keyglyph'>=</span> <span class='str'>"IDREF"</span>-<a name="line-124"></a><a name="xsd_IDREFS"></a><span class='definition'>xsd_IDREFS</span> <span class='keyglyph'>=</span> <span class='str'>"IDREFS"</span>-<a name="line-125"></a><a name="xsd_ENTITY"></a><span class='definition'>xsd_ENTITY</span> <span class='keyglyph'>=</span> <span class='str'>"ENTITY"</span>-<a name="line-126"></a><a name="xsd_ENTITIES"></a><span class='definition'>xsd_ENTITIES</span> <span class='keyglyph'>=</span> <span class='str'>"ENTITIES"</span>-<a name="line-127"></a><a name="xsd_anyURI"></a><span class='definition'>xsd_anyURI</span> <span class='keyglyph'>=</span> <span class='str'>"anyURI"</span>-<a name="line-128"></a><a name="xsd_QName"></a><span class='definition'>xsd_QName</span> <span class='keyglyph'>=</span> <span class='str'>"QName"</span>-<a name="line-129"></a><a name="xsd_NOTATION"></a><span class='definition'>xsd_NOTATION</span> <span class='keyglyph'>=</span> <span class='str'>"NOTATION"</span>-<a name="line-130"></a><a name="xsd_hexBinary"></a><span class='definition'>xsd_hexBinary</span> <span class='keyglyph'>=</span> <span class='str'>"hexBinary"</span>-<a name="line-131"></a><a name="xsd_base64Binary"></a><span class='definition'>xsd_base64Binary</span> <span class='keyglyph'>=</span> <span class='str'>"base64Binary"</span>-<a name="line-132"></a><a name="xsd_decimal"></a><span class='definition'>xsd_decimal</span> <span class='keyglyph'>=</span> <span class='str'>"decimal"</span>-<a name="line-133"></a><a name="xsd_integer"></a><span class='definition'>xsd_integer</span> <span class='keyglyph'>=</span> <span class='str'>"integer"</span>-<a name="line-134"></a><a name="xsd_nonPositiveInteger"></a><span class='definition'>xsd_nonPositiveInteger</span> <span class='keyglyph'>=</span> <span class='str'>"nonPositiveInteger"</span>-<a name="line-135"></a><a name="xsd_negativeInteger"></a><span class='definition'>xsd_negativeInteger</span> <span class='keyglyph'>=</span> <span class='str'>"negativeInteger"</span>-<a name="line-136"></a><a name="xsd_nonNegativeInteger"></a><span class='definition'>xsd_nonNegativeInteger</span> <span class='keyglyph'>=</span> <span class='str'>"nonNegativeInteger"</span>-<a name="line-137"></a><a name="xsd_positiveInteger"></a><span class='definition'>xsd_positiveInteger</span> <span class='keyglyph'>=</span> <span class='str'>"positiveInteger"</span>-<a name="line-138"></a><a name="xsd_long"></a><span class='definition'>xsd_long</span> <span class='keyglyph'>=</span> <span class='str'>"long"</span>-<a name="line-139"></a><a name="xsd_int"></a><span class='definition'>xsd_int</span> <span class='keyglyph'>=</span> <span class='str'>"int"</span>-<a name="line-140"></a><a name="xsd_short"></a><span class='definition'>xsd_short</span> <span class='keyglyph'>=</span> <span class='str'>"short"</span>-<a name="line-141"></a><a name="xsd_byte"></a><span class='definition'>xsd_byte</span> <span class='keyglyph'>=</span> <span class='str'>"byte"</span>-<a name="line-142"></a><a name="xsd_unsignedLong"></a><span class='definition'>xsd_unsignedLong</span> <span class='keyglyph'>=</span> <span class='str'>"unsignedLong"</span>-<a name="line-143"></a><a name="xsd_unsignedInt"></a><span class='definition'>xsd_unsignedInt</span> <span class='keyglyph'>=</span> <span class='str'>"unsignedInt"</span>-<a name="line-144"></a><a name="xsd_unsignedShort"></a><span class='definition'>xsd_unsignedShort</span> <span class='keyglyph'>=</span> <span class='str'>"unsignedShort"</span>-<a name="line-145"></a><a name="xsd_unsignedByte"></a><span class='definition'>xsd_unsignedByte</span> <span class='keyglyph'>=</span> <span class='str'>"unsignedByte"</span>-<a name="line-146"></a>-<a name="line-147"></a>-<a name="line-148"></a><a name="xsd_length"></a><span class='definition'>xsd_length</span>-<a name="line-149"></a> <span class='layout'>,</span> <span class='varid'>xsd_maxLength</span>-<a name="line-150"></a> <span class='layout'>,</span> <span class='varid'>xsd_minLength</span>-<a name="line-151"></a> <span class='layout'>,</span> <span class='varid'>xsd_maxExclusive</span>-<a name="line-152"></a> <span class='layout'>,</span> <span class='varid'>xsd_minExclusive</span>-<a name="line-153"></a> <span class='layout'>,</span> <span class='varid'>xsd_maxInclusive</span>-<a name="line-154"></a> <span class='layout'>,</span> <span class='varid'>xsd_minInclusive</span>-<a name="line-155"></a> <span class='layout'>,</span> <span class='varid'>xsd_totalDigits</span>-<a name="line-156"></a> <span class='layout'>,</span> <span class='varid'>xsd_fractionDigits</span>-<a name="line-157"></a> <span class='layout'>,</span> <span class='varid'>xsd_pattern</span>-<a name="line-158"></a> <span class='layout'>,</span> <span class='varid'>xsd_enumeration</span> <span class='keyglyph'>::</span> <span class='conid'>String</span>-<a name="line-159"></a>-<a name="line-160"></a><span class='definition'>xsd_length</span> <span class='keyglyph'>=</span> <span class='varid'>rng_length</span>-<a name="line-161"></a><a name="xsd_maxLength"></a><span class='definition'>xsd_maxLength</span> <span class='keyglyph'>=</span> <span class='varid'>rng_maxLength</span>-<a name="line-162"></a><a name="xsd_minLength"></a><span class='definition'>xsd_minLength</span> <span class='keyglyph'>=</span> <span class='varid'>rng_minLength</span>-<a name="line-163"></a>-<a name="line-164"></a><a name="xsd_maxExclusive"></a><span class='definition'>xsd_maxExclusive</span> <span class='keyglyph'>=</span> <span class='varid'>rng_maxExclusive</span>-<a name="line-165"></a><a name="xsd_minExclusive"></a><span class='definition'>xsd_minExclusive</span> <span class='keyglyph'>=</span> <span class='varid'>rng_minExclusive</span>-<a name="line-166"></a><a name="xsd_maxInclusive"></a><span class='definition'>xsd_maxInclusive</span> <span class='keyglyph'>=</span> <span class='varid'>rng_maxInclusive</span>-<a name="line-167"></a><a name="xsd_minInclusive"></a><span class='definition'>xsd_minInclusive</span> <span class='keyglyph'>=</span> <span class='varid'>rng_minInclusive</span>-<a name="line-168"></a>-<a name="line-169"></a><a name="xsd_totalDigits"></a><span class='definition'>xsd_totalDigits</span> <span class='keyglyph'>=</span> <span class='str'>"totalDigits"</span>-<a name="line-170"></a><a name="xsd_fractionDigits"></a><span class='definition'>xsd_fractionDigits</span> <span class='keyglyph'>=</span> <span class='str'>"fractionDigits"</span>-<a name="line-171"></a>-<a name="line-172"></a><a name="xsd_pattern"></a><span class='definition'>xsd_pattern</span> <span class='keyglyph'>=</span> <span class='str'>"pattern"</span>-<a name="line-173"></a><a name="xsd_enumeration"></a><span class='definition'>xsd_enumeration</span> <span class='keyglyph'>=</span> <span class='str'>"enumeration"</span>-<a name="line-174"></a>-<a name="line-175"></a><span class='comment'>-- ----------------------------------------</span>-<a name="line-176"></a>-<a name="line-177"></a><a name="w3cDatatypeLib"></a><span class='comment'>-- | The main entry point to the W3C XML schema datatype library.</span>-<a name="line-178"></a><span class='comment'>--</span>-<a name="line-179"></a><span class='comment'>-- The 'DTC' constructor exports the list of supported datatypes and params.</span>-<a name="line-180"></a><span class='comment'>-- It also exports the specialized functions to validate a XML instance value with</span>-<a name="line-181"></a><span class='comment'>-- respect to a datatype.</span>-<a name="line-182"></a><span class='definition'>w3cDatatypeLib</span> <span class='keyglyph'>::</span> <span class='conid'>DatatypeLibrary</span>-<a name="line-183"></a><span class='definition'>w3cDatatypeLib</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>w3cNS</span><span class='layout'>,</span> <span class='conid'>DTC</span> <span class='varid'>datatypeAllowsW3C</span> <span class='varid'>datatypeEqualW3C</span> <span class='varid'>w3cDatatypes</span><span class='layout'>)</span>-<a name="line-184"></a>-<a name="line-185"></a>-<a name="line-186"></a><a name="w3cDatatypes"></a><span class='comment'>-- | All supported datatypes of the library</span>-<a name="line-187"></a><span class='definition'>w3cDatatypes</span> <span class='keyglyph'>::</span> <span class='conid'>AllowedDatatypes</span>-<a name="line-188"></a><span class='definition'>w3cDatatypes</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>xsd_string</span><span class='layout'>,</span> <span class='varid'>stringParams</span><span class='layout'>)</span>-<a name="line-189"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_normalizedString</span><span class='layout'>,</span> <span class='varid'>stringParams</span><span class='layout'>)</span>-<a name="line-190"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_token</span><span class='layout'>,</span> <span class='varid'>stringParams</span><span class='layout'>)</span>-<a name="line-191"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_language</span><span class='layout'>,</span> <span class='varid'>stringParams</span><span class='layout'>)</span>-<a name="line-192"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_NMTOKEN</span><span class='layout'>,</span> <span class='varid'>stringParams</span><span class='layout'>)</span>-<a name="line-193"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_NMTOKENS</span><span class='layout'>,</span> <span class='varid'>listParams</span> <span class='layout'>)</span>-<a name="line-194"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_Name</span><span class='layout'>,</span> <span class='varid'>stringParams</span><span class='layout'>)</span>-<a name="line-195"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_NCName</span><span class='layout'>,</span> <span class='varid'>stringParams</span><span class='layout'>)</span>-<a name="line-196"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_ID</span><span class='layout'>,</span> <span class='varid'>stringParams</span><span class='layout'>)</span>-<a name="line-197"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_IDREF</span><span class='layout'>,</span> <span class='varid'>stringParams</span><span class='layout'>)</span>-<a name="line-198"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_IDREFS</span><span class='layout'>,</span> <span class='varid'>listParams</span> <span class='layout'>)</span>-<a name="line-199"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_ENTITY</span><span class='layout'>,</span> <span class='varid'>stringParams</span><span class='layout'>)</span>-<a name="line-200"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_ENTITIES</span><span class='layout'>,</span> <span class='varid'>listParams</span> <span class='layout'>)</span>-<a name="line-201"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_anyURI</span><span class='layout'>,</span> <span class='varid'>stringParams</span><span class='layout'>)</span>-<a name="line-202"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_QName</span><span class='layout'>,</span> <span class='varid'>stringParams</span><span class='layout'>)</span>-<a name="line-203"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_NOTATION</span><span class='layout'>,</span> <span class='varid'>stringParams</span><span class='layout'>)</span>-<a name="line-204"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_hexBinary</span><span class='layout'>,</span> <span class='varid'>stringParams</span><span class='layout'>)</span>-<a name="line-205"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_base64Binary</span><span class='layout'>,</span> <span class='varid'>stringParams</span><span class='layout'>)</span>-<a name="line-206"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_decimal</span><span class='layout'>,</span> <span class='varid'>decimalParams</span><span class='layout'>)</span>-<a name="line-207"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_integer</span><span class='layout'>,</span> <span class='varid'>integerParams</span><span class='layout'>)</span>-<a name="line-208"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_nonPositiveInteger</span><span class='layout'>,</span> <span class='varid'>integerParams</span><span class='layout'>)</span>-<a name="line-209"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_negativeInteger</span><span class='layout'>,</span> <span class='varid'>integerParams</span><span class='layout'>)</span>-<a name="line-210"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_nonNegativeInteger</span><span class='layout'>,</span> <span class='varid'>integerParams</span><span class='layout'>)</span>-<a name="line-211"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_positiveInteger</span><span class='layout'>,</span> <span class='varid'>integerParams</span><span class='layout'>)</span>-<a name="line-212"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_long</span><span class='layout'>,</span> <span class='varid'>integerParams</span><span class='layout'>)</span>-<a name="line-213"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_int</span><span class='layout'>,</span> <span class='varid'>integerParams</span><span class='layout'>)</span>-<a name="line-214"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_short</span><span class='layout'>,</span> <span class='varid'>integerParams</span><span class='layout'>)</span>-<a name="line-215"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_byte</span><span class='layout'>,</span> <span class='varid'>integerParams</span><span class='layout'>)</span>-<a name="line-216"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_unsignedLong</span><span class='layout'>,</span> <span class='varid'>integerParams</span><span class='layout'>)</span>-<a name="line-217"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_unsignedInt</span><span class='layout'>,</span> <span class='varid'>integerParams</span><span class='layout'>)</span>-<a name="line-218"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_unsignedShort</span><span class='layout'>,</span> <span class='varid'>integerParams</span><span class='layout'>)</span>-<a name="line-219"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_unsignedByte</span><span class='layout'>,</span> <span class='varid'>integerParams</span><span class='layout'>)</span>-<a name="line-220"></a> <span class='keyglyph'>]</span>-<a name="line-221"></a>-<a name="line-222"></a><span class='comment'>-- ----------------------------------------</span>-<a name="line-223"></a>-<a name="line-224"></a><a name="stringParams"></a><span class='comment'>-- | List of allowed params for the string datatypes</span>-<a name="line-225"></a><span class='definition'>stringParams</span> <span class='keyglyph'>::</span> <span class='conid'>AllowedParams</span>-<a name="line-226"></a><span class='definition'>stringParams</span> <span class='keyglyph'>=</span> <span class='varid'>xsd_pattern</span> <span class='conop'>:</span> <span class='varid'>map</span> <span class='varid'>fst</span> <span class='varid'>fctTableString</span>-<a name="line-227"></a>-<a name="line-228"></a><span class='comment'>-- ----------------------------------------</span>-<a name="line-229"></a>-<a name="line-230"></a><a name="patternValid"></a><span class='definition'>patternValid</span> <span class='keyglyph'>::</span> <span class='conid'>ParamList</span> <span class='keyglyph'>-></span> <span class='conid'>CheckString</span>-<a name="line-231"></a><span class='definition'>patternValid</span> <span class='varid'>params</span>-<a name="line-232"></a> <span class='keyglyph'>=</span> <span class='varid'>foldr</span> <span class='layout'>(</span><span class='varop'>>>></span><span class='layout'>)</span> <span class='varid'>ok</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='varid'>paramPatternValid</span> <span class='varop'>$</span> <span class='varid'>params</span>-<a name="line-233"></a> <span class='keyword'>where</span>-<a name="line-234"></a> <span class='varid'>paramPatternValid</span> <span class='layout'>(</span><span class='varid'>pn</span><span class='layout'>,</span> <span class='varid'>pv</span><span class='layout'>)</span>-<a name="line-235"></a> <span class='keyglyph'>|</span> <span class='varid'>pn</span> <span class='varop'>==</span> <span class='varid'>xsd_pattern</span> <span class='keyglyph'>=</span> <span class='varid'>assert</span> <span class='layout'>(</span><span class='varid'>patParamValid</span> <span class='varid'>pv</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>errorMsgParam</span> <span class='varid'>pn</span> <span class='varid'>pv</span><span class='layout'>)</span>-<a name="line-236"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>ok</span>-<a name="line-237"></a>-<a name="line-238"></a><a name="patParamValid"></a><span class='definition'>patParamValid</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-239"></a><span class='definition'>patParamValid</span> <span class='varid'>regex</span> <span class='varid'>a</span>-<a name="line-240"></a> <span class='keyglyph'>=</span> <span class='keyword'>case</span> <span class='varid'>parseRegex</span> <span class='varid'>regex</span> <span class='keyword'>of</span>-<a name="line-241"></a> <span class='layout'>(</span><span class='conid'>Left</span> <span class='keyword'>_</span> <span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>False</span>-<a name="line-242"></a> <span class='layout'>(</span><span class='conid'>Right</span> <span class='varid'>ex</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>isNothing</span> <span class='varop'>.</span> <span class='varid'>matchWithRE</span> <span class='varid'>ex</span> <span class='varop'>$</span> <span class='varid'>a</span>-<a name="line-243"></a>-<a name="line-244"></a><span class='comment'>-- ----------------------------------------</span>-<a name="line-245"></a>-<a name="line-246"></a><span class='comment'>-- | List of allowed params for the decimal datatypes</span>-<a name="line-247"></a>-<a name="line-248"></a><a name="decimalParams"></a><span class='definition'>decimalParams</span> <span class='keyglyph'>::</span> <span class='conid'>AllowedParams</span>-<a name="line-249"></a><span class='definition'>decimalParams</span> <span class='keyglyph'>=</span> <span class='varid'>xsd_pattern</span> <span class='conop'>:</span> <span class='varid'>map</span> <span class='varid'>fst</span> <span class='varid'>fctTableDecimal</span>-<a name="line-250"></a>-<a name="line-251"></a><a name="fctTableDecimal"></a><span class='definition'>fctTableDecimal</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Rational</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-252"></a><span class='definition'>fctTableDecimal</span>-<a name="line-253"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>xsd_maxExclusive</span><span class='layout'>,</span> <span class='varid'>cvd</span> <span class='layout'>(</span><span class='varop'>></span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-254"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_minExclusive</span><span class='layout'>,</span> <span class='varid'>cvd</span> <span class='layout'>(</span><span class='varop'><</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-255"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_maxInclusive</span><span class='layout'>,</span> <span class='varid'>cvd</span> <span class='layout'>(</span><span class='varop'>>=</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-256"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_minInclusive</span><span class='layout'>,</span> <span class='varid'>cvd</span> <span class='layout'>(</span><span class='varop'><=</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-257"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_totalDigits</span><span class='layout'>,</span> <span class='varid'>cvi</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>l</span> <span class='varid'>v</span> <span class='keyglyph'>-></span> <span class='varid'>totalDigits</span> <span class='varid'>v</span> <span class='varop'>==</span> <span class='varid'>l</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-258"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_fractionDigits</span><span class='layout'>,</span> <span class='varid'>cvi</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>l</span> <span class='varid'>v</span> <span class='keyglyph'>-></span> <span class='varid'>fractionDigits</span> <span class='varid'>v</span> <span class='varop'>==</span> <span class='varid'>l</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-259"></a> <span class='keyglyph'>]</span>-<a name="line-260"></a> <span class='keyword'>where</span>-<a name="line-261"></a> <span class='varid'>cvd</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Rational</span> <span class='keyglyph'>-></span> <span class='conid'>Rational</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Rational</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span><span class='layout'>)</span>-<a name="line-262"></a> <span class='varid'>cvd</span> <span class='varid'>op</span> <span class='keyglyph'>=</span> <span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='varid'>y</span> <span class='keyglyph'>-></span> <span class='varid'>isDecimal</span> <span class='varid'>x</span> <span class='varop'>&&</span> <span class='varid'>readDecimal</span> <span class='varid'>x</span> <span class='varop'>`op`</span> <span class='varid'>y</span>-<a name="line-263"></a>-<a name="line-264"></a> <span class='varid'>cvi</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Int</span> <span class='keyglyph'>-></span> <span class='conid'>Rational</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Rational</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span><span class='layout'>)</span>-<a name="line-265"></a> <span class='varid'>cvi</span> <span class='varid'>op</span> <span class='keyglyph'>=</span> <span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='varid'>y</span> <span class='keyglyph'>-></span> <span class='varid'>isNumber</span> <span class='varid'>x</span> <span class='varop'>&&</span> <span class='varid'>read</span> <span class='varid'>x</span> <span class='varop'>`op`</span> <span class='varid'>y</span>-<a name="line-266"></a>-<a name="line-267"></a><a name="decimalValid"></a><span class='definition'>decimalValid</span> <span class='keyglyph'>::</span> <span class='conid'>ParamList</span> <span class='keyglyph'>-></span> <span class='conid'>CheckA</span> <span class='conid'>Rational</span> <span class='conid'>Rational</span>-<a name="line-268"></a><span class='definition'>decimalValid</span> <span class='varid'>params</span>-<a name="line-269"></a> <span class='keyglyph'>=</span> <span class='varid'>foldr</span> <span class='layout'>(</span><span class='varop'>>>></span><span class='layout'>)</span> <span class='varid'>ok</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='varid'>paramDecimalValid</span> <span class='varop'>$</span> <span class='varid'>params</span>-<a name="line-270"></a> <span class='keyword'>where</span>-<a name="line-271"></a> <span class='varid'>paramDecimalValid</span> <span class='layout'>(</span><span class='varid'>pn</span><span class='layout'>,</span> <span class='varid'>pv</span><span class='layout'>)</span>-<a name="line-272"></a> <span class='keyglyph'>=</span> <span class='varid'>assert</span>-<a name="line-273"></a> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>fromMaybe</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varop'>.</span> <span class='varid'>const</span> <span class='varop'>$</span> <span class='conid'>True</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>lookup</span> <span class='varid'>pn</span> <span class='varop'>$</span> <span class='varid'>fctTableDecimal</span><span class='layout'>)</span> <span class='varid'>pv</span><span class='layout'>)</span>-<a name="line-274"></a> <span class='layout'>(</span><span class='varid'>errorMsgParam</span> <span class='varid'>pn</span> <span class='varid'>pv</span> <span class='varop'>.</span> <span class='varid'>showDecimal</span><span class='layout'>)</span>-<a name="line-275"></a>-<a name="line-276"></a><span class='comment'>-- ----------------------------------------</span>-<a name="line-277"></a>-<a name="line-278"></a><span class='comment'>-- | List of allowed params for the decimal and integer datatypes</span>-<a name="line-279"></a>-<a name="line-280"></a><a name="integerParams"></a><span class='definition'>integerParams</span> <span class='keyglyph'>::</span> <span class='conid'>AllowedParams</span>-<a name="line-281"></a><span class='definition'>integerParams</span> <span class='keyglyph'>=</span> <span class='varid'>xsd_pattern</span> <span class='conop'>:</span> <span class='varid'>map</span> <span class='varid'>fst</span> <span class='varid'>fctTableInteger</span>-<a name="line-282"></a>-<a name="line-283"></a><a name="fctTableInteger"></a><span class='definition'>fctTableInteger</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Integer</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-284"></a><span class='definition'>fctTableInteger</span>-<a name="line-285"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>xsd_maxExclusive</span><span class='layout'>,</span> <span class='varid'>cvi</span> <span class='layout'>(</span><span class='varop'>></span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-286"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_minExclusive</span><span class='layout'>,</span> <span class='varid'>cvi</span> <span class='layout'>(</span><span class='varop'><</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-287"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_maxInclusive</span><span class='layout'>,</span> <span class='varid'>cvi</span> <span class='layout'>(</span><span class='varop'>>=</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-288"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_minInclusive</span><span class='layout'>,</span> <span class='varid'>cvi</span> <span class='layout'>(</span><span class='varop'><=</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-289"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_totalDigits</span><span class='layout'>,</span> <span class='varid'>cvi</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>l</span> <span class='varid'>v</span> <span class='keyglyph'>-></span> <span class='varid'>totalD</span> <span class='varid'>v</span> <span class='varop'>==</span> <span class='varid'>toInteger</span> <span class='varid'>l</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-290"></a> <span class='keyglyph'>]</span>-<a name="line-291"></a> <span class='keyword'>where</span>-<a name="line-292"></a> <span class='varid'>cvi</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Integer</span> <span class='keyglyph'>-></span> <span class='conid'>Integer</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Integer</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span><span class='layout'>)</span>-<a name="line-293"></a> <span class='varid'>cvi</span> <span class='varid'>op</span> <span class='keyglyph'>=</span> <span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='varid'>y</span> <span class='keyglyph'>-></span> <span class='varid'>isNumber</span> <span class='varid'>x</span> <span class='varop'>&&</span> <span class='varid'>read</span> <span class='varid'>x</span> <span class='varop'>`op`</span> <span class='varid'>y</span>-<a name="line-294"></a>-<a name="line-295"></a> <span class='varid'>totalD</span> <span class='varid'>i</span>-<a name="line-296"></a> <span class='keyglyph'>|</span> <span class='varid'>i</span> <span class='varop'><</span> <span class='num'>0</span> <span class='keyglyph'>=</span> <span class='varid'>totalD</span> <span class='layout'>(</span><span class='num'>0</span><span class='comment'>-</span><span class='varid'>i</span><span class='layout'>)</span>-<a name="line-297"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>toInteger</span> <span class='varop'>.</span> <span class='varid'>length</span> <span class='varop'>.</span> <span class='varid'>show</span> <span class='varop'>$</span> <span class='varid'>i</span>-<a name="line-298"></a>-<a name="line-299"></a><a name="integerValid"></a><span class='definition'>integerValid</span> <span class='keyglyph'>::</span> <span class='conid'>DatatypeName</span> <span class='keyglyph'>-></span> <span class='conid'>ParamList</span> <span class='keyglyph'>-></span> <span class='conid'>CheckA</span> <span class='conid'>Integer</span> <span class='conid'>Integer</span>-<a name="line-300"></a><span class='definition'>integerValid</span> <span class='varid'>datatype</span> <span class='varid'>params</span> -<a name="line-301"></a> <span class='keyglyph'>=</span> <span class='varid'>assertInRange</span>-<a name="line-302"></a> <span class='varop'>>>></span>-<a name="line-303"></a> <span class='layout'>(</span><span class='varid'>foldr</span> <span class='layout'>(</span><span class='varop'>>>></span><span class='layout'>)</span> <span class='varid'>ok</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='varid'>paramIntegerValid</span> <span class='varop'>$</span> <span class='varid'>params</span><span class='layout'>)</span>-<a name="line-304"></a> <span class='keyword'>where</span>-<a name="line-305"></a> <span class='varid'>assertInRange</span> <span class='keyglyph'>::</span> <span class='conid'>CheckA</span> <span class='conid'>Integer</span> <span class='conid'>Integer</span>-<a name="line-306"></a> <span class='varid'>assertInRange</span>-<a name="line-307"></a> <span class='keyglyph'>=</span> <span class='varid'>assert</span>-<a name="line-308"></a> <span class='layout'>(</span><span class='varid'>fromMaybe</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='conid'>True</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>lookup</span> <span class='varid'>datatype</span> <span class='varop'>$</span> <span class='varid'>integerRangeTable</span><span class='layout'>)</span>-<a name="line-309"></a> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>v</span> <span class='keyglyph'>-></span> <span class='layout'>(</span> <span class='str'>"Datatype "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>datatype</span> <span class='varop'>++</span>-<a name="line-310"></a> <span class='str'>" with value = "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>v</span> <span class='varop'>++</span>-<a name="line-311"></a> <span class='str'>" not in integer value range"</span>-<a name="line-312"></a> <span class='layout'>)</span>-<a name="line-313"></a> <span class='layout'>)</span>-<a name="line-314"></a> <span class='varid'>paramIntegerValid</span> <span class='layout'>(</span><span class='varid'>pn</span><span class='layout'>,</span> <span class='varid'>pv</span><span class='layout'>)</span>-<a name="line-315"></a> <span class='keyglyph'>=</span> <span class='varid'>assert</span>-<a name="line-316"></a> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>fromMaybe</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varop'>.</span> <span class='varid'>const</span> <span class='varop'>$</span> <span class='conid'>True</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>lookup</span> <span class='varid'>pn</span> <span class='varop'>$</span> <span class='varid'>fctTableInteger</span><span class='layout'>)</span> <span class='varid'>pv</span><span class='layout'>)</span>-<a name="line-317"></a> <span class='layout'>(</span><span class='varid'>errorMsgParam</span> <span class='varid'>pn</span> <span class='varid'>pv</span> <span class='varop'>.</span> <span class='varid'>show</span><span class='layout'>)</span>-<a name="line-318"></a>-<a name="line-319"></a><a name="integerRangeTable"></a><span class='definition'>integerRangeTable</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>Integer</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-320"></a><span class='definition'>integerRangeTable</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>xsd_integer</span><span class='layout'>,</span> <span class='varid'>const</span> <span class='conid'>True</span><span class='layout'>)</span>-<a name="line-321"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_nonPositiveInteger</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varop'><=</span><span class='num'>0</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-322"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_negativeInteger</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='varop'><</span><span class='num'>0</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-323"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_nonNegativeInteger</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varop'>>=</span><span class='num'>0</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-324"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_positiveInteger</span><span class='layout'>,</span> <span class='layout'>(</span> <span class='varop'>></span><span class='num'>0</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-325"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_long</span><span class='layout'>,</span> <span class='varid'>inR</span> <span class='num'>9223372036854775808</span><span class='layout'>)</span>-<a name="line-326"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_int</span><span class='layout'>,</span> <span class='varid'>inR</span> <span class='num'>2147483648</span><span class='layout'>)</span>-<a name="line-327"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_short</span><span class='layout'>,</span> <span class='varid'>inR</span> <span class='num'>32768</span><span class='layout'>)</span>-<a name="line-328"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_byte</span><span class='layout'>,</span> <span class='varid'>inR</span> <span class='num'>128</span><span class='layout'>)</span>-<a name="line-329"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_unsignedLong</span><span class='layout'>,</span> <span class='varid'>inP</span> <span class='num'>18446744073709551616</span><span class='layout'>)</span>-<a name="line-330"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_unsignedInt</span><span class='layout'>,</span> <span class='varid'>inP</span> <span class='num'>4294967296</span><span class='layout'>)</span>-<a name="line-331"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_unsignedShort</span><span class='layout'>,</span> <span class='varid'>inP</span> <span class='num'>65536</span><span class='layout'>)</span>-<a name="line-332"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_unsignedByte</span><span class='layout'>,</span> <span class='varid'>inP</span> <span class='num'>256</span><span class='layout'>)</span>-<a name="line-333"></a> <span class='keyglyph'>]</span>-<a name="line-334"></a> <span class='keyword'>where</span>-<a name="line-335"></a> <span class='varid'>inR</span> <span class='varid'>b</span> <span class='varid'>i</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='num'>0</span> <span class='comment'>-</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='varop'><=</span> <span class='varid'>i</span> <span class='varop'>&&</span> <span class='varid'>i</span> <span class='varop'><</span> <span class='varid'>b</span>-<a name="line-336"></a> <span class='varid'>inP</span> <span class='varid'>b</span> <span class='varid'>i</span> <span class='keyglyph'>=</span> <span class='num'>0</span> <span class='varop'><=</span> <span class='varid'>i</span> <span class='varop'>&&</span> <span class='varid'>i</span> <span class='varop'><</span> <span class='varid'>b</span>-<a name="line-337"></a>-<a name="line-338"></a><span class='comment'>-- ----------------------------------------</span>-<a name="line-339"></a>-<a name="line-340"></a><span class='comment'>-- | List of allowed params for the list datatypes</span>-<a name="line-341"></a>-<a name="line-342"></a><a name="listParams"></a><span class='definition'>listParams</span> <span class='keyglyph'>::</span> <span class='conid'>AllowedParams</span>-<a name="line-343"></a><span class='definition'>listParams</span> <span class='keyglyph'>=</span> <span class='varid'>xsd_pattern</span> <span class='conop'>:</span> <span class='varid'>map</span> <span class='varid'>fst</span> <span class='varid'>fctTableList</span>-<a name="line-344"></a>-<a name="line-345"></a><a name="listValid"></a><span class='definition'>listValid</span> <span class='keyglyph'>::</span> <span class='conid'>DatatypeName</span> <span class='keyglyph'>-></span> <span class='conid'>ParamList</span> <span class='keyglyph'>-></span> <span class='conid'>CheckString</span>-<a name="line-346"></a><span class='definition'>listValid</span> <span class='varid'>d</span> <span class='keyglyph'>=</span> <span class='varid'>stringValidFT</span> <span class='varid'>fctTableList</span> <span class='varid'>d</span> <span class='num'>0</span> <span class='layout'>(</span><span class='comment'>-</span><span class='num'>1</span><span class='layout'>)</span>-<a name="line-347"></a>-<a name="line-348"></a><span class='comment'>-- ----------------------------------------</span>-<a name="line-349"></a>-<a name="line-350"></a><a name="isNameList"></a><span class='definition'>isNameList</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-351"></a><span class='definition'>isNameList</span> <span class='varid'>p</span> <span class='varid'>w</span>-<a name="line-352"></a> <span class='keyglyph'>=</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>null</span> <span class='varid'>ts</span><span class='layout'>)</span> <span class='varop'>&&</span> <span class='varid'>all</span> <span class='varid'>p</span> <span class='varid'>ts</span>-<a name="line-353"></a> <span class='keyword'>where</span>-<a name="line-354"></a> <span class='varid'>ts</span> <span class='keyglyph'>=</span> <span class='varid'>words</span> <span class='varid'>w</span>-<a name="line-355"></a>-<a name="line-356"></a><span class='comment'>-- ----------------------------------------</span>-<a name="line-357"></a>-<a name="line-358"></a><a name="rex"></a><span class='definition'>rex</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Regex</span>-<a name="line-359"></a><span class='definition'>rex</span> <span class='keyglyph'>=</span> <span class='varid'>either</span> <span class='varid'>undefined</span> <span class='varid'>id</span> <span class='varop'>.</span> <span class='varid'>parseRegex</span>-<a name="line-360"></a>-<a name="line-361"></a><a name="isRex"></a><span class='definition'>isRex</span> <span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-362"></a><span class='definition'>isRex</span> <span class='varid'>ex</span> <span class='keyglyph'>=</span> <span class='varid'>isNothing</span> <span class='varop'>.</span> <span class='varid'>matchWithRE</span> <span class='varid'>ex</span>-<a name="line-363"></a>-<a name="line-364"></a><span class='comment'>-- ----------------------------------------</span>-<a name="line-365"></a>-<a name="line-366"></a><a name="rexLanguage"></a><span class='definition'>rexLanguage</span>-<a name="line-367"></a> <span class='layout'>,</span> <span class='varid'>rexHexBinary</span>-<a name="line-368"></a> <span class='layout'>,</span> <span class='varid'>rexBase64Binary</span>-<a name="line-369"></a> <span class='layout'>,</span> <span class='varid'>rexDecimal</span>-<a name="line-370"></a> <span class='layout'>,</span> <span class='varid'>rexInteger</span> <span class='keyglyph'>::</span> <span class='conid'>Regex</span>-<a name="line-371"></a>-<a name="line-372"></a><span class='definition'>rexLanguage</span> <span class='keyglyph'>=</span> <span class='varid'>rex</span> <span class='str'>"[A-Za-z]{1,8}(-[A-Za-z]{1,8})*"</span>-<a name="line-373"></a><a name="rexHexBinary"></a><span class='definition'>rexHexBinary</span> <span class='keyglyph'>=</span> <span class='varid'>rex</span> <span class='str'>"([A-Fa-f0-9]{2})*"</span>-<a name="line-374"></a><a name="rexBase64Binary"></a><span class='definition'>rexBase64Binary</span> <span class='keyglyph'>=</span> <span class='varid'>rex</span> <span class='varop'>$</span>-<a name="line-375"></a> <span class='str'>"("</span> <span class='varop'>++</span> <span class='varid'>b64</span> <span class='varop'>++</span> <span class='str'>"{4})*(("</span> <span class='varop'>++</span> <span class='varid'>b64</span> <span class='varop'>++</span> <span class='str'>"{2}==)|("</span> <span class='varop'>++</span> <span class='varid'>b64</span> <span class='varop'>++</span> <span class='str'>"{3}=)|)"</span>-<a name="line-376"></a> <span class='keyword'>where</span>-<a name="line-377"></a> <span class='varid'>b64</span> <span class='keyglyph'>=</span> <span class='str'>"[A-Za-z0-9+/]"</span>-<a name="line-378"></a><a name="rexDecimal"></a><span class='definition'>rexDecimal</span> <span class='keyglyph'>=</span> <span class='varid'>rex</span> <span class='str'>"(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))"</span>-<a name="line-379"></a><a name="rexInteger"></a><span class='definition'>rexInteger</span> <span class='keyglyph'>=</span> <span class='varid'>rex</span> <span class='str'>"(\\+|-)?[0-9]+"</span>-<a name="line-380"></a>-<a name="line-381"></a><a name="isLanguage"></a><span class='definition'>isLanguage</span>-<a name="line-382"></a> <span class='layout'>,</span> <span class='varid'>isHexBinary</span>-<a name="line-383"></a> <span class='layout'>,</span> <span class='varid'>isBase64Binary</span>-<a name="line-384"></a> <span class='layout'>,</span> <span class='varid'>isDecimal</span>-<a name="line-385"></a> <span class='layout'>,</span> <span class='varid'>isInteger</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-386"></a>-<a name="line-387"></a><span class='definition'>isLanguage</span> <span class='keyglyph'>=</span> <span class='varid'>isRex</span> <span class='varid'>rexLanguage</span>-<a name="line-388"></a><a name="isHexBinary"></a><span class='definition'>isHexBinary</span> <span class='keyglyph'>=</span> <span class='varid'>isRex</span> <span class='varid'>rexHexBinary</span>-<a name="line-389"></a><a name="isBase64Binary"></a><span class='definition'>isBase64Binary</span> <span class='keyglyph'>=</span> <span class='varid'>isRex</span> <span class='varid'>rexBase64Binary</span>-<a name="line-390"></a><a name="isDecimal"></a><span class='definition'>isDecimal</span> <span class='keyglyph'>=</span> <span class='varid'>isRex</span> <span class='varid'>rexDecimal</span>-<a name="line-391"></a><a name="isInteger"></a><span class='definition'>isInteger</span> <span class='keyglyph'>=</span> <span class='varid'>isRex</span> <span class='varid'>rexInteger</span>-<a name="line-392"></a>-<a name="line-393"></a><span class='comment'>-- ----------------------------------------</span>-<a name="line-394"></a>-<a name="line-395"></a><a name="normBase64"></a><span class='definition'>normBase64</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-396"></a><span class='definition'>normBase64</span> <span class='keyglyph'>=</span> <span class='varid'>filter</span> <span class='varid'>isB64</span>-<a name="line-397"></a> <span class='keyword'>where</span>-<a name="line-398"></a> <span class='varid'>isB64</span> <span class='varid'>c</span> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='chr'>'A'</span> <span class='varop'><=</span> <span class='varid'>c</span> <span class='varop'>&&</span> <span class='varid'>c</span> <span class='varop'><=</span> <span class='chr'>'Z'</span><span class='layout'>)</span>-<a name="line-399"></a> <span class='varop'>||</span>-<a name="line-400"></a> <span class='layout'>(</span> <span class='chr'>'a'</span> <span class='varop'><=</span> <span class='varid'>c</span> <span class='varop'>&&</span> <span class='varid'>c</span> <span class='varop'><=</span> <span class='chr'>'z'</span><span class='layout'>)</span>-<a name="line-401"></a> <span class='varop'>||</span>-<a name="line-402"></a> <span class='layout'>(</span> <span class='chr'>'0'</span> <span class='varop'><=</span> <span class='varid'>c</span> <span class='varop'>&&</span> <span class='varid'>c</span> <span class='varop'><=</span> <span class='chr'>'9'</span><span class='layout'>)</span>-<a name="line-403"></a> <span class='varop'>||</span>-<a name="line-404"></a> <span class='varid'>c</span> <span class='varop'>==</span> <span class='chr'>'+'</span>-<a name="line-405"></a> <span class='varop'>||</span>-<a name="line-406"></a> <span class='varid'>c</span> <span class='varop'>==</span> <span class='chr'>'/'</span>-<a name="line-407"></a> <span class='varop'>||</span>-<a name="line-408"></a> <span class='varid'>c</span> <span class='varop'>==</span> <span class='chr'>'='</span>-<a name="line-409"></a>-<a name="line-410"></a><span class='comment'>-- ----------------------------------------</span>-<a name="line-411"></a>-<a name="line-412"></a><a name="readDecimal"></a><span class='definition'>readDecimal</span>-<a name="line-413"></a> <span class='layout'>,</span> <span class='varid'>readDecimal'</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Rational</span>-<a name="line-414"></a>-<a name="line-415"></a><span class='definition'>readDecimal</span> <span class='layout'>(</span><span class='chr'>'+'</span><span class='conop'>:</span><span class='varid'>s</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>readDecimal'</span> <span class='varid'>s</span>-<a name="line-416"></a><span class='definition'>readDecimal</span> <span class='layout'>(</span><span class='chr'>'-'</span><span class='conop'>:</span><span class='varid'>s</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>negate</span> <span class='layout'>(</span><span class='varid'>readDecimal'</span> <span class='varid'>s</span><span class='layout'>)</span>-<a name="line-417"></a><span class='definition'>readDecimal</span> <span class='varid'>s</span> <span class='keyglyph'>=</span> <span class='varid'>readDecimal'</span> <span class='varid'>s</span>-<a name="line-418"></a>-<a name="line-419"></a><a name="readDecimal'"></a><span class='definition'>readDecimal'</span> <span class='varid'>s</span>-<a name="line-420"></a> <span class='keyglyph'>|</span> <span class='varid'>f</span> <span class='varop'>==</span> <span class='num'>0</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>n</span> <span class='varop'>%</span> <span class='num'>1</span><span class='layout'>)</span>-<a name="line-421"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>n</span> <span class='varop'>%</span> <span class='num'>1</span><span class='layout'>)</span> <span class='varop'>+</span> <span class='layout'>(</span><span class='varid'>f</span> <span class='varop'>%</span> <span class='layout'>(</span><span class='num'>10</span> <span class='varop'>^</span> <span class='layout'>(</span><span class='varid'>toInteger</span> <span class='layout'>(</span><span class='varid'>length</span> <span class='varid'>fs</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-422"></a> <span class='keyword'>where</span>-<a name="line-423"></a> <span class='layout'>(</span><span class='varid'>ns</span><span class='layout'>,</span> <span class='varid'>fs'</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>span</span> <span class='layout'>(</span><span class='varop'>/=</span> <span class='chr'>'.'</span><span class='layout'>)</span> <span class='varid'>s</span>-<a name="line-424"></a> <span class='varid'>fs</span> <span class='keyglyph'>=</span> <span class='varid'>drop</span> <span class='num'>1</span> <span class='varid'>fs'</span>-<a name="line-425"></a>-<a name="line-426"></a> <span class='varid'>f</span> <span class='keyglyph'>::</span> <span class='conid'>Integer</span>-<a name="line-427"></a> <span class='varid'>f</span> <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>fs</span> <span class='keyglyph'>=</span> <span class='num'>0</span>-<a name="line-428"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>read</span> <span class='varid'>fs</span>-<a name="line-429"></a> <span class='varid'>n</span> <span class='keyglyph'>::</span> <span class='conid'>Integer</span>-<a name="line-430"></a> <span class='varid'>n</span> <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>ns</span> <span class='keyglyph'>=</span> <span class='num'>0</span>-<a name="line-431"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>read</span> <span class='varid'>ns</span>-<a name="line-432"></a>-<a name="line-433"></a><a name="totalDigits"></a><span class='definition'>totalDigits</span>-<a name="line-434"></a> <span class='layout'>,</span> <span class='varid'>totalDigits'</span>-<a name="line-435"></a> <span class='layout'>,</span> <span class='varid'>fractionDigits</span> <span class='keyglyph'>::</span> <span class='conid'>Rational</span> <span class='keyglyph'>-></span> <span class='conid'>Int</span>-<a name="line-436"></a>-<a name="line-437"></a><span class='definition'>totalDigits</span> <span class='varid'>r</span>-<a name="line-438"></a> <span class='keyglyph'>|</span> <span class='varid'>r</span> <span class='varop'>==</span> <span class='num'>0</span> <span class='keyglyph'>=</span> <span class='num'>0</span>-<a name="line-439"></a> <span class='keyglyph'>|</span> <span class='varid'>r</span> <span class='varop'><</span> <span class='num'>0</span> <span class='keyglyph'>=</span> <span class='varid'>totalDigits'</span> <span class='varop'>.</span> <span class='varid'>negate</span> <span class='varop'>$</span> <span class='varid'>r</span>-<a name="line-440"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>totalDigits'</span> <span class='varop'>$</span> <span class='varid'>r</span>-<a name="line-441"></a>-<a name="line-442"></a><a name="totalDigits'"></a><span class='definition'>totalDigits'</span> <span class='varid'>r</span>-<a name="line-443"></a> <span class='keyglyph'>|</span> <span class='varid'>denominator</span> <span class='varid'>r</span> <span class='varop'>==</span> <span class='num'>1</span> <span class='keyglyph'>=</span> <span class='varid'>length</span> <span class='varop'>.</span> <span class='varid'>show</span> <span class='varop'>.</span> <span class='varid'>numerator</span> <span class='varop'>$</span> <span class='varid'>r</span>-<a name="line-444"></a> <span class='keyglyph'>|</span> <span class='varid'>r</span> <span class='varop'><</span> <span class='layout'>(</span><span class='num'>1</span><span class='varop'>%</span><span class='num'>1</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='varid'>x</span><span class='comment'>-</span><span class='num'>1</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>totalDigits'</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='varop'>+</span> <span class='layout'>(</span><span class='num'>1</span><span class='varop'>%</span><span class='num'>1</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>r</span>-<a name="line-445"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>totalDigits'</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='varop'>*</span> <span class='layout'>(</span><span class='num'>10</span> <span class='varop'>%</span> <span class='num'>1</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>r</span>-<a name="line-446"></a>-<a name="line-447"></a><a name="fractionDigits"></a><span class='definition'>fractionDigits</span> <span class='varid'>r</span>-<a name="line-448"></a> <span class='keyglyph'>|</span> <span class='varid'>denominator</span> <span class='varid'>r</span> <span class='varop'>==</span> <span class='num'>1</span> <span class='keyglyph'>=</span> <span class='num'>0</span>-<a name="line-449"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varop'>+</span><span class='num'>1</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>fractionDigits</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='varop'>*</span> <span class='layout'>(</span><span class='num'>10</span> <span class='varop'>%</span> <span class='num'>1</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>r</span>-<a name="line-450"></a>-<a name="line-451"></a><a name="showDecimal"></a><span class='definition'>showDecimal</span>-<a name="line-452"></a> <span class='layout'>,</span> <span class='varid'>showDecimal'</span> <span class='keyglyph'>::</span> <span class='conid'>Rational</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-453"></a>-<a name="line-454"></a><span class='definition'>showDecimal</span> <span class='varid'>d</span>-<a name="line-455"></a> <span class='keyglyph'>|</span> <span class='varid'>d</span> <span class='varop'><</span> <span class='num'>0</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='chr'>'-'</span><span class='conop'>:</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>showDecimal'</span> <span class='varop'>.</span> <span class='varid'>negate</span> <span class='varop'>$</span> <span class='varid'>d</span>-<a name="line-456"></a> <span class='keyglyph'>|</span> <span class='varid'>d</span> <span class='varop'><</span> <span class='num'>1</span> <span class='keyglyph'>=</span> <span class='varid'>drop</span> <span class='num'>1</span> <span class='varop'>.</span> <span class='varid'>showDecimal'</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='varop'>+</span> <span class='layout'>(</span><span class='num'>1</span><span class='varop'>%</span><span class='num'>1</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>d</span>-<a name="line-457"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>showDecimal'</span> <span class='varop'>$</span> <span class='varid'>d</span>-<a name="line-458"></a>-<a name="line-459"></a><a name="showDecimal'"></a><span class='definition'>showDecimal'</span> <span class='varid'>d</span>-<a name="line-460"></a> <span class='keyglyph'>|</span> <span class='varid'>denominator</span> <span class='varid'>d</span> <span class='varop'>==</span> <span class='num'>1</span> <span class='keyglyph'>=</span> <span class='varid'>show</span> <span class='varop'>.</span> <span class='varid'>numerator</span> <span class='varop'>$</span> <span class='varid'>d</span>-<a name="line-461"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>times10</span> <span class='num'>0</span> <span class='varop'>$</span> <span class='varid'>d</span>-<a name="line-462"></a> <span class='keyword'>where</span>-<a name="line-463"></a> <span class='varid'>times10</span> <span class='varid'>i'</span> <span class='varid'>d'</span>-<a name="line-464"></a> <span class='keyglyph'>|</span> <span class='varid'>denominator</span> <span class='varid'>d'</span> <span class='varop'>==</span> <span class='num'>1</span> <span class='keyglyph'>=</span> <span class='keyword'>let</span>-<a name="line-465"></a> <span class='layout'>(</span><span class='varid'>x</span><span class='layout'>,</span> <span class='varid'>y</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>splitAt</span> <span class='varid'>i'</span> <span class='varop'>.</span> <span class='varid'>reverse</span> <span class='varop'>.</span> <span class='varid'>show</span> <span class='varop'>.</span> <span class='varid'>numerator</span> <span class='varop'>$</span> <span class='varid'>d'</span>-<a name="line-466"></a> <span class='keyword'>in</span>-<a name="line-467"></a> <span class='varid'>reverse</span> <span class='varid'>y</span> <span class='varop'>++</span> <span class='str'>"."</span> <span class='varop'>++</span> <span class='varid'>reverse</span> <span class='varid'>x</span>-<a name="line-468"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>times10</span> <span class='layout'>(</span><span class='varid'>i'</span> <span class='varop'>+</span> <span class='num'>1</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>d'</span> <span class='varop'>*</span> <span class='layout'>(</span><span class='num'>10</span> <span class='varop'>%</span> <span class='num'>1</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-469"></a> -<a name="line-470"></a><span class='comment'>-- ----------------------------------------</span>-<a name="line-471"></a>-<a name="line-472"></a><span class='comment'>-- | Tests whether a XML instance value matches a data-pattern.</span>-<a name="line-473"></a><span class='comment'>-- (see also: 'stringValid')</span>-<a name="line-474"></a>-<a name="line-475"></a><a name="datatypeAllowsW3C"></a><span class='definition'>datatypeAllowsW3C</span> <span class='keyglyph'>::</span> <span class='conid'>DatatypeAllows</span>-<a name="line-476"></a><span class='definition'>datatypeAllowsW3C</span> <span class='varid'>d</span> <span class='varid'>params</span> <span class='varid'>value</span> <span class='keyword'>_</span>-<a name="line-477"></a> <span class='keyglyph'>=</span> <span class='varid'>performCheck</span> <span class='varid'>check</span> <span class='varid'>value</span>-<a name="line-478"></a> <span class='keyword'>where</span>-<a name="line-479"></a> <span class='varid'>validString</span> <span class='varid'>normFct</span>-<a name="line-480"></a> <span class='keyglyph'>=</span> <span class='varid'>validPattern</span>-<a name="line-481"></a> <span class='varop'>>>></span>-<a name="line-482"></a> <span class='varid'>arr</span> <span class='varid'>normFct</span>-<a name="line-483"></a> <span class='varop'>>>></span>-<a name="line-484"></a> <span class='varid'>validLength</span>-<a name="line-485"></a>-<a name="line-486"></a> <span class='varid'>validNormString</span>-<a name="line-487"></a> <span class='keyglyph'>=</span> <span class='varid'>validString</span> <span class='varid'>normalizeWhitespace</span>-<a name="line-488"></a>-<a name="line-489"></a> <span class='varid'>validPattern</span>-<a name="line-490"></a> <span class='keyglyph'>=</span> <span class='varid'>patternValid</span> <span class='varid'>params</span>-<a name="line-491"></a>-<a name="line-492"></a> <span class='varid'>validLength</span>-<a name="line-493"></a> <span class='keyglyph'>=</span> <span class='varid'>stringValid</span> <span class='varid'>d</span> <span class='num'>0</span> <span class='layout'>(</span><span class='comment'>-</span><span class='num'>1</span><span class='layout'>)</span> <span class='varid'>params</span>-<a name="line-494"></a>-<a name="line-495"></a> <span class='varid'>validList</span>-<a name="line-496"></a> <span class='keyglyph'>=</span> <span class='varid'>validPattern</span>-<a name="line-497"></a> <span class='varop'>>>></span>-<a name="line-498"></a> <span class='varid'>arr</span> <span class='varid'>normalizeWhitespace</span>-<a name="line-499"></a> <span class='varop'>>>></span>-<a name="line-500"></a> <span class='varid'>validListLength</span>-<a name="line-501"></a>-<a name="line-502"></a> <span class='varid'>validListLength</span>-<a name="line-503"></a> <span class='keyglyph'>=</span> <span class='varid'>listValid</span> <span class='varid'>d</span> <span class='varid'>params</span>-<a name="line-504"></a>-<a name="line-505"></a> <span class='varid'>validName</span> <span class='varid'>isN</span>-<a name="line-506"></a> <span class='keyglyph'>=</span> <span class='varid'>assertW3C</span> <span class='varid'>isN</span>-<a name="line-507"></a>-<a name="line-508"></a> <span class='varid'>validNCName</span>-<a name="line-509"></a> <span class='keyglyph'>=</span> <span class='varid'>validNormString</span> <span class='varop'>>>></span> <span class='varid'>validName</span> <span class='varid'>isNCName</span>-<a name="line-510"></a>-<a name="line-511"></a> <span class='varid'>validQName</span>-<a name="line-512"></a> <span class='keyglyph'>=</span> <span class='varid'>validNormString</span> <span class='varop'>>>></span> <span class='varid'>validName</span> <span class='varid'>isWellformedQualifiedName</span>-<a name="line-513"></a>-<a name="line-514"></a> <span class='varid'>validDecimal</span>-<a name="line-515"></a> <span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='varid'>normalizeWhitespace</span>-<a name="line-516"></a> <span class='varop'>>>></span>-<a name="line-517"></a> <span class='varid'>assertW3C</span> <span class='varid'>isDecimal</span>-<a name="line-518"></a> <span class='varop'>>>></span>-<a name="line-519"></a> <span class='varid'>checkWith</span> <span class='varid'>readDecimal</span> <span class='layout'>(</span><span class='varid'>decimalValid</span> <span class='varid'>params</span><span class='layout'>)</span>-<a name="line-520"></a>-<a name="line-521"></a> <span class='varid'>validInteger</span> <span class='varid'>inRange</span>-<a name="line-522"></a> <span class='keyglyph'>=</span> <span class='varid'>validPattern</span>-<a name="line-523"></a> <span class='varop'>>>></span>-<a name="line-524"></a> <span class='varid'>arr</span> <span class='varid'>normalizeWhitespace</span>-<a name="line-525"></a> <span class='varop'>>>></span>-<a name="line-526"></a> <span class='varid'>assertW3C</span> <span class='varid'>isInteger</span>-<a name="line-527"></a> <span class='varop'>>>></span>-<a name="line-528"></a> <span class='varid'>checkWith</span> <span class='varid'>read</span> <span class='layout'>(</span><span class='varid'>integerValid</span> <span class='varid'>inRange</span> <span class='varid'>params</span><span class='layout'>)</span>-<a name="line-529"></a>-<a name="line-530"></a> <span class='varid'>check</span> <span class='keyglyph'>::</span> <span class='conid'>CheckString</span>-<a name="line-531"></a> <span class='varid'>check</span> <span class='keyglyph'>=</span> <span class='varid'>fromMaybe</span> <span class='varid'>notFound</span> <span class='varop'>.</span> <span class='varid'>lookup</span> <span class='varid'>d</span> <span class='varop'>$</span> <span class='varid'>checks</span>-<a name="line-532"></a>-<a name="line-533"></a> <span class='varid'>notFound</span> <span class='keyglyph'>=</span> <span class='varid'>failure</span> <span class='varop'>$</span> <span class='varid'>errorMsgDataTypeNotAllowed</span> <span class='varid'>w3cNS</span> <span class='varid'>d</span> <span class='varid'>params</span>-<a name="line-534"></a>-<a name="line-535"></a> <span class='varid'>checks</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>CheckA</span> <span class='conid'>String</span> <span class='conid'>String</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-536"></a> <span class='varid'>checks</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>xsd_string</span><span class='layout'>,</span> <span class='varid'>validString</span> <span class='varid'>id</span><span class='layout'>)</span>-<a name="line-537"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_normalizedString</span><span class='layout'>,</span> <span class='varid'>validString</span> <span class='varid'>normalizeBlanks</span><span class='layout'>)</span>-<a name="line-538"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_token</span><span class='layout'>,</span> <span class='varid'>validNormString</span><span class='layout'>)</span>-<a name="line-539"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_language</span><span class='layout'>,</span> <span class='varid'>validNormString</span> <span class='varop'>>>></span> <span class='varid'>assertW3C</span> <span class='varid'>isLanguage</span><span class='layout'>)</span>-<a name="line-540"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_NMTOKEN</span><span class='layout'>,</span> <span class='varid'>validNormString</span> <span class='varop'>>>></span> <span class='varid'>validName</span> <span class='varid'>isNmtoken</span><span class='layout'>)</span>-<a name="line-541"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_NMTOKENS</span><span class='layout'>,</span> <span class='varid'>validList</span> <span class='varop'>>>></span> <span class='varid'>validName</span> <span class='layout'>(</span><span class='varid'>isNameList</span> <span class='varid'>isNmtoken</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-542"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_Name</span><span class='layout'>,</span> <span class='varid'>validNormString</span> <span class='varop'>>>></span> <span class='varid'>validName</span> <span class='varid'>isName</span><span class='layout'>)</span>-<a name="line-543"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_NCName</span><span class='layout'>,</span> <span class='varid'>validNCName</span><span class='layout'>)</span>-<a name="line-544"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_ID</span><span class='layout'>,</span> <span class='varid'>validNCName</span><span class='layout'>)</span>-<a name="line-545"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_IDREF</span><span class='layout'>,</span> <span class='varid'>validNCName</span><span class='layout'>)</span>-<a name="line-546"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_IDREFS</span><span class='layout'>,</span> <span class='varid'>validList</span> <span class='varop'>>>></span> <span class='varid'>validName</span> <span class='layout'>(</span><span class='varid'>isNameList</span> <span class='varid'>isNCName</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-547"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_ENTITY</span><span class='layout'>,</span> <span class='varid'>validNCName</span><span class='layout'>)</span>-<a name="line-548"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_ENTITIES</span><span class='layout'>,</span> <span class='varid'>validList</span> <span class='varop'>>>></span> <span class='varid'>validName</span> <span class='layout'>(</span><span class='varid'>isNameList</span> <span class='varid'>isNCName</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-549"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_anyURI</span><span class='layout'>,</span> <span class='varid'>validName</span> <span class='varid'>isURIReference</span> <span class='varop'>>>></span> <span class='varid'>validString</span> <span class='varid'>escapeURI</span><span class='layout'>)</span>-<a name="line-550"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_QName</span><span class='layout'>,</span> <span class='varid'>validQName</span><span class='layout'>)</span>-<a name="line-551"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_NOTATION</span><span class='layout'>,</span> <span class='varid'>validQName</span><span class='layout'>)</span>-<a name="line-552"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_hexBinary</span><span class='layout'>,</span> <span class='varid'>validString</span> <span class='varid'>id</span> <span class='varop'>>>></span> <span class='varid'>assertW3C</span> <span class='varid'>isHexBinary</span><span class='layout'>)</span>-<a name="line-553"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_base64Binary</span><span class='layout'>,</span> <span class='varid'>validString</span> <span class='varid'>normBase64</span> <span class='varop'>>>></span> <span class='varid'>assertW3C</span> <span class='varid'>isBase64Binary</span><span class='layout'>)</span>-<a name="line-554"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_decimal</span><span class='layout'>,</span> <span class='varid'>validPattern</span> <span class='varop'>>>></span> <span class='varid'>validDecimal</span><span class='layout'>)</span>-<a name="line-555"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_integer</span><span class='layout'>,</span> <span class='varid'>validInteger</span> <span class='varid'>xsd_integer</span><span class='layout'>)</span>-<a name="line-556"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_nonPositiveInteger</span><span class='layout'>,</span> <span class='varid'>validInteger</span> <span class='varid'>xsd_nonPositiveInteger</span><span class='layout'>)</span>-<a name="line-557"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_negativeInteger</span><span class='layout'>,</span> <span class='varid'>validInteger</span> <span class='varid'>xsd_negativeInteger</span><span class='layout'>)</span>-<a name="line-558"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_nonNegativeInteger</span><span class='layout'>,</span> <span class='varid'>validInteger</span> <span class='varid'>xsd_nonNegativeInteger</span><span class='layout'>)</span>-<a name="line-559"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_positiveInteger</span><span class='layout'>,</span> <span class='varid'>validInteger</span> <span class='varid'>xsd_positiveInteger</span><span class='layout'>)</span>-<a name="line-560"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_long</span><span class='layout'>,</span> <span class='varid'>validInteger</span> <span class='varid'>xsd_long</span><span class='layout'>)</span>-<a name="line-561"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_int</span><span class='layout'>,</span> <span class='varid'>validInteger</span> <span class='varid'>xsd_int</span><span class='layout'>)</span>-<a name="line-562"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_short</span><span class='layout'>,</span> <span class='varid'>validInteger</span> <span class='varid'>xsd_short</span><span class='layout'>)</span>-<a name="line-563"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_byte</span><span class='layout'>,</span> <span class='varid'>validInteger</span> <span class='varid'>xsd_byte</span><span class='layout'>)</span>-<a name="line-564"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_unsignedLong</span><span class='layout'>,</span> <span class='varid'>validInteger</span> <span class='varid'>xsd_unsignedLong</span><span class='layout'>)</span>-<a name="line-565"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_unsignedInt</span><span class='layout'>,</span> <span class='varid'>validInteger</span> <span class='varid'>xsd_unsignedInt</span><span class='layout'>)</span>-<a name="line-566"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_unsignedShort</span><span class='layout'>,</span> <span class='varid'>validInteger</span> <span class='varid'>xsd_unsignedShort</span><span class='layout'>)</span>-<a name="line-567"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_unsignedByte</span><span class='layout'>,</span> <span class='varid'>validInteger</span> <span class='varid'>xsd_unsignedByte</span><span class='layout'>)</span>-<a name="line-568"></a> <span class='keyglyph'>]</span>-<a name="line-569"></a> <span class='varid'>assertW3C</span> <span class='varid'>p</span> <span class='keyglyph'>=</span> <span class='varid'>assert</span> <span class='varid'>p</span> <span class='varid'>errW3C</span>-<a name="line-570"></a> <span class='varid'>errW3C</span> <span class='keyglyph'>=</span> <span class='varid'>errorMsgDataLibQName</span> <span class='varid'>w3cNS</span> <span class='varid'>d</span>-<a name="line-571"></a>-<a name="line-572"></a><span class='comment'>-- ----------------------------------------</span>-<a name="line-573"></a>-<a name="line-574"></a><span class='comment'>-- | Tests whether a XML instance value matches a value-pattern.</span>-<a name="line-575"></a>-<a name="line-576"></a><a name="datatypeEqualW3C"></a><span class='definition'>datatypeEqualW3C</span> <span class='keyglyph'>::</span> <span class='conid'>DatatypeEqual</span>-<a name="line-577"></a><span class='definition'>datatypeEqualW3C</span> <span class='varid'>d</span> <span class='varid'>s1</span> <span class='keyword'>_</span> <span class='varid'>s2</span> <span class='keyword'>_</span>-<a name="line-578"></a> <span class='keyglyph'>=</span> <span class='varid'>performCheck</span> <span class='varid'>check</span> <span class='layout'>(</span><span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>s2</span><span class='layout'>)</span>-<a name="line-579"></a> <span class='keyword'>where</span>-<a name="line-580"></a> <span class='varid'>check</span> <span class='keyglyph'>::</span> <span class='conid'>CheckA</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span>-<a name="line-581"></a> <span class='varid'>check</span> <span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='varid'>notFound</span> <span class='varid'>found</span> <span class='varop'>.</span> <span class='varid'>lookup</span> <span class='varid'>d</span> <span class='varop'>$</span> <span class='varid'>norm</span>-<a name="line-582"></a>-<a name="line-583"></a> <span class='varid'>notFound</span> <span class='keyglyph'>=</span> <span class='varid'>failure</span> <span class='varop'>$</span> <span class='varid'>const</span> <span class='layout'>(</span><span class='varid'>errorMsgDataTypeNotAllowed0</span> <span class='varid'>w3cNS</span> <span class='varid'>d</span><span class='layout'>)</span>-<a name="line-584"></a>-<a name="line-585"></a> <span class='varid'>found</span> <span class='varid'>nf</span> <span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='layout'>(</span><span class='varid'>x1</span><span class='layout'>,</span> <span class='varid'>x2</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='varid'>nf</span> <span class='varid'>x1</span><span class='layout'>,</span> <span class='varid'>nf</span> <span class='varid'>x2</span><span class='layout'>)</span><span class='layout'>)</span> <span class='comment'>-- normalize both values</span>-<a name="line-586"></a> <span class='varop'>>>></span>-<a name="line-587"></a> <span class='varid'>assert</span> <span class='layout'>(</span><span class='varid'>uncurry</span> <span class='layout'>(</span><span class='varop'>==</span><span class='layout'>)</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>uncurry</span> <span class='varop'>$</span> <span class='varid'>errorMsgEqual</span> <span class='varid'>d</span><span class='layout'>)</span> <span class='comment'>-- and check on (==)</span>-<a name="line-588"></a>-<a name="line-589"></a> <span class='varid'>norm</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>xsd_string</span><span class='layout'>,</span> <span class='varid'>id</span> <span class='layout'>)</span>-<a name="line-590"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_normalizedString</span><span class='layout'>,</span> <span class='varid'>normalizeBlanks</span> <span class='layout'>)</span>-<a name="line-591"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_token</span><span class='layout'>,</span> <span class='varid'>normalizeWhitespace</span> <span class='layout'>)</span>-<a name="line-592"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_language</span><span class='layout'>,</span> <span class='varid'>normalizeWhitespace</span> <span class='layout'>)</span>-<a name="line-593"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_NMTOKEN</span><span class='layout'>,</span> <span class='varid'>normalizeWhitespace</span> <span class='layout'>)</span>-<a name="line-594"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_NMTOKENS</span><span class='layout'>,</span> <span class='varid'>normalizeWhitespace</span> <span class='layout'>)</span>-<a name="line-595"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_Name</span><span class='layout'>,</span> <span class='varid'>normalizeWhitespace</span> <span class='layout'>)</span>-<a name="line-596"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_NCName</span><span class='layout'>,</span> <span class='varid'>normalizeWhitespace</span> <span class='layout'>)</span>-<a name="line-597"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_ID</span><span class='layout'>,</span> <span class='varid'>normalizeWhitespace</span> <span class='layout'>)</span>-<a name="line-598"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_IDREF</span><span class='layout'>,</span> <span class='varid'>normalizeWhitespace</span> <span class='layout'>)</span>-<a name="line-599"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_IDREFS</span><span class='layout'>,</span> <span class='varid'>normalizeWhitespace</span> <span class='layout'>)</span>-<a name="line-600"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_ENTITY</span><span class='layout'>,</span> <span class='varid'>normalizeWhitespace</span> <span class='layout'>)</span>-<a name="line-601"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_ENTITIES</span><span class='layout'>,</span> <span class='varid'>normalizeWhitespace</span> <span class='layout'>)</span>-<a name="line-602"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_anyURI</span><span class='layout'>,</span> <span class='varid'>escapeURI</span> <span class='varop'>.</span> <span class='varid'>normalizeWhitespace</span> <span class='layout'>)</span>-<a name="line-603"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_QName</span><span class='layout'>,</span> <span class='varid'>normalizeWhitespace</span> <span class='layout'>)</span>-<a name="line-604"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_NOTATION</span><span class='layout'>,</span> <span class='varid'>normalizeWhitespace</span> <span class='layout'>)</span>-<a name="line-605"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_hexBinary</span><span class='layout'>,</span> <span class='varid'>id</span> <span class='layout'>)</span>-<a name="line-606"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_base64Binary</span><span class='layout'>,</span> <span class='varid'>normBase64</span> <span class='layout'>)</span>-<a name="line-607"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsd_decimal</span><span class='layout'>,</span> <span class='varid'>show</span> <span class='varop'>.</span> <span class='varid'>readDecimal</span> <span class='varop'>.</span> <span class='varid'>normalizeWhitespace</span> <span class='layout'>)</span>-<a name="line-608"></a> <span class='keyglyph'>]</span>-<a name="line-609"></a>-<a name="line-610"></a><span class='comment'>-- ----------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-RelaxNG-XmlSchema-Regex.html
@@ -1,327 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Text.XML.HXT.RelaxNG.XmlSchema.Regex-<a name="line-5"></a> Copyright : Copyright (C) 2005 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe@fh-wedel.de)-<a name="line-9"></a> Stability : experimental-<a name="line-10"></a> Portability: portable-<a name="line-11"></a>-<a name="line-12"></a> W3C XML Schema Regular Expression Matcher-<a name="line-13"></a>-<a name="line-14"></a> Grammar can be found under <<a href="http://www.w3.org/TR/xmlschema11-2/#regexs">http://www.w3.org/TR/xmlschema11-2/#regexs</a>>-<a name="line-15"></a>-<a name="line-16"></a>-}</span>-<a name="line-17"></a>-<a name="line-18"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-19"></a>-<a name="line-20"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>XmlSchema</span><span class='varop'>.</span><span class='conid'>Regex</span>-<a name="line-21"></a> <span class='layout'>(</span> <span class='conid'>Regex</span>-<a name="line-22"></a> <span class='layout'>,</span> <span class='varid'>chars</span>-<a name="line-23"></a> <span class='layout'>,</span> <span class='varid'>charRngs</span>-<a name="line-24"></a> <span class='layout'>,</span> <span class='varid'>mkZero</span>-<a name="line-25"></a> <span class='layout'>,</span> <span class='varid'>mkUnit</span>-<a name="line-26"></a> <span class='layout'>,</span> <span class='varid'>mkSym</span>-<a name="line-27"></a> <span class='layout'>,</span> <span class='varid'>mkSym1</span>-<a name="line-28"></a> <span class='layout'>,</span> <span class='varid'>mkSymRng</span>-<a name="line-29"></a> <span class='layout'>,</span> <span class='varid'>mkDot</span>-<a name="line-30"></a> <span class='layout'>,</span> <span class='varid'>mkStar</span>-<a name="line-31"></a> <span class='layout'>,</span> <span class='varid'>mkAlt</span>-<a name="line-32"></a> <span class='layout'>,</span> <span class='varid'>mkSeq</span>-<a name="line-33"></a> <span class='layout'>,</span> <span class='varid'>mkRep</span>-<a name="line-34"></a> <span class='layout'>,</span> <span class='varid'>mkRng</span>-<a name="line-35"></a> <span class='layout'>,</span> <span class='varid'>mkOpt</span>-<a name="line-36"></a> <span class='layout'>,</span> <span class='varid'>mkDif</span>-<a name="line-37"></a> <span class='layout'>,</span> <span class='varid'>mkCompl</span>-<a name="line-38"></a> <span class='layout'>,</span> <span class='varid'>isZero</span>-<a name="line-39"></a> <span class='layout'>,</span> <span class='varid'>nullable</span>-<a name="line-40"></a> <span class='layout'>,</span> <span class='varid'>delta</span>-<a name="line-41"></a> <span class='layout'>,</span> <span class='varid'>matchWithRE</span>-<a name="line-42"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varop'><&&></span><span class='layout'>)</span>-<a name="line-43"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varop'><||></span><span class='layout'>)</span>-<a name="line-44"></a> <span class='layout'>)</span>-<a name="line-45"></a><span class='keyword'>where</span>-<a name="line-46"></a>-<a name="line-47"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>-<a name="line-48"></a>-<a name="line-49"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-50"></a>-<a name="line-51"></a><a name="Regex"></a><span class='keyword'>data</span> <span class='conid'>Regex</span> <span class='keyglyph'>=</span> <span class='conid'>Zero</span> <span class='conid'>String</span>-<a name="line-52"></a> <span class='keyglyph'>|</span> <span class='conid'>Unit</span>-<a name="line-53"></a> <span class='keyglyph'>|</span> <span class='conid'>Sym</span> <span class='layout'>(</span><span class='conid'>Char</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span><span class='layout'>)</span>-<a name="line-54"></a> <span class='keyglyph'>|</span> <span class='conid'>Dot</span>-<a name="line-55"></a> <span class='keyglyph'>|</span> <span class='conid'>Star</span> <span class='conid'>Regex</span>-<a name="line-56"></a> <span class='keyglyph'>|</span> <span class='conid'>Alt</span> <span class='conid'>Regex</span> <span class='conid'>Regex</span>-<a name="line-57"></a> <span class='keyglyph'>|</span> <span class='conid'>Seq</span> <span class='conid'>Regex</span> <span class='conid'>Regex</span>-<a name="line-58"></a> <span class='keyglyph'>|</span> <span class='conid'>Rep</span> <span class='conid'>Int</span> <span class='conid'>Regex</span> <span class='comment'>-- 1 or more repetitions</span>-<a name="line-59"></a> <span class='keyglyph'>|</span> <span class='conid'>Rng</span> <span class='conid'>Int</span> <span class='conid'>Int</span> <span class='conid'>Regex</span> <span class='comment'>-- n..m repetitions</span>-<a name="line-60"></a> <span class='keyglyph'>|</span> <span class='conid'>Dif</span> <span class='conid'>Regex</span> <span class='conid'>Regex</span> <span class='comment'>-- r1 - r2</span>-<a name="line-61"></a>-<a name="line-62"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-63"></a>-<a name="line-64"></a><span class='comment'>{- just for documentation-<a name="line-65"></a>-<a name="line-66"></a>class Inv a where-<a name="line-67"></a> inv :: a -> Bool-<a name="line-68"></a>-<a name="line-69"></a>instance Inv Regex where-<a name="line-70"></a> inv (Zero _) = True-<a name="line-71"></a> inv Unit = True-<a name="line-72"></a> inv (Sym p) = not . null . chars $ p-<a name="line-73"></a> inv Dot = True-<a name="line-74"></a> inv (Star e) = inv e-<a name="line-75"></a> inv (Alt e1 e2) = inv e1 &&-<a name="line-76"></a> inv e2-<a name="line-77"></a> inv (Seq e1 e2) = inv e1 &&-<a name="line-78"></a> inv e2-<a name="line-79"></a> inv (Rep i e) = i > 0 && inv e-<a name="line-80"></a> inv (Rng i j e) = (i < j || (i == j && i > 1)) &&-<a name="line-81"></a> inv e-<a name="line-82"></a> inv (Dif e1 e2) = inv e1 &&-<a name="line-83"></a> inv e2-<a name="line-84"></a>-}</span>-<a name="line-85"></a>-<a name="line-86"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-87"></a><span class='comment'>-- | enumerate all chars specified by a predicate</span>-<a name="line-88"></a><span class='comment'>--</span>-<a name="line-89"></a><span class='comment'>-- this function is expensive, it should only be used for testing</span>-<a name="line-90"></a>-<a name="line-91"></a><a name="chars"></a><span class='definition'>chars</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Char</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>Char</span><span class='keyglyph'>]</span>-<a name="line-92"></a><span class='definition'>chars</span> <span class='varid'>p</span> <span class='keyglyph'>=</span> <span class='varid'>filter</span> <span class='varid'>p</span> <span class='varop'>$</span> <span class='keyglyph'>[</span><span class='varid'>minBound</span> <span class='keyglyph'>..</span> <span class='varid'>maxBound</span><span class='keyglyph'>]</span>-<a name="line-93"></a>-<a name="line-94"></a><a name="charRngs"></a><span class='definition'>charRngs</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>Char</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>Char</span><span class='layout'>,</span> <span class='conid'>Char</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-95"></a><span class='definition'>charRngs</span> <span class='conid'>[]</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-96"></a><span class='definition'>charRngs</span> <span class='layout'>(</span><span class='varid'>x</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>charRng</span> <span class='varid'>x</span> <span class='varid'>xs</span>-<a name="line-97"></a> <span class='keyword'>where</span>-<a name="line-98"></a> <span class='varid'>charRng</span> <span class='varid'>y</span> <span class='conid'>[]</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>x</span><span class='layout'>,</span><span class='varid'>y</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='conid'>[]</span>-<a name="line-99"></a> <span class='varid'>charRng</span> <span class='varid'>y</span> <span class='varid'>xs'</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='varid'>x1</span><span class='conop'>:</span><span class='varid'>xs1</span><span class='layout'>)</span>-<a name="line-100"></a> <span class='keyglyph'>|</span> <span class='varid'>x1</span> <span class='varop'>==</span> <span class='varid'>succ</span> <span class='varid'>y</span> <span class='keyglyph'>=</span> <span class='varid'>charRng</span> <span class='varid'>x1</span> <span class='varid'>xs1</span>-<a name="line-101"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>x</span><span class='layout'>,</span><span class='varid'>y</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>charRngs</span> <span class='varid'>xs'</span>-<a name="line-102"></a>-<a name="line-103"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-104"></a><span class='comment'>--</span>-<a name="line-105"></a><span class='comment'>-- smart constructors</span>-<a name="line-106"></a>-<a name="line-107"></a><a name="mkZero"></a><span class='definition'>mkZero</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Regex</span>-<a name="line-108"></a><span class='definition'>mkZero</span> <span class='keyglyph'>=</span> <span class='conid'>Zero</span>-<a name="line-109"></a><span class='comment'>{-# INLINE mkZero #-}</span>-<a name="line-110"></a>-<a name="line-111"></a><a name="mkUnit"></a><span class='definition'>mkUnit</span> <span class='keyglyph'>::</span> <span class='conid'>Regex</span>-<a name="line-112"></a><span class='definition'>mkUnit</span> <span class='keyglyph'>=</span> <span class='conid'>Unit</span>-<a name="line-113"></a><span class='comment'>{-# INLINE mkUnit #-}</span>-<a name="line-114"></a>-<a name="line-115"></a><a name="mkSym"></a><span class='definition'>mkSym</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Char</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>Regex</span>-<a name="line-116"></a><span class='definition'>mkSym</span> <span class='keyglyph'>=</span> <span class='conid'>Sym</span>-<a name="line-117"></a><span class='comment'>{-# INLINE mkSym #-}</span>-<a name="line-118"></a>-<a name="line-119"></a><a name="mkSym1"></a><span class='definition'>mkSym1</span> <span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-></span> <span class='conid'>Regex</span>-<a name="line-120"></a><span class='definition'>mkSym1</span> <span class='varid'>c</span> <span class='keyglyph'>=</span> <span class='varid'>mkSym</span> <span class='layout'>(</span><span class='varop'>==</span><span class='varid'>c</span><span class='layout'>)</span>-<a name="line-121"></a>-<a name="line-122"></a><a name="mkSymRng"></a><span class='definition'>mkSymRng</span> <span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-></span> <span class='conid'>Char</span> <span class='keyglyph'>-></span> <span class='conid'>Regex</span>-<a name="line-123"></a><span class='definition'>mkSymRng</span> <span class='varid'>c1</span> <span class='varid'>c2</span>-<a name="line-124"></a> <span class='keyglyph'>|</span> <span class='varid'>c1</span> <span class='varop'>==</span> <span class='varid'>minBound</span> <span class='varop'>&&</span>-<a name="line-125"></a> <span class='varid'>c2</span> <span class='varop'>==</span> <span class='varid'>maxBound</span> <span class='keyglyph'>=</span> <span class='varid'>mkDot</span>-<a name="line-126"></a> <span class='keyglyph'>|</span> <span class='varid'>c1</span> <span class='varop'><=</span> <span class='varid'>c2</span> <span class='keyglyph'>=</span> <span class='varid'>mkSym</span> <span class='varop'>$</span> <span class='layout'>(</span><span class='varop'>>=</span> <span class='varid'>c1</span><span class='layout'>)</span> <span class='varop'><&&></span> <span class='layout'>(</span><span class='varop'><=</span> <span class='varid'>c2</span><span class='layout'>)</span>-<a name="line-127"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>mkZero</span> <span class='varop'>$</span> <span class='str'>"empty char range"</span>-<a name="line-128"></a>-<a name="line-129"></a><a name="mkDot"></a><span class='definition'>mkDot</span> <span class='keyglyph'>::</span> <span class='conid'>Regex</span>-<a name="line-130"></a><span class='definition'>mkDot</span> <span class='keyglyph'>=</span> <span class='conid'>Dot</span>-<a name="line-131"></a><span class='comment'>{-# INLINE mkDot #-}</span>-<a name="line-132"></a>-<a name="line-133"></a><a name="mkStar"></a><span class='definition'>mkStar</span> <span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-></span> <span class='conid'>Regex</span>-<a name="line-134"></a><span class='definition'>mkStar</span> <span class='layout'>(</span><span class='conid'>Zero</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>mkUnit</span> <span class='comment'>-- {}* == ()</span>-<a name="line-135"></a><span class='definition'>mkStar</span> <span class='varid'>e</span><span class='keyglyph'>@</span><span class='conid'>Unit</span> <span class='keyglyph'>=</span> <span class='varid'>e</span> <span class='comment'>-- ()* == ()</span>-<a name="line-136"></a><span class='definition'>mkStar</span> <span class='varid'>e</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Star</span> <span class='sel'>_e1</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>e</span> <span class='comment'>-- (r*)* == r*</span>-<a name="line-137"></a><span class='definition'>mkStar</span> <span class='layout'>(</span><span class='conid'>Rep</span> <span class='num'>1</span> <span class='varid'>e1</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>mkStar</span> <span class='varid'>e1</span> <span class='comment'>-- (r+)* == r*</span>-<a name="line-138"></a><span class='definition'>mkStar</span> <span class='varid'>e</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Alt</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>Star</span> <span class='layout'>(</span><span class='varid'>rmStar</span> <span class='varid'>e</span><span class='layout'>)</span> <span class='comment'>-- (a*|b)* == (a|b)*</span>-<a name="line-139"></a><span class='definition'>mkStar</span> <span class='varid'>e</span> <span class='keyglyph'>=</span> <span class='conid'>Star</span> <span class='varid'>e</span>-<a name="line-140"></a>-<a name="line-141"></a><a name="rmStar"></a><span class='definition'>rmStar</span> <span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-></span> <span class='conid'>Regex</span>-<a name="line-142"></a><span class='definition'>rmStar</span> <span class='layout'>(</span><span class='conid'>Alt</span> <span class='varid'>e1</span> <span class='varid'>e2</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>mkAlt</span> <span class='layout'>(</span><span class='varid'>rmStar</span> <span class='varid'>e1</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>rmStar</span> <span class='varid'>e2</span><span class='layout'>)</span>-<a name="line-143"></a><span class='definition'>rmStar</span> <span class='layout'>(</span><span class='conid'>Star</span> <span class='varid'>e1</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>rmStar</span> <span class='varid'>e1</span>-<a name="line-144"></a><span class='definition'>rmStar</span> <span class='layout'>(</span><span class='conid'>Rep</span> <span class='num'>1</span> <span class='varid'>e1</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>rmStar</span> <span class='varid'>e1</span>-<a name="line-145"></a><span class='definition'>rmStar</span> <span class='varid'>e1</span> <span class='keyglyph'>=</span> <span class='varid'>e1</span>-<a name="line-146"></a>-<a name="line-147"></a><a name="mkAlt"></a><span class='definition'>mkAlt</span> <span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-></span> <span class='conid'>Regex</span> <span class='keyglyph'>-></span> <span class='conid'>Regex</span>-<a name="line-148"></a><span class='definition'>mkAlt</span> <span class='varid'>e1</span> <span class='layout'>(</span><span class='conid'>Zero</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>e1</span> <span class='comment'>-- e1 u {} = e1</span>-<a name="line-149"></a><span class='definition'>mkAlt</span> <span class='layout'>(</span><span class='conid'>Zero</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='varid'>e2</span> <span class='keyglyph'>=</span> <span class='varid'>e2</span> <span class='comment'>-- {} u e2 = e2</span>-<a name="line-150"></a><span class='definition'>mkAlt</span> <span class='varid'>e1</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Star</span> <span class='conid'>Dot</span><span class='layout'>)</span> <span class='sel'>_e2</span> <span class='keyglyph'>=</span> <span class='varid'>e1</span> <span class='comment'>-- A* u e1 = A*</span>-<a name="line-151"></a><span class='definition'>mkAlt</span> <span class='sel'>_e1</span> <span class='varid'>e2</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Star</span> <span class='conid'>Dot</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>e2</span> <span class='comment'>-- e1 u A* = A*</span>-<a name="line-152"></a><span class='definition'>mkAlt</span> <span class='layout'>(</span><span class='conid'>Sym</span> <span class='varid'>p1</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>Sym</span> <span class='varid'>p2</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>mkSym</span> <span class='varop'>$</span> <span class='varid'>p1</span> <span class='varop'><||></span> <span class='varid'>p2</span> <span class='comment'>-- melting of predicates</span>-<a name="line-153"></a><span class='definition'>mkAlt</span> <span class='varid'>e1</span> <span class='varid'>e2</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Sym</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>mkAlt</span> <span class='varid'>e2</span> <span class='varid'>e1</span> <span class='comment'>-- symmetry: predicates always first</span>-<a name="line-154"></a><span class='definition'>mkAlt</span> <span class='varid'>e1</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Sym</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>Alt</span> <span class='varid'>e2</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Sym</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='varid'>e3</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>mkAlt</span> <span class='layout'>(</span><span class='varid'>mkAlt</span> <span class='varid'>e1</span> <span class='varid'>e2</span><span class='layout'>)</span> <span class='varid'>e3</span> <span class='comment'>-- prepare melting of predicates</span>-<a name="line-155"></a><span class='definition'>mkAlt</span> <span class='layout'>(</span><span class='conid'>Alt</span> <span class='varid'>e1</span> <span class='varid'>e2</span><span class='layout'>)</span> <span class='varid'>e3</span> <span class='keyglyph'>=</span> <span class='varid'>mkAlt</span> <span class='varid'>e1</span> <span class='layout'>(</span><span class='varid'>mkAlt</span> <span class='varid'>e2</span> <span class='varid'>e3</span><span class='layout'>)</span> <span class='comment'>-- associativity</span>-<a name="line-156"></a><span class='definition'>mkAlt</span> <span class='varid'>e1</span> <span class='varid'>e2</span> <span class='keyglyph'>=</span> <span class='conid'>Alt</span> <span class='varid'>e1</span> <span class='varid'>e2</span>-<a name="line-157"></a>-<a name="line-158"></a><a name="mkSeq"></a><span class='definition'>mkSeq</span> <span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-></span> <span class='conid'>Regex</span> <span class='keyglyph'>-></span> <span class='conid'>Regex</span>-<a name="line-159"></a><span class='definition'>mkSeq</span> <span class='varid'>e1</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Zero</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='sel'>_e2</span> <span class='keyglyph'>=</span> <span class='varid'>e1</span>-<a name="line-160"></a><span class='definition'>mkSeq</span> <span class='sel'>_e1</span> <span class='varid'>e2</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Zero</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>e2</span>-<a name="line-161"></a><span class='definition'>mkSeq</span> <span class='conid'>Unit</span> <span class='varid'>e2</span> <span class='keyglyph'>=</span> <span class='varid'>e2</span>-<a name="line-162"></a><span class='definition'>mkSeq</span> <span class='varid'>e1</span> <span class='conid'>Unit</span> <span class='keyglyph'>=</span> <span class='varid'>e1</span>-<a name="line-163"></a><span class='definition'>mkSeq</span> <span class='layout'>(</span><span class='conid'>Seq</span> <span class='varid'>e1</span> <span class='varid'>e2</span><span class='layout'>)</span> <span class='varid'>e3</span> <span class='keyglyph'>=</span> <span class='varid'>mkSeq</span> <span class='varid'>e1</span> <span class='layout'>(</span><span class='varid'>mkSeq</span> <span class='varid'>e2</span> <span class='varid'>e3</span><span class='layout'>)</span>-<a name="line-164"></a><span class='definition'>mkSeq</span> <span class='varid'>e1</span> <span class='varid'>e2</span> <span class='keyglyph'>=</span> <span class='conid'>Seq</span> <span class='varid'>e1</span> <span class='varid'>e2</span>-<a name="line-165"></a>-<a name="line-166"></a><a name="mkRep"></a><span class='definition'>mkRep</span> <span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-></span> <span class='conid'>Regex</span> <span class='keyglyph'>-></span> <span class='conid'>Regex</span>-<a name="line-167"></a><span class='definition'>mkRep</span> <span class='num'>0</span> <span class='varid'>e</span> <span class='keyglyph'>=</span> <span class='varid'>mkStar</span> <span class='varid'>e</span>-<a name="line-168"></a><span class='definition'>mkRep</span> <span class='keyword'>_</span> <span class='varid'>e</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Zero</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>e</span>-<a name="line-169"></a><span class='definition'>mkRep</span> <span class='keyword'>_</span> <span class='varid'>e</span><span class='keyglyph'>@</span><span class='conid'>Unit</span> <span class='keyglyph'>=</span> <span class='varid'>e</span>-<a name="line-170"></a><span class='definition'>mkRep</span> <span class='varid'>i</span> <span class='varid'>e</span> <span class='keyglyph'>=</span> <span class='conid'>Rep</span> <span class='varid'>i</span> <span class='varid'>e</span>-<a name="line-171"></a>-<a name="line-172"></a><a name="mkRng"></a><span class='definition'>mkRng</span> <span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-></span> <span class='conid'>Int</span> <span class='keyglyph'>-></span> <span class='conid'>Regex</span> <span class='keyglyph'>-></span> <span class='conid'>Regex</span>-<a name="line-173"></a><span class='definition'>mkRng</span> <span class='num'>0</span> <span class='num'>0</span> <span class='sel'>_e</span> <span class='keyglyph'>=</span> <span class='varid'>mkUnit</span>-<a name="line-174"></a><span class='definition'>mkRng</span> <span class='num'>1</span> <span class='num'>1</span> <span class='varid'>e</span> <span class='keyglyph'>=</span> <span class='varid'>e</span>-<a name="line-175"></a><span class='definition'>mkRng</span> <span class='varid'>lb</span> <span class='varid'>ub</span> <span class='sel'>_e</span>-<a name="line-176"></a> <span class='keyglyph'>|</span> <span class='varid'>lb</span> <span class='varop'>></span> <span class='varid'>ub</span> <span class='keyglyph'>=</span> <span class='conid'>Zero</span> <span class='varop'>$</span>-<a name="line-177"></a> <span class='str'>"illegal range "</span> <span class='varop'>++</span>-<a name="line-178"></a> <span class='varid'>show</span> <span class='varid'>lb</span> <span class='varop'>++</span> <span class='str'>".."</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>ub</span>-<a name="line-179"></a><span class='definition'>mkRng</span> <span class='sel'>_l</span> <span class='sel'>_u</span> <span class='varid'>e</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Zero</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>e</span>-<a name="line-180"></a><span class='definition'>mkRng</span> <span class='sel'>_l</span> <span class='sel'>_u</span> <span class='varid'>e</span><span class='keyglyph'>@</span><span class='conid'>Unit</span> <span class='keyglyph'>=</span> <span class='varid'>e</span>-<a name="line-181"></a><span class='definition'>mkRng</span> <span class='varid'>lb</span> <span class='varid'>ub</span> <span class='varid'>e</span> <span class='keyglyph'>=</span> <span class='conid'>Rng</span> <span class='varid'>lb</span> <span class='varid'>ub</span> <span class='varid'>e</span>-<a name="line-182"></a>-<a name="line-183"></a><a name="mkOpt"></a><span class='definition'>mkOpt</span> <span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-></span> <span class='conid'>Regex</span>-<a name="line-184"></a><span class='definition'>mkOpt</span> <span class='keyglyph'>=</span> <span class='varid'>mkRng</span> <span class='num'>0</span> <span class='num'>1</span>-<a name="line-185"></a>-<a name="line-186"></a><a name="mkDif"></a><span class='definition'>mkDif</span> <span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-></span> <span class='conid'>Regex</span> <span class='keyglyph'>-></span> <span class='conid'>Regex</span>-<a name="line-187"></a><span class='definition'>mkDif</span> <span class='varid'>e1</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Zero</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='sel'>_e2</span> <span class='keyglyph'>=</span> <span class='varid'>e1</span>-<a name="line-188"></a><span class='definition'>mkDif</span> <span class='varid'>e1</span> <span class='layout'>(</span><span class='conid'>Zero</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>e1</span>-<a name="line-189"></a><span class='definition'>mkDif</span> <span class='sel'>_e1</span> <span class='layout'>(</span><span class='conid'>Star</span> <span class='conid'>Dot</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>mkZero</span> <span class='str'>"empty set in difference expr"</span>-<a name="line-190"></a><span class='definition'>mkDif</span> <span class='conid'>Dot</span> <span class='layout'>(</span><span class='conid'>Sym</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>mkSym</span> <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>p</span><span class='layout'>)</span>-<a name="line-191"></a><span class='definition'>mkDif</span> <span class='layout'>(</span><span class='conid'>Sym</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='conid'>Dot</span> <span class='keyglyph'>=</span> <span class='varid'>mkZero</span> <span class='str'>"empty set of chars in difference expr"</span>-<a name="line-192"></a><span class='definition'>mkDif</span> <span class='layout'>(</span><span class='conid'>Sym</span> <span class='varid'>p1</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>Sym</span> <span class='varid'>p2</span><span class='layout'>)</span>-<a name="line-193"></a> <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varop'>.</span> <span class='varid'>chars</span> <span class='varop'>$</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='varid'>p1</span> <span class='varid'>x</span> <span class='varop'>&&</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>p2</span> <span class='varid'>x</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-194"></a> <span class='keyglyph'>=</span> <span class='varid'>mkZero</span> <span class='str'>"empty set of chars in difference expr"</span>-<a name="line-195"></a><span class='definition'>mkDif</span> <span class='varid'>e1</span> <span class='varid'>e2</span> <span class='keyglyph'>=</span> <span class='conid'>Dif</span> <span class='varid'>e1</span> <span class='varid'>e2</span>-<a name="line-196"></a>-<a name="line-197"></a><a name="mkCompl"></a><span class='definition'>mkCompl</span> <span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-></span> <span class='conid'>Regex</span>-<a name="line-198"></a><span class='definition'>mkCompl</span> <span class='keyglyph'>=</span> <span class='varid'>mkDif</span> <span class='varid'>mkDot</span>-<a name="line-199"></a>-<a name="line-200"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-201"></a>-<a name="line-202"></a><span class='keyword'>instance</span> <span class='conid'>Show</span> <span class='conid'>Regex</span> <span class='keyword'>where</span>-<a name="line-203"></a> <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>Zero</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>"{err:"</span> <span class='varop'>++</span> <span class='varid'>s</span> <span class='varop'>++</span> <span class='str'>"}"</span>-<a name="line-204"></a> <span class='varid'>show</span> <span class='conid'>Unit</span> <span class='keyglyph'>=</span> <span class='str'>"()"</span>-<a name="line-205"></a> <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>Sym</span> <span class='varid'>p</span><span class='layout'>)</span>-<a name="line-206"></a> <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='layout'>(</span><span class='varid'>tail</span> <span class='varid'>cs</span><span class='layout'>)</span> <span class='varop'>&&</span>-<a name="line-207"></a> <span class='varid'>rng1</span> <span class='layout'>(</span><span class='varid'>head</span> <span class='varid'>cs</span><span class='layout'>)</span>-<a name="line-208"></a> <span class='keyglyph'>=</span> <span class='varid'>escRng</span> <span class='varop'>.</span> <span class='varid'>head</span> <span class='varop'>$</span> <span class='varid'>cs</span>-<a name="line-209"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='str'>"["</span> <span class='varop'>++</span> <span class='varid'>concat</span> <span class='varid'>cs'</span> <span class='varop'>++</span> <span class='str'>"]"</span>-<a name="line-210"></a> <span class='keyword'>where</span>-<a name="line-211"></a> <span class='varid'>rng1</span> <span class='layout'>(</span><span class='varid'>x</span><span class='layout'>,</span><span class='varid'>y</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>x</span> <span class='varop'>==</span> <span class='varid'>y</span>-<a name="line-212"></a> <span class='varid'>cs</span> <span class='keyglyph'>=</span> <span class='varid'>charRngs</span> <span class='varop'>.</span> <span class='varid'>chars</span> <span class='varop'>$</span> <span class='varid'>p</span>-<a name="line-213"></a> <span class='varid'>cs'</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>escRng</span> <span class='varid'>cs</span>-<a name="line-214"></a> <span class='varid'>escRng</span> <span class='layout'>(</span><span class='varid'>x</span><span class='layout'>,</span> <span class='varid'>y</span><span class='layout'>)</span>-<a name="line-215"></a> <span class='keyglyph'>|</span> <span class='varid'>x</span> <span class='varop'>==</span> <span class='varid'>y</span> <span class='keyglyph'>=</span> <span class='varid'>esc</span> <span class='varid'>x</span>-<a name="line-216"></a> <span class='keyglyph'>|</span> <span class='varid'>succ</span> <span class='varid'>x</span> <span class='varop'>==</span> <span class='varid'>y</span>-<a name="line-217"></a> <span class='keyglyph'>=</span> <span class='varid'>esc</span> <span class='varid'>x</span> <span class='varop'>++</span> <span class='varid'>esc</span> <span class='varid'>y</span>-<a name="line-218"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-219"></a> <span class='keyglyph'>=</span> <span class='varid'>esc</span> <span class='varid'>x</span> <span class='varop'>++</span> <span class='str'>"-"</span> <span class='varop'>++</span> <span class='varid'>esc</span> <span class='varid'>y</span>-<a name="line-220"></a> <span class='varid'>esc</span> <span class='varid'>x</span>-<a name="line-221"></a> <span class='keyglyph'>|</span> <span class='varid'>x</span> <span class='varop'>`elem`</span> <span class='str'>"\\-[]{}()*+?.^"</span>-<a name="line-222"></a> <span class='keyglyph'>=</span> <span class='chr'>'\\'</span><span class='conop'>:</span><span class='varid'>x</span><span class='conop'>:</span><span class='str'>""</span>-<a name="line-223"></a> <span class='keyglyph'>|</span> <span class='varid'>x</span> <span class='varop'>>=</span> <span class='chr'>' '</span> <span class='varop'>&&</span> <span class='varid'>x</span> <span class='varop'><=</span> <span class='chr'>'~'</span>-<a name="line-224"></a> <span class='keyglyph'>=</span> <span class='varid'>x</span><span class='conop'>:</span><span class='str'>""</span>-<a name="line-225"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-226"></a> <span class='keyglyph'>=</span> <span class='str'>"&#"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>fromEnum</span> <span class='varid'>x</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='str'>";"</span>-<a name="line-227"></a> <span class='varid'>show</span> <span class='conid'>Dot</span> <span class='keyglyph'>=</span> <span class='str'>"."</span>-<a name="line-228"></a> <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>Star</span> <span class='varid'>e</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>"("</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>")*"</span>-<a name="line-229"></a> <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>Alt</span> <span class='varid'>e1</span> <span class='varid'>e2</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>"("</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>e1</span> <span class='varop'>++</span> <span class='str'>"|"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>e2</span> <span class='varop'>++</span> <span class='str'>")"</span>-<a name="line-230"></a> <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>Seq</span> <span class='varid'>e1</span> <span class='varid'>e2</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>show</span> <span class='varid'>e1</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>e2</span>-<a name="line-231"></a> <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>Rep</span> <span class='num'>1</span> <span class='varid'>e</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>"("</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>")+"</span>-<a name="line-232"></a> <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>Rep</span> <span class='varid'>i</span> <span class='varid'>e</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>"("</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>"){"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>i</span> <span class='varop'>++</span> <span class='str'>",}"</span>-<a name="line-233"></a> <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>Rng</span> <span class='num'>0</span> <span class='num'>1</span> <span class='varid'>e</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>"("</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>")?"</span>-<a name="line-234"></a> <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>Rng</span> <span class='varid'>i</span> <span class='varid'>j</span> <span class='varid'>e</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>"("</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>e</span> <span class='varop'>++</span> <span class='str'>"){"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>i</span> <span class='varop'>++</span> <span class='str'>","</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>j</span> <span class='varop'>++</span> <span class='str'>"}"</span>-<a name="line-235"></a> <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>Dif</span> <span class='varid'>e1</span> <span class='varid'>e2</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>"("</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>e1</span> <span class='varop'>++</span> <span class='str'>"-"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>e2</span> <span class='varop'>++</span> <span class='str'>")"</span>-<a name="line-236"></a>-<a name="line-237"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-238"></a>-<a name="line-239"></a><a name="isZero"></a><span class='definition'>isZero</span> <span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-240"></a><span class='definition'>isZero</span> <span class='layout'>(</span><span class='conid'>Zero</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-241"></a><span class='definition'>isZero</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-242"></a><span class='comment'>{-# INLINE isZero #-}</span>-<a name="line-243"></a>-<a name="line-244"></a><a name="nullable"></a><span class='definition'>nullable</span> <span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-245"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>Zero</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-246"></a><span class='definition'>nullable</span> <span class='conid'>Unit</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-247"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>Sym</span> <span class='sel'>_p</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>False</span> <span class='comment'>-- assumption: p holds for at least one char</span>-<a name="line-248"></a><span class='definition'>nullable</span> <span class='conid'>Dot</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-249"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>Star</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-250"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>Alt</span> <span class='varid'>e1</span> <span class='varid'>e2</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>nullable</span> <span class='varid'>e1</span> <span class='varop'>||</span>-<a name="line-251"></a> <span class='varid'>nullable</span> <span class='varid'>e2</span>-<a name="line-252"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>Seq</span> <span class='varid'>e1</span> <span class='varid'>e2</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>nullable</span> <span class='varid'>e1</span> <span class='varop'>&&</span>-<a name="line-253"></a> <span class='varid'>nullable</span> <span class='varid'>e2</span>-<a name="line-254"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>Rep</span> <span class='sel'>_i</span> <span class='varid'>e</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>nullable</span> <span class='varid'>e</span>-<a name="line-255"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>Rng</span> <span class='varid'>i</span> <span class='keyword'>_</span> <span class='varid'>e</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>i</span> <span class='varop'>==</span> <span class='num'>0</span> <span class='varop'>||</span>-<a name="line-256"></a> <span class='varid'>nullable</span> <span class='varid'>e</span>-<a name="line-257"></a><span class='definition'>nullable</span> <span class='layout'>(</span><span class='conid'>Dif</span> <span class='varid'>e1</span> <span class='varid'>e2</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>nullable</span> <span class='varid'>e1</span> <span class='varop'>&&</span>-<a name="line-258"></a> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>nullable</span> <span class='varid'>e2</span><span class='layout'>)</span>-<a name="line-259"></a>-<a name="line-260"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-261"></a>-<a name="line-262"></a><a name="delta"></a><span class='definition'>delta</span> <span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-></span> <span class='conid'>Char</span> <span class='keyglyph'>-></span> <span class='conid'>Regex</span>-<a name="line-263"></a><span class='definition'>delta</span> <span class='varid'>e</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Zero</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='varid'>e</span>-<a name="line-264"></a><span class='definition'>delta</span> <span class='conid'>Unit</span> <span class='varid'>c</span> <span class='keyglyph'>=</span> <span class='varid'>mkZero</span> <span class='varop'>$</span>-<a name="line-265"></a> <span class='str'>"unexpected char "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>c</span>-<a name="line-266"></a><span class='definition'>delta</span> <span class='layout'>(</span><span class='conid'>Sym</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='varid'>c</span>-<a name="line-267"></a> <span class='keyglyph'>|</span> <span class='varid'>p</span> <span class='varid'>c</span> <span class='keyglyph'>=</span> <span class='varid'>mkUnit</span>-<a name="line-268"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>mkZero</span> <span class='varop'>$</span>-<a name="line-269"></a> <span class='str'>"unexpected char "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>c</span> <span class='varop'>++</span> <span class='str'>", expected: "</span> <span class='varop'>++</span> <span class='varid'>oneof</span> <span class='varop'>++</span> <span class='varid'>chars'</span>-<a name="line-270"></a> <span class='keyword'>where</span>-<a name="line-271"></a> <span class='layout'>(</span><span class='varid'>cs</span><span class='layout'>,</span> <span class='varid'>ds</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>splitAt</span> <span class='num'>40</span> <span class='layout'>(</span><span class='varid'>chars</span> <span class='varid'>p</span><span class='layout'>)</span>-<a name="line-272"></a> <span class='varid'>oneof</span>-<a name="line-273"></a> <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='layout'>(</span><span class='varid'>tail</span> <span class='varid'>cs</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>""</span>-<a name="line-274"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='str'>"one of "</span>-<a name="line-275"></a> <span class='varid'>chars'</span>-<a name="line-276"></a> <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='layout'>(</span><span class='varid'>tail</span> <span class='varid'>cs</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>"'"</span> <span class='varop'>++</span> <span class='varid'>cs</span> <span class='varop'>++</span> <span class='str'>"'"</span>-<a name="line-277"></a> <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>ds</span> <span class='keyglyph'>=</span> <span class='str'>"["</span> <span class='varop'>++</span> <span class='varid'>cs</span> <span class='varop'>++</span> <span class='str'>"]"</span>-<a name="line-278"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='str'>"["</span> <span class='varop'>++</span> <span class='varid'>cs</span> <span class='varop'>++</span> <span class='str'>"...]"</span>-<a name="line-279"></a>-<a name="line-280"></a><span class='definition'>delta</span> <span class='conid'>Dot</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='varid'>mkUnit</span>-<a name="line-281"></a><span class='definition'>delta</span> <span class='varid'>e</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Star</span> <span class='varid'>e1</span><span class='layout'>)</span> <span class='varid'>c</span> <span class='keyglyph'>=</span> <span class='varid'>mkSeq</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>e1</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='varid'>e</span>-<a name="line-282"></a><span class='definition'>delta</span> <span class='layout'>(</span><span class='conid'>Alt</span> <span class='varid'>e1</span> <span class='varid'>e2</span><span class='layout'>)</span> <span class='varid'>c</span> <span class='keyglyph'>=</span> <span class='varid'>mkAlt</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>e1</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>e2</span> <span class='varid'>c</span><span class='layout'>)</span>-<a name="line-283"></a><span class='definition'>delta</span> <span class='layout'>(</span><span class='conid'>Seq</span> <span class='varid'>e1</span> <span class='varid'>e2</span><span class='layout'>)</span> <span class='varid'>c</span>-<a name="line-284"></a> <span class='keyglyph'>|</span> <span class='varid'>nullable</span> <span class='varid'>e1</span> <span class='keyglyph'>=</span> <span class='varid'>mkAlt</span> <span class='layout'>(</span><span class='varid'>mkSeq</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>e1</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='varid'>e2</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>e2</span> <span class='varid'>c</span><span class='layout'>)</span>-<a name="line-285"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>mkSeq</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>e1</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='varid'>e2</span>-<a name="line-286"></a><span class='definition'>delta</span> <span class='layout'>(</span><span class='conid'>Rep</span> <span class='varid'>i</span> <span class='varid'>e</span><span class='layout'>)</span> <span class='varid'>c</span> <span class='keyglyph'>=</span> <span class='varid'>mkSeq</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>e</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>mkRep</span> <span class='layout'>(</span><span class='varid'>i</span><span class='comment'>-</span><span class='num'>1</span><span class='layout'>)</span> <span class='varid'>e</span><span class='layout'>)</span>-<a name="line-287"></a><span class='definition'>delta</span> <span class='layout'>(</span><span class='conid'>Rng</span> <span class='varid'>i</span> <span class='varid'>j</span> <span class='varid'>e</span><span class='layout'>)</span> <span class='varid'>c</span> <span class='keyglyph'>=</span> <span class='varid'>mkSeq</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>e</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>mkRng</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>i</span><span class='comment'>-</span><span class='num'>1</span><span class='layout'>)</span> <span class='varop'>`max`</span> <span class='num'>0</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>j</span><span class='comment'>-</span><span class='num'>1</span><span class='layout'>)</span> <span class='varid'>e</span><span class='layout'>)</span>-<a name="line-288"></a><span class='definition'>delta</span> <span class='layout'>(</span><span class='conid'>Dif</span> <span class='varid'>e1</span> <span class='varid'>e2</span><span class='layout'>)</span> <span class='varid'>c</span> <span class='keyglyph'>=</span> <span class='varid'>mkDif</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>e1</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>delta</span> <span class='varid'>e2</span> <span class='varid'>c</span><span class='layout'>)</span>-<a name="line-289"></a>-<a name="line-290"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-291"></a>-<a name="line-292"></a><a name="delta'"></a><span class='definition'>delta'</span> <span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Regex</span>-<a name="line-293"></a><span class='definition'>delta'</span> <span class='keyglyph'>=</span> <span class='varid'>foldl</span> <span class='varid'>delta</span>-<a name="line-294"></a>-<a name="line-295"></a><a name="matchWithRE"></a><span class='definition'>matchWithRE</span> <span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Maybe</span> <span class='conid'>String</span>-<a name="line-296"></a><span class='definition'>matchWithRE</span> <span class='varid'>e</span>-<a name="line-297"></a> <span class='keyglyph'>=</span> <span class='varid'>res</span> <span class='varop'>.</span> <span class='varid'>delta'</span> <span class='varid'>e</span>-<a name="line-298"></a> <span class='keyword'>where</span>-<a name="line-299"></a> <span class='varid'>res</span> <span class='layout'>(</span><span class='conid'>Zero</span> <span class='varid'>err</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='varid'>err</span>-<a name="line-300"></a> <span class='varid'>res</span> <span class='varid'>re</span>-<a name="line-301"></a> <span class='keyglyph'>|</span> <span class='varid'>nullable</span> <span class='varid'>re</span> <span class='keyglyph'>=</span> <span class='conid'>Nothing</span> <span class='comment'>-- o.k.</span>-<a name="line-302"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='varop'>$</span> <span class='str'>"input does not match "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>e</span>-<a name="line-303"></a>-<a name="line-304"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-305"></a>-<a name="line-306"></a><a name="<&&>"></a><span class='layout'>(</span><span class='varop'><&&></span><span class='layout'>)</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Char</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='conid'>Char</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='conid'>Char</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span><span class='layout'>)</span>-<a name="line-307"></a><a name="f"></a><span class='definition'>f</span> <span class='varop'><&&></span> <span class='varid'>g</span> <span class='keyglyph'>=</span> <span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='varid'>f</span> <span class='varid'>x</span> <span class='varop'>&&</span> <span class='varid'>g</span> <span class='varid'>x</span> <span class='comment'>-- liftA2 (&&)</span>-<a name="line-308"></a>-<a name="line-309"></a><span class='comment'>{-# INLINE (<&&>) #-}</span>-<a name="line-310"></a>-<a name="line-311"></a>-<a name="line-312"></a><a name="<||>"></a><span class='layout'>(</span><span class='varop'><||></span><span class='layout'>)</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Char</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='conid'>Char</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='conid'>Char</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span><span class='layout'>)</span>-<a name="line-313"></a><span class='definition'>f</span> <span class='varop'><||></span> <span class='varid'>g</span> <span class='keyglyph'>=</span> <span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='varid'>f</span> <span class='varid'>x</span> <span class='varop'>||</span> <span class='varid'>g</span> <span class='varid'>x</span> <span class='comment'>-- liftA2 (||)</span>-<a name="line-314"></a>-<a name="line-315"></a><span class='comment'>{-# INLINE (<||>) #-}</span>-<a name="line-316"></a>-<a name="line-317"></a><span class='comment'>-- ------------------------------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-RelaxNG-XmlSchema-RegexMatch.html
@@ -1,248 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Text.XML.HXT.RelaxNG.XmlSchema.RegexMatch-<a name="line-5"></a> Copyright : Copyright (C) 2005 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe@fh-wedel.de)-<a name="line-9"></a> Stability : experimental-<a name="line-10"></a> Portability: portable-<a name="line-11"></a>-<a name="line-12"></a> Convenient functions for W3C XML Schema Regular Expression Matcher.-<a name="line-13"></a> For internals see 'Text.XML.HXT.RelaxNG.XmlSchema.Regex'-<a name="line-14"></a>-<a name="line-15"></a> Grammar can be found under <<a href="http://www.w3.org/TR/xmlschema11-2/#regexs">http://www.w3.org/TR/xmlschema11-2/#regexs</a>>-<a name="line-16"></a>-<a name="line-17"></a>-}</span>-<a name="line-18"></a>-<a name="line-19"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-20"></a>-<a name="line-21"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>XmlSchema</span><span class='varop'>.</span><span class='conid'>RegexMatch</span>-<a name="line-22"></a> <span class='layout'>(</span> <span class='varid'>matchRE</span>-<a name="line-23"></a> <span class='layout'>,</span> <span class='varid'>splitRE</span>-<a name="line-24"></a> <span class='layout'>,</span> <span class='varid'>sedRE</span>-<a name="line-25"></a> <span class='layout'>,</span> <span class='varid'>tokenizeRE</span>-<a name="line-26"></a> <span class='layout'>,</span> <span class='varid'>tokenizeRE'</span>-<a name="line-27"></a> <span class='layout'>,</span> <span class='varid'>match</span>-<a name="line-28"></a> <span class='layout'>,</span> <span class='varid'>tokenize</span>-<a name="line-29"></a> <span class='layout'>,</span> <span class='varid'>tokenize'</span>-<a name="line-30"></a> <span class='layout'>,</span> <span class='varid'>sed</span>-<a name="line-31"></a> <span class='layout'>,</span> <span class='varid'>split</span>-<a name="line-32"></a> <span class='layout'>)</span>-<a name="line-33"></a><span class='keyword'>where</span>-<a name="line-34"></a>-<a name="line-35"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>-<a name="line-36"></a>-<a name="line-37"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>XmlSchema</span><span class='varop'>.</span><span class='conid'>Regex</span>-<a name="line-38"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>XmlSchema</span><span class='varop'>.</span><span class='conid'>RegexParser</span>-<a name="line-39"></a>-<a name="line-40"></a><span class='comment'>{--<a name="line-41"></a>import qualified Debug.Trace as T-<a name="line-42"></a>-}</span>-<a name="line-43"></a>-<a name="line-44"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-45"></a>-<a name="line-46"></a><a name="splitRegex"></a><span class='definition'>splitRegex</span> <span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Maybe</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span>-<a name="line-47"></a><span class='definition'>splitRegex</span> <span class='varid'>re</span> <span class='str'>""</span>-<a name="line-48"></a> <span class='keyglyph'>|</span> <span class='varid'>nullable</span> <span class='varid'>re</span> <span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='layout'>(</span><span class='str'>""</span><span class='layout'>,</span> <span class='str'>""</span><span class='layout'>)</span>-<a name="line-49"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='conid'>Nothing</span>-<a name="line-50"></a>-<a name="line-51"></a><span class='definition'>splitRegex</span> <span class='varid'>re</span> <span class='varid'>inp</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='varid'>c</span> <span class='conop'>:</span> <span class='varid'>inp'</span><span class='layout'>)</span>-<a name="line-52"></a> <span class='keyglyph'>|</span> <span class='varid'>isZero</span> <span class='varid'>re</span> <span class='keyglyph'>=</span> <span class='conid'>Nothing</span>-<a name="line-53"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>evalRes</span> <span class='varop'>.</span> <span class='varid'>splitRegex</span> <span class='comment'>{- (T.trace (show re') re') -}</span> <span class='varid'>re'</span> <span class='varop'>$</span> <span class='varid'>inp'</span>-<a name="line-54"></a> <span class='keyword'>where</span>-<a name="line-55"></a> <span class='varid'>re'</span> <span class='keyglyph'>=</span> <span class='varid'>delta</span> <span class='varid'>re</span> <span class='varid'>c</span>-<a name="line-56"></a> <span class='varid'>evalRes</span> <span class='conid'>Nothing</span>-<a name="line-57"></a> <span class='keyglyph'>|</span> <span class='varid'>nullable</span> <span class='varid'>re</span> <span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='layout'>(</span><span class='str'>""</span><span class='layout'>,</span> <span class='varid'>inp</span><span class='layout'>)</span>-<a name="line-58"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='conid'>Nothing</span>-<a name="line-59"></a>-<a name="line-60"></a> <span class='varid'>evalRes</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='layout'>(</span><span class='varid'>tok</span><span class='layout'>,</span> <span class='varid'>rest</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-61"></a> <span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='layout'>(</span><span class='varid'>c</span> <span class='conop'>:</span> <span class='varid'>tok</span><span class='layout'>,</span> <span class='varid'>rest</span><span class='layout'>)</span>-<a name="line-62"></a>-<a name="line-63"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-64"></a>-<a name="line-65"></a><span class='comment'>-- | split a string by taking the longest prefix matching a regular expression</span>-<a name="line-66"></a><span class='comment'>--</span>-<a name="line-67"></a><span class='comment'>-- @Nothing@ is returned in case of a syntactically wrong regex string</span>-<a name="line-68"></a><span class='comment'>-- or in case there is no matching prefix, else the pair of prefix and rest is returned</span>-<a name="line-69"></a><span class='comment'>--</span>-<a name="line-70"></a><span class='comment'>-- examples:</span>-<a name="line-71"></a><span class='comment'>--</span>-<a name="line-72"></a><span class='comment'>-- > splitRE "a*b" "abc" = Just ("ab","c")</span>-<a name="line-73"></a><span class='comment'>-- > splitRE "a*" "bc" = Just ("", "bc")</span>-<a name="line-74"></a><span class='comment'>-- > splitRE "a+" "bc" = Nothing</span>-<a name="line-75"></a><span class='comment'>-- > splitRE "[" "abc" = Nothing</span>-<a name="line-76"></a>-<a name="line-77"></a><a name="splitRE"></a><span class='definition'>splitRE</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Maybe</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span>-<a name="line-78"></a><span class='definition'>splitRE</span> <span class='varid'>re</span> <span class='varid'>input</span>-<a name="line-79"></a> <span class='keyglyph'>=</span> <span class='varid'>either</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='conid'>Nothing</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>flip</span> <span class='varid'>splitRegex</span> <span class='varid'>input</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>parseRegex</span> <span class='varop'>$</span> <span class='varid'>re</span>-<a name="line-80"></a>-<a name="line-81"></a><span class='comment'>-- | convenient function for splitRE</span>-<a name="line-82"></a><span class='comment'>--</span>-<a name="line-83"></a><span class='comment'>-- syntax errors in R.E. are interpreted as no matching prefix found</span>-<a name="line-84"></a>-<a name="line-85"></a><a name="split"></a><span class='definition'>split</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span>-<a name="line-86"></a><span class='definition'>split</span> <span class='varid'>re</span> <span class='varid'>input</span>-<a name="line-87"></a> <span class='keyglyph'>=</span> <span class='varid'>fromMaybe</span> <span class='layout'>(</span><span class='str'>""</span><span class='layout'>,</span> <span class='varid'>input</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>splitRE</span> <span class='varid'>re</span> <span class='varop'>$</span> <span class='varid'>input</span>-<a name="line-88"></a>-<a name="line-89"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-90"></a>-<a name="line-91"></a><span class='comment'>-- | split a string into tokens (words) by giving a regular expression</span>-<a name="line-92"></a><span class='comment'>-- which all tokens must match</span>-<a name="line-93"></a><span class='comment'>--</span>-<a name="line-94"></a><span class='comment'>-- This can be used for simple tokenizers.</span>-<a name="line-95"></a><span class='comment'>-- The words in the result list contain at least one char.</span>-<a name="line-96"></a><span class='comment'>-- All none matching chars are discarded. If the given regex contains syntax errors,</span>-<a name="line-97"></a><span class='comment'>-- @Nothing@ is returned</span>-<a name="line-98"></a><span class='comment'>--</span>-<a name="line-99"></a><span class='comment'>-- examples:</span>-<a name="line-100"></a><span class='comment'>--</span>-<a name="line-101"></a><span class='comment'>-- > tokenizeRE "a*b" "" = Just []</span>-<a name="line-102"></a><span class='comment'>-- > tokenizeRE "a*b" "abc" = Just ["ab"]</span>-<a name="line-103"></a><span class='comment'>-- > tokenizeRE "a*b" "abaab ab" = Just ["ab","aab","ab"]</span>-<a name="line-104"></a><span class='comment'>-- ></span>-<a name="line-105"></a><span class='comment'>-- > tokenizeRE "[a-z]{2,}|[0-9]{2,}|[0-9]+[.][0-9]+" "ab123 456.7abc"</span>-<a name="line-106"></a><span class='comment'>-- > = Just ["ab","123","456.7","abc"]</span>-<a name="line-107"></a><span class='comment'>-- ></span>-<a name="line-108"></a><span class='comment'>-- > tokenizeRE "[a-z]*|[0-9]{2,}|[0-9]+[.][0-9]+" "cab123 456.7abc"</span>-<a name="line-109"></a><span class='comment'>-- > = Just ["cab","123","456.7","abc"]</span>-<a name="line-110"></a><span class='comment'>-- ></span>-<a name="line-111"></a><span class='comment'>-- > tokenizeRE "[^ \t\n\r]*" "abc def\t\n\rxyz"</span>-<a name="line-112"></a><span class='comment'>-- > = Just ["abc","def","xyz"]</span>-<a name="line-113"></a><span class='comment'>-- ></span>-<a name="line-114"></a><span class='comment'>-- > tokenizeRE "[^ \t\n\r]*" = words</span>-<a name="line-115"></a>-<a name="line-116"></a><a name="tokenizeRE"></a><span class='definition'>tokenizeRE</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Maybe</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span>-<a name="line-117"></a><span class='definition'>tokenizeRE</span> <span class='varid'>regex</span> <span class='varid'>input</span>-<a name="line-118"></a> <span class='keyglyph'>=</span> <span class='varid'>either</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='conid'>Nothing</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varop'>.</span> <span class='varid'>flip</span> <span class='varid'>token'</span> <span class='varid'>input</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>parseRegex</span> <span class='varid'>regex</span>-<a name="line-119"></a> <span class='keyword'>where</span>-<a name="line-120"></a> <span class='varid'>token'</span> <span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span>-<a name="line-121"></a> <span class='varid'>token'</span> <span class='varid'>re</span> <span class='varid'>inp</span>-<a name="line-122"></a> <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>inp</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-123"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>evalRes</span> <span class='varop'>.</span> <span class='varid'>splitRegex</span> <span class='varid'>re</span> <span class='varop'>$</span> <span class='varid'>inp</span>-<a name="line-124"></a> <span class='keyword'>where</span>-<a name="line-125"></a> <span class='varid'>token''</span> <span class='keyglyph'>=</span> <span class='varid'>token'</span> <span class='varid'>re</span>-<a name="line-126"></a> <span class='varid'>evalRes</span> <span class='conid'>Nothing</span> <span class='keyglyph'>=</span> <span class='varid'>token''</span> <span class='layout'>(</span><span class='varid'>tail</span> <span class='varid'>inp</span><span class='layout'>)</span> <span class='comment'>-- re does not match any prefix</span>-<a name="line-127"></a> <span class='varid'>evalRes</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='layout'>(</span><span class='varid'>tok</span><span class='layout'>,</span> <span class='varid'>rest</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-128"></a> <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>tok</span> <span class='keyglyph'>=</span> <span class='varid'>token''</span> <span class='layout'>(</span><span class='varid'>tail</span> <span class='varid'>rest</span><span class='layout'>)</span> <span class='comment'>-- re is nullable and only the empty prefix matches</span>-<a name="line-129"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>tok</span> <span class='conop'>:</span> <span class='varid'>token''</span> <span class='varid'>rest</span> <span class='comment'>-- token found, tokenize the rest</span>-<a name="line-130"></a>-<a name="line-131"></a><span class='comment'>-- | convenient function for tokenizeRE a string</span>-<a name="line-132"></a><span class='comment'>--</span>-<a name="line-133"></a><span class='comment'>-- syntax errors in R.E. result in an empty list</span>-<a name="line-134"></a>-<a name="line-135"></a><a name="tokenize"></a><span class='definition'>tokenize</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span>-<a name="line-136"></a><span class='definition'>tokenize</span> <span class='varid'>re</span>-<a name="line-137"></a> <span class='keyglyph'>=</span> <span class='varid'>fromMaybe</span> <span class='conid'>[]</span> <span class='varop'>.</span> <span class='varid'>tokenizeRE</span> <span class='varid'>re</span>-<a name="line-138"></a>-<a name="line-139"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-140"></a>-<a name="line-141"></a><span class='comment'>-- | split a string into tokens and delimierter by giving a regular expression</span>-<a name="line-142"></a><span class='comment'>-- wich all tokens must match</span>-<a name="line-143"></a><span class='comment'>--</span>-<a name="line-144"></a><span class='comment'>-- This is a generalisation of the above 'tokenizeRE' functions.</span>-<a name="line-145"></a><span class='comment'>-- The none matching char sequences are marked with @Left@, the matching ones are marked with @Right@</span>-<a name="line-146"></a><span class='comment'>--</span>-<a name="line-147"></a><span class='comment'>-- If the regular expression contains syntax errors @Nothing@ is returned</span>-<a name="line-148"></a><span class='comment'>--</span>-<a name="line-149"></a><span class='comment'>-- The following Law holds:</span>-<a name="line-150"></a><span class='comment'>--</span>-<a name="line-151"></a><span class='comment'>-- > concat . map (either id id) . fromJust . tokenizeRE' re == id</span>-<a name="line-152"></a>-<a name="line-153"></a><a name="tokenizeRE'"></a><span class='definition'>tokenizeRE'</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Maybe</span> <span class='keyglyph'>[</span><span class='conid'>Either</span> <span class='conid'>String</span> <span class='conid'>String</span><span class='keyglyph'>]</span>-<a name="line-154"></a><span class='definition'>tokenizeRE'</span> <span class='varid'>regex</span> <span class='varid'>input</span>-<a name="line-155"></a> <span class='keyglyph'>=</span> <span class='varid'>either</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='conid'>Nothing</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varop'>.</span> <span class='varid'>flip</span> <span class='varid'>token'</span> <span class='varid'>input</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>parseRegex</span> <span class='varid'>regex</span>-<a name="line-156"></a> <span class='keyword'>where</span>-<a name="line-157"></a> <span class='varid'>token'</span> <span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>Either</span> <span class='conid'>String</span> <span class='conid'>String</span><span class='keyglyph'>]</span>-<a name="line-158"></a> <span class='varid'>token'</span> <span class='varid'>re</span>-<a name="line-159"></a> <span class='keyglyph'>=</span> <span class='varid'>tok2</span> <span class='str'>""</span>-<a name="line-160"></a> <span class='keyword'>where</span>-<a name="line-161"></a> <span class='varid'>tok2</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>Either</span> <span class='conid'>String</span> <span class='conid'>String</span><span class='keyglyph'>]</span>-<a name="line-162"></a> <span class='varid'>tok2</span> <span class='varid'>noMatchPrefix</span> <span class='varid'>inp</span>-<a name="line-163"></a> <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>inp</span> <span class='keyglyph'>=</span> <span class='varid'>addNoMatch</span> <span class='conid'>[]</span>-<a name="line-164"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>evalRes</span> <span class='varop'>.</span> <span class='varid'>splitRegex</span> <span class='varid'>re</span> <span class='varop'>$</span> <span class='varid'>inp</span>-<a name="line-165"></a> <span class='keyword'>where</span>-<a name="line-166"></a> <span class='varid'>addNoMatch</span> <span class='varid'>res</span>-<a name="line-167"></a> <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>noMatchPrefix</span> <span class='keyglyph'>=</span> <span class='varid'>res</span>-<a name="line-168"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>Left</span> <span class='varop'>.</span> <span class='varid'>reverse</span> <span class='varop'>$</span> <span class='varid'>noMatchPrefix</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>res</span>-<a name="line-169"></a>-<a name="line-170"></a> <span class='varid'>evalRes</span> <span class='conid'>Nothing</span> <span class='keyglyph'>=</span> <span class='varid'>tok2</span> <span class='layout'>(</span><span class='varid'>head</span> <span class='varid'>inp</span> <span class='conop'>:</span> <span class='varid'>noMatchPrefix</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>tail</span> <span class='varid'>inp</span><span class='layout'>)</span> <span class='comment'>-- re does not match any prefix</span>-<a name="line-171"></a> <span class='varid'>evalRes</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='layout'>(</span><span class='varid'>tok</span><span class='layout'>,</span> <span class='varid'>rest</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-172"></a> <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>tok</span> <span class='keyglyph'>=</span> <span class='varid'>tok2</span> <span class='layout'>(</span><span class='varid'>head</span> <span class='varid'>rest</span> <span class='conop'>:</span> <span class='varid'>noMatchPrefix</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>tail</span> <span class='varid'>rest</span><span class='layout'>)</span> <span class='comment'>-- re is nullable and only the empty prefix matches</span>-<a name="line-173"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>addNoMatch</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='conid'>Right</span> <span class='varid'>tok</span> <span class='conop'>:</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>tok2</span> <span class='str'>""</span> <span class='varop'>$</span> <span class='varid'>rest</span> <span class='comment'>-- token found, tokenize the rest</span>-<a name="line-174"></a>-<a name="line-175"></a><span class='comment'>-- | convenient function for tokenizeRE'</span>-<a name="line-176"></a><span class='comment'>--</span>-<a name="line-177"></a><span class='comment'>-- When the regular expression contains errors @[Left input]@ is returned, that means tokens are found</span>-<a name="line-178"></a>-<a name="line-179"></a><a name="tokenize'"></a><span class='definition'>tokenize'</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>Either</span> <span class='conid'>String</span> <span class='conid'>String</span><span class='keyglyph'>]</span>-<a name="line-180"></a><span class='definition'>tokenize'</span> <span class='varid'>regex</span> <span class='varid'>input</span>-<a name="line-181"></a> <span class='keyglyph'>=</span> <span class='varid'>fromMaybe</span> <span class='keyglyph'>[</span><span class='conid'>Left</span> <span class='varid'>input</span><span class='keyglyph'>]</span> <span class='varop'>.</span> <span class='varid'>tokenizeRE'</span> <span class='varid'>regex</span> <span class='varop'>$</span> <span class='varid'>input</span>-<a name="line-182"></a>-<a name="line-183"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-184"></a>-<a name="line-185"></a><span class='comment'>-- | sed like editing function</span>-<a name="line-186"></a><span class='comment'>--</span>-<a name="line-187"></a><span class='comment'>-- All matching tokens are edited by the 1. argument, the editing function,</span>-<a name="line-188"></a><span class='comment'>-- all other chars remain as they are</span>-<a name="line-189"></a><span class='comment'>--</span>-<a name="line-190"></a><span class='comment'>-- examples:</span>-<a name="line-191"></a><span class='comment'>--</span>-<a name="line-192"></a><span class='comment'>-- > sedRE (const "b") "a" "xaxax" = Just "xbxbx"</span>-<a name="line-193"></a><span class='comment'>-- > sedRE (\ x -> x ++ x) "a" "xax" = Just "xaax"</span>-<a name="line-194"></a><span class='comment'>-- > sedRE undefined "[" undefined = Nothing</span>-<a name="line-195"></a>-<a name="line-196"></a><a name="sedRE"></a><span class='definition'>sedRE</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Maybe</span> <span class='conid'>String</span>-<a name="line-197"></a><span class='definition'>sedRE</span> <span class='varid'>edit</span> <span class='varid'>regex</span> <span class='varid'>input</span>-<a name="line-198"></a> <span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='conid'>Nothing</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varop'>.</span> <span class='varid'>concatMap</span> <span class='layout'>(</span><span class='varid'>either</span> <span class='varid'>id</span> <span class='varid'>edit</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>tokenizeRE'</span> <span class='varid'>regex</span> <span class='varid'>input</span>-<a name="line-199"></a>-<a name="line-200"></a><span class='comment'>-- | convenient function for sedRE</span>-<a name="line-201"></a><span class='comment'>--</span>-<a name="line-202"></a><span class='comment'>-- When the regular expression contains errors, sed is the identity, else</span>-<a name="line-203"></a><span class='comment'>-- the funtionality is like 'sedRE'</span>-<a name="line-204"></a><span class='comment'>--</span>-<a name="line-205"></a><span class='comment'>-- > sed undefined "[" == id</span>-<a name="line-206"></a>-<a name="line-207"></a><a name="sed"></a><span class='definition'>sed</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-208"></a><span class='definition'>sed</span> <span class='varid'>edit</span> <span class='varid'>regex</span> <span class='varid'>input</span>-<a name="line-209"></a> <span class='keyglyph'>=</span> <span class='varid'>fromMaybe</span> <span class='varid'>input</span> <span class='varop'>.</span> <span class='varid'>sedRE</span> <span class='varid'>edit</span> <span class='varid'>regex</span> <span class='varop'>$</span> <span class='varid'>input</span>-<a name="line-210"></a>-<a name="line-211"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-212"></a>-<a name="line-213"></a><span class='comment'>-- | match a string with a regular expression</span>-<a name="line-214"></a><span class='comment'>--</span>-<a name="line-215"></a><span class='comment'>-- First argument is the regex, second the input string,</span>-<a name="line-216"></a><span class='comment'>-- if the regex is not well formed, @Nothing@ is returned,</span>-<a name="line-217"></a><span class='comment'>-- else @Just@ the match result</span>-<a name="line-218"></a><span class='comment'>--</span>-<a name="line-219"></a><span class='comment'>-- Examples:</span>-<a name="line-220"></a><span class='comment'>--</span>-<a name="line-221"></a><span class='comment'>-- > matchRE "x*" "xxx" = Just True</span>-<a name="line-222"></a><span class='comment'>-- > matchRE "x" "xxx" = Just False</span>-<a name="line-223"></a><span class='comment'>-- > matchRE "[" "xxx" = Nothing</span>-<a name="line-224"></a>-<a name="line-225"></a><a name="matchRE"></a><span class='definition'>matchRE</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Maybe</span> <span class='conid'>Bool</span>-<a name="line-226"></a><span class='definition'>matchRE</span> <span class='varid'>regex</span> <span class='varid'>input</span>-<a name="line-227"></a> <span class='keyglyph'>=</span> <span class='varid'>either</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='conid'>Nothing</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varop'>.</span> <span class='varid'>isNothing</span> <span class='varop'>.</span> <span class='varid'>flip</span> <span class='varid'>matchWithRE</span> <span class='varid'>input</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>parseRegex</span> <span class='varid'>regex</span>-<a name="line-228"></a>-<a name="line-229"></a>-<a name="line-230"></a><span class='comment'>-- | convenient function for matchRE</span>-<a name="line-231"></a><span class='comment'>--</span>-<a name="line-232"></a><span class='comment'>-- syntax errors in R.E. are interpreted as no match found</span>-<a name="line-233"></a>-<a name="line-234"></a><a name="match"></a><span class='definition'>match</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-235"></a><span class='definition'>match</span> <span class='varid'>re</span> <span class='keyglyph'>=</span> <span class='varid'>fromMaybe</span> <span class='conid'>False</span> <span class='varop'>.</span> <span class='varid'>matchRE</span> <span class='varid'>re</span>-<a name="line-236"></a>-<a name="line-237"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-238"></a>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-RelaxNG-XmlSchema-RegexParser.html
@@ -1,364 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Text.XML.HXT.RelaxNG.XmlSchema.RegexParser-<a name="line-5"></a> Copyright : Copyright (C) 2005 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe@fh-wedel.de)-<a name="line-9"></a> Stability : experimental-<a name="line-10"></a> Portability: portable-<a name="line-11"></a>-<a name="line-12"></a> W3C XML Schema Regular Expression Parser-<a name="line-13"></a>-<a name="line-14"></a> This parser supports the full W3C standard, the-<a name="line-15"></a> complete grammar can be found under <<a href="http://www.w3.org/TR/xmlschema11-2/#regexs">http://www.w3.org/TR/xmlschema11-2/#regexs</a>>-<a name="line-16"></a>-<a name="line-17"></a>-}</span>-<a name="line-18"></a>-<a name="line-19"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-20"></a>-<a name="line-21"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>XmlSchema</span><span class='varop'>.</span><span class='conid'>RegexParser</span>-<a name="line-22"></a> <span class='layout'>(</span> <span class='varid'>parseRegex</span> <span class='layout'>)</span>-<a name="line-23"></a><span class='keyword'>where</span>-<a name="line-24"></a>-<a name="line-25"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>-<a name="line-26"></a>-<a name="line-27"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>ParserCombinators</span><span class='varop'>.</span><span class='conid'>Parsec</span>-<a name="line-28"></a>-<a name="line-29"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Unicode</span>-<a name="line-30"></a>-<a name="line-31"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>Unicode</span><span class='varop'>.</span><span class='conid'>Blocks</span>-<a name="line-32"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>Unicode</span><span class='varop'>.</span><span class='conid'>CharProps</span>-<a name="line-33"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>XmlSchema</span><span class='varop'>.</span><span class='conid'>Regex</span>-<a name="line-34"></a>-<a name="line-35"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-36"></a>-<a name="line-37"></a><a name="parseRegex"></a><span class='definition'>parseRegex</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Either</span> <span class='conid'>String</span> <span class='conid'>Regex</span>-<a name="line-38"></a><span class='definition'>parseRegex</span>-<a name="line-39"></a> <span class='keyglyph'>=</span> <span class='varid'>either</span> <span class='layout'>(</span><span class='conid'>Left</span> <span class='varop'>.</span> <span class='varid'>show</span><span class='layout'>)</span> <span class='conid'>Right</span>-<a name="line-40"></a> <span class='varop'>.</span>-<a name="line-41"></a> <span class='varid'>parse</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-42"></a> <span class='varid'>r</span> <span class='keyglyph'><-</span> <span class='varid'>regExp</span>-<a name="line-43"></a> <span class='varid'>eof</span>-<a name="line-44"></a> <span class='varid'>return</span> <span class='varid'>r</span>-<a name="line-45"></a> <span class='layout'>)</span> <span class='str'>""</span>-<a name="line-46"></a>-<a name="line-47"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-48"></a>-<a name="line-49"></a><a name="regExp"></a><span class='definition'>regExp</span> <span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Regex</span>-<a name="line-50"></a><span class='definition'>regExp</span>-<a name="line-51"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-52"></a> <span class='varid'>r1</span> <span class='keyglyph'><-</span> <span class='varid'>branch</span>-<a name="line-53"></a> <span class='varid'>rs</span> <span class='keyglyph'><-</span> <span class='varid'>many</span> <span class='varid'>branch1</span>-<a name="line-54"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>foldr1</span> <span class='varid'>mkAlt</span> <span class='varop'>$</span> <span class='varid'>r1</span><span class='conop'>:</span><span class='varid'>rs</span><span class='layout'>)</span>-<a name="line-55"></a> <span class='keyword'>where</span>-<a name="line-56"></a> <span class='varid'>branch1</span>-<a name="line-57"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-58"></a> <span class='varid'>char</span> <span class='chr'>'|'</span>-<a name="line-59"></a> <span class='varid'>branch</span>-<a name="line-60"></a>-<a name="line-61"></a><a name="branch"></a><span class='definition'>branch</span> <span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Regex</span>-<a name="line-62"></a><span class='definition'>branch</span>-<a name="line-63"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-64"></a> <span class='varid'>rs</span> <span class='keyglyph'><-</span> <span class='varid'>many</span> <span class='varid'>piece</span>-<a name="line-65"></a> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>foldr</span> <span class='varid'>mkSeq</span> <span class='varid'>mkUnit</span> <span class='varid'>rs</span>-<a name="line-66"></a>-<a name="line-67"></a><a name="piece"></a><span class='definition'>piece</span> <span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Regex</span>-<a name="line-68"></a><span class='definition'>piece</span>-<a name="line-69"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-70"></a> <span class='varid'>r</span> <span class='keyglyph'><-</span> <span class='varid'>atom</span>-<a name="line-71"></a> <span class='varid'>quantifier</span> <span class='varid'>r</span>-<a name="line-72"></a>-<a name="line-73"></a><a name="quantifier"></a><span class='definition'>quantifier</span> <span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-></span> <span class='conid'>Parser</span> <span class='conid'>Regex</span>-<a name="line-74"></a><span class='definition'>quantifier</span> <span class='varid'>r</span>-<a name="line-75"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-76"></a> <span class='varid'>char</span> <span class='chr'>'?'</span>-<a name="line-77"></a> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mkOpt</span> <span class='varid'>r</span> <span class='layout'>)</span>-<a name="line-78"></a> <span class='varop'><|></span>-<a name="line-79"></a> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-80"></a> <span class='varid'>char</span> <span class='chr'>'*'</span>-<a name="line-81"></a> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mkStar</span> <span class='varid'>r</span> <span class='layout'>)</span>-<a name="line-82"></a> <span class='varop'><|></span>-<a name="line-83"></a> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-84"></a> <span class='varid'>char</span> <span class='chr'>'+'</span>-<a name="line-85"></a> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mkRep</span> <span class='num'>1</span> <span class='varid'>r</span> <span class='layout'>)</span>-<a name="line-86"></a> <span class='varop'><|></span>-<a name="line-87"></a> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-88"></a> <span class='varid'>char</span> <span class='chr'>'{'</span>-<a name="line-89"></a> <span class='varid'>res</span> <span class='keyglyph'><-</span> <span class='varid'>quantity</span> <span class='varid'>r</span>-<a name="line-90"></a> <span class='varid'>char</span> <span class='chr'>'}'</span>-<a name="line-91"></a> <span class='varid'>return</span> <span class='varid'>res</span>-<a name="line-92"></a> <span class='layout'>)</span>-<a name="line-93"></a> <span class='varop'><|></span>-<a name="line-94"></a> <span class='layout'>(</span> <span class='varid'>return</span> <span class='varid'>r</span> <span class='layout'>)</span>-<a name="line-95"></a>-<a name="line-96"></a><a name="quantity"></a><span class='definition'>quantity</span> <span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-></span> <span class='conid'>Parser</span> <span class='conid'>Regex</span>-<a name="line-97"></a><span class='definition'>quantity</span> <span class='varid'>r</span>-<a name="line-98"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-99"></a> <span class='varid'>lb</span> <span class='keyglyph'><-</span> <span class='varid'>many1</span> <span class='varid'>digit</span>-<a name="line-100"></a> <span class='varid'>quantityRest</span> <span class='varid'>r</span> <span class='layout'>(</span><span class='varid'>read</span> <span class='varid'>lb</span><span class='layout'>)</span>-<a name="line-101"></a>-<a name="line-102"></a><a name="quantityRest"></a><span class='definition'>quantityRest</span> <span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-></span> <span class='conid'>Int</span> <span class='keyglyph'>-></span> <span class='conid'>Parser</span> <span class='conid'>Regex</span>-<a name="line-103"></a><span class='definition'>quantityRest</span> <span class='varid'>r</span> <span class='varid'>lb</span>-<a name="line-104"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-105"></a> <span class='varid'>char</span> <span class='chr'>','</span>-<a name="line-106"></a> <span class='varid'>ub</span> <span class='keyglyph'><-</span> <span class='varid'>many</span> <span class='varid'>digit</span>-<a name="line-107"></a> <span class='varid'>return</span> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>ub</span>-<a name="line-108"></a> <span class='keyword'>then</span> <span class='varid'>mkRep</span> <span class='varid'>lb</span> <span class='varid'>r</span>-<a name="line-109"></a> <span class='keyword'>else</span> <span class='varid'>mkRng</span> <span class='varid'>lb</span> <span class='layout'>(</span><span class='varid'>read</span> <span class='varid'>ub</span><span class='layout'>)</span> <span class='varid'>r</span>-<a name="line-110"></a> <span class='layout'>)</span>-<a name="line-111"></a> <span class='layout'>)</span>-<a name="line-112"></a> <span class='varop'><|></span>-<a name="line-113"></a> <span class='layout'>(</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mkRng</span> <span class='varid'>lb</span> <span class='varid'>lb</span> <span class='varid'>r</span><span class='layout'>)</span>-<a name="line-114"></a>-<a name="line-115"></a><a name="atom"></a><span class='definition'>atom</span> <span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Regex</span>-<a name="line-116"></a><span class='definition'>atom</span>-<a name="line-117"></a> <span class='keyglyph'>=</span> <span class='varid'>char1</span>-<a name="line-118"></a> <span class='varop'><|></span>-<a name="line-119"></a> <span class='varid'>charClass</span>-<a name="line-120"></a> <span class='varop'><|></span>-<a name="line-121"></a> <span class='varid'>between</span> <span class='layout'>(</span><span class='varid'>char</span> <span class='chr'>'('</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>char</span> <span class='chr'>')'</span><span class='layout'>)</span> <span class='varid'>regExp</span>-<a name="line-122"></a>-<a name="line-123"></a><a name="char1"></a><span class='definition'>char1</span> <span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Regex</span>-<a name="line-124"></a><span class='definition'>char1</span>-<a name="line-125"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-126"></a> <span class='varid'>c</span> <span class='keyglyph'><-</span> <span class='varid'>satisfy</span> <span class='varop'>$</span> <span class='layout'>(</span><span class='varop'>`notElem`</span> <span class='str'>".\\?*+{}()|[]"</span><span class='layout'>)</span>-<a name="line-127"></a> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mkSym1</span> <span class='varid'>c</span>-<a name="line-128"></a>-<a name="line-129"></a><a name="charClass"></a><span class='definition'>charClass</span> <span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Regex</span>-<a name="line-130"></a><span class='definition'>charClass</span>-<a name="line-131"></a> <span class='keyglyph'>=</span> <span class='varid'>charClassEsc</span>-<a name="line-132"></a> <span class='varop'><|></span>-<a name="line-133"></a> <span class='varid'>charClassExpr</span>-<a name="line-134"></a> <span class='varop'><|></span>-<a name="line-135"></a> <span class='varid'>wildCardEsc</span>-<a name="line-136"></a>-<a name="line-137"></a><a name="charClassEsc"></a><span class='definition'>charClassEsc</span> <span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Regex</span>-<a name="line-138"></a><span class='definition'>charClassEsc</span>-<a name="line-139"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-140"></a> <span class='varid'>char</span> <span class='chr'>'\\'</span>-<a name="line-141"></a> <span class='layout'>(</span> <span class='varid'>singleCharEsc</span>-<a name="line-142"></a> <span class='varop'><|></span>-<a name="line-143"></a> <span class='varid'>multiCharEsc</span>-<a name="line-144"></a> <span class='varop'><|></span>-<a name="line-145"></a> <span class='varid'>catEsc</span>-<a name="line-146"></a> <span class='varop'><|></span>-<a name="line-147"></a> <span class='varid'>complEsc</span> <span class='layout'>)</span>-<a name="line-148"></a>-<a name="line-149"></a><a name="singleCharEsc"></a><span class='definition'>singleCharEsc</span> <span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Regex</span>-<a name="line-150"></a><span class='definition'>singleCharEsc</span>-<a name="line-151"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-152"></a> <span class='varid'>c</span> <span class='keyglyph'><-</span> <span class='varid'>singleCharEsc'</span>-<a name="line-153"></a> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mkSym1</span> <span class='varid'>c</span>-<a name="line-154"></a>-<a name="line-155"></a><a name="singleCharEsc'"></a><span class='definition'>singleCharEsc'</span> <span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Char</span>-<a name="line-156"></a><span class='definition'>singleCharEsc'</span>-<a name="line-157"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-158"></a> <span class='varid'>c</span> <span class='keyglyph'><-</span> <span class='varid'>satisfy</span> <span class='layout'>(</span><span class='varop'>`elem`</span> <span class='str'>"nrt\\|.?*+(){}-[]^"</span><span class='layout'>)</span>-<a name="line-159"></a> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>maybe</span> <span class='varid'>c</span> <span class='varid'>id</span> <span class='varop'>.</span> <span class='varid'>lookup</span> <span class='varid'>c</span> <span class='varop'>.</span> <span class='varid'>zip</span> <span class='str'>"ntr"</span> <span class='varop'>$</span> <span class='str'>"\n\r\t"</span>-<a name="line-160"></a>-<a name="line-161"></a><a name="multiCharEsc"></a><span class='definition'>multiCharEsc</span> <span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Regex</span>-<a name="line-162"></a><span class='definition'>multiCharEsc</span>-<a name="line-163"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-164"></a> <span class='varid'>c</span> <span class='keyglyph'><-</span> <span class='varid'>satisfy</span> <span class='layout'>(</span><span class='varop'>`elem`</span> <span class='varid'>es</span><span class='layout'>)</span>-<a name="line-165"></a> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mkSym</span> <span class='varop'>.</span> <span class='varid'>fromJust</span> <span class='varop'>.</span> <span class='varid'>lookup</span> <span class='varid'>c</span> <span class='varop'>$</span> <span class='varid'>pm</span>-<a name="line-166"></a> <span class='keyword'>where</span>-<a name="line-167"></a> <span class='varid'>es</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>fst</span> <span class='varid'>pm</span>-<a name="line-168"></a> <span class='varid'>pm</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'s'</span><span class='layout'>,</span> <span class='varid'>isXmlSpaceChar</span> <span class='layout'>)</span>-<a name="line-169"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'S'</span><span class='layout'>,</span> <span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>isXmlSpaceChar</span> <span class='layout'>)</span>-<a name="line-170"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'i'</span><span class='layout'>,</span> <span class='varid'>isXmlNameStartChar</span> <span class='layout'>)</span>-<a name="line-171"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'I'</span><span class='layout'>,</span> <span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>isXmlNameStartChar</span> <span class='layout'>)</span>-<a name="line-172"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'c'</span><span class='layout'>,</span> <span class='varid'>isXmlNameChar</span> <span class='layout'>)</span>-<a name="line-173"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'C'</span><span class='layout'>,</span> <span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>isXmlNameChar</span> <span class='layout'>)</span>-<a name="line-174"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'d'</span><span class='layout'>,</span> <span class='varid'>isDigit</span> <span class='layout'>)</span>-<a name="line-175"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'D'</span><span class='layout'>,</span> <span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>isDigit</span> <span class='layout'>)</span>-<a name="line-176"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'w'</span><span class='layout'>,</span> <span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>isNotWord</span> <span class='layout'>)</span>-<a name="line-177"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'W'</span><span class='layout'>,</span> <span class='varid'>isNotWord</span> <span class='layout'>)</span>-<a name="line-178"></a> <span class='keyglyph'>]</span>-<a name="line-179"></a> <span class='varid'>isDigit</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='chr'>'0'</span> <span class='varop'><=</span><span class='layout'>)</span> <span class='varop'><&&></span> <span class='layout'>(</span><span class='varop'><=</span> <span class='chr'>'9'</span><span class='layout'>)</span>-<a name="line-180"></a> <span class='varid'>isNotWord</span> <span class='keyglyph'>=</span> <span class='varid'>isUnicodeP</span> <span class='varop'><||></span>-<a name="line-181"></a> <span class='varid'>isUnicodeZ</span> <span class='varop'><||></span>-<a name="line-182"></a> <span class='varid'>isUnicodeC</span>-<a name="line-183"></a>-<a name="line-184"></a><a name="catEsc"></a><span class='definition'>catEsc</span> <span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Regex</span>-<a name="line-185"></a><span class='definition'>catEsc</span>-<a name="line-186"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-187"></a> <span class='varid'>char</span> <span class='chr'>'p'</span>-<a name="line-188"></a> <span class='varid'>s</span> <span class='keyglyph'><-</span> <span class='varid'>between</span> <span class='layout'>(</span><span class='varid'>char</span> <span class='chr'>'{'</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>char</span> <span class='chr'>'}'</span><span class='layout'>)</span> <span class='varid'>charProp</span>-<a name="line-189"></a> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mkSym</span> <span class='varid'>s</span>-<a name="line-190"></a>-<a name="line-191"></a><a name="charProp"></a><span class='definition'>charProp</span> <span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='layout'>(</span><span class='conid'>Char</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span><span class='layout'>)</span>-<a name="line-192"></a><span class='definition'>charProp</span>-<a name="line-193"></a> <span class='keyglyph'>=</span> <span class='varid'>isCategory</span>-<a name="line-194"></a> <span class='varop'><|></span>-<a name="line-195"></a> <span class='varid'>isBlock</span>-<a name="line-196"></a>-<a name="line-197"></a><a name="isBlock"></a><span class='definition'>isBlock</span> <span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='layout'>(</span><span class='conid'>Char</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span><span class='layout'>)</span>-<a name="line-198"></a><span class='definition'>isBlock</span>-<a name="line-199"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-200"></a> <span class='varid'>string</span> <span class='str'>"Is"</span>-<a name="line-201"></a> <span class='varid'>name</span> <span class='keyglyph'><-</span> <span class='varid'>many1</span> <span class='layout'>(</span><span class='varid'>satisfy</span> <span class='varid'>legalChar</span><span class='layout'>)</span>-<a name="line-202"></a> <span class='keyword'>let</span> <span class='varid'>b</span> <span class='keyglyph'>=</span> <span class='varid'>lookup</span> <span class='varid'>name</span> <span class='varid'>codeBlocks</span>-<a name="line-203"></a> <span class='keyword'>if</span> <span class='varid'>isJust</span> <span class='varid'>b</span>-<a name="line-204"></a> <span class='keyword'>then</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='keyword'>let</span>-<a name="line-205"></a> <span class='layout'>(</span><span class='varid'>lb</span><span class='layout'>,</span> <span class='varid'>ub</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>fromJust</span> <span class='varid'>b</span>-<a name="line-206"></a> <span class='keyword'>in</span>-<a name="line-207"></a> <span class='layout'>(</span><span class='varid'>lb</span> <span class='varop'><=</span><span class='layout'>)</span> <span class='varop'><&&></span> <span class='layout'>(</span><span class='varop'><=</span> <span class='varid'>ub</span><span class='layout'>)</span>-<a name="line-208"></a> <span class='keyword'>else</span> <span class='varid'>fail</span> <span class='varop'>$</span> <span class='str'>"unknown Unicode code block "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>name</span>-<a name="line-209"></a> <span class='keyword'>where</span>-<a name="line-210"></a> <span class='varid'>legalChar</span> <span class='varid'>c</span> <span class='keyglyph'>=</span> <span class='chr'>'A'</span> <span class='varop'><=</span> <span class='varid'>c</span> <span class='varop'>&&</span> <span class='varid'>c</span> <span class='varop'><=</span> <span class='chr'>'Z'</span> <span class='varop'>||</span>-<a name="line-211"></a> <span class='chr'>'a'</span> <span class='varop'><=</span> <span class='varid'>c</span> <span class='varop'>&&</span> <span class='varid'>c</span> <span class='varop'><=</span> <span class='chr'>'z'</span> <span class='varop'>||</span>-<a name="line-212"></a> <span class='chr'>'0'</span> <span class='varop'><=</span> <span class='varid'>c</span> <span class='varop'>&&</span> <span class='varid'>c</span> <span class='varop'><=</span> <span class='chr'>'9'</span> <span class='varop'>||</span>-<a name="line-213"></a> <span class='chr'>'-'</span> <span class='varop'>==</span> <span class='varid'>c</span>-<a name="line-214"></a>-<a name="line-215"></a><a name="isCategory"></a><span class='definition'>isCategory</span> <span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='layout'>(</span><span class='conid'>Char</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span><span class='layout'>)</span>-<a name="line-216"></a><span class='definition'>isCategory</span>-<a name="line-217"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-218"></a> <span class='varid'>pr</span> <span class='keyglyph'><-</span> <span class='varid'>isCategory'</span>-<a name="line-219"></a> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>fromJust</span> <span class='layout'>(</span><span class='varid'>lookup</span> <span class='varid'>pr</span> <span class='varid'>categories</span><span class='layout'>)</span>-<a name="line-220"></a>-<a name="line-221"></a><a name="categories"></a><span class='definition'>categories</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>Char</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-222"></a><span class='definition'>categories</span>-<a name="line-223"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='str'>"C"</span><span class='layout'>,</span> <span class='varid'>isUnicodeC</span> <span class='layout'>)</span>-<a name="line-224"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Cc"</span><span class='layout'>,</span> <span class='varid'>isUnicodeCc</span><span class='layout'>)</span>-<a name="line-225"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Cf"</span><span class='layout'>,</span> <span class='varid'>isUnicodeCf</span><span class='layout'>)</span>-<a name="line-226"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Co"</span><span class='layout'>,</span> <span class='varid'>isUnicodeCo</span><span class='layout'>)</span>-<a name="line-227"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Cs"</span><span class='layout'>,</span> <span class='varid'>isUnicodeCs</span><span class='layout'>)</span>-<a name="line-228"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"L"</span><span class='layout'>,</span> <span class='varid'>isUnicodeL</span> <span class='layout'>)</span>-<a name="line-229"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Ll"</span><span class='layout'>,</span> <span class='varid'>isUnicodeLl</span><span class='layout'>)</span>-<a name="line-230"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Lm"</span><span class='layout'>,</span> <span class='varid'>isUnicodeLm</span><span class='layout'>)</span>-<a name="line-231"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Lo"</span><span class='layout'>,</span> <span class='varid'>isUnicodeLo</span><span class='layout'>)</span>-<a name="line-232"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Lt"</span><span class='layout'>,</span> <span class='varid'>isUnicodeLt</span><span class='layout'>)</span>-<a name="line-233"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Lu"</span><span class='layout'>,</span> <span class='varid'>isUnicodeLu</span><span class='layout'>)</span>-<a name="line-234"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"M"</span><span class='layout'>,</span> <span class='varid'>isUnicodeM</span> <span class='layout'>)</span>-<a name="line-235"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Mc"</span><span class='layout'>,</span> <span class='varid'>isUnicodeMc</span><span class='layout'>)</span>-<a name="line-236"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Me"</span><span class='layout'>,</span> <span class='varid'>isUnicodeMe</span><span class='layout'>)</span>-<a name="line-237"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Mn"</span><span class='layout'>,</span> <span class='varid'>isUnicodeMn</span><span class='layout'>)</span>-<a name="line-238"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"N"</span><span class='layout'>,</span> <span class='varid'>isUnicodeN</span> <span class='layout'>)</span>-<a name="line-239"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Nd"</span><span class='layout'>,</span> <span class='varid'>isUnicodeNd</span><span class='layout'>)</span>-<a name="line-240"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Nl"</span><span class='layout'>,</span> <span class='varid'>isUnicodeNl</span><span class='layout'>)</span>-<a name="line-241"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"No"</span><span class='layout'>,</span> <span class='varid'>isUnicodeNo</span><span class='layout'>)</span>-<a name="line-242"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"P"</span><span class='layout'>,</span> <span class='varid'>isUnicodeP</span> <span class='layout'>)</span>-<a name="line-243"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Pc"</span><span class='layout'>,</span> <span class='varid'>isUnicodePc</span><span class='layout'>)</span>-<a name="line-244"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Pd"</span><span class='layout'>,</span> <span class='varid'>isUnicodePd</span><span class='layout'>)</span>-<a name="line-245"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Pe"</span><span class='layout'>,</span> <span class='varid'>isUnicodePe</span><span class='layout'>)</span>-<a name="line-246"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Pf"</span><span class='layout'>,</span> <span class='varid'>isUnicodePf</span><span class='layout'>)</span>-<a name="line-247"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Pi"</span><span class='layout'>,</span> <span class='varid'>isUnicodePi</span><span class='layout'>)</span>-<a name="line-248"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Po"</span><span class='layout'>,</span> <span class='varid'>isUnicodePo</span><span class='layout'>)</span>-<a name="line-249"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Ps"</span><span class='layout'>,</span> <span class='varid'>isUnicodePs</span><span class='layout'>)</span>-<a name="line-250"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"S"</span><span class='layout'>,</span> <span class='varid'>isUnicodeS</span> <span class='layout'>)</span>-<a name="line-251"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Sc"</span><span class='layout'>,</span> <span class='varid'>isUnicodeSc</span><span class='layout'>)</span>-<a name="line-252"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Sk"</span><span class='layout'>,</span> <span class='varid'>isUnicodeSk</span><span class='layout'>)</span>-<a name="line-253"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Sm"</span><span class='layout'>,</span> <span class='varid'>isUnicodeSm</span><span class='layout'>)</span>-<a name="line-254"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"So"</span><span class='layout'>,</span> <span class='varid'>isUnicodeSo</span><span class='layout'>)</span>-<a name="line-255"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Z"</span><span class='layout'>,</span> <span class='varid'>isUnicodeZ</span> <span class='layout'>)</span>-<a name="line-256"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Zl"</span><span class='layout'>,</span> <span class='varid'>isUnicodeZl</span><span class='layout'>)</span>-<a name="line-257"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Zp"</span><span class='layout'>,</span> <span class='varid'>isUnicodeZp</span><span class='layout'>)</span>-<a name="line-258"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"Zs"</span><span class='layout'>,</span> <span class='varid'>isUnicodeZs</span><span class='layout'>)</span>-<a name="line-259"></a> <span class='keyglyph'>]</span>-<a name="line-260"></a>-<a name="line-261"></a><a name="isCategory'"></a><span class='definition'>isCategory'</span> <span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>String</span>-<a name="line-262"></a><span class='definition'>isCategory'</span>-<a name="line-263"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>foldr1</span> <span class='layout'>(</span><span class='varop'><|></span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>uncurry</span> <span class='varid'>prop</span><span class='layout'>)</span> <span class='varop'>$</span>-<a name="line-264"></a> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='chr'>'L'</span><span class='layout'>,</span> <span class='str'>"ultmo"</span><span class='layout'>)</span>-<a name="line-265"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'M'</span><span class='layout'>,</span> <span class='str'>"nce"</span><span class='layout'>)</span>-<a name="line-266"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'N'</span><span class='layout'>,</span> <span class='str'>"dlo"</span><span class='layout'>)</span>-<a name="line-267"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'P'</span><span class='layout'>,</span> <span class='str'>"cdseifo"</span><span class='layout'>)</span>-<a name="line-268"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'Z'</span><span class='layout'>,</span> <span class='str'>"slp"</span><span class='layout'>)</span>-<a name="line-269"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'S'</span><span class='layout'>,</span> <span class='str'>"mcko"</span><span class='layout'>)</span>-<a name="line-270"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='chr'>'C'</span><span class='layout'>,</span> <span class='str'>"cfon"</span><span class='layout'>)</span>-<a name="line-271"></a> <span class='keyglyph'>]</span>-<a name="line-272"></a> <span class='layout'>)</span> <span class='varop'><?></span> <span class='str'>"illegal Unicode character property"</span>-<a name="line-273"></a> <span class='keyword'>where</span>-<a name="line-274"></a> <span class='varid'>prop</span> <span class='varid'>c1</span> <span class='varid'>cs2</span>-<a name="line-275"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-276"></a> <span class='varid'>char</span> <span class='varid'>c1</span>-<a name="line-277"></a> <span class='varid'>s2</span> <span class='keyglyph'><-</span> <span class='varid'>option</span> <span class='str'>""</span>-<a name="line-278"></a> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-279"></a> <span class='varid'>c2</span> <span class='keyglyph'><-</span> <span class='varid'>satisfy</span> <span class='layout'>(</span><span class='varop'>`elem`</span> <span class='varid'>cs2</span><span class='layout'>)</span>-<a name="line-280"></a> <span class='varid'>return</span> <span class='keyglyph'>[</span><span class='varid'>c2</span><span class='keyglyph'>]</span> <span class='layout'>)</span>-<a name="line-281"></a> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>c1</span><span class='conop'>:</span><span class='varid'>s2</span>-<a name="line-282"></a>-<a name="line-283"></a><a name="complEsc"></a><span class='definition'>complEsc</span> <span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Regex</span>-<a name="line-284"></a><span class='definition'>complEsc</span>-<a name="line-285"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-286"></a> <span class='varid'>char</span> <span class='chr'>'P'</span>-<a name="line-287"></a> <span class='varid'>s</span> <span class='keyglyph'><-</span> <span class='varid'>between</span> <span class='layout'>(</span><span class='varid'>char</span> <span class='chr'>'{'</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>char</span> <span class='chr'>'}'</span><span class='layout'>)</span> <span class='varid'>charProp</span>-<a name="line-288"></a> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mkSym</span> <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>s</span><span class='layout'>)</span>-<a name="line-289"></a>-<a name="line-290"></a><a name="charClassExpr"></a><span class='definition'>charClassExpr</span> <span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Regex</span>-<a name="line-291"></a><span class='definition'>charClassExpr</span>-<a name="line-292"></a> <span class='keyglyph'>=</span> <span class='varid'>between</span> <span class='layout'>(</span><span class='varid'>char</span> <span class='chr'>'['</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>char</span> <span class='chr'>']'</span><span class='layout'>)</span> <span class='varid'>charGroup</span>-<a name="line-293"></a>-<a name="line-294"></a><a name="charGroup"></a><span class='definition'>charGroup</span> <span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Regex</span>-<a name="line-295"></a><span class='definition'>charGroup</span>-<a name="line-296"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-297"></a> <span class='varid'>r</span> <span class='keyglyph'><-</span> <span class='layout'>(</span> <span class='varid'>negCharGroup</span> <span class='comment'>-- a ^ at beginning denotes negation, not start of posCharGroup</span>-<a name="line-298"></a> <span class='varop'><|></span>-<a name="line-299"></a> <span class='varid'>posCharGroup</span>-<a name="line-300"></a> <span class='layout'>)</span>-<a name="line-301"></a> <span class='varid'>s</span> <span class='keyglyph'><-</span> <span class='varid'>option</span> <span class='layout'>(</span><span class='varid'>mkZero</span> <span class='str'>""</span><span class='layout'>)</span> <span class='comment'>-- charClassSub</span>-<a name="line-302"></a> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-303"></a> <span class='varid'>char</span> <span class='chr'>'-'</span>-<a name="line-304"></a> <span class='varid'>charClassExpr</span>-<a name="line-305"></a> <span class='layout'>)</span>-<a name="line-306"></a> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mkDif</span> <span class='varid'>r</span> <span class='varid'>s</span>-<a name="line-307"></a>-<a name="line-308"></a><a name="posCharGroup"></a><span class='definition'>posCharGroup</span> <span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Regex</span>-<a name="line-309"></a><span class='definition'>posCharGroup</span>-<a name="line-310"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-311"></a> <span class='varid'>rs</span> <span class='keyglyph'><-</span> <span class='varid'>many1</span> <span class='layout'>(</span><span class='varid'>charRange</span> <span class='varop'><|></span> <span class='varid'>charClassEsc</span><span class='layout'>)</span>-<a name="line-312"></a> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>foldr1</span> <span class='varid'>mkAlt</span> <span class='varid'>rs</span>-<a name="line-313"></a>-<a name="line-314"></a><a name="charRange"></a><span class='definition'>charRange</span> <span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Regex</span>-<a name="line-315"></a><span class='definition'>charRange</span>-<a name="line-316"></a> <span class='keyglyph'>=</span> <span class='varid'>try</span> <span class='varid'>seRange</span>-<a name="line-317"></a> <span class='varop'><|></span>-<a name="line-318"></a> <span class='varid'>xmlCharIncDash</span>-<a name="line-319"></a>-<a name="line-320"></a><a name="seRange"></a><span class='definition'>seRange</span> <span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Regex</span>-<a name="line-321"></a><span class='definition'>seRange</span>-<a name="line-322"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-323"></a> <span class='varid'>c1</span> <span class='keyglyph'><-</span> <span class='varid'>charOrEsc'</span>-<a name="line-324"></a> <span class='varid'>char</span> <span class='chr'>'-'</span>-<a name="line-325"></a> <span class='varid'>c2</span> <span class='keyglyph'><-</span> <span class='varid'>charOrEsc'</span>-<a name="line-326"></a> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mkSymRng</span> <span class='varid'>c1</span> <span class='varid'>c2</span>-<a name="line-327"></a>-<a name="line-328"></a><a name="charOrEsc'"></a><span class='definition'>charOrEsc'</span> <span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Char</span>-<a name="line-329"></a><span class='definition'>charOrEsc'</span>-<a name="line-330"></a> <span class='keyglyph'>=</span> <span class='varid'>satisfy</span> <span class='layout'>(</span><span class='varop'>`notElem`</span> <span class='str'>"\\-[]"</span><span class='layout'>)</span>-<a name="line-331"></a> <span class='varop'><|></span>-<a name="line-332"></a> <span class='varid'>singleCharEsc'</span>-<a name="line-333"></a>-<a name="line-334"></a><a name="xmlCharIncDash"></a><span class='definition'>xmlCharIncDash</span> <span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Regex</span>-<a name="line-335"></a><span class='definition'>xmlCharIncDash</span>-<a name="line-336"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-337"></a> <span class='varid'>c</span> <span class='keyglyph'><-</span> <span class='varid'>satisfy</span> <span class='layout'>(</span><span class='varop'>`notElem`</span> <span class='str'>"\\[]"</span><span class='layout'>)</span>-<a name="line-338"></a> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mkSym1</span> <span class='varid'>c</span>-<a name="line-339"></a>-<a name="line-340"></a><a name="negCharGroup"></a><span class='definition'>negCharGroup</span> <span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Regex</span>-<a name="line-341"></a><span class='definition'>negCharGroup</span>-<a name="line-342"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-343"></a> <span class='varid'>char</span> <span class='chr'>'^'</span>-<a name="line-344"></a> <span class='varid'>r</span> <span class='keyglyph'><-</span> <span class='varid'>posCharGroup</span>-<a name="line-345"></a> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mkCompl</span> <span class='varid'>r</span>-<a name="line-346"></a>-<a name="line-347"></a><a name="wildCardEsc"></a><span class='definition'>wildCardEsc</span> <span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Regex</span>-<a name="line-348"></a><span class='definition'>wildCardEsc</span>-<a name="line-349"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-350"></a> <span class='varid'>char</span> <span class='chr'>'.'</span>-<a name="line-351"></a> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mkSym</span> <span class='layout'>(</span><span class='varop'>`notElem`</span> <span class='str'>"\n\r"</span><span class='layout'>)</span>-<a name="line-352"></a>-<a name="line-353"></a>-<a name="line-354"></a><span class='comment'>-- ------------------------------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-RelaxNG.html
@@ -1,34 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- |</span>-<a name="line-2"></a><span class='comment'>-- This helper module exports elements from the basic Relax NG libraries:</span>-<a name="line-3"></a><span class='comment'>-- Validator, CreatePattern, PatternToString and DataTypes.</span>-<a name="line-4"></a><span class='comment'>-- It is the main entry point to the Relax NG schema validator of the Haskell</span>-<a name="line-5"></a><span class='comment'>-- XML Toolbox.</span>-<a name="line-6"></a><span class='comment'>--</span>-<a name="line-7"></a><span class='comment'>-- Author : Torben Kuseler</span>-<a name="line-8"></a><span class='comment'>--</span>-<a name="line-9"></a><span class='comment'>-- Version : $Id: RelaxNG.hs,v 1.1 2005/09/02 17:09:39 hxml Exp $</span>-<a name="line-10"></a>-<a name="line-11"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span>-<a name="line-12"></a> <span class='layout'>(</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>PatternToString</span>-<a name="line-13"></a> <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>Validator</span>-<a name="line-14"></a> <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>DataTypes</span>-<a name="line-15"></a> <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>CreatePattern</span>-<a name="line-16"></a> <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>XmlSchema</span><span class='varop'>.</span><span class='conid'>RegexMatch</span>-<a name="line-17"></a> <span class='layout'>)</span>-<a name="line-18"></a><span class='keyword'>where</span>-<a name="line-19"></a>-<a name="line-20"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>PatternToString</span>-<a name="line-21"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>Validator</span>-<a name="line-22"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>DataTypes</span>-<a name="line-23"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>CreatePattern</span>-<a name="line-24"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>RelaxNG</span><span class='varop'>.</span><span class='conid'>XmlSchema</span><span class='varop'>.</span><span class='conid'>RegexMatch</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-Version.html
@@ -1,14 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Version</span>-<a name="line-2"></a><span class='keyword'>where</span>-<a name="line-3"></a><a name="hxt_version"></a><span class='definition'>hxt_version</span> <span class='keyglyph'>::</span> <span class='conid'>String</span>-<a name="line-4"></a><span class='definition'>hxt_version</span> <span class='keyglyph'>=</span> <span class='str'>"8.3.0"</span>-</pre></body>-</html>
@@ -1,89 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- |</span>-<a name="line-2"></a><span class='comment'>-- Navigable tree structure which allow a program to traverse</span>-<a name="line-3"></a><span class='comment'>-- for XPath expressions</span>-<a name="line-4"></a><span class='comment'>-- copied and modified from HXML (<<a href="http://www.flightlab.com/~joe/hxml/">http://www.flightlab.com/~joe/hxml/</a>>)</span>-<a name="line-5"></a><span class='comment'>--</span>-<a name="line-6"></a>-<a name="line-7"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>NavTree</span>-<a name="line-8"></a> <span class='layout'>(</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>NavTree</span>-<a name="line-9"></a> <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>NavTree</span>-<a name="line-10"></a> <span class='layout'>)</span>-<a name="line-11"></a><span class='keyword'>where</span>-<a name="line-12"></a>-<a name="line-13"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>-<a name="line-14"></a>-<a name="line-15"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>NavTree</span>-<a name="line-16"></a>-<a name="line-17"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>-<a name="line-18"></a> <span class='layout'>(</span> <span class='conid'>XNode</span>-<a name="line-19"></a> <span class='layout'>,</span> <span class='varid'>xmlnsNamespace</span>-<a name="line-20"></a> <span class='layout'>,</span> <span class='varid'>namespaceUri</span>-<a name="line-21"></a> <span class='layout'>)</span>-<a name="line-22"></a>-<a name="line-23"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlNode</span>-<a name="line-24"></a> <span class='layout'>(</span> <span class='varid'>isRoot</span>-<a name="line-25"></a> <span class='layout'>,</span> <span class='varid'>isElem</span>-<a name="line-26"></a> <span class='layout'>,</span> <span class='varid'>getName</span>-<a name="line-27"></a> <span class='layout'>,</span> <span class='varid'>getAttrl</span>-<a name="line-28"></a> <span class='layout'>)</span>-<a name="line-29"></a>-<a name="line-30"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>-<a name="line-31"></a><span class='comment'>-- functions for representing XPath axes. All axes except the namespace-axis are supported</span>-<a name="line-32"></a>-<a name="line-33"></a>-<a name="line-34"></a><a name="parentAxis"></a><span class='definition'>parentAxis</span> <span class='keyglyph'>::</span> <span class='conid'>NavTree</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>NavTree</span> <span class='varid'>a</span><span class='keyglyph'>]</span>-<a name="line-35"></a><span class='definition'>parentAxis</span> <span class='keyglyph'>=</span> <span class='varid'>maybeToList</span> <span class='varop'>.</span> <span class='varid'>upNT</span>-<a name="line-36"></a>-<a name="line-37"></a><a name="ancestorAxis"></a><span class='definition'>ancestorAxis</span> <span class='keyglyph'>::</span> <span class='conid'>NavTree</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>NavTree</span> <span class='varid'>a</span><span class='keyglyph'>]</span>-<a name="line-38"></a><span class='definition'>ancestorAxis</span> <span class='keyglyph'>=</span> <span class='keyglyph'>\</span><span class='layout'>(</span><span class='conid'>NT</span> <span class='keyword'>_</span> <span class='varid'>u</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>u</span> <span class='comment'>-- or: maybePlus upNT</span>-<a name="line-39"></a>-<a name="line-40"></a><a name="ancestorOrSelfAxis"></a><span class='definition'>ancestorOrSelfAxis</span> <span class='keyglyph'>::</span> <span class='conid'>NavTree</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>NavTree</span> <span class='varid'>a</span><span class='keyglyph'>]</span>-<a name="line-41"></a><span class='definition'>ancestorOrSelfAxis</span> <span class='keyglyph'>=</span> <span class='keyglyph'>\</span><span class='varid'>t</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NT</span> <span class='keyword'>_</span> <span class='varid'>u</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>t</span><span class='conop'>:</span><span class='varid'>u</span> <span class='comment'>-- or: maybeStar upNT</span>-<a name="line-42"></a>-<a name="line-43"></a><a name="childAxis"></a><span class='definition'>childAxis</span> <span class='keyglyph'>::</span> <span class='conid'>NavTree</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>NavTree</span> <span class='varid'>a</span><span class='keyglyph'>]</span>-<a name="line-44"></a><span class='definition'>childAxis</span> <span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='conid'>[]</span> <span class='layout'>(</span><span class='varid'>maybeStar</span> <span class='varid'>rightNT</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>downNT</span>-<a name="line-45"></a>-<a name="line-46"></a><a name="descendantAxis"></a><span class='definition'>descendantAxis</span> <span class='keyglyph'>::</span> <span class='conid'>NavTree</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>NavTree</span> <span class='varid'>a</span><span class='keyglyph'>]</span>-<a name="line-47"></a><span class='definition'>descendantAxis</span> <span class='keyglyph'>=</span> <span class='varid'>tail</span> <span class='varop'>.</span> <span class='varid'>preorderNT</span> <span class='comment'>-- concatMap preorderNT . childAxis</span>-<a name="line-48"></a>-<a name="line-49"></a><a name="descendantOrSelfAxis"></a><span class='definition'>descendantOrSelfAxis</span> <span class='keyglyph'>::</span> <span class='conid'>NavTree</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>NavTree</span> <span class='varid'>a</span><span class='keyglyph'>]</span>-<a name="line-50"></a><span class='definition'>descendantOrSelfAxis</span> <span class='keyglyph'>=</span> <span class='varid'>preorderNT</span>-<a name="line-51"></a>-<a name="line-52"></a><a name="followingSiblingAxis"></a><span class='definition'>followingSiblingAxis</span> <span class='keyglyph'>::</span> <span class='conid'>NavTree</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>NavTree</span> <span class='varid'>a</span><span class='keyglyph'>]</span>-<a name="line-53"></a><span class='definition'>followingSiblingAxis</span> <span class='keyglyph'>=</span> <span class='varid'>maybePlus</span> <span class='varid'>rightNT</span>-<a name="line-54"></a>-<a name="line-55"></a><a name="precedingSiblingAxis"></a><span class='definition'>precedingSiblingAxis</span> <span class='keyglyph'>::</span> <span class='conid'>NavTree</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>NavTree</span> <span class='varid'>a</span><span class='keyglyph'>]</span>-<a name="line-56"></a><span class='definition'>precedingSiblingAxis</span> <span class='keyglyph'>=</span> <span class='varid'>maybePlus</span> <span class='varid'>leftNT</span>-<a name="line-57"></a>-<a name="line-58"></a><a name="selfAxis"></a><span class='definition'>selfAxis</span> <span class='keyglyph'>::</span> <span class='conid'>NavTree</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>NavTree</span> <span class='varid'>a</span><span class='keyglyph'>]</span>-<a name="line-59"></a><span class='definition'>selfAxis</span> <span class='keyglyph'>=</span> <span class='varid'>wrap</span> <span class='keyword'>where</span> <span class='varid'>wrap</span> <span class='varid'>x</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>x</span><span class='keyglyph'>]</span>-<a name="line-60"></a>-<a name="line-61"></a><a name="followingAxis"></a><span class='definition'>followingAxis</span> <span class='keyglyph'>::</span> <span class='conid'>NavTree</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>NavTree</span> <span class='varid'>a</span><span class='keyglyph'>]</span>-<a name="line-62"></a><span class='definition'>followingAxis</span> <span class='keyglyph'>=</span> <span class='varid'>preorderNT</span> <span class='varop'>`o'`</span> <span class='varid'>followingSiblingAxis</span> <span class='varop'>`o'`</span> <span class='varid'>ancestorOrSelfAxis</span>-<a name="line-63"></a>-<a name="line-64"></a><a name="precedingAxis"></a><span class='definition'>precedingAxis</span> <span class='keyglyph'>::</span> <span class='conid'>NavTree</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>NavTree</span> <span class='varid'>a</span><span class='keyglyph'>]</span>-<a name="line-65"></a><span class='definition'>precedingAxis</span> <span class='keyglyph'>=</span> <span class='varid'>revPreorderNT</span> <span class='varop'>`o'`</span> <span class='varid'>precedingSiblingAxis</span> <span class='varop'>`o'`</span> <span class='varid'>ancestorOrSelfAxis</span>-<a name="line-66"></a>-<a name="line-67"></a>-<a name="line-68"></a><a name="attributeAxis"></a><span class='definition'>attributeAxis</span> <span class='keyglyph'>::</span> <span class='conid'>NavTree</span> <span class='conid'>XNode</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>NavTree</span> <span class='conid'>XNode</span><span class='keyglyph'>]</span>-<a name="line-69"></a><span class='definition'>attributeAxis</span> <span class='varid'>t</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NT</span> <span class='varid'>xt</span> <span class='varid'>a</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span>-<a name="line-70"></a> <span class='keyglyph'>|</span> <span class='varid'>isElem</span> <span class='varid'>xt</span>-<a name="line-71"></a> <span class='varop'>&&</span>-<a name="line-72"></a> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>isRoot</span> <span class='varid'>xt</span><span class='layout'>)</span>-<a name="line-73"></a> <span class='keyglyph'>=</span> <span class='varid'>foldr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>attr</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='layout'>(</span><span class='conid'>NT</span> <span class='varid'>attr</span> <span class='layout'>(</span><span class='varid'>t</span><span class='conop'>:</span><span class='varid'>a</span><span class='layout'>)</span> <span class='conid'>[]</span> <span class='conid'>[]</span><span class='layout'>)</span><span class='conop'>:</span><span class='layout'>)</span><span class='layout'>)</span> <span class='conid'>[]</span> <span class='varid'>al</span>-<a name="line-74"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-75"></a> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-76"></a> <span class='keyword'>where</span>-<a name="line-77"></a> <span class='varid'>al</span> <span class='keyglyph'>=</span> <span class='varid'>filter</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varop'>/=</span> <span class='varid'>xmlnsNamespace</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>maybe</span> <span class='str'>""</span> <span class='varid'>namespaceUri</span> <span class='varop'>.</span> <span class='varid'>getName</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>fromMaybe</span> <span class='conid'>[]</span> <span class='varop'>.</span> <span class='varid'>getAttrl</span> <span class='varop'>$</span> <span class='varid'>xt</span>-<a name="line-78"></a>-<a name="line-79"></a><span class='comment'>-- ------------------------------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-XPath-XPathArithmetic.html
@@ -1,176 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- |</span>-<a name="line-2"></a><span class='comment'>-- The module contains arithmetic calculations according the IEEE 754 standard</span>-<a name="line-3"></a><span class='comment'>-- for plus, minus, unary minus, multiplication, modulo and division.</span>-<a name="line-4"></a><span class='comment'>--</span>-<a name="line-5"></a>-<a name="line-6"></a>-<a name="line-7"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathArithmetic</span>-<a name="line-8"></a> <span class='layout'>(</span> <span class='varid'>xPathMulti</span>-<a name="line-9"></a> <span class='layout'>,</span> <span class='varid'>xPathMod</span>-<a name="line-10"></a> <span class='layout'>,</span> <span class='varid'>xPathDiv</span>-<a name="line-11"></a> <span class='layout'>,</span> <span class='varid'>xPathAdd</span>-<a name="line-12"></a> <span class='layout'>,</span> <span class='varid'>xPathUnary</span>-<a name="line-13"></a> <span class='layout'>)</span>-<a name="line-14"></a><span class='keyword'>where</span>-<a name="line-15"></a>-<a name="line-16"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathDataTypes</span>-<a name="line-17"></a>-<a name="line-18"></a>-<a name="line-19"></a><span class='comment'>-- |</span>-<a name="line-20"></a><span class='comment'>-- Unary minus: the value 'NaN' is not calculatable and returned unchanged,</span>-<a name="line-21"></a><span class='comment'>-- all other values can be denied.</span>-<a name="line-22"></a><span class='comment'>--</span>-<a name="line-23"></a>-<a name="line-24"></a><a name="xPathUnary"></a><span class='definition'>xPathUnary</span> <span class='keyglyph'>::</span> <span class='conid'>XPathFilter</span>-<a name="line-25"></a><span class='definition'>xPathUnary</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>f</span><span class='layout'>)</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='layout'>(</span><span class='comment'>-</span><span class='varid'>f</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-26"></a><span class='definition'>xPathUnary</span> <span class='layout'>(</span><span class='conid'>XPVError</span> <span class='varid'>e</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='varid'>e</span>-<a name="line-27"></a><span class='definition'>xPathUnary</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>NaN</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>NaN</span>-<a name="line-28"></a><span class='definition'>xPathUnary</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>Pos0</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>Neg0</span>-<a name="line-29"></a><span class='definition'>xPathUnary</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>Neg0</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>Pos0</span>-<a name="line-30"></a><span class='definition'>xPathUnary</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>PosInf</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>NegInf</span>-<a name="line-31"></a><span class='definition'>xPathUnary</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>NegInf</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>PosInf</span>-<a name="line-32"></a><span class='definition'>xPathUnary</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"Call to unaryEval without a number"</span>-<a name="line-33"></a>-<a name="line-34"></a>-<a name="line-35"></a><span class='comment'>-- |</span>-<a name="line-36"></a><span class='comment'>-- Multiplication</span>-<a name="line-37"></a><span class='comment'>--</span>-<a name="line-38"></a>-<a name="line-39"></a><a name="xPathMulti"></a><span class='definition'>xPathMulti</span> <span class='keyglyph'>::</span> <span class='conid'>Op</span> <span class='keyglyph'>-></span> <span class='conid'>XPathValue</span> <span class='keyglyph'>-></span> <span class='conid'>XPathFilter</span>-<a name="line-40"></a><span class='definition'>xPathMulti</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>a</span><span class='layout'>)</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>b</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-41"></a> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='varop'>*</span> <span class='varid'>b</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-42"></a><span class='definition'>xPathMulti</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>NegInf</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>a</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-43"></a> <span class='keyglyph'>|</span> <span class='varid'>a</span> <span class='varop'><</span> <span class='num'>0</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>PosInf</span>-<a name="line-44"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>NegInf</span>-<a name="line-45"></a><span class='definition'>xPathMulti</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>PosInf</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>a</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-46"></a> <span class='keyglyph'>|</span> <span class='varid'>a</span> <span class='varop'><</span> <span class='num'>0</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>NegInf</span>-<a name="line-47"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>PosInf</span>-<a name="line-48"></a><span class='definition'>xPathMulti</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>a</span><span class='layout'>)</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>NegInf</span><span class='layout'>)</span>-<a name="line-49"></a> <span class='keyglyph'>|</span> <span class='varid'>a</span> <span class='varop'><</span> <span class='num'>0</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>PosInf</span>-<a name="line-50"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>NegInf</span>-<a name="line-51"></a><span class='definition'>xPathMulti</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>a</span><span class='layout'>)</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>PosInf</span><span class='layout'>)</span>-<a name="line-52"></a> <span class='keyglyph'>|</span> <span class='varid'>a</span> <span class='varop'><</span> <span class='num'>0</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>NegInf</span>-<a name="line-53"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>PosInf</span>-<a name="line-54"></a><span class='definition'>xPathMulti</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>Pos0</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>a</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-55"></a> <span class='keyglyph'>|</span> <span class='varid'>a</span> <span class='varop'><</span> <span class='num'>0</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>Neg0</span>-<a name="line-56"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>Pos0</span>-<a name="line-57"></a><span class='definition'>xPathMulti</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>Neg0</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>a</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-58"></a> <span class='keyglyph'>|</span> <span class='varid'>a</span> <span class='varop'><</span> <span class='num'>0</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>Pos0</span>-<a name="line-59"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>Neg0</span>-<a name="line-60"></a><span class='definition'>xPathMulti</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>a</span><span class='layout'>)</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>Pos0</span><span class='layout'>)</span>-<a name="line-61"></a> <span class='keyglyph'>|</span> <span class='varid'>a</span> <span class='varop'><</span> <span class='num'>0</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>Neg0</span>-<a name="line-62"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>Pos0</span>-<a name="line-63"></a><span class='definition'>xPathMulti</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>a</span><span class='layout'>)</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>Neg0</span><span class='layout'>)</span>-<a name="line-64"></a> <span class='keyglyph'>|</span> <span class='varid'>a</span> <span class='varop'><</span> <span class='num'>0</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>Pos0</span>-<a name="line-65"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>Neg0</span>-<a name="line-66"></a><span class='definition'>xPathMulti</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span> <span class='keyglyph'>=</span> <span class='varid'>xPathSpez</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span>-<a name="line-67"></a>-<a name="line-68"></a>-<a name="line-69"></a><span class='comment'>-- |</span>-<a name="line-70"></a><span class='comment'>-- Modulo</span>-<a name="line-71"></a><span class='comment'>--</span>-<a name="line-72"></a>-<a name="line-73"></a><a name="xPathMod"></a><span class='definition'>xPathMod</span> <span class='keyglyph'>::</span> <span class='conid'>Op</span> <span class='keyglyph'>-></span> <span class='conid'>XPathValue</span> <span class='keyglyph'>-></span> <span class='conid'>XPathFilter</span>-<a name="line-74"></a><span class='definition'>xPathMod</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>a</span><span class='layout'>)</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>b</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-75"></a> <span class='keyglyph'>|</span> <span class='varid'>floatMod</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varop'>==</span> <span class='num'>0</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>Pos0</span>-<a name="line-76"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='layout'>(</span><span class='varid'>floatMod</span> <span class='varid'>a</span> <span class='varid'>b</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-77"></a> <span class='keyword'>where</span>-<a name="line-78"></a> <span class='varid'>floatMod</span> <span class='varid'>x</span> <span class='varid'>y</span>-<a name="line-79"></a> <span class='keyglyph'>|</span> <span class='varid'>x</span><span class='varop'>/</span><span class='varid'>y</span> <span class='varop'>>=</span> <span class='num'>0</span> <span class='keyglyph'>=</span> <span class='varid'>x</span> <span class='comment'>-</span> <span class='varid'>y</span> <span class='varop'>*</span> <span class='varid'>fromInteger</span><span class='layout'>(</span><span class='varid'>floor</span> <span class='layout'>(</span><span class='varid'>x</span> <span class='varop'>/</span> <span class='varid'>y</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-80"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span><span class='varid'>x</span> <span class='comment'>-</span> <span class='varid'>y</span> <span class='varop'>*</span> <span class='varid'>fromInteger</span><span class='layout'>(</span><span class='varid'>ceiling</span> <span class='layout'>(</span><span class='varid'>x</span> <span class='varop'>/</span> <span class='varid'>y</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-81"></a>-<a name="line-82"></a><span class='definition'>xPathMod</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>a</span><span class='layout'>)</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>NegInf</span><span class='layout'>)</span>-<a name="line-83"></a> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>a</span><span class='layout'>)</span>-<a name="line-84"></a><span class='definition'>xPathMod</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>a</span><span class='layout'>)</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>PosInf</span><span class='layout'>)</span>-<a name="line-85"></a> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>a</span><span class='layout'>)</span>-<a name="line-86"></a><span class='definition'>xPathMod</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>Neg0</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>Pos0</span><span class='layout'>)</span>-<a name="line-87"></a> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>Neg0</span>-<a name="line-88"></a><span class='definition'>xPathMod</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span> <span class='keyglyph'>=</span> <span class='varid'>xPathSpez</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span>-<a name="line-89"></a>-<a name="line-90"></a>-<a name="line-91"></a><span class='comment'>-- |</span>-<a name="line-92"></a><span class='comment'>-- Division: the divison-operator is not according the IEEE 754 standard,</span>-<a name="line-93"></a><span class='comment'>-- it calculates the same as the % operator in Java and ECMAScript</span>-<a name="line-94"></a><span class='comment'>--</span>-<a name="line-95"></a>-<a name="line-96"></a><a name="xPathDiv"></a><span class='definition'>xPathDiv</span> <span class='keyglyph'>::</span> <span class='conid'>Op</span> <span class='keyglyph'>-></span> <span class='conid'>XPathValue</span> <span class='keyglyph'>-></span> <span class='conid'>XPathFilter</span>-<a name="line-97"></a><span class='definition'>xPathDiv</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>a</span><span class='layout'>)</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>b</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-98"></a> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='varop'>/</span> <span class='varid'>b</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-99"></a><span class='definition'>xPathDiv</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>NegInf</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>a</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-100"></a> <span class='keyglyph'>|</span> <span class='varid'>a</span> <span class='varop'><</span> <span class='num'>0</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>PosInf</span>-<a name="line-101"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>NegInf</span>-<a name="line-102"></a><span class='definition'>xPathDiv</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>PosInf</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>a</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-103"></a> <span class='keyglyph'>|</span> <span class='varid'>a</span> <span class='varop'><</span> <span class='num'>0</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>NegInf</span>-<a name="line-104"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>PosInf</span>-<a name="line-105"></a><span class='definition'>xPathDiv</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>a</span><span class='layout'>)</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>NegInf</span><span class='layout'>)</span>-<a name="line-106"></a> <span class='keyglyph'>|</span> <span class='varid'>a</span> <span class='varop'><</span> <span class='num'>0</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>Pos0</span>-<a name="line-107"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>Neg0</span>-<a name="line-108"></a><span class='definition'>xPathDiv</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>a</span><span class='layout'>)</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>PosInf</span><span class='layout'>)</span>-<a name="line-109"></a> <span class='keyglyph'>|</span> <span class='varid'>a</span> <span class='varop'><</span> <span class='num'>0</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>Neg0</span>-<a name="line-110"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>Pos0</span>-<a name="line-111"></a><span class='definition'>xPathDiv</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>Neg0</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>a</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-112"></a> <span class='keyglyph'>|</span> <span class='varid'>a</span> <span class='varop'><</span> <span class='num'>0</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>Pos0</span>-<a name="line-113"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>Neg0</span>-<a name="line-114"></a><span class='definition'>xPathDiv</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>a</span><span class='layout'>)</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>Neg0</span><span class='layout'>)</span>-<a name="line-115"></a> <span class='keyglyph'>|</span> <span class='varid'>a</span> <span class='varop'><</span> <span class='num'>0</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>PosInf</span>-<a name="line-116"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>NegInf</span>-<a name="line-117"></a><span class='definition'>xPathDiv</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>a</span><span class='layout'>)</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>Pos0</span><span class='layout'>)</span>-<a name="line-118"></a> <span class='keyglyph'>|</span> <span class='varid'>a</span> <span class='varop'><</span> <span class='num'>0</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>NegInf</span>-<a name="line-119"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>PosInf</span>-<a name="line-120"></a><span class='definition'>xPathDiv</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span> <span class='keyglyph'>=</span> <span class='varid'>xPathSpez</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span>-<a name="line-121"></a>-<a name="line-122"></a>-<a name="line-123"></a><span class='comment'>-- |</span>-<a name="line-124"></a><span class='comment'>-- Plus and minus</span>-<a name="line-125"></a><span class='comment'>--</span>-<a name="line-126"></a><span class='comment'>-- 1.parameter op : plus or minus operation</span>-<a name="line-127"></a><span class='comment'>--</span>-<a name="line-128"></a>-<a name="line-129"></a><a name="xPathAdd"></a><span class='definition'>xPathAdd</span> <span class='keyglyph'>::</span> <span class='conid'>Op</span> <span class='keyglyph'>-></span> <span class='conid'>XPathValue</span> <span class='keyglyph'>-></span> <span class='conid'>XPathFilter</span>-<a name="line-130"></a><span class='definition'>xPathAdd</span> <span class='conid'>Plus</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>a</span><span class='layout'>)</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>b</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-131"></a> <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>a</span> <span class='varop'>+</span> <span class='varid'>b</span> <span class='varop'>==</span> <span class='num'>0</span>-<a name="line-132"></a> <span class='keyword'>then</span> <span class='conid'>XPVNumber</span> <span class='conid'>Pos0</span>-<a name="line-133"></a> <span class='keyword'>else</span> <span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='layout'>(</span><span class='varid'>a</span><span class='varop'>+</span><span class='varid'>b</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-134"></a><span class='definition'>xPathAdd</span> <span class='conid'>Minus</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>a</span><span class='layout'>)</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>b</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-135"></a> <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>a</span> <span class='comment'>-</span> <span class='varid'>b</span> <span class='varop'>==</span> <span class='num'>0</span>-<a name="line-136"></a> <span class='keyword'>then</span> <span class='conid'>XPVNumber</span> <span class='conid'>Pos0</span>-<a name="line-137"></a> <span class='keyword'>else</span> <span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='layout'>(</span><span class='varid'>a</span><span class='comment'>-</span><span class='varid'>b</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-138"></a><span class='definition'>xPathAdd</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>PosInf</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>NegInf</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>NaN</span>-<a name="line-139"></a><span class='definition'>xPathAdd</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>NegInf</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>PosInf</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>NaN</span>-<a name="line-140"></a><span class='definition'>xPathAdd</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>PosInf</span><span class='layout'>)</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>PosInf</span>-<a name="line-141"></a><span class='definition'>xPathAdd</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>NegInf</span><span class='layout'>)</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>NegInf</span>-<a name="line-142"></a><span class='definition'>xPathAdd</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>PosInf</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>PosInf</span>-<a name="line-143"></a><span class='definition'>xPathAdd</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>NegInf</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>NegInf</span>-<a name="line-144"></a><span class='definition'>xPathAdd</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>a</span><span class='layout'>)</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>Pos0</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>a</span><span class='layout'>)</span>-<a name="line-145"></a><span class='definition'>xPathAdd</span> <span class='varid'>op</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>Pos0</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>a</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-146"></a> <span class='keyglyph'>|</span> <span class='varid'>op</span> <span class='varop'>==</span> <span class='conid'>Minus</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='layout'>(</span><span class='comment'>-</span><span class='varid'>a</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-147"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>a</span><span class='layout'>)</span>-<a name="line-148"></a><span class='definition'>xPathAdd</span> <span class='varid'>op</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>Neg0</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>a</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-149"></a> <span class='keyglyph'>|</span> <span class='varid'>op</span> <span class='varop'>==</span> <span class='conid'>Minus</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='layout'>(</span><span class='comment'>-</span><span class='varid'>a</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-150"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>a</span><span class='layout'>)</span>-<a name="line-151"></a><span class='definition'>xPathAdd</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>a</span><span class='layout'>)</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>Neg0</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>a</span><span class='layout'>)</span>-<a name="line-152"></a><span class='definition'>xPathAdd</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>Neg0</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>Pos0</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>Neg0</span>-<a name="line-153"></a><span class='definition'>xPathAdd</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>Pos0</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>Neg0</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>Neg0</span>-<a name="line-154"></a><span class='definition'>xPathAdd</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>Neg0</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>Neg0</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>Neg0</span>-<a name="line-155"></a><span class='definition'>xPathAdd</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>Pos0</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>Pos0</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>Pos0</span>-<a name="line-156"></a><span class='definition'>xPathAdd</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span> <span class='keyglyph'>=</span> <span class='varid'>xPathSpez</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span>-<a name="line-157"></a>-<a name="line-158"></a>-<a name="line-159"></a><a name="xPathSpez"></a><span class='comment'>-- |</span>-<a name="line-160"></a><span class='comment'>-- Identically results of the operators are combined to get</span>-<a name="line-161"></a><span class='comment'>-- as few as possible combinations of the special IEEE values</span>-<a name="line-162"></a><span class='comment'>--</span>-<a name="line-163"></a><span class='definition'>xPathSpez</span> <span class='keyglyph'>::</span> <span class='conid'>Op</span> <span class='keyglyph'>-></span> <span class='conid'>XPathValue</span> <span class='keyglyph'>-></span> <span class='conid'>XPathFilter</span>-<a name="line-164"></a><span class='definition'>xPathSpez</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>XPVError</span> <span class='varid'>e</span><span class='layout'>)</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='varid'>e</span>-<a name="line-165"></a><span class='definition'>xPathSpez</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>XPVError</span> <span class='varid'>e</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='varid'>e</span>-<a name="line-166"></a><span class='definition'>xPathSpez</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>NaN</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-XPath-XPathDataTypes.html
@@ -1,295 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Text.XML.HXT.XPath.XPathDataTypes-<a name="line-5"></a> Copyright : Copyright (C) 2006 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe@fh-wedel.de)-<a name="line-9"></a> Stability : experimental-<a name="line-10"></a> Portability: portable-<a name="line-11"></a>-<a name="line-12"></a> The core data types of XPath.-<a name="line-13"></a> The Type NodeSet is based on the module "NavTree" which was adapted from-<a name="line-14"></a> HXML (<<a href="http://www.flightlab.com/~joe/hxml/">http://www.flightlab.com/~joe/hxml/</a>>)-<a name="line-15"></a>-<a name="line-16"></a>-}</span>-<a name="line-17"></a>-<a name="line-18"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-19"></a>-<a name="line-20"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathDataTypes</span>-<a name="line-21"></a> <span class='layout'>(</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathDataTypes</span>-<a name="line-22"></a> <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>NavTree</span>-<a name="line-23"></a> <span class='layout'>)</span>-<a name="line-24"></a><span class='keyword'>where</span>-<a name="line-25"></a>-<a name="line-26"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>NavTree</span>-<a name="line-27"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>-<a name="line-28"></a>-<a name="line-29"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>-<a name="line-30"></a><span class='comment'>--</span>-<a name="line-31"></a><span class='comment'>-- Expr</span>-<a name="line-32"></a>-<a name="line-33"></a><span class='comment'>-- | Represents expression</span>-<a name="line-34"></a><span class='comment'>-- </span>-<a name="line-35"></a>-<a name="line-36"></a><a name="Expr"></a><span class='keyword'>data</span> <span class='conid'>Expr</span> <span class='keyglyph'>=</span> <span class='conid'>GenExpr</span> <span class='conid'>Op</span> <span class='keyglyph'>[</span><span class='conid'>Expr</span><span class='keyglyph'>]</span> <span class='comment'>-- ^ generic expression with an operator and one or more operands</span>-<a name="line-37"></a> <span class='keyglyph'>|</span> <span class='conid'>PathExpr</span> <span class='layout'>(</span><span class='conid'>Maybe</span> <span class='conid'>Expr</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>Maybe</span> <span class='conid'>LocationPath</span><span class='layout'>)</span>-<a name="line-38"></a> <span class='comment'>-- ^ a path expression contains an optional filter-expression</span>-<a name="line-39"></a> <span class='comment'>-- or an optional locationpath. one expression is urgently</span>-<a name="line-40"></a> <span class='comment'>-- necessary, both are possible</span>-<a name="line-41"></a> <span class='keyglyph'>|</span> <span class='conid'>FilterExpr</span> <span class='keyglyph'>[</span><span class='conid'>Expr</span><span class='keyglyph'>]</span> <span class='comment'>-- ^ filter-expression with zero or more predicates</span>-<a name="line-42"></a> <span class='keyglyph'>|</span> <span class='conid'>VarExpr</span> <span class='conid'>VarName</span> <span class='comment'>-- ^ variable</span>-<a name="line-43"></a> <span class='keyglyph'>|</span> <span class='conid'>LiteralExpr</span> <span class='conid'>Literal</span> <span class='comment'>-- ^ string</span>-<a name="line-44"></a> <span class='keyglyph'>|</span> <span class='conid'>NumberExpr</span> <span class='conid'>XPNumber</span> <span class='comment'>-- ^ number</span>-<a name="line-45"></a> <span class='keyglyph'>|</span> <span class='conid'>FctExpr</span> <span class='conid'>FctName</span> <span class='conid'>FctArguments</span> <span class='comment'>-- ^ a function with a name and an optional list of arguments</span>-<a name="line-46"></a> <span class='keyword'>deriving</span> <span class='layout'>(</span><span class='conid'>Show</span><span class='layout'>,</span> <span class='conid'>Eq</span><span class='layout'>)</span>-<a name="line-47"></a>-<a name="line-48"></a>-<a name="line-49"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>-<a name="line-50"></a><span class='comment'>--</span>-<a name="line-51"></a><span class='comment'>-- Op</span>-<a name="line-52"></a>-<a name="line-53"></a><span class='comment'>-- | Represents XPath operators</span>-<a name="line-54"></a>-<a name="line-55"></a><a name="Op"></a><span class='keyword'>data</span> <span class='conid'>Op</span> <span class='keyglyph'>=</span> <span class='conid'>Or</span> <span class='keyglyph'>|</span> <span class='conid'>And</span> <span class='keyglyph'>|</span> <span class='conid'>Eq</span> <span class='keyglyph'>|</span> <span class='conid'>NEq</span> <span class='keyglyph'>|</span> <span class='conid'>Less</span> <span class='keyglyph'>|</span> <span class='conid'>Greater</span> <span class='keyglyph'>|</span> <span class='conid'>LessEq</span>-<a name="line-56"></a> <span class='keyglyph'>|</span> <span class='conid'>GreaterEq</span> <span class='keyglyph'>|</span><span class='conid'>Plus</span> <span class='keyglyph'>|</span> <span class='conid'>Minus</span> <span class='keyglyph'>|</span> <span class='conid'>Div</span> <span class='keyglyph'>|</span> <span class='conid'>Mod</span> <span class='keyglyph'>|</span> <span class='conid'>Mult</span><span class='keyglyph'>|</span> <span class='conid'>Unary</span> <span class='keyglyph'>|</span> <span class='conid'>Union</span>-<a name="line-57"></a> <span class='keyword'>deriving</span> <span class='layout'>(</span><span class='conid'>Show</span><span class='layout'>,</span> <span class='conid'>Eq</span><span class='layout'>)</span>-<a name="line-58"></a>-<a name="line-59"></a>-<a name="line-60"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>-<a name="line-61"></a><span class='comment'>--</span>-<a name="line-62"></a><span class='comment'>-- |</span>-<a name="line-63"></a><span class='comment'>-- Represents a floating-point number according the IEEE 754 standard</span>-<a name="line-64"></a><span class='comment'>--</span>-<a name="line-65"></a><span class='comment'>-- The standard includes a special Not-a-Number (NaN) value,</span>-<a name="line-66"></a><span class='comment'>-- positive and negative infinity, positive and negative zero.</span>-<a name="line-67"></a>-<a name="line-68"></a><a name="XPNumber"></a><span class='keyword'>data</span> <span class='conid'>XPNumber</span> <span class='keyglyph'>=</span> <span class='conid'>Float</span> <span class='conid'>Float</span> <span class='comment'>-- ^ floating-point number</span>-<a name="line-69"></a> <span class='keyglyph'>|</span> <span class='conid'>NaN</span> <span class='comment'>-- ^ not-a-number</span>-<a name="line-70"></a> <span class='keyglyph'>|</span> <span class='conid'>NegInf</span> <span class='comment'>-- ^ negative infinity</span>-<a name="line-71"></a> <span class='keyglyph'>|</span> <span class='conid'>Neg0</span> <span class='comment'>-- ^ negative zero</span>-<a name="line-72"></a> <span class='keyglyph'>|</span> <span class='conid'>Pos0</span> <span class='comment'>-- ^ positive zero</span>-<a name="line-73"></a> <span class='keyglyph'>|</span> <span class='conid'>PosInf</span> <span class='comment'>-- ^ positive infinity</span>-<a name="line-74"></a>-<a name="line-75"></a>-<a name="line-76"></a><span class='keyword'>instance</span> <span class='conid'>Show</span> <span class='conid'>XPNumber</span>-<a name="line-77"></a> <span class='keyword'>where</span>-<a name="line-78"></a> <span class='varid'>show</span> <span class='conid'>NaN</span> <span class='keyglyph'>=</span> <span class='str'>"NaN"</span>-<a name="line-79"></a> <span class='varid'>show</span> <span class='conid'>NegInf</span> <span class='keyglyph'>=</span> <span class='str'>"-Infinity"</span>-<a name="line-80"></a> <span class='varid'>show</span> <span class='conid'>Neg0</span> <span class='keyglyph'>=</span> <span class='str'>"-0"</span>-<a name="line-81"></a> <span class='varid'>show</span> <span class='conid'>Pos0</span> <span class='keyglyph'>=</span> <span class='str'>"0"</span>-<a name="line-82"></a> <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>show</span> <span class='varid'>f</span>-<a name="line-83"></a> <span class='varid'>show</span> <span class='conid'>PosInf</span> <span class='keyglyph'>=</span> <span class='str'>"Infinity"</span>-<a name="line-84"></a>-<a name="line-85"></a>-<a name="line-86"></a>-<a name="line-87"></a><span class='comment'>-- Negative zero is equal to positive zero,</span>-<a name="line-88"></a><span class='comment'>-- equality test with NaN-value is always false</span>-<a name="line-89"></a><span class='keyword'>instance</span> <span class='conid'>Eq</span> <span class='conid'>XPNumber</span>-<a name="line-90"></a> <span class='keyword'>where</span>-<a name="line-91"></a> <span class='conid'>NegInf</span> <span class='varop'>==</span> <span class='conid'>NegInf</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-92"></a> <span class='conid'>Pos0</span> <span class='varop'>==</span> <span class='conid'>Neg0</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-93"></a> <span class='conid'>Neg0</span> <span class='varop'>==</span> <span class='conid'>Pos0</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-94"></a> <span class='conid'>Pos0</span> <span class='varop'>==</span> <span class='conid'>Pos0</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-95"></a> <span class='conid'>Neg0</span> <span class='varop'>==</span> <span class='conid'>Neg0</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-96"></a> <span class='conid'>Float</span> <span class='varid'>f</span> <span class='varop'>==</span> <span class='conid'>Float</span> <span class='varid'>g</span> <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varop'>==</span> <span class='varid'>g</span>-<a name="line-97"></a> <span class='conid'>PosInf</span> <span class='varop'>==</span> <span class='conid'>PosInf</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-98"></a> <span class='keyword'>_</span> <span class='varop'>==</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-99"></a>-<a name="line-100"></a>-<a name="line-101"></a><span class='keyword'>instance</span> <span class='conid'>Ord</span> <span class='conid'>XPNumber</span>-<a name="line-102"></a> <span class='keyword'>where</span>-<a name="line-103"></a> <span class='varid'>a</span> <span class='varop'><=</span> <span class='varid'>b</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='varop'><</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='varop'>||</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='varop'>==</span> <span class='varid'>b</span><span class='layout'>)</span>-<a name="line-104"></a> <span class='varid'>a</span> <span class='varop'>>=</span> <span class='varid'>b</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='varop'>></span> <span class='varid'>b</span><span class='layout'>)</span> <span class='varop'>||</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='varop'>==</span> <span class='varid'>b</span><span class='layout'>)</span>-<a name="line-105"></a> <span class='varid'>a</span> <span class='varop'>></span> <span class='varid'>b</span> <span class='keyglyph'>=</span> <span class='varid'>b</span> <span class='varop'><</span> <span class='varid'>a</span>-<a name="line-106"></a>-<a name="line-107"></a> <span class='conid'>NaN</span> <span class='varop'><</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-108"></a> <span class='keyword'>_</span> <span class='varop'><</span> <span class='conid'>NaN</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-109"></a>-<a name="line-110"></a> <span class='keyword'>_</span> <span class='varop'><</span> <span class='conid'>NegInf</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-111"></a> <span class='conid'>NegInf</span> <span class='varop'><</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-112"></a>-<a name="line-113"></a> <span class='conid'>Neg0</span> <span class='varop'><</span> <span class='conid'>Neg0</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-114"></a> <span class='conid'>Pos0</span> <span class='varop'><</span> <span class='conid'>Pos0</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-115"></a> <span class='conid'>Pos0</span> <span class='varop'><</span> <span class='conid'>Neg0</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-116"></a> <span class='conid'>Neg0</span> <span class='varop'><</span> <span class='conid'>Pos0</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-117"></a>-<a name="line-118"></a> <span class='conid'>Neg0</span> <span class='varop'><</span> <span class='conid'>Float</span> <span class='varid'>f</span> <span class='keyglyph'>=</span> <span class='num'>0</span> <span class='varop'><</span> <span class='varid'>f</span>-<a name="line-119"></a> <span class='conid'>Pos0</span> <span class='varop'><</span> <span class='conid'>Float</span> <span class='varid'>f</span> <span class='keyglyph'>=</span> <span class='num'>0</span> <span class='varop'><</span> <span class='varid'>f</span>-<a name="line-120"></a> <span class='conid'>Float</span> <span class='varid'>f</span> <span class='varop'><</span> <span class='conid'>Neg0</span> <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varop'><</span> <span class='num'>0</span>-<a name="line-121"></a> <span class='conid'>Float</span> <span class='varid'>f</span> <span class='varop'><</span> <span class='conid'>Pos0</span> <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varop'><</span> <span class='num'>0</span>-<a name="line-122"></a>-<a name="line-123"></a> <span class='conid'>Float</span> <span class='varid'>f</span> <span class='varop'><</span> <span class='conid'>Float</span> <span class='varid'>g</span> <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varop'><</span> <span class='varid'>g</span>-<a name="line-124"></a>-<a name="line-125"></a> <span class='conid'>PosInf</span> <span class='varop'><</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-126"></a> <span class='keyword'>_</span> <span class='varop'><</span> <span class='conid'>PosInf</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-127"></a>-<a name="line-128"></a>-<a name="line-129"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>-<a name="line-130"></a><span class='comment'>-- | Represents location path</span>-<a name="line-131"></a><span class='comment'>--</span>-<a name="line-132"></a><span class='comment'>-- A location path consists of a sequence of one or more location steps.</span>-<a name="line-133"></a>-<a name="line-134"></a><a name="LocationPath"></a><span class='keyword'>data</span> <span class='conid'>LocationPath</span> <span class='keyglyph'>=</span> <span class='conid'>LocPath</span> <span class='conid'>Path</span> <span class='keyglyph'>[</span><span class='conid'>XStep</span><span class='keyglyph'>]</span>-<a name="line-135"></a> <span class='keyword'>deriving</span> <span class='layout'>(</span><span class='conid'>Show</span><span class='layout'>,</span> <span class='conid'>Eq</span><span class='layout'>)</span>-<a name="line-136"></a>-<a name="line-137"></a>-<a name="line-138"></a><span class='comment'>-- ----------------------------------------------------------------------------- </span>-<a name="line-139"></a><span class='comment'>-- |</span>-<a name="line-140"></a><span class='comment'>-- A location path is either a relative or an absolute path.</span>-<a name="line-141"></a>-<a name="line-142"></a><a name="Path"></a><span class='keyword'>data</span> <span class='conid'>Path</span> <span class='keyglyph'>=</span> <span class='conid'>Rel</span> <span class='keyglyph'>|</span> <span class='conid'>Abs</span>-<a name="line-143"></a> <span class='keyword'>deriving</span> <span class='layout'>(</span><span class='conid'>Show</span><span class='layout'>,</span> <span class='conid'>Eq</span><span class='layout'>)</span>-<a name="line-144"></a> -<a name="line-145"></a>-<a name="line-146"></a><span class='comment'>-- | Represents location step</span>-<a name="line-147"></a><span class='comment'>-- </span>-<a name="line-148"></a><span class='comment'>-- A location step consists of an axis, a node-test and zero or more predicates.</span>-<a name="line-149"></a>-<a name="line-150"></a><a name="XStep"></a><span class='keyword'>data</span> <span class='conid'>XStep</span> <span class='keyglyph'>=</span> <span class='conid'>Step</span> <span class='conid'>AxisSpec</span> <span class='conid'>NodeTest</span> <span class='keyglyph'>[</span><span class='conid'>Expr</span><span class='keyglyph'>]</span>-<a name="line-151"></a> <span class='keyword'>deriving</span> <span class='layout'>(</span><span class='conid'>Show</span><span class='layout'>,</span> <span class='conid'>Eq</span><span class='layout'>)</span>-<a name="line-152"></a>-<a name="line-153"></a> -<a name="line-154"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>-<a name="line-155"></a><span class='comment'>--</span>-<a name="line-156"></a><span class='comment'>-- AxisSpec</span>-<a name="line-157"></a>-<a name="line-158"></a><span class='comment'>-- | Represents XPath axis</span>-<a name="line-159"></a>-<a name="line-160"></a><a name="AxisSpec"></a><span class='keyword'>data</span> <span class='conid'>AxisSpec</span> <span class='keyglyph'>=</span> <span class='conid'>Ancestor</span> <span class='keyglyph'>|</span> <span class='conid'>AncestorOrSelf</span> <span class='keyglyph'>|</span> <span class='conid'>Attribute</span> <span class='keyglyph'>|</span> <span class='conid'>Child</span> <span class='keyglyph'>|</span> <span class='conid'>Descendant</span> -<a name="line-161"></a> <span class='keyglyph'>|</span> <span class='conid'>DescendantOrSelf</span> <span class='keyglyph'>|</span> <span class='conid'>Following</span> <span class='keyglyph'>|</span> <span class='conid'>FollowingSibling</span>-<a name="line-162"></a> <span class='keyglyph'>|</span> <span class='conid'>Namespace</span> <span class='keyglyph'>|</span> <span class='conid'>Parent</span> <span class='keyglyph'>|</span> <span class='conid'>Preceding</span> <span class='keyglyph'>|</span> <span class='conid'>PrecedingSibling</span> <span class='keyglyph'>|</span> <span class='conid'>Self</span>-<a name="line-163"></a> <span class='keyword'>deriving</span> <span class='layout'>(</span><span class='conid'>Show</span><span class='layout'>,</span> <span class='conid'>Eq</span><span class='layout'>)</span>-<a name="line-164"></a>-<a name="line-165"></a>-<a name="line-166"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>-<a name="line-167"></a><span class='comment'>--</span>-<a name="line-168"></a><span class='comment'>-- NodeTest</span>-<a name="line-169"></a>-<a name="line-170"></a><span class='comment'>-- | Represents XPath node-tests</span>-<a name="line-171"></a>-<a name="line-172"></a><a name="NodeTest"></a><span class='comment'>--data NodeTest = NameTest Name -- ^ name-test</span>-<a name="line-173"></a><a name="NodeTest"></a><span class='keyword'>data</span> <span class='conid'>NodeTest</span> <span class='keyglyph'>=</span> <span class='conid'>NameTest</span> <span class='conid'>QName</span> <span class='comment'>-- ^ name-test</span>-<a name="line-174"></a> <span class='keyglyph'>|</span> <span class='conid'>PI</span> <span class='conid'>String</span> <span class='comment'>-- ^ processing-instruction-test with a literal argument</span>-<a name="line-175"></a> <span class='keyglyph'>|</span> <span class='conid'>TypeTest</span> <span class='conid'>XPathNode</span> <span class='comment'>-- ^ all nodetype-tests</span>-<a name="line-176"></a> <span class='keyword'>deriving</span> <span class='layout'>(</span><span class='conid'>Show</span><span class='layout'>,</span> <span class='conid'>Eq</span><span class='layout'>)</span>-<a name="line-177"></a>-<a name="line-178"></a>-<a name="line-179"></a>-<a name="line-180"></a>-<a name="line-181"></a>-<a name="line-182"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>-<a name="line-183"></a><span class='comment'>--</span>-<a name="line-184"></a><span class='comment'>-- XPathNode</span>-<a name="line-185"></a>-<a name="line-186"></a><span class='comment'>-- | Represents nodetype-tests</span>-<a name="line-187"></a>-<a name="line-188"></a><a name="XPathNode"></a><span class='keyword'>data</span> <span class='conid'>XPathNode</span> <span class='keyglyph'>=</span> <span class='conid'>XPNode</span> <span class='comment'>-- ^ all 7 nodetypes</span>-<a name="line-189"></a> <span class='comment'>-- (root, element, attribute, namespace, pi, comment, text)</span>-<a name="line-190"></a> <span class='keyglyph'>|</span> <span class='conid'>XPCommentNode</span> <span class='comment'>-- ^ comment-nodes</span>-<a name="line-191"></a> <span class='keyglyph'>|</span> <span class='conid'>XPPINode</span> <span class='comment'>-- ^ processing-instruction-nodes</span>-<a name="line-192"></a> <span class='keyglyph'>|</span> <span class='conid'>XPTextNode</span> <span class='comment'>-- ^ text-nodes: cdata, character data</span>-<a name="line-193"></a> <span class='keyword'>deriving</span> <span class='layout'>(</span><span class='conid'>Show</span><span class='layout'>,</span> <span class='conid'>Eq</span><span class='layout'>)</span>-<a name="line-194"></a>-<a name="line-195"></a>-<a name="line-196"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>-<a name="line-197"></a><span class='comment'>--</span>-<a name="line-198"></a><span class='comment'>-- useful type definitions</span>-<a name="line-199"></a>-<a name="line-200"></a><a name="Name"></a><span class='keyword'>type</span> <span class='conid'>Name</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>NamePrefix</span><span class='layout'>,</span> <span class='conid'>LocalName</span><span class='layout'>)</span>-<a name="line-201"></a><a name="NamePrefix"></a><span class='keyword'>type</span> <span class='conid'>NamePrefix</span> <span class='keyglyph'>=</span> <span class='conid'>String</span>-<a name="line-202"></a><a name="LocalName"></a><span class='keyword'>type</span> <span class='conid'>LocalName</span> <span class='keyglyph'>=</span> <span class='conid'>String</span>-<a name="line-203"></a>-<a name="line-204"></a><a name="VarName"></a><span class='comment'>-- | Variable name</span>-<a name="line-205"></a><a name="VarName"></a><span class='keyword'>type</span> <span class='conid'>VarName</span> <span class='keyglyph'>=</span> <span class='conid'>Name</span>-<a name="line-206"></a>-<a name="line-207"></a><a name="Literal"></a><span class='comment'>-- | a string</span>-<a name="line-208"></a><a name="Literal"></a><span class='keyword'>type</span> <span class='conid'>Literal</span> <span class='keyglyph'>=</span> <span class='conid'>String</span> -<a name="line-209"></a>-<a name="line-210"></a><a name="FctName"></a><span class='comment'>-- | Function name</span>-<a name="line-211"></a><a name="FctName"></a><span class='keyword'>type</span> <span class='conid'>FctName</span> <span class='keyglyph'>=</span> <span class='conid'>String</span>-<a name="line-212"></a>-<a name="line-213"></a><a name="FctArguments"></a><span class='comment'>-- | Function arguments</span>-<a name="line-214"></a><a name="FctArguments"></a><span class='keyword'>type</span> <span class='conid'>FctArguments</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>Expr</span><span class='keyglyph'>]</span>-<a name="line-215"></a>-<a name="line-216"></a><a name="Context"></a><span class='comment'>-- | Evaluation context</span>-<a name="line-217"></a><a name="Context"></a><span class='keyword'>type</span> <span class='conid'>Context</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>ConPos</span> <span class='layout'>,</span><span class='conid'>ConLen</span><span class='layout'>,</span> <span class='conid'>ConNode</span><span class='layout'>)</span>-<a name="line-218"></a>-<a name="line-219"></a><a name="ConPos"></a><span class='comment'>-- | Context position</span>-<a name="line-220"></a><a name="ConPos"></a><span class='keyword'>type</span> <span class='conid'>ConPos</span> <span class='keyglyph'>=</span> <span class='conid'>Int</span>-<a name="line-221"></a>-<a name="line-222"></a><a name="ConLen"></a><span class='comment'>-- | Context length</span>-<a name="line-223"></a><a name="ConLen"></a><span class='keyword'>type</span> <span class='conid'>ConLen</span> <span class='keyglyph'>=</span> <span class='conid'>Int</span>-<a name="line-224"></a>-<a name="line-225"></a><a name="ConNode"></a><span class='comment'>-- | Context node</span>-<a name="line-226"></a><a name="ConNode"></a><span class='keyword'>type</span> <span class='conid'>ConNode</span> <span class='keyglyph'>=</span> <span class='conid'>NavXmlTree</span>-<a name="line-227"></a>-<a name="line-228"></a>-<a name="line-229"></a>-<a name="line-230"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>-<a name="line-231"></a><span class='comment'>--</span>-<a name="line-232"></a><span class='comment'>-- XPathValue</span>-<a name="line-233"></a>-<a name="line-234"></a><span class='comment'>-- | Represents XPath results</span>-<a name="line-235"></a>-<a name="line-236"></a><a name="XPathValue"></a><span class='keyword'>data</span> <span class='conid'>XPathValue</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNode</span> <span class='conid'>NodeSet</span> <span class='comment'>-- ^ node-set</span>-<a name="line-237"></a> <span class='keyglyph'>|</span> <span class='conid'>XPVBool</span> <span class='conid'>Bool</span> <span class='comment'>-- ^ boolean value</span>-<a name="line-238"></a> <span class='keyglyph'>|</span> <span class='conid'>XPVNumber</span> <span class='conid'>XPNumber</span> <span class='comment'>-- ^ number according the IEEE 754 standard</span>-<a name="line-239"></a> <span class='keyglyph'>|</span> <span class='conid'>XPVString</span> <span class='conid'>String</span> <span class='comment'>-- ^ string value</span>-<a name="line-240"></a> <span class='keyglyph'>|</span> <span class='conid'>XPVError</span> <span class='conid'>String</span> <span class='comment'>-- ^ error message with text</span>-<a name="line-241"></a> <span class='keyword'>deriving</span> <span class='layout'>(</span><span class='conid'>Show</span><span class='layout'>,</span> <span class='conid'>Eq</span><span class='layout'>,</span> <span class='conid'>Ord</span><span class='layout'>)</span>-<a name="line-242"></a>-<a name="line-243"></a>-<a name="line-244"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>-<a name="line-245"></a><span class='comment'>--</span>-<a name="line-246"></a><span class='comment'>-- Basic types for navigable tree and filters</span>-<a name="line-247"></a>-<a name="line-248"></a><span class='comment'>-- | Node of navigable tree representation</span>-<a name="line-249"></a>-<a name="line-250"></a><a name="NavXmlTree"></a><span class='keyword'>type</span> <span class='conid'>NavXmlTree</span> <span class='keyglyph'>=</span> <span class='conid'>NavTree</span> <span class='conid'>XNode</span>-<a name="line-251"></a>-<a name="line-252"></a><span class='comment'>-- | List of nodes of navigable tree representation</span>-<a name="line-253"></a>-<a name="line-254"></a><a name="NavXmlTrees"></a><span class='keyword'>type</span> <span class='conid'>NavXmlTrees</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>NavXmlTree</span><span class='keyglyph'>]</span>-<a name="line-255"></a>-<a name="line-256"></a><span class='comment'>-- | Type synonym for a list of navigable tree representation</span>-<a name="line-257"></a>-<a name="line-258"></a><a name="NodeSet"></a><span class='keyword'>type</span> <span class='conid'>NodeSet</span> <span class='keyglyph'>=</span> <span class='conid'>NavXmlTrees</span>-<a name="line-259"></a>-<a name="line-260"></a><span class='comment'>-- | A functions that takes a XPath result and returns a XPath result</span>-<a name="line-261"></a>-<a name="line-262"></a><a name="XPathFilter"></a><span class='keyword'>type</span> <span class='conid'>XPathFilter</span> <span class='keyglyph'>=</span> <span class='conid'>XPathValue</span> <span class='keyglyph'>-></span> <span class='conid'>XPathValue</span>-<a name="line-263"></a>-<a name="line-264"></a>-<a name="line-265"></a>-<a name="line-266"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>-<a name="line-267"></a><span class='comment'>--</span>-<a name="line-268"></a><span class='comment'>-- Env</span>-<a name="line-269"></a>-<a name="line-270"></a><span class='comment'>-- | XPath environment</span>-<a name="line-271"></a><span class='comment'>--</span>-<a name="line-272"></a><span class='comment'>-- All variables are stored in the environment,</span>-<a name="line-273"></a><span class='comment'>-- each variable name is bound to a value.</span>-<a name="line-274"></a>-<a name="line-275"></a><a name="VarTab"></a><span class='keyword'>type</span> <span class='conid'>VarTab</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>VarName</span><span class='layout'>,</span> <span class='conid'>XPathValue</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-276"></a><a name="KeyTab"></a><span class='keyword'>type</span> <span class='conid'>KeyTab</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>QName</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>NavXmlTree</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-277"></a>-<a name="line-278"></a><a name="Env"></a><span class='keyword'>type</span> <span class='conid'>Env</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>VarTab</span><span class='layout'>,</span> <span class='conid'>KeyTab</span><span class='layout'>)</span>-<a name="line-279"></a>-<a name="line-280"></a><a name="varEnv"></a><span class='definition'>varEnv</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span>-<a name="line-281"></a><span class='definition'>varEnv</span> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='layout'>(</span><span class='str'>""</span><span class='layout'>,</span> <span class='str'>"name"</span><span class='layout'>)</span><span class='layout'>,</span> <span class='conid'>XPVNumber</span> <span class='conid'>NaN</span><span class='layout'>)</span> <span class='keyglyph'>]</span>-<a name="line-282"></a> <span class='layout'>,</span> <span class='conid'>[]</span>-<a name="line-283"></a> <span class='layout'>)</span>-<a name="line-284"></a>-<a name="line-285"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-XPath-XPathEval.html
@@ -1,672 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Text.XML.HXT.XPath.XPathEval-<a name="line-5"></a> Copyright : Copyright (C) 2006 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe@fh-wedel.de)-<a name="line-9"></a> Stability : experimental-<a name="line-10"></a> Portability: portable-<a name="line-11"></a> Version : $Id: XPathEval.hs,v 1.8 2006/10/12 11:51:29 hxml Exp $-<a name="line-12"></a>-<a name="line-13"></a> The core functions for evaluating the different types of XPath expressions.-<a name="line-14"></a> Each 'Expr'-constructor is mapped to an evaluation function.-<a name="line-15"></a>-<a name="line-16"></a>-}</span>-<a name="line-17"></a>-<a name="line-18"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-19"></a>-<a name="line-20"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathEval</span>-<a name="line-21"></a> <span class='layout'>(</span> <span class='varid'>getXPath</span>-<a name="line-22"></a> <span class='layout'>,</span> <span class='varid'>getXPathWithNsEnv</span>-<a name="line-23"></a> <span class='layout'>,</span> <span class='varid'>getXPathSubTrees</span>-<a name="line-24"></a> <span class='layout'>,</span> <span class='varid'>getXPathSubTreesWithNsEnv</span>-<a name="line-25"></a> <span class='layout'>,</span> <span class='varid'>getXPathNodeSet</span>-<a name="line-26"></a> <span class='layout'>,</span> <span class='varid'>getXPathNodeSetWithNsEnv</span>-<a name="line-27"></a> <span class='layout'>,</span> <span class='varid'>evalExpr</span>-<a name="line-28"></a> <span class='layout'>)</span>-<a name="line-29"></a><span class='keyword'>where</span>-<a name="line-30"></a>-<a name="line-31"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathFct</span>-<a name="line-32"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathDataTypes</span>-<a name="line-33"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathArithmetic</span>-<a name="line-34"></a> <span class='layout'>(</span> <span class='varid'>xPathAdd</span>-<a name="line-35"></a> <span class='layout'>,</span> <span class='varid'>xPathDiv</span>-<a name="line-36"></a> <span class='layout'>,</span> <span class='varid'>xPathMod</span>-<a name="line-37"></a> <span class='layout'>,</span> <span class='varid'>xPathMulti</span>-<a name="line-38"></a> <span class='layout'>,</span> <span class='varid'>xPathUnary</span>-<a name="line-39"></a> <span class='layout'>)</span>-<a name="line-40"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathParser</span>-<a name="line-41"></a> <span class='layout'>(</span> <span class='varid'>parseXPath</span> <span class='layout'>)</span>-<a name="line-42"></a>-<a name="line-43"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathToString</span>-<a name="line-44"></a> <span class='layout'>(</span> <span class='varid'>xPValue2XmlTrees</span> <span class='layout'>)</span>-<a name="line-45"></a>-<a name="line-46"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathToNodeSet</span>-<a name="line-47"></a> <span class='layout'>(</span> <span class='varid'>xPValue2NodeSet</span>-<a name="line-48"></a> <span class='layout'>,</span> <span class='varid'>emptyNodeSet</span>-<a name="line-49"></a> <span class='layout'>)</span>-<a name="line-50"></a>-<a name="line-51"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>ParserCombinators</span><span class='varop'>.</span><span class='conid'>Parsec</span>-<a name="line-52"></a> <span class='layout'>(</span> <span class='varid'>runParser</span> <span class='layout'>)</span>-<a name="line-53"></a>-<a name="line-54"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>-<a name="line-55"></a> <span class='layout'>(</span> <span class='varid'>fromJust</span> <span class='layout'>)</span>-<a name="line-56"></a>-<a name="line-57"></a><span class='comment'>-- ----------------------------------------</span>-<a name="line-58"></a>-<a name="line-59"></a><span class='comment'>-- the DOM functions</span>-<a name="line-60"></a>-<a name="line-61"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>-<a name="line-62"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlNode</span> <span class='keyword'>as</span> <span class='conid'>XN</span>-<a name="line-63"></a>-<a name="line-64"></a><span class='comment'>-- ----------------------------------------</span>-<a name="line-65"></a>-<a name="line-66"></a><span class='comment'>-- the list arrow functions</span>-<a name="line-67"></a>-<a name="line-68"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='varop'>>>></span><span class='layout'>)</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varop'>>>^</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-69"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowList</span> <span class='layout'>(</span> <span class='varid'>arrL</span><span class='layout'>,</span> <span class='varid'>isA</span> <span class='layout'>)</span>-<a name="line-70"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowIf</span> <span class='layout'>(</span> <span class='varid'>filterA</span> <span class='layout'>)</span>-<a name="line-71"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ListArrow</span> <span class='layout'>(</span> <span class='varid'>runLA</span> <span class='layout'>)</span>-<a name="line-72"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span>-<a name="line-73"></a> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowTree</span> <span class='keyword'>as</span> <span class='conid'>AT</span>-<a name="line-74"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlArrow</span> <span class='layout'>(</span> <span class='conid'>ArrowDTD</span><span class='layout'>,</span> <span class='varid'>isDTD</span><span class='layout'>,</span> <span class='varid'>getDTDAttrl</span> <span class='layout'>)</span>-<a name="line-75"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>Edit</span> <span class='layout'>(</span> <span class='varid'>canonicalizeForXPath</span> <span class='layout'>)</span>-<a name="line-76"></a>-<a name="line-77"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>-<a name="line-78"></a>-<a name="line-79"></a><span class='comment'>-- |</span>-<a name="line-80"></a><span class='comment'>-- Select parts of a document by an XPath expression.</span>-<a name="line-81"></a><span class='comment'>--</span>-<a name="line-82"></a><span class='comment'>-- The main filter for selecting parts of a document via XPath.</span>-<a name="line-83"></a><span class='comment'>-- The string argument must be a XPath expression with an absolute location path,</span>-<a name="line-84"></a><span class='comment'>-- the argument tree must be a complete document tree.</span>-<a name="line-85"></a><span class='comment'>-- Result is a possibly empty list of XmlTrees forming the set of selected XPath values.</span>-<a name="line-86"></a><span class='comment'>-- XPath values other than XmlTrees (numbers, attributes, tagnames, ...)</span>-<a name="line-87"></a><span class='comment'>-- are convertet to text nodes.</span>-<a name="line-88"></a>-<a name="line-89"></a><a name="getXPath"></a><span class='definition'>getXPath</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span>-<a name="line-90"></a><span class='definition'>getXPath</span> <span class='keyglyph'>=</span> <span class='varid'>getXPathWithNsEnv</span> <span class='conid'>[]</span>-<a name="line-91"></a>-<a name="line-92"></a><span class='comment'>-- |</span>-<a name="line-93"></a><span class='comment'>-- Select parts of a document by a namespace aware XPath expression.</span>-<a name="line-94"></a><span class='comment'>--</span>-<a name="line-95"></a><span class='comment'>-- Works like 'getXPath' but the prefix:localpart names in the XPath expression</span>-<a name="line-96"></a><span class='comment'>-- are interpreted with respect to the given namespace environment</span>-<a name="line-97"></a>-<a name="line-98"></a><a name="getXPathWithNsEnv"></a><span class='definition'>getXPathWithNsEnv</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span>-<a name="line-99"></a><span class='definition'>getXPathWithNsEnv</span> <span class='varid'>env</span> <span class='varid'>s</span> <span class='keyglyph'>=</span> <span class='varid'>runLA</span> <span class='layout'>(</span> <span class='varid'>canonicalizeForXPath</span>-<a name="line-100"></a> <span class='varop'>>>></span>-<a name="line-101"></a> <span class='varid'>arrL</span> <span class='layout'>(</span><span class='varid'>getXPathValues</span> <span class='varid'>xPValue2XmlTrees</span> <span class='varid'>xPathErr</span> <span class='layout'>(</span><span class='varid'>toNsEnv</span> <span class='varid'>env</span><span class='layout'>)</span> <span class='varid'>s</span><span class='layout'>)</span>-<a name="line-102"></a> <span class='layout'>)</span>-<a name="line-103"></a>-<a name="line-104"></a><span class='comment'>-- |</span>-<a name="line-105"></a><span class='comment'>-- Select parts of an XML tree by a XPath expression.</span>-<a name="line-106"></a><span class='comment'>--</span>-<a name="line-107"></a><span class='comment'>-- The main filter for selecting parts of an arbitrary XML tree via XPath.</span>-<a name="line-108"></a><span class='comment'>-- The string argument must be a XPath expression with an absolute location path,</span>-<a name="line-109"></a><span class='comment'>-- There are no restrictions on the arument tree.</span>-<a name="line-110"></a><span class='comment'>--</span>-<a name="line-111"></a><span class='comment'>-- No canonicalization is performed before evaluating the query</span>-<a name="line-112"></a><span class='comment'>--</span>-<a name="line-113"></a><span class='comment'>-- Result is a possibly empty list of XmlTrees forming the set of selected XPath values.</span>-<a name="line-114"></a><span class='comment'>-- XPath values other than XmlTrees (numbers, attributes, tagnames, ...)</span>-<a name="line-115"></a><span class='comment'>-- are convertet to text nodes.</span>-<a name="line-116"></a>-<a name="line-117"></a><a name="getXPathSubTrees"></a><span class='definition'>getXPathSubTrees</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span>-<a name="line-118"></a><span class='definition'>getXPathSubTrees</span> <span class='keyglyph'>=</span> <span class='varid'>getXPathSubTreesWithNsEnv</span> <span class='conid'>[]</span>-<a name="line-119"></a>-<a name="line-120"></a><span class='comment'>-- | Same as 'getXPathSubTrees' but with namespace aware XPath expression</span>-<a name="line-121"></a>-<a name="line-122"></a><a name="getXPathSubTreesWithNsEnv"></a><span class='definition'>getXPathSubTreesWithNsEnv</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span>-<a name="line-123"></a><span class='definition'>getXPathSubTreesWithNsEnv</span> <span class='varid'>nsEnv</span> <span class='varid'>xpStr</span>-<a name="line-124"></a> <span class='keyglyph'>=</span> <span class='varid'>getXPathValues</span> <span class='varid'>xPValue2XmlTrees</span> <span class='varid'>xPathErr</span> <span class='layout'>(</span><span class='varid'>toNsEnv</span> <span class='varid'>nsEnv</span><span class='layout'>)</span> <span class='varid'>xpStr</span>-<a name="line-125"></a>-<a name="line-126"></a><span class='comment'>-- | compute the node set of an XPath query</span>-<a name="line-127"></a>-<a name="line-128"></a><a name="getXPathNodeSet"></a><span class='definition'>getXPathNodeSet</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XmlNodeSet</span>-<a name="line-129"></a><span class='definition'>getXPathNodeSet</span> <span class='keyglyph'>=</span> <span class='varid'>getXPathNodeSetWithNsEnv</span> <span class='conid'>[]</span>-<a name="line-130"></a>-<a name="line-131"></a><span class='comment'>-- | compute the node set of a namespace aware XPath query</span>-<a name="line-132"></a>-<a name="line-133"></a><a name="getXPathNodeSetWithNsEnv"></a><span class='definition'>getXPathNodeSetWithNsEnv</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XmlNodeSet</span>-<a name="line-134"></a><span class='definition'>getXPathNodeSetWithNsEnv</span> <span class='varid'>nsEnv</span> <span class='varid'>xpStr</span>-<a name="line-135"></a> <span class='keyglyph'>=</span> <span class='varid'>getXPathValues</span> <span class='varid'>xPValue2NodeSet</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='layout'>(</span><span class='varid'>const</span> <span class='varid'>emptyNodeSet</span><span class='layout'>)</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>toNsEnv</span> <span class='varid'>nsEnv</span><span class='layout'>)</span> <span class='varid'>xpStr</span>-<a name="line-136"></a>-<a name="line-137"></a><span class='comment'>-- | parse xpath, evaluate xpath expr and prepare results</span>-<a name="line-138"></a>-<a name="line-139"></a><a name="getXPathValues"></a><span class='definition'>getXPathValues</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>XPathValue</span> <span class='keyglyph'>-></span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='varid'>a</span>-<a name="line-140"></a><span class='definition'>getXPathValues</span> <span class='varid'>cvRes</span> <span class='varid'>cvErr</span> <span class='varid'>nsEnv</span> <span class='varid'>xpStr</span> <span class='varid'>t</span>-<a name="line-141"></a> <span class='keyglyph'>=</span> <span class='keyword'>case</span> <span class='layout'>(</span><span class='varid'>runParser</span> <span class='varid'>parseXPath</span> <span class='varid'>nsEnv</span> <span class='str'>""</span> <span class='varid'>xpStr</span><span class='layout'>)</span> <span class='keyword'>of</span>-<a name="line-142"></a> <span class='conid'>Left</span> <span class='varid'>parseError</span>-<a name="line-143"></a> <span class='keyglyph'>-></span> <span class='varid'>cvErr</span> <span class='varid'>xpStr</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>parseError</span><span class='layout'>)</span>-<a name="line-144"></a> <span class='conid'>Right</span> <span class='varid'>xpExpr</span>-<a name="line-145"></a> <span class='keyglyph'>-></span> <span class='varid'>evalXP</span> <span class='varid'>xpExpr</span>-<a name="line-146"></a> <span class='keyword'>where</span>-<a name="line-147"></a> <span class='varid'>evalXP</span> <span class='varid'>xpe</span>-<a name="line-148"></a> <span class='keyglyph'>=</span> <span class='varid'>cvRes</span> <span class='varid'>xpRes</span>-<a name="line-149"></a> <span class='keyword'>where</span>-<a name="line-150"></a> <span class='varid'>t'</span> <span class='keyglyph'>=</span> <span class='varid'>addRoot</span> <span class='varid'>t</span> <span class='comment'>-- we need a root node for starting xpath eval</span>-<a name="line-151"></a> <span class='varid'>idAttr</span> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='str'>""</span><span class='layout'>,</span> <span class='str'>"idAttr"</span><span class='layout'>)</span> <span class='comment'>-- id attributes from DTD (if there)</span>-<a name="line-152"></a> <span class='layout'>,</span> <span class='varid'>idAttributesToXPathValue</span> <span class='varop'>.</span> <span class='varid'>getIdAttributes</span> <span class='varop'>$</span> <span class='varid'>t'</span>-<a name="line-153"></a> <span class='layout'>)</span>-<a name="line-154"></a> <span class='varid'>navTD</span> <span class='keyglyph'>=</span> <span class='varid'>ntree</span> <span class='varid'>t'</span>-<a name="line-155"></a> <span class='varid'>xpRes</span> <span class='keyglyph'>=</span> <span class='varid'>evalExpr</span> <span class='layout'>(</span><span class='varid'>idAttr</span><span class='conop'>:</span><span class='layout'>(</span><span class='varid'>getVarTab</span> <span class='varid'>varEnv</span><span class='layout'>)</span><span class='layout'>,</span><span class='conid'>[]</span><span class='layout'>)</span> <span class='layout'>(</span><span class='num'>1</span><span class='layout'>,</span> <span class='num'>1</span><span class='layout'>,</span> <span class='varid'>navTD</span><span class='layout'>)</span> <span class='varid'>xpe</span> <span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='keyglyph'>[</span><span class='varid'>navTD</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-156"></a>-<a name="line-157"></a><a name="addRoot"></a><span class='definition'>addRoot</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span>-<a name="line-158"></a><span class='definition'>addRoot</span> <span class='varid'>t</span>-<a name="line-159"></a> <span class='keyglyph'>|</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isRoot</span> <span class='varid'>t</span>-<a name="line-160"></a> <span class='keyglyph'>=</span> <span class='varid'>t</span>-<a name="line-161"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-162"></a> <span class='keyglyph'>=</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkRoot</span> <span class='conid'>[]</span> <span class='keyglyph'>[</span><span class='varid'>t</span><span class='keyglyph'>]</span>-<a name="line-163"></a>-<a name="line-164"></a><a name="xPathErr"></a><span class='definition'>xPathErr</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>-<a name="line-165"></a><span class='definition'>xPathErr</span> <span class='varid'>xpStr</span> <span class='varid'>parseError</span>-<a name="line-166"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkError</span> <span class='varid'>c_err</span> <span class='layout'>(</span><span class='str'>"Syntax error in XPath expression "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>xpStr</span> <span class='varop'>++</span> <span class='str'>": "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>parseError</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-167"></a>-<a name="line-168"></a><span class='comment'>-- |</span>-<a name="line-169"></a><span class='comment'>-- The main evaluation entry point. </span>-<a name="line-170"></a><span class='comment'>-- Each XPath-'Expr' is mapped to an evaluation function. The 'Env'-parameter contains the set of global variables</span>-<a name="line-171"></a><span class='comment'>-- for the evaluator, the 'Context'-parameter the root of the tree in which the expression is evaluated.</span>-<a name="line-172"></a><span class='comment'>-- </span>-<a name="line-173"></a>-<a name="line-174"></a><a name="evalExpr"></a><span class='definition'>evalExpr</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='conid'>Expr</span> <span class='keyglyph'>-></span> <span class='conid'>XPathFilter</span>-<a name="line-175"></a><span class='definition'>evalExpr</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='layout'>(</span><span class='conid'>GenExpr</span> <span class='conid'>Or</span> <span class='varid'>ex</span><span class='layout'>)</span>-<a name="line-176"></a> <span class='keyglyph'>=</span> <span class='varid'>boolEval</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='conid'>Or</span> <span class='varid'>ex</span>-<a name="line-177"></a><span class='definition'>evalExpr</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='layout'>(</span><span class='conid'>GenExpr</span> <span class='conid'>And</span> <span class='varid'>ex</span><span class='layout'>)</span>-<a name="line-178"></a> <span class='keyglyph'>=</span> <span class='varid'>boolEval</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='conid'>And</span> <span class='varid'>ex</span>-<a name="line-179"></a> -<a name="line-180"></a><span class='definition'>evalExpr</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='layout'>(</span><span class='conid'>GenExpr</span> <span class='conid'>Eq</span> <span class='varid'>ex</span><span class='layout'>)</span>-<a name="line-181"></a> <span class='keyglyph'>=</span> <span class='varid'>relEqEval</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='conid'>Eq</span> <span class='varop'>.</span> <span class='varid'>evalExprL</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>ex</span>-<a name="line-182"></a><span class='definition'>evalExpr</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='layout'>(</span><span class='conid'>GenExpr</span> <span class='conid'>NEq</span> <span class='varid'>ex</span><span class='layout'>)</span>-<a name="line-183"></a> <span class='keyglyph'>=</span> <span class='varid'>relEqEval</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='conid'>NEq</span> <span class='varop'>.</span> <span class='varid'>evalExprL</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>ex</span>-<a name="line-184"></a><span class='definition'>evalExpr</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='layout'>(</span><span class='conid'>GenExpr</span> <span class='conid'>Less</span> <span class='varid'>ex</span><span class='layout'>)</span>-<a name="line-185"></a> <span class='keyglyph'>=</span> <span class='varid'>relEqEval</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='conid'>Less</span> <span class='varop'>.</span> <span class='varid'>evalExprL</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>ex</span>-<a name="line-186"></a><span class='definition'>evalExpr</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='layout'>(</span><span class='conid'>GenExpr</span> <span class='conid'>LessEq</span> <span class='varid'>ex</span><span class='layout'>)</span>-<a name="line-187"></a> <span class='keyglyph'>=</span> <span class='varid'>relEqEval</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='conid'>LessEq</span> <span class='varop'>.</span> <span class='varid'>evalExprL</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>ex</span>-<a name="line-188"></a><span class='definition'>evalExpr</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='layout'>(</span><span class='conid'>GenExpr</span> <span class='conid'>Greater</span> <span class='varid'>ex</span><span class='layout'>)</span>-<a name="line-189"></a> <span class='keyglyph'>=</span> <span class='varid'>relEqEval</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='conid'>Greater</span> <span class='varop'>.</span> <span class='varid'>evalExprL</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>ex</span>-<a name="line-190"></a><span class='definition'>evalExpr</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='layout'>(</span><span class='conid'>GenExpr</span> <span class='conid'>GreaterEq</span> <span class='varid'>ex</span><span class='layout'>)</span>-<a name="line-191"></a> <span class='keyglyph'>=</span> <span class='varid'>relEqEval</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='conid'>GreaterEq</span> <span class='varop'>.</span> <span class='varid'>evalExprL</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>ex</span>-<a name="line-192"></a>-<a name="line-193"></a><span class='definition'>evalExpr</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='layout'>(</span><span class='conid'>GenExpr</span> <span class='conid'>Plus</span> <span class='varid'>ex</span><span class='layout'>)</span>-<a name="line-194"></a> <span class='keyglyph'>=</span> <span class='varid'>numEval</span> <span class='varid'>xPathAdd</span> <span class='conid'>Plus</span> <span class='varop'>.</span> <span class='varid'>toXValue</span> <span class='varid'>xnumber</span> <span class='varid'>cont</span> <span class='varid'>env</span> <span class='varop'>.</span> <span class='varid'>evalExprL</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>ex</span>-<a name="line-195"></a><span class='definition'>evalExpr</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='layout'>(</span><span class='conid'>GenExpr</span> <span class='conid'>Minus</span> <span class='varid'>ex</span><span class='layout'>)</span>-<a name="line-196"></a> <span class='keyglyph'>=</span> <span class='varid'>numEval</span> <span class='varid'>xPathAdd</span> <span class='conid'>Minus</span> <span class='varop'>.</span> <span class='varid'>toXValue</span> <span class='varid'>xnumber</span> <span class='varid'>cont</span> <span class='varid'>env</span> <span class='varop'>.</span> <span class='varid'>evalExprL</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>ex</span>-<a name="line-197"></a><span class='definition'>evalExpr</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='layout'>(</span><span class='conid'>GenExpr</span> <span class='conid'>Div</span> <span class='varid'>ex</span><span class='layout'>)</span>-<a name="line-198"></a> <span class='keyglyph'>=</span> <span class='varid'>numEval</span> <span class='varid'>xPathDiv</span> <span class='conid'>Div</span> <span class='varop'>.</span> <span class='varid'>toXValue</span> <span class='varid'>xnumber</span> <span class='varid'>cont</span> <span class='varid'>env</span> <span class='varop'>.</span> <span class='varid'>evalExprL</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>ex</span>-<a name="line-199"></a><span class='definition'>evalExpr</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='layout'>(</span><span class='conid'>GenExpr</span> <span class='conid'>Mod</span> <span class='varid'>ex</span><span class='layout'>)</span>-<a name="line-200"></a> <span class='keyglyph'>=</span> <span class='varid'>numEval</span> <span class='varid'>xPathMod</span> <span class='conid'>Mod</span> <span class='varop'>.</span> <span class='varid'>toXValue</span> <span class='varid'>xnumber</span> <span class='varid'>cont</span> <span class='varid'>env</span> <span class='varop'>.</span> <span class='varid'>evalExprL</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>ex</span>-<a name="line-201"></a><span class='definition'>evalExpr</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='layout'>(</span><span class='conid'>GenExpr</span> <span class='conid'>Mult</span> <span class='varid'>ex</span><span class='layout'>)</span>-<a name="line-202"></a> <span class='keyglyph'>=</span> <span class='varid'>numEval</span> <span class='varid'>xPathMulti</span> <span class='conid'>Mult</span> <span class='varop'>.</span> <span class='varid'>toXValue</span> <span class='varid'>xnumber</span> <span class='varid'>cont</span> <span class='varid'>env</span> <span class='varop'>.</span> <span class='varid'>evalExprL</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>ex</span>-<a name="line-203"></a>-<a name="line-204"></a><span class='definition'>evalExpr</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='layout'>(</span><span class='conid'>GenExpr</span> <span class='conid'>Unary</span> <span class='varid'>ex</span><span class='layout'>)</span>-<a name="line-205"></a> <span class='keyglyph'>=</span> <span class='varid'>xPathUnary</span> <span class='varop'>.</span> <span class='varid'>xnumber</span> <span class='varid'>cont</span> <span class='varid'>env</span> <span class='varop'>.</span> <span class='varid'>evalExprL</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>ex</span>-<a name="line-206"></a>-<a name="line-207"></a><span class='definition'>evalExpr</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='layout'>(</span><span class='conid'>GenExpr</span> <span class='conid'>Union</span> <span class='varid'>ex</span><span class='layout'>)</span>-<a name="line-208"></a> <span class='keyglyph'>=</span> <span class='varid'>unionEval</span> <span class='varop'>.</span> <span class='varid'>evalExprL</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>ex</span>-<a name="line-209"></a>-<a name="line-210"></a><span class='definition'>evalExpr</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='layout'>(</span><span class='conid'>FctExpr</span> <span class='varid'>name</span> <span class='varid'>args</span><span class='layout'>)</span>-<a name="line-211"></a> <span class='keyglyph'>=</span> <span class='varid'>fctEval</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>name</span> <span class='varid'>args</span>-<a name="line-212"></a>-<a name="line-213"></a><span class='definition'>evalExpr</span> <span class='varid'>env</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>PathExpr</span> <span class='conid'>Nothing</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>lp</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-214"></a> <span class='keyglyph'>=</span> <span class='varid'>locPathEval</span> <span class='varid'>env</span> <span class='varid'>lp</span>-<a name="line-215"></a><span class='definition'>evalExpr</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='layout'>(</span><span class='conid'>PathExpr</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>fe</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>lp</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-216"></a> <span class='keyglyph'>=</span> <span class='varid'>locPathEval</span> <span class='varid'>env</span> <span class='varid'>lp</span> <span class='varop'>.</span> <span class='varid'>evalExpr</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>fe</span>-<a name="line-217"></a>-<a name="line-218"></a><span class='definition'>evalExpr</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='layout'>(</span><span class='conid'>FilterExpr</span> <span class='varid'>ex</span><span class='layout'>)</span>-<a name="line-219"></a> <span class='keyglyph'>=</span> <span class='varid'>filterEval</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>ex</span>-<a name="line-220"></a><span class='definition'>evalExpr</span> <span class='varid'>env</span> <span class='keyword'>_</span> <span class='varid'>ex</span>-<a name="line-221"></a> <span class='keyglyph'>=</span> <span class='varid'>evalSpezExpr</span> <span class='varid'>env</span> <span class='varid'>ex</span>-<a name="line-222"></a>-<a name="line-223"></a>-<a name="line-224"></a>-<a name="line-225"></a><a name="evalExprL"></a><span class='definition'>evalExprL</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>Expr</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>XPathValue</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>XPathValue</span><span class='keyglyph'>]</span>-<a name="line-226"></a><span class='definition'>evalExprL</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>ex</span> <span class='varid'>ns</span>-<a name="line-227"></a> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>e</span> <span class='keyglyph'>-></span> <span class='varid'>evalExpr</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>e</span> <span class='varid'>ns</span><span class='layout'>)</span> <span class='varid'>ex</span>-<a name="line-228"></a>-<a name="line-229"></a><a name="evalSpezExpr"></a><span class='definition'>evalSpezExpr</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span> <span class='keyglyph'>-></span> <span class='conid'>Expr</span> <span class='keyglyph'>-></span> <span class='conid'>XPathFilter</span>-<a name="line-230"></a><span class='definition'>evalSpezExpr</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>NumberExpr</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='num'>0</span><span class='layout'>)</span><span class='layout'>)</span> <span class='keyword'>_</span>-<a name="line-231"></a> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>Pos0</span>-<a name="line-232"></a><span class='definition'>evalSpezExpr</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>NumberExpr</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>f</span><span class='layout'>)</span><span class='layout'>)</span> <span class='keyword'>_</span>-<a name="line-233"></a> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>f</span><span class='layout'>)</span>-<a name="line-234"></a><span class='definition'>evalSpezExpr</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>LiteralExpr</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyword'>_</span>-<a name="line-235"></a> <span class='keyglyph'>=</span> <span class='conid'>XPVString</span> <span class='varid'>s</span>-<a name="line-236"></a><span class='definition'>evalSpezExpr</span> <span class='varid'>env</span> <span class='layout'>(</span><span class='conid'>VarExpr</span> <span class='varid'>name</span><span class='layout'>)</span> <span class='varid'>v</span>-<a name="line-237"></a> <span class='keyglyph'>=</span> <span class='varid'>getVariable</span> <span class='varid'>env</span> <span class='varid'>name</span> <span class='varid'>v</span>-<a name="line-238"></a><span class='definition'>evalSpezExpr</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span>-<a name="line-239"></a> <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"Call to evalExpr with a wrong argument"</span>-<a name="line-240"></a>-<a name="line-241"></a>-<a name="line-242"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>-<a name="line-243"></a>-<a name="line-244"></a><a name="filterEval"></a><span class='comment'>-- |</span>-<a name="line-245"></a><span class='comment'>-- filter for evaluating a filter-expression</span>-<a name="line-246"></a><span class='definition'>filterEval</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>Expr</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>XPathFilter</span>-<a name="line-247"></a><span class='definition'>filterEval</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='layout'>(</span><span class='varid'>prim</span><span class='conop'>:</span><span class='varid'>predicates</span><span class='layout'>)</span> <span class='varid'>ns</span>-<a name="line-248"></a> <span class='keyglyph'>=</span> <span class='keyword'>case</span> <span class='varid'>evalExpr</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>prim</span> <span class='varid'>ns</span> <span class='keyword'>of</span>-<a name="line-249"></a> <span class='varid'>new_ns</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>evalPredL</span> <span class='varid'>env</span> <span class='varid'>predicates</span> <span class='varid'>new_ns</span>-<a name="line-250"></a> <span class='keyword'>_</span> <span class='keyglyph'>-></span> <span class='conid'>XPVError</span> <span class='str'>"Return of a filterexpression is not a nodeset"</span>-<a name="line-251"></a><span class='definition'>filterEval</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span>-<a name="line-252"></a> <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"Call to filterEval without an expression"</span>-<a name="line-253"></a>-<a name="line-254"></a>-<a name="line-255"></a>-<a name="line-256"></a><a name="unionEval"></a><span class='comment'>-- |</span>-<a name="line-257"></a><span class='comment'>-- returns the union of its arguments, the arguments have to be node-sets.</span>-<a name="line-258"></a><span class='definition'>unionEval</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>XPathValue</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>XPathValue</span>-<a name="line-259"></a><span class='definition'>unionEval</span>-<a name="line-260"></a> <span class='keyglyph'>=</span> <span class='varid'>createDocumentOrder</span> <span class='varop'>.</span> <span class='varid'>remDups</span> <span class='varop'>.</span> <span class='varid'>unionEval'</span>-<a name="line-261"></a> <span class='keyword'>where</span>-<a name="line-262"></a> <span class='varid'>unionEval'</span> <span class='layout'>(</span><span class='varid'>e</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>XPVError</span> <span class='keyword'>_</span><span class='layout'>)</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>e</span>-<a name="line-263"></a> <span class='varid'>unionEval'</span> <span class='layout'>(</span><span class='keyword'>_</span><span class='conop'>:</span><span class='varid'>e</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>XPVError</span> <span class='keyword'>_</span><span class='layout'>)</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>e</span>-<a name="line-264"></a> <span class='varid'>unionEval'</span> <span class='keyglyph'>[</span><span class='varid'>n</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='keyword'>_</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='varid'>n</span>-<a name="line-265"></a> <span class='varid'>unionEval'</span> <span class='layout'>(</span><span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='varid'>n</span><span class='layout'>)</span><span class='conop'>:</span><span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='varid'>m</span><span class='layout'>)</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>unionEval</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='layout'>(</span><span class='varid'>n</span> <span class='varop'>++</span> <span class='varid'>m</span><span class='layout'>)</span><span class='layout'>)</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span>-<a name="line-266"></a> <span class='varid'>unionEval'</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"The value of a union ( | ) is not a nodeset"</span>-<a name="line-267"></a>-<a name="line-268"></a>-<a name="line-269"></a>-<a name="line-270"></a><a name="relEqEval"></a><span class='comment'>-- |</span>-<a name="line-271"></a><span class='comment'>-- Equality or relational test for node-sets, numbers, boolean values or strings,</span>-<a name="line-272"></a><span class='comment'>-- each computation of two operands is done by relEqEv'</span>-<a name="line-273"></a><span class='definition'>relEqEval</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='conid'>Op</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>XPathValue</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>XPathValue</span>-<a name="line-274"></a><span class='definition'>relEqEval</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>op</span>-<a name="line-275"></a> <span class='keyglyph'>=</span> <span class='varid'>foldl1</span> <span class='layout'>(</span><span class='varid'>relEqEv'</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>op</span><span class='layout'>)</span>-<a name="line-276"></a>-<a name="line-277"></a> -<a name="line-278"></a>-<a name="line-279"></a><a name="relEqEv'"></a><span class='definition'>relEqEv'</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='conid'>Op</span> <span class='keyglyph'>-></span> <span class='conid'>XPathValue</span> <span class='keyglyph'>-></span> <span class='conid'>XPathFilter</span>-<a name="line-280"></a><span class='definition'>relEqEv'</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='varid'>e</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>XPVError</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='varid'>e</span>-<a name="line-281"></a><span class='definition'>relEqEv'</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='varid'>e</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>XPVError</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>e</span>-<a name="line-282"></a>-<a name="line-283"></a><span class='comment'>-- two node-sets</span>-<a name="line-284"></a><span class='definition'>relEqEv'</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>op</span> <span class='varid'>a</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='varid'>b</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='keyword'>_</span><span class='layout'>)</span>-<a name="line-285"></a> <span class='keyglyph'>=</span> <span class='varid'>relEqTwoNodes</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>op</span> <span class='varid'>a</span> <span class='varid'>b</span>-<a name="line-286"></a>-<a name="line-287"></a><span class='comment'>-- one node-set</span>-<a name="line-288"></a><span class='definition'>relEqEv'</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>op</span> <span class='varid'>a</span> <span class='varid'>b</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='keyword'>_</span><span class='layout'>)</span>-<a name="line-289"></a> <span class='keyglyph'>=</span> <span class='varid'>relEqOneNode</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='layout'>(</span><span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>getOpFct</span> <span class='varid'>op</span><span class='layout'>)</span> <span class='varid'>a</span> <span class='varid'>b</span>-<a name="line-290"></a><span class='definition'>relEqEv'</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>op</span> <span class='varid'>a</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='varid'>b</span>-<a name="line-291"></a> <span class='keyglyph'>=</span> <span class='varid'>relEqOneNode</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='layout'>(</span><span class='varid'>flip</span> <span class='varop'>$</span> <span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>getOpFct</span> <span class='varid'>op</span><span class='layout'>)</span> <span class='varid'>b</span> <span class='varid'>a</span>-<a name="line-292"></a>-<a name="line-293"></a>-<a name="line-294"></a><span class='comment'>-- test without a node-set and equality or not-equality operator</span>-<a name="line-295"></a><span class='definition'>relEqEv'</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='conid'>Eq</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='keyglyph'>=</span> <span class='varid'>eqEv</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='layout'>(</span><span class='varop'>==</span><span class='layout'>)</span> <span class='varid'>a</span> <span class='varid'>b</span>-<a name="line-296"></a><span class='definition'>relEqEv'</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='conid'>NEq</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='keyglyph'>=</span> <span class='varid'>eqEv</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='layout'>(</span><span class='varop'>/=</span><span class='layout'>)</span> <span class='varid'>a</span> <span class='varid'>b</span>-<a name="line-297"></a>-<a name="line-298"></a><span class='comment'>-- test without a node-set and less, less-equal, greater or greater-equal operator</span>-<a name="line-299"></a><span class='definition'>relEqEv'</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>op</span> <span class='varid'>a</span> <span class='varid'>b</span>-<a name="line-300"></a> <span class='keyglyph'>=</span> <span class='conid'>XPVBool</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>getOpFct</span> <span class='varid'>op</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>toXNumber</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>toXNumber</span> <span class='varid'>b</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-301"></a> <span class='keyword'>where</span>-<a name="line-302"></a> <span class='varid'>toXNumber</span> <span class='varid'>x</span> <span class='keyglyph'>=</span> <span class='varid'>xnumber</span> <span class='varid'>cont</span> <span class='varid'>env</span> <span class='keyglyph'>[</span><span class='varid'>x</span><span class='keyglyph'>]</span>-<a name="line-303"></a>-<a name="line-304"></a>-<a name="line-305"></a>-<a name="line-306"></a><a name="relEqTwoNodes"></a><span class='comment'>-- |</span>-<a name="line-307"></a><span class='comment'>-- Equality or relational test for two node-sets.</span>-<a name="line-308"></a><span class='comment'>-- The comparison will be true if and only if there is a node in the first node-set</span>-<a name="line-309"></a><span class='comment'>-- and a node in the second node-set such that the result of performing the</span>-<a name="line-310"></a><span class='comment'>-- comparison on the string-values of the two nodes is true</span>-<a name="line-311"></a><span class='definition'>relEqTwoNodes</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='conid'>Op</span> <span class='keyglyph'>-></span> <span class='conid'>XPathValue</span> <span class='keyglyph'>-></span> <span class='conid'>XPathFilter</span>-<a name="line-312"></a><span class='definition'>relEqTwoNodes</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='varid'>op</span> <span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='varid'>ns</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='varid'>ms</span><span class='layout'>)</span>-<a name="line-313"></a> <span class='keyglyph'>=</span> <span class='conid'>XPVBool</span> <span class='layout'>(</span><span class='varid'>foldr</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>n</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='varid'>any</span> <span class='layout'>(</span><span class='varid'>fct</span> <span class='varid'>op</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>getStrValues</span> <span class='varid'>ms</span><span class='layout'>)</span> <span class='varop'>||</span><span class='layout'>)</span><span class='layout'>)</span> <span class='conid'>False</span> <span class='varid'>ns</span><span class='layout'>)</span>-<a name="line-314"></a> <span class='keyword'>where</span>-<a name="line-315"></a> <span class='varid'>fct</span> <span class='varid'>op'</span> <span class='varid'>n'</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>getOpFct</span> <span class='varid'>op'</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>stringValue</span> <span class='varid'>n'</span><span class='layout'>)</span>-<a name="line-316"></a> <span class='varid'>getStrValues</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>stringValue</span>-<a name="line-317"></a><span class='definition'>relEqTwoNodes</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span>-<a name="line-318"></a> <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"Call to relEqTwoNodes without a nodeset"</span>-<a name="line-319"></a>-<a name="line-320"></a>-<a name="line-321"></a><a name="relEqOneNode"></a><span class='comment'>-- |</span>-<a name="line-322"></a><span class='comment'>-- Comparison between a node-set and different type.</span>-<a name="line-323"></a><span class='comment'>-- The node-set is converted in a boolean value if the second argument is of type boolean.</span>-<a name="line-324"></a><span class='comment'>-- If the argument is of type number, the node-set is converted in a number, otherwise it is converted</span>-<a name="line-325"></a><span class='comment'>-- in a string value.</span>-<a name="line-326"></a><span class='definition'>relEqOneNode</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='conid'>XPathValue</span> <span class='keyglyph'>-></span> <span class='conid'>XPathValue</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>XPathValue</span> <span class='keyglyph'>-></span> <span class='conid'>XPathFilter</span>-<a name="line-327"></a><span class='definition'>relEqOneNode</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>fct</span> <span class='varid'>arg</span> <span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='varid'>ns</span><span class='layout'>)</span>-<a name="line-328"></a> <span class='keyglyph'>=</span> <span class='conid'>XPVBool</span> <span class='layout'>(</span><span class='varid'>any</span> <span class='layout'>(</span><span class='varid'>fct</span> <span class='varid'>arg</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>getStrValues</span> <span class='varid'>arg</span> <span class='varid'>ns</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-329"></a> <span class='keyword'>where</span>-<a name="line-330"></a> <span class='varid'>getStrValues</span> <span class='varid'>arg'</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>getConvFct</span> <span class='varid'>arg'</span><span class='layout'>)</span> <span class='varid'>cont</span> <span class='varid'>env</span> <span class='varop'>.</span> <span class='varid'>wrap</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='varid'>stringValue</span>-<a name="line-331"></a> <span class='varid'>wrap</span> <span class='varid'>x</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>x</span><span class='keyglyph'>]</span>-<a name="line-332"></a><span class='definition'>relEqOneNode</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span>-<a name="line-333"></a> <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"Call to relEqOneNode without a nodeset"</span>-<a name="line-334"></a>-<a name="line-335"></a>-<a name="line-336"></a>-<a name="line-337"></a><a name="eqEv"></a><span class='comment'>-- |</span>-<a name="line-338"></a><span class='comment'>-- No node-set is involved and the operator is equality or not-equality.</span>-<a name="line-339"></a><span class='comment'>-- The arguments are converted in a common type. If one argument is a boolean value</span>-<a name="line-340"></a><span class='comment'>-- then it is the boolean type. If a number is involved, the arguments have to converted in numbers,</span>-<a name="line-341"></a><span class='comment'>-- else the string type is the common type.</span>-<a name="line-342"></a><span class='definition'>eqEv</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='conid'>XPathValue</span> <span class='keyglyph'>-></span> <span class='conid'>XPathValue</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>XPathValue</span> <span class='keyglyph'>-></span> <span class='conid'>XPathFilter</span>-<a name="line-343"></a><span class='definition'>eqEv</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>fct</span> <span class='varid'>f</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>XPVBool</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='varid'>g</span>-<a name="line-344"></a> <span class='keyglyph'>=</span> <span class='conid'>XPVBool</span> <span class='layout'>(</span><span class='varid'>f</span> <span class='varop'>`fct`</span> <span class='varid'>xboolean</span> <span class='varid'>cont</span> <span class='varid'>env</span> <span class='keyglyph'>[</span><span class='varid'>g</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-345"></a><span class='definition'>eqEv</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>fct</span> <span class='varid'>f</span> <span class='varid'>g</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>XPVBool</span> <span class='keyword'>_</span><span class='layout'>)</span>-<a name="line-346"></a> <span class='keyglyph'>=</span> <span class='conid'>XPVBool</span> <span class='layout'>(</span><span class='varid'>xboolean</span> <span class='varid'>cont</span> <span class='varid'>env</span> <span class='keyglyph'>[</span><span class='varid'>f</span><span class='keyglyph'>]</span> <span class='varop'>`fct`</span> <span class='varid'>g</span><span class='layout'>)</span>-<a name="line-347"></a>-<a name="line-348"></a><span class='definition'>eqEv</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>fct</span> <span class='varid'>f</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='varid'>g</span>-<a name="line-349"></a> <span class='keyglyph'>=</span> <span class='conid'>XPVBool</span> <span class='layout'>(</span><span class='varid'>f</span> <span class='varop'>`fct`</span> <span class='varid'>xnumber</span> <span class='varid'>cont</span> <span class='varid'>env</span> <span class='keyglyph'>[</span><span class='varid'>g</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-350"></a><span class='definition'>eqEv</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>fct</span> <span class='varid'>f</span> <span class='varid'>g</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='keyword'>_</span><span class='layout'>)</span>-<a name="line-351"></a> <span class='keyglyph'>=</span> <span class='conid'>XPVBool</span> <span class='layout'>(</span><span class='varid'>xnumber</span> <span class='varid'>cont</span> <span class='varid'>env</span> <span class='keyglyph'>[</span><span class='varid'>f</span><span class='keyglyph'>]</span> <span class='varop'>`fct`</span> <span class='varid'>g</span><span class='layout'>)</span>-<a name="line-352"></a>-<a name="line-353"></a><span class='definition'>eqEv</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>fct</span> <span class='varid'>f</span> <span class='varid'>g</span>-<a name="line-354"></a> <span class='keyglyph'>=</span> <span class='conid'>XPVBool</span> <span class='layout'>(</span><span class='varid'>xstring</span> <span class='varid'>cont</span> <span class='varid'>env</span> <span class='keyglyph'>[</span><span class='varid'>f</span><span class='keyglyph'>]</span> <span class='varop'>`fct`</span> <span class='varid'>xstring</span> <span class='varid'>cont</span> <span class='varid'>env</span> <span class='keyglyph'>[</span><span class='varid'>g</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-355"></a>-<a name="line-356"></a>-<a name="line-357"></a><a name="getOpFct"></a><span class='definition'>getOpFct</span> <span class='keyglyph'>::</span> <span class='conid'>Op</span> <span class='keyglyph'>-></span> <span class='conid'>Maybe</span> <span class='layout'>(</span><span class='conid'>XPathValue</span> <span class='keyglyph'>-></span> <span class='conid'>XPathValue</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span><span class='layout'>)</span>-<a name="line-358"></a><span class='definition'>getOpFct</span> <span class='conid'>Eq</span> <span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='layout'>(</span><span class='varop'>==</span><span class='layout'>)</span>-<a name="line-359"></a><span class='definition'>getOpFct</span> <span class='conid'>NEq</span> <span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='layout'>(</span><span class='varop'>/=</span><span class='layout'>)</span>-<a name="line-360"></a><span class='definition'>getOpFct</span> <span class='conid'>Less</span> <span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='layout'>(</span><span class='varop'><</span><span class='layout'>)</span>-<a name="line-361"></a><span class='definition'>getOpFct</span> <span class='conid'>LessEq</span> <span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='layout'>(</span><span class='varop'><=</span><span class='layout'>)</span>-<a name="line-362"></a><span class='definition'>getOpFct</span> <span class='conid'>Greater</span> <span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='layout'>(</span><span class='varop'>></span><span class='layout'>)</span>-<a name="line-363"></a><span class='definition'>getOpFct</span> <span class='conid'>GreaterEq</span> <span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='layout'>(</span><span class='varop'>>=</span><span class='layout'>)</span>-<a name="line-364"></a><span class='definition'>getOpFct</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>Nothing</span>-<a name="line-365"></a>-<a name="line-366"></a>-<a name="line-367"></a>-<a name="line-368"></a><a name="getRoot"></a><span class='comment'>-- |</span>-<a name="line-369"></a><span class='comment'>-- Filter for accessing the root element of a document tree</span>-<a name="line-370"></a><span class='definition'>getRoot</span> <span class='keyglyph'>::</span> <span class='conid'>XPathFilter</span>-<a name="line-371"></a><span class='definition'>getRoot</span> <span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='layout'>(</span><span class='varid'>n</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-372"></a> <span class='keyglyph'>=</span> <span class='conid'>XPVNode</span> <span class='keyglyph'>[</span><span class='varid'>getRoot'</span> <span class='varid'>n</span><span class='keyglyph'>]</span>-<a name="line-373"></a> <span class='keyword'>where</span>-<a name="line-374"></a> <span class='varid'>getRoot'</span> <span class='varid'>tree</span>-<a name="line-375"></a> <span class='keyglyph'>=</span> <span class='keyword'>case</span> <span class='varid'>upNT</span> <span class='varid'>tree</span> <span class='keyword'>of</span>-<a name="line-376"></a> <span class='conid'>Nothing</span> <span class='keyglyph'>-></span> <span class='varid'>tree</span>-<a name="line-377"></a> <span class='conid'>Just</span> <span class='varid'>t</span> <span class='keyglyph'>-></span> <span class='varid'>getRoot'</span> <span class='varid'>t</span>-<a name="line-378"></a><span class='definition'>getRoot</span> <span class='keyword'>_</span>-<a name="line-379"></a> <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"Call to getRoot without a nodeset"</span>-<a name="line-380"></a>-<a name="line-381"></a>-<a name="line-382"></a>-<a name="line-383"></a><a name="getAxisNodes"></a><span class='comment'>-- |</span>-<a name="line-384"></a><span class='comment'>-- Filter for accessing all nodes of a XPath-axis</span>-<a name="line-385"></a><span class='comment'>--</span>-<a name="line-386"></a><span class='comment'>-- * 1.parameter as : axis specifier</span>-<a name="line-387"></a><span class='comment'>--</span>-<a name="line-388"></a><span class='definition'>getAxisNodes</span> <span class='keyglyph'>::</span> <span class='conid'>AxisSpec</span> <span class='keyglyph'>-></span> <span class='conid'>XPathFilter</span>-<a name="line-389"></a><span class='definition'>getAxisNodes</span> <span class='keyword'>as</span> <span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='varid'>ns</span><span class='layout'>)</span>-<a name="line-390"></a> <span class='keyglyph'>=</span> <span class='conid'>XPVNode</span> <span class='layout'>(</span><span class='varid'>concat</span> <span class='varop'>$</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>lookup</span> <span class='keyword'>as</span> <span class='varid'>axisFctL</span><span class='layout'>)</span> <span class='varid'>ns</span><span class='layout'>)</span>-<a name="line-391"></a><span class='definition'>getAxisNodes</span> <span class='keyword'>_</span> <span class='keyword'>_</span>-<a name="line-392"></a> <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"Call to getAxis without a nodeset"</span>-<a name="line-393"></a>-<a name="line-394"></a>-<a name="line-395"></a>-<a name="line-396"></a><a name="axisFctL"></a><span class='comment'>-- |</span>-<a name="line-397"></a><span class='comment'>-- Axis-Function-Table.</span>-<a name="line-398"></a><span class='comment'>-- Each XPath axis-specifier is mapped to the corresponding axis-function</span>-<a name="line-399"></a><span class='definition'>axisFctL</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>AxisSpec</span><span class='layout'>,</span> <span class='layout'>(</span><span class='conid'>NavXmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>NavXmlTrees</span><span class='layout'>)</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-400"></a><span class='definition'>axisFctL</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='conid'>Ancestor</span><span class='layout'>,</span> <span class='varid'>ancestorAxis</span><span class='layout'>)</span>-<a name="line-401"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='conid'>AncestorOrSelf</span><span class='layout'>,</span> <span class='varid'>ancestorOrSelfAxis</span><span class='layout'>)</span>-<a name="line-402"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='conid'>Attribute</span><span class='layout'>,</span> <span class='varid'>attributeAxis</span><span class='layout'>)</span>-<a name="line-403"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='conid'>Child</span><span class='layout'>,</span> <span class='varid'>childAxis</span><span class='layout'>)</span>-<a name="line-404"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='conid'>Descendant</span><span class='layout'>,</span> <span class='varid'>descendantAxis</span><span class='layout'>)</span>-<a name="line-405"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='conid'>DescendantOrSelf</span><span class='layout'>,</span> <span class='varid'>descendantOrSelfAxis</span><span class='layout'>)</span>-<a name="line-406"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='conid'>Following</span><span class='layout'>,</span> <span class='varid'>followingAxis</span><span class='layout'>)</span>-<a name="line-407"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='conid'>FollowingSibling</span><span class='layout'>,</span> <span class='varid'>followingSiblingAxis</span><span class='layout'>)</span>-<a name="line-408"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='conid'>Parent</span><span class='layout'>,</span> <span class='varid'>parentAxis</span><span class='layout'>)</span>-<a name="line-409"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='conid'>Preceding</span><span class='layout'>,</span> <span class='varid'>precedingAxis</span><span class='layout'>)</span>-<a name="line-410"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='conid'>PrecedingSibling</span><span class='layout'>,</span> <span class='varid'>precedingSiblingAxis</span><span class='layout'>)</span>-<a name="line-411"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='conid'>Self</span><span class='layout'>,</span> <span class='varid'>selfAxis</span><span class='layout'>)</span>-<a name="line-412"></a> <span class='keyglyph'>]</span>-<a name="line-413"></a>-<a name="line-414"></a>-<a name="line-415"></a><a name="locPathEval"></a><span class='comment'>-- |</span>-<a name="line-416"></a><span class='comment'>-- evaluates a location path,</span>-<a name="line-417"></a><span class='comment'>-- evaluation of an absolute path starts at the document root, </span>-<a name="line-418"></a><span class='comment'>-- the relative path at the context node</span>-<a name="line-419"></a><span class='definition'>locPathEval</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span> <span class='keyglyph'>-></span> <span class='conid'>LocationPath</span> <span class='keyglyph'>-></span> <span class='conid'>XPathFilter</span>-<a name="line-420"></a><span class='definition'>locPathEval</span> <span class='varid'>env</span> <span class='layout'>(</span><span class='conid'>LocPath</span> <span class='conid'>Rel</span> <span class='varid'>steps</span><span class='layout'>)</span>-<a name="line-421"></a> <span class='keyglyph'>=</span> <span class='varid'>evalSteps</span> <span class='varid'>env</span> <span class='varid'>steps</span>-<a name="line-422"></a><span class='definition'>locPathEval</span> <span class='varid'>env</span> <span class='layout'>(</span><span class='conid'>LocPath</span> <span class='conid'>Abs</span> <span class='varid'>steps</span><span class='layout'>)</span>-<a name="line-423"></a> <span class='keyglyph'>=</span> <span class='varid'>evalSteps</span> <span class='varid'>env</span> <span class='varid'>steps</span> <span class='varop'>.</span> <span class='varid'>getRoot</span>-<a name="line-424"></a>-<a name="line-425"></a>-<a name="line-426"></a>-<a name="line-427"></a>-<a name="line-428"></a><a name="evalSteps"></a><span class='definition'>evalSteps</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>XStep</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>XPathFilter</span>-<a name="line-429"></a><span class='definition'>evalSteps</span> <span class='varid'>env</span> <span class='varid'>steps</span> <span class='varid'>ns</span>-<a name="line-430"></a> <span class='keyglyph'>=</span> <span class='varid'>foldl</span> <span class='layout'>(</span><span class='varid'>evalStep</span> <span class='varid'>env</span><span class='layout'>)</span> <span class='varid'>ns</span> <span class='varid'>steps</span>-<a name="line-431"></a>-<a name="line-432"></a>-<a name="line-433"></a><a name="evalStep"></a><span class='comment'>-- |</span>-<a name="line-434"></a><span class='comment'>-- evaluate a single XPath step</span>-<a name="line-435"></a><span class='comment'>-- namespace-axis is not supported</span>-<a name="line-436"></a><span class='definition'>evalStep</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span> <span class='keyglyph'>-></span> <span class='conid'>XPathValue</span> <span class='keyglyph'>-></span> <span class='conid'>XStep</span> <span class='keyglyph'>-></span> <span class='conid'>XPathValue</span>-<a name="line-437"></a><span class='definition'>evalStep</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='conid'>Step</span> <span class='conid'>Namespace</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"namespace-axis not supported"</span>-<a name="line-438"></a><span class='definition'>evalStep</span> <span class='keyword'>_</span> <span class='varid'>ns</span> <span class='layout'>(</span><span class='conid'>Step</span> <span class='conid'>Attribute</span> <span class='varid'>nt</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>evalAttr</span> <span class='varid'>nt</span> <span class='layout'>(</span><span class='varid'>getAxisNodes</span> <span class='conid'>Attribute</span> <span class='varid'>ns</span><span class='layout'>)</span>-<a name="line-439"></a><span class='definition'>evalStep</span> <span class='varid'>env</span> <span class='varid'>ns</span> <span class='layout'>(</span><span class='conid'>Step</span> <span class='varid'>axisSpec</span> <span class='varid'>nt</span> <span class='varid'>pr</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>evalStep'</span> <span class='varid'>env</span> <span class='varid'>pr</span> <span class='varid'>nt</span> <span class='layout'>(</span><span class='varid'>getAxisNodes</span> <span class='varid'>axisSpec</span> <span class='varid'>ns</span><span class='layout'>)</span>-<a name="line-440"></a>-<a name="line-441"></a>-<a name="line-442"></a>-<a name="line-443"></a><a name="evalAttr"></a><span class='definition'>evalAttr</span> <span class='keyglyph'>::</span> <span class='conid'>NodeTest</span> <span class='keyglyph'>-></span> <span class='conid'>XPathFilter</span>-<a name="line-444"></a><span class='definition'>evalAttr</span> <span class='varid'>nt</span> <span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='varid'>ns</span><span class='layout'>)</span>-<a name="line-445"></a> <span class='keyglyph'>=</span> <span class='conid'>XPVNode</span> <span class='layout'>(</span><span class='varid'>foldr</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>n</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='varid'>evalAttrNodeTest</span> <span class='varid'>nt</span> <span class='varid'>n</span> <span class='varop'>++</span><span class='layout'>)</span><span class='layout'>)</span> <span class='conid'>[]</span> <span class='varid'>ns</span><span class='layout'>)</span>-<a name="line-446"></a><span class='definition'>evalAttr</span> <span class='keyword'>_</span> <span class='keyword'>_</span>-<a name="line-447"></a> <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"Call to evalAttr without a nodeset"</span>-<a name="line-448"></a>-<a name="line-449"></a>-<a name="line-450"></a><a name="evalAttrNodeTest"></a><span class='definition'>evalAttrNodeTest</span> <span class='keyglyph'>::</span> <span class='conid'>NodeTest</span> <span class='keyglyph'>-></span> <span class='conid'>NavXmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>NavXmlTrees</span>-<a name="line-451"></a><span class='definition'>evalAttrNodeTest</span> <span class='layout'>(</span><span class='conid'>NameTest</span> <span class='varid'>qn</span><span class='layout'>)</span> <span class='varid'>ns</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NT</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XAttr</span> <span class='varid'>qn1</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span>-<a name="line-452"></a> <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>uri</span> <span class='varop'>==</span> <span class='varid'>uri1</span> <span class='varop'>&&</span> <span class='varid'>lp</span> <span class='varop'>==</span> <span class='varid'>lp1</span><span class='layout'>)</span>-<a name="line-453"></a> <span class='varop'>||</span> -<a name="line-454"></a> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>uri</span> <span class='varop'>==</span> <span class='str'>""</span> <span class='varop'>||</span> <span class='varid'>uri</span> <span class='varop'>==</span> <span class='varid'>uri1</span><span class='layout'>)</span> <span class='varop'>&&</span> <span class='varid'>lp</span> <span class='varop'>==</span> <span class='str'>"*"</span><span class='layout'>)</span> -<a name="line-455"></a> <span class='layout'>)</span>-<a name="line-456"></a> <span class='keyword'>then</span> <span class='keyglyph'>[</span><span class='varid'>ns</span><span class='keyglyph'>]</span>-<a name="line-457"></a> <span class='keyword'>else</span> <span class='conid'>[]</span>-<a name="line-458"></a> <span class='keyword'>where</span>-<a name="line-459"></a> <span class='varid'>uri</span> <span class='keyglyph'>=</span> <span class='varid'>namespaceUri</span> <span class='varid'>qn</span>-<a name="line-460"></a> <span class='varid'>uri1</span> <span class='keyglyph'>=</span> <span class='varid'>namespaceUri</span> <span class='varid'>qn1</span>-<a name="line-461"></a> <span class='varid'>lp</span> <span class='keyglyph'>=</span> <span class='varid'>localPart</span> <span class='varid'>qn</span>-<a name="line-462"></a> <span class='varid'>lp1</span> <span class='keyglyph'>=</span> <span class='varid'>localPart</span> <span class='varid'>qn1</span>-<a name="line-463"></a>-<a name="line-464"></a><span class='definition'>evalAttrNodeTest</span> <span class='layout'>(</span><span class='conid'>TypeTest</span> <span class='conid'>XPNode</span><span class='layout'>)</span> <span class='varid'>ns</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NT</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XAttr</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span>-<a name="line-465"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>ns</span><span class='keyglyph'>]</span>-<a name="line-466"></a>-<a name="line-467"></a><span class='definition'>evalAttrNodeTest</span> <span class='keyword'>_</span> <span class='keyword'>_</span>-<a name="line-468"></a> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-469"></a>-<a name="line-470"></a><a name="evalStep'"></a><span class='definition'>evalStep'</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>Expr</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>NodeTest</span> <span class='keyglyph'>-></span> <span class='conid'>XPathFilter</span>-<a name="line-471"></a><span class='definition'>evalStep'</span> <span class='varid'>env</span> <span class='varid'>pr</span> <span class='varid'>nt</span>-<a name="line-472"></a> <span class='keyglyph'>=</span> <span class='varid'>evalPredL</span> <span class='varid'>env</span> <span class='varid'>pr</span> <span class='varop'>.</span> <span class='varid'>nodeTest</span> <span class='varid'>nt</span>-<a name="line-473"></a>-<a name="line-474"></a>-<a name="line-475"></a><a name="evalPredL"></a><span class='definition'>evalPredL</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>Expr</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>XPathFilter</span>-<a name="line-476"></a><span class='definition'>evalPredL</span> <span class='varid'>env</span> <span class='varid'>pr</span> <span class='varid'>n</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='varid'>ns</span><span class='layout'>)</span>-<a name="line-477"></a> <span class='keyglyph'>=</span> <span class='varid'>remDups</span> <span class='varop'>$</span> <span class='varid'>foldl</span> <span class='layout'>(</span><span class='varid'>evalPred</span> <span class='varid'>env</span> <span class='num'>1</span> <span class='layout'>(</span><span class='varid'>length</span> <span class='varid'>ns</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varid'>n</span> <span class='varid'>pr</span>-<a name="line-478"></a><span class='definition'>evalPredL</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span>-<a name="line-479"></a> <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"Call to evalPredL without a nodeset"</span>-<a name="line-480"></a>-<a name="line-481"></a>-<a name="line-482"></a><a name="evalPred"></a><span class='definition'>evalPred</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span> <span class='keyglyph'>-></span> <span class='conid'>Int</span> <span class='keyglyph'>-></span> <span class='conid'>Int</span> <span class='keyglyph'>-></span> <span class='conid'>XPathValue</span> <span class='keyglyph'>-></span> <span class='conid'>Expr</span> <span class='keyglyph'>-></span> <span class='conid'>XPathValue</span>-<a name="line-483"></a><span class='definition'>evalPred</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='varid'>ns</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='conid'>[]</span><span class='layout'>)</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='varid'>ns</span>-<a name="line-484"></a><span class='definition'>evalPred</span> <span class='varid'>env</span> <span class='varid'>pos</span> <span class='varid'>len</span> <span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='layout'>(</span><span class='varid'>x</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varid'>ex</span>-<a name="line-485"></a> <span class='keyglyph'>=</span> <span class='keyword'>case</span> <span class='varid'>testPredicate</span> <span class='varid'>env</span> <span class='layout'>(</span><span class='varid'>pos</span><span class='layout'>,</span> <span class='varid'>len</span><span class='layout'>,</span> <span class='varid'>x</span><span class='layout'>)</span> <span class='varid'>ex</span> <span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='keyglyph'>[</span><span class='varid'>x</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyword'>of</span>-<a name="line-486"></a> <span class='varid'>e</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>XPVError</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>e</span>-<a name="line-487"></a> <span class='conid'>XPVBool</span> <span class='conid'>True</span> <span class='keyglyph'>-></span> <span class='conid'>XPVNode</span> <span class='layout'>(</span><span class='varid'>x</span> <span class='conop'>:</span> <span class='varid'>n</span><span class='layout'>)</span>-<a name="line-488"></a> <span class='conid'>XPVBool</span> <span class='conid'>False</span> <span class='keyglyph'>-></span> <span class='varid'>nextNode</span>-<a name="line-489"></a> <span class='keyword'>_</span> <span class='keyglyph'>-></span> <span class='conid'>XPVError</span> <span class='str'>"Value of testPredicate is not a boolean"</span>-<a name="line-490"></a> <span class='keyword'>where</span> <span class='varid'>nextNode</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>evalPred</span> <span class='varid'>env</span> <span class='layout'>(</span><span class='varid'>pos</span><span class='varop'>+</span><span class='num'>1</span><span class='layout'>)</span> <span class='varid'>len</span> <span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='varid'>xs</span><span class='layout'>)</span> <span class='varid'>ex</span>-<a name="line-491"></a><span class='definition'>evalPred</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span>-<a name="line-492"></a> <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"Call to evalPred without a nodeset"</span>-<a name="line-493"></a>-<a name="line-494"></a>-<a name="line-495"></a>-<a name="line-496"></a><a name="testPredicate"></a><span class='definition'>testPredicate</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='conid'>Expr</span> <span class='keyglyph'>-></span> <span class='conid'>XPathFilter</span>-<a name="line-497"></a><span class='definition'>testPredicate</span> <span class='varid'>env</span> <span class='varid'>context</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='varid'>pos</span><span class='layout'>,</span> <span class='keyword'>_</span><span class='layout'>,</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='varid'>ex</span> <span class='varid'>ns</span>-<a name="line-498"></a> <span class='keyglyph'>=</span> <span class='keyword'>case</span> <span class='varid'>evalExpr</span> <span class='varid'>env</span> <span class='varid'>context</span> <span class='varid'>ex</span> <span class='varid'>ns</span> <span class='keyword'>of</span>-<a name="line-499"></a> <span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>XPVBool</span> <span class='layout'>(</span><span class='varid'>f</span> <span class='varop'>==</span> <span class='varid'>fromIntegral</span> <span class='varid'>pos</span><span class='layout'>)</span>-<a name="line-500"></a> <span class='conid'>XPVNumber</span> <span class='keyword'>_</span> <span class='keyglyph'>-></span> <span class='conid'>XPVBool</span> <span class='conid'>False</span>-<a name="line-501"></a> <span class='keyword'>_</span> <span class='keyglyph'>-></span> <span class='varid'>xboolean</span> <span class='varid'>context</span> <span class='varid'>env</span> <span class='keyglyph'>[</span><span class='varid'>evalExpr</span> <span class='varid'>env</span> <span class='varid'>context</span> <span class='varid'>ex</span> <span class='varid'>ns</span><span class='keyglyph'>]</span>-<a name="line-502"></a>-<a name="line-503"></a>-<a name="line-504"></a><span class='comment'>-- |</span>-<a name="line-505"></a><span class='comment'>-- filter for selecting a special type of nodes from the current fragment tree</span>-<a name="line-506"></a><span class='comment'>--</span>-<a name="line-507"></a><span class='comment'>-- the filter works with namespace activated and without namespaces.</span>-<a name="line-508"></a><span class='comment'>-- If namespaces occur in XPath names, the uris are used for matching,</span>-<a name="line-509"></a><span class='comment'>-- else the name prefix</span>-<a name="line-510"></a><span class='comment'>--</span>-<a name="line-511"></a><span class='comment'>-- Bugfix : "*" (or any other name-test) must not match the root node</span>-<a name="line-512"></a>-<a name="line-513"></a><a name="nodeTest"></a><span class='definition'>nodeTest</span> <span class='keyglyph'>::</span> <span class='conid'>NodeTest</span> <span class='keyglyph'>-></span> <span class='conid'>XPathFilter</span>-<a name="line-514"></a>-<a name="line-515"></a><span class='comment'>-- nodeTest (NameTest (QN "" "*" "")) = filterNodes (\n -> isXTagNode n && not (isRootNode n))</span>-<a name="line-516"></a><span class='comment'>-- nodeTest (NameTest (QN _ "*" uri)) = filterNodes (filterd uri)</span>-<a name="line-517"></a>-<a name="line-518"></a><span class='definition'>nodeTest</span> <span class='layout'>(</span><span class='conid'>NameTest</span> <span class='varid'>q</span><span class='layout'>)</span>-<a name="line-519"></a> <span class='keyglyph'>|</span> <span class='varid'>isWildcardTest</span>-<a name="line-520"></a> <span class='keyglyph'>=</span> <span class='varid'>filterNodes</span> <span class='layout'>(</span><span class='varid'>wildcardTest</span> <span class='varid'>q</span><span class='layout'>)</span>-<a name="line-521"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-522"></a> <span class='keyglyph'>=</span> <span class='varid'>filterNodes</span> <span class='layout'>(</span><span class='varid'>nameTest</span> <span class='varid'>q</span><span class='layout'>)</span> <span class='comment'>-- old: (isOfTagNode1 q)</span>-<a name="line-523"></a> <span class='keyword'>where</span>-<a name="line-524"></a> <span class='varid'>isWildcardTest</span> <span class='keyglyph'>=</span> <span class='varid'>localPart</span> <span class='varid'>q</span> <span class='varop'>==</span> <span class='str'>"*"</span>-<a name="line-525"></a>-<a name="line-526"></a><span class='definition'>nodeTest</span> <span class='layout'>(</span><span class='conid'>PI</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>filterNodes</span> <span class='varid'>isPiNode</span>-<a name="line-527"></a> <span class='keyword'>where</span>-<a name="line-528"></a> <span class='varid'>isPiNode</span> <span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='conid'>False</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varop'>==</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>qualifiedName</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getPiName</span>-<a name="line-529"></a>-<a name="line-530"></a><span class='definition'>nodeTest</span> <span class='layout'>(</span><span class='conid'>TypeTest</span> <span class='varid'>t</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>typeTest</span> <span class='varid'>t</span>-<a name="line-531"></a>-<a name="line-532"></a><a name="nameTest"></a><span class='definition'>nameTest</span> <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='conid'>XNode</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-533"></a><span class='definition'>nameTest</span> <span class='varid'>xpName</span> <span class='layout'>(</span><span class='conid'>XTag</span> <span class='varid'>elemName</span> <span class='keyword'>_</span><span class='layout'>)</span>-<a name="line-534"></a> <span class='keyglyph'>|</span> <span class='varid'>namespaceAware</span>-<a name="line-535"></a> <span class='keyglyph'>=</span> <span class='varid'>localPart</span> <span class='varid'>xpName</span> <span class='varop'>==</span> <span class='varid'>localPart</span> <span class='varid'>elemName</span>-<a name="line-536"></a> <span class='varop'>&&</span>-<a name="line-537"></a> <span class='varid'>namespaceUri</span> <span class='varid'>xpName</span> <span class='varop'>==</span> <span class='varid'>namespaceUri</span> <span class='varid'>elemName</span>-<a name="line-538"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-539"></a> <span class='keyglyph'>=</span> <span class='varid'>qualifiedName</span> <span class='varid'>xpName</span> <span class='varop'>==</span> <span class='varid'>qualifiedName</span> <span class='varid'>elemName</span>-<a name="line-540"></a> <span class='keyword'>where</span>-<a name="line-541"></a> <span class='varid'>namespaceAware</span> <span class='keyglyph'>=</span> <span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>null</span> <span class='varop'>.</span> <span class='varid'>namespaceUri</span> <span class='varop'>$</span> <span class='varid'>xpName</span>-<a name="line-542"></a>-<a name="line-543"></a><span class='definition'>nameTest</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-544"></a>-<a name="line-545"></a><a name="wildcardTest"></a><span class='definition'>wildcardTest</span> <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='conid'>XNode</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-546"></a><span class='definition'>wildcardTest</span> <span class='varid'>xpName</span> <span class='layout'>(</span><span class='conid'>XTag</span> <span class='varid'>elemName</span> <span class='keyword'>_</span><span class='layout'>)</span>-<a name="line-547"></a> <span class='keyglyph'>|</span> <span class='varid'>namespaceAware</span>-<a name="line-548"></a> <span class='keyglyph'>=</span> <span class='varid'>namespaceUri</span> <span class='varid'>xpName</span> <span class='varop'>==</span> <span class='varid'>namespaceUri</span> <span class='varid'>elemName</span>-<a name="line-549"></a> <span class='keyglyph'>|</span> <span class='varid'>prefixMatch</span>-<a name="line-550"></a> <span class='keyglyph'>=</span> <span class='varid'>namePrefix</span> <span class='varid'>xpName</span> <span class='varop'>==</span> <span class='varid'>namePrefix</span> <span class='varid'>elemName</span>-<a name="line-551"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-552"></a> <span class='keyglyph'>=</span> <span class='varid'>localPart</span> <span class='varid'>elemName</span> <span class='varop'>/=</span> <span class='varid'>t_root</span> <span class='comment'>-- all names except the root name "/"</span>-<a name="line-553"></a> <span class='keyword'>where</span>-<a name="line-554"></a> <span class='varid'>namespaceAware</span> <span class='keyglyph'>=</span> <span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>null</span> <span class='varop'>.</span> <span class='varid'>namespaceUri</span> <span class='varop'>$</span> <span class='varid'>xpName</span>-<a name="line-555"></a> <span class='varid'>prefixMatch</span> <span class='keyglyph'>=</span> <span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>null</span> <span class='varop'>.</span> <span class='varid'>namePrefix</span> <span class='varop'>$</span> <span class='varid'>xpName</span>-<a name="line-556"></a>-<a name="line-557"></a><span class='definition'>wildcardTest</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-558"></a>-<a name="line-559"></a><a name="typeTest"></a><span class='comment'>-- |</span>-<a name="line-560"></a><span class='comment'>-- tests whether a node is of a special type</span>-<a name="line-561"></a><span class='comment'>--</span>-<a name="line-562"></a><span class='definition'>typeTest</span> <span class='keyglyph'>::</span> <span class='conid'>XPathNode</span> <span class='keyglyph'>-></span> <span class='conid'>XPathFilter</span>-<a name="line-563"></a><span class='definition'>typeTest</span> <span class='conid'>XPNode</span> <span class='keyglyph'>=</span> <span class='varid'>id</span>-<a name="line-564"></a><span class='definition'>typeTest</span> <span class='conid'>XPCommentNode</span> <span class='keyglyph'>=</span> <span class='varid'>filterNodes</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isCmt</span>-<a name="line-565"></a><span class='definition'>typeTest</span> <span class='conid'>XPPINode</span> <span class='keyglyph'>=</span> <span class='varid'>filterNodes</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isPi</span>-<a name="line-566"></a><span class='definition'>typeTest</span> <span class='conid'>XPTextNode</span> <span class='keyglyph'>=</span> <span class='varid'>filterNodes</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isText</span>-<a name="line-567"></a>-<a name="line-568"></a><a name="filterNodes"></a><span class='comment'>-- |</span>-<a name="line-569"></a><span class='comment'>-- the filter selects the NTree part of a navigable tree and</span>-<a name="line-570"></a><span class='comment'>-- tests whether the node is of the necessary type</span>-<a name="line-571"></a><span class='comment'>--</span>-<a name="line-572"></a><span class='comment'>-- * 1.parameter fct : filter function from the XmlTreeFilter module which tests the type of a node</span>-<a name="line-573"></a><span class='comment'>--</span>-<a name="line-574"></a><span class='definition'>filterNodes</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>XNode</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>XPathFilter</span>-<a name="line-575"></a><span class='definition'>filterNodes</span> <span class='varid'>fct</span> <span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='varid'>ns</span><span class='layout'>)</span>-<a name="line-576"></a> <span class='keyglyph'>=</span> <span class='conid'>XPVNode</span> <span class='layout'>(</span><span class='keyglyph'>[</span><span class='varid'>n</span> <span class='keyglyph'>|</span> <span class='varid'>n</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NT</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='varid'>node</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'><-</span> <span class='varid'>ns</span> <span class='layout'>,</span> <span class='varid'>fct</span> <span class='varid'>node</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-577"></a><span class='definition'>filterNodes</span> <span class='keyword'>_</span> <span class='keyword'>_</span>-<a name="line-578"></a> <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"Call to filterNodes without a nodeset"</span>-<a name="line-579"></a>-<a name="line-580"></a><a name="boolEval"></a><span class='comment'>-- |</span>-<a name="line-581"></a><span class='comment'>-- evaluates a boolean expression, the evaluation is non-strict</span>-<a name="line-582"></a><span class='definition'>boolEval</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='conid'>Op</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>Expr</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>XPathFilter</span>-<a name="line-583"></a><span class='definition'>boolEval</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='varid'>op</span> <span class='conid'>[]</span> <span class='keyword'>_</span>-<a name="line-584"></a> <span class='keyglyph'>=</span> <span class='conid'>XPVBool</span> <span class='layout'>(</span><span class='varid'>op</span><span class='varop'>==</span><span class='conid'>And</span><span class='layout'>)</span>-<a name="line-585"></a><span class='definition'>boolEval</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='conid'>Or</span> <span class='layout'>(</span><span class='varid'>x</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span> <span class='varid'>ns</span>-<a name="line-586"></a> <span class='keyglyph'>=</span> <span class='keyword'>case</span> <span class='varid'>xboolean</span> <span class='varid'>cont</span> <span class='varid'>env</span> <span class='keyglyph'>[</span><span class='varid'>evalExpr</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>x</span> <span class='varid'>ns</span><span class='keyglyph'>]</span> <span class='keyword'>of</span>-<a name="line-587"></a> <span class='varid'>e</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>XPVError</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>e</span>-<a name="line-588"></a> <span class='conid'>XPVBool</span> <span class='conid'>True</span> <span class='keyglyph'>-></span> <span class='conid'>XPVBool</span> <span class='conid'>True</span>-<a name="line-589"></a> <span class='keyword'>_</span> <span class='keyglyph'>-></span> <span class='varid'>boolEval</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='conid'>Or</span> <span class='varid'>xs</span> <span class='varid'>ns</span>-<a name="line-590"></a>-<a name="line-591"></a><span class='definition'>boolEval</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='conid'>And</span> <span class='layout'>(</span><span class='varid'>x</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span> <span class='varid'>ns</span>-<a name="line-592"></a> <span class='keyglyph'>=</span> <span class='keyword'>case</span> <span class='varid'>xboolean</span> <span class='varid'>cont</span> <span class='varid'>env</span> <span class='keyglyph'>[</span><span class='varid'>evalExpr</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>x</span> <span class='varid'>ns</span><span class='keyglyph'>]</span> <span class='keyword'>of</span>-<a name="line-593"></a> <span class='varid'>e</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>XPVError</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>e</span>-<a name="line-594"></a> <span class='conid'>XPVBool</span> <span class='conid'>True</span> <span class='keyglyph'>-></span> <span class='varid'>boolEval</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='conid'>And</span> <span class='varid'>xs</span> <span class='varid'>ns</span>-<a name="line-595"></a> <span class='keyword'>_</span> <span class='keyglyph'>-></span> <span class='conid'>XPVBool</span> <span class='conid'>False</span>-<a name="line-596"></a><span class='definition'>boolEval</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span>-<a name="line-597"></a> <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"Call to boolEval with a wrong argument"</span>-<a name="line-598"></a>-<a name="line-599"></a>-<a name="line-600"></a>-<a name="line-601"></a><a name="getVariable"></a><span class='comment'>-- |</span>-<a name="line-602"></a><span class='comment'>-- returns the value of a variable</span>-<a name="line-603"></a><span class='definition'>getVariable</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span> <span class='keyglyph'>-></span> <span class='conid'>VarName</span> <span class='keyglyph'>-></span> <span class='conid'>XPathFilter</span>-<a name="line-604"></a><span class='definition'>getVariable</span> <span class='varid'>env</span> <span class='varid'>name</span> <span class='keyword'>_</span>-<a name="line-605"></a> <span class='keyglyph'>=</span> <span class='keyword'>case</span> <span class='varid'>lookup</span> <span class='varid'>name</span> <span class='layout'>(</span><span class='varid'>getVarTab</span> <span class='varid'>env</span><span class='layout'>)</span> <span class='keyword'>of</span>-<a name="line-606"></a> <span class='conid'>Nothing</span> <span class='keyglyph'>-></span> <span class='conid'>XPVError</span> <span class='layout'>(</span><span class='str'>"Variable: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>name</span> <span class='varop'>++</span> <span class='str'>" not found"</span><span class='layout'>)</span>-<a name="line-607"></a> <span class='conid'>Just</span> <span class='varid'>v</span> <span class='keyglyph'>-></span> <span class='varid'>v</span>-<a name="line-608"></a>-<a name="line-609"></a>-<a name="line-610"></a><a name="fctEval"></a><span class='comment'>-- |</span>-<a name="line-611"></a><span class='comment'>-- evaluates a function, </span>-<a name="line-612"></a><span class='comment'>-- computation is done by 'XPathFct.evalFct' which is defined in "XPathFct".</span>-<a name="line-613"></a><span class='definition'>fctEval</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='conid'>FctName</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>Expr</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>XPathFilter</span>-<a name="line-614"></a><span class='definition'>fctEval</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>name</span> <span class='varid'>args</span>-<a name="line-615"></a> <span class='keyglyph'>=</span> <span class='varid'>evalFct</span> <span class='varid'>name</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varop'>.</span> <span class='varid'>evalExprL</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>args</span>-<a name="line-616"></a>-<a name="line-617"></a>-<a name="line-618"></a>-<a name="line-619"></a><a name="numEval"></a><span class='comment'>-- |</span>-<a name="line-620"></a><span class='comment'>-- evaluates an arithmetic operation.</span>-<a name="line-621"></a><span class='comment'>--</span>-<a name="line-622"></a><span class='comment'>-- 1.parameter f : arithmetic function from "XPathArithmetic"</span>-<a name="line-623"></a><span class='comment'>--</span>-<a name="line-624"></a><span class='definition'>numEval</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Op</span> <span class='keyglyph'>-></span> <span class='conid'>XPathValue</span> <span class='keyglyph'>-></span> <span class='conid'>XPathValue</span> <span class='keyglyph'>-></span> <span class='conid'>XPathValue</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>Op</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>XPathValue</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>XPathValue</span>-<a name="line-625"></a><span class='definition'>numEval</span> <span class='varid'>f</span> <span class='varid'>op</span> <span class='keyglyph'>=</span> <span class='varid'>foldl1</span> <span class='layout'>(</span><span class='varid'>f</span> <span class='varid'>op</span><span class='layout'>)</span>-<a name="line-626"></a>-<a name="line-627"></a>-<a name="line-628"></a>-<a name="line-629"></a><span class='comment'>-- |</span>-<a name="line-630"></a><span class='comment'>-- Convert list of ID attributes from DTD into a space separated 'XPVString'</span>-<a name="line-631"></a><span class='comment'>--</span>-<a name="line-632"></a>-<a name="line-633"></a><a name="idAttributesToXPathValue"></a><span class='definition'>idAttributesToXPathValue</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>XPathValue</span>-<a name="line-634"></a><span class='definition'>idAttributesToXPathValue</span> <span class='varid'>ts</span>-<a name="line-635"></a> <span class='keyglyph'>=</span> <span class='conid'>XPVString</span> <span class='layout'>(</span><span class='varid'>foldr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='keyglyph'>-></span> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>valueOfDTD</span> <span class='varid'>a_value</span> <span class='varid'>n</span> <span class='varop'>++</span> <span class='str'>" "</span><span class='layout'>)</span> <span class='varop'>++</span><span class='layout'>)</span><span class='layout'>)</span> <span class='conid'>[]</span> <span class='varid'>ts</span><span class='layout'>)</span>-<a name="line-636"></a>-<a name="line-637"></a><span class='comment'>-- |</span>-<a name="line-638"></a><span class='comment'>-- Extracts all ID-attributes from the document type definition (DTD).</span>-<a name="line-639"></a><span class='comment'>--</span>-<a name="line-640"></a>-<a name="line-641"></a><a name="getIdAttributes"></a><span class='definition'>getIdAttributes</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span>-<a name="line-642"></a><span class='definition'>getIdAttributes</span>-<a name="line-643"></a> <span class='keyglyph'>=</span> <span class='varid'>runLA</span> <span class='varop'>$</span>-<a name="line-644"></a> <span class='conid'>AT</span><span class='varop'>.</span><span class='varid'>getChildren</span>-<a name="line-645"></a> <span class='varop'>>>></span>-<a name="line-646"></a> <span class='varid'>isDTD</span>-<a name="line-647"></a> <span class='varop'>>>></span>-<a name="line-648"></a> <span class='conid'>AT</span><span class='varop'>.</span><span class='varid'>deep</span> <span class='layout'>(</span><span class='varid'>isIdAttrType</span><span class='layout'>)</span>-<a name="line-649"></a>-<a name="line-650"></a><span class='comment'>-- ----------------------------------------</span>-<a name="line-651"></a>-<a name="line-652"></a><a name="isIdAttrType"></a><span class='definition'>isIdAttrType</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowDTD</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-653"></a><span class='definition'>isIdAttrType</span> <span class='keyglyph'>=</span> <span class='varid'>hasDTDAttrValue</span> <span class='varid'>a_type</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='varid'>k_id</span><span class='layout'>)</span>-<a name="line-654"></a>-<a name="line-655"></a><a name="valueOfDTD"></a><span class='definition'>valueOfDTD</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-656"></a><span class='definition'>valueOfDTD</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='varid'>concat</span> <span class='varop'>.</span> <span class='varid'>runLA</span> <span class='layout'>(</span> <span class='varid'>getDTDAttrl</span> <span class='varop'>>>^</span> <span class='varid'>lookup1</span> <span class='varid'>n</span> <span class='layout'>)</span>-<a name="line-657"></a>-<a name="line-658"></a><a name="hasDTDAttrValue"></a><span class='definition'>hasDTDAttrValue</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowDTD</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-659"></a><span class='definition'>hasDTDAttrValue</span> <span class='varid'>an</span> <span class='varid'>p</span> <span class='keyglyph'>=</span> <span class='varid'>filterA</span> <span class='varop'>$</span>-<a name="line-660"></a> <span class='varid'>getDTDAttrl</span> <span class='varop'>>>></span> <span class='varid'>isA</span> <span class='layout'>(</span><span class='varid'>p</span> <span class='varop'>.</span> <span class='varid'>lookup1</span> <span class='varid'>an</span><span class='layout'>)</span>-<a name="line-661"></a>-<a name="line-662"></a><span class='comment'>-- ------------------------------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-XPath-XPathFct.html
@@ -1,897 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Text.XML.HXT.XPath.XPathFct-<a name="line-5"></a> Copyright : Copyright (C) 2008 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe@fh-wedel.de)-<a name="line-9"></a> Stability : experimental-<a name="line-10"></a> Portability: portable-<a name="line-11"></a>-<a name="line-12"></a> The module contains the core-functions of the XPath function library.-<a name="line-13"></a> All functions are implemented as XFct. Each XFct contains the evaluation context,-<a name="line-14"></a> the variable environment and the function arguments.-<a name="line-15"></a>-<a name="line-16"></a>-}</span>-<a name="line-17"></a>-<a name="line-18"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-19"></a>-<a name="line-20"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathFct</span>-<a name="line-21"></a> <span class='layout'>(</span> <span class='conid'>XFct</span>-<a name="line-22"></a> <span class='layout'>,</span> <span class='varid'>evalFct</span>-<a name="line-23"></a> <span class='layout'>,</span> <span class='varid'>toXValue</span>-<a name="line-24"></a> <span class='layout'>,</span> <span class='varid'>xnumber</span>-<a name="line-25"></a> <span class='layout'>,</span> <span class='varid'>xboolean</span>-<a name="line-26"></a> <span class='layout'>,</span> <span class='varid'>xstring</span>-<a name="line-27"></a> <span class='layout'>,</span> <span class='varid'>getConvFct</span>-<a name="line-28"></a> <span class='layout'>,</span> <span class='varid'>stringValue</span>-<a name="line-29"></a> <span class='layout'>,</span> <span class='varid'>remDups</span>-<a name="line-30"></a> <span class='layout'>,</span> <span class='varid'>isNotInNodeList</span>-<a name="line-31"></a> <span class='layout'>,</span> <span class='varid'>createDocumentOrder</span>-<a name="line-32"></a> <span class='layout'>,</span> <span class='varid'>createDocumentOrderReverse</span>-<a name="line-33"></a> <span class='layout'>,</span> <span class='varid'>getVarTab</span>-<a name="line-34"></a> <span class='layout'>,</span> <span class='varid'>getKeyTab</span>-<a name="line-35"></a> <span class='layout'>)</span>-<a name="line-36"></a><span class='keyword'>where</span>-<a name="line-37"></a>-<a name="line-38"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathDataTypes</span>-<a name="line-39"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathParser</span>-<a name="line-40"></a> <span class='layout'>(</span> <span class='varid'>parseNumber</span>-<a name="line-41"></a> <span class='layout'>)</span>-<a name="line-42"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathArithmetic</span>-<a name="line-43"></a> <span class='layout'>(</span> <span class='varid'>xPathAdd</span>-<a name="line-44"></a> <span class='layout'>)</span>-<a name="line-45"></a>-<a name="line-46"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='varop'>>>></span><span class='layout'>)</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varop'><+></span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-47"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowList</span> <span class='layout'>(</span> <span class='varid'>constA</span> <span class='layout'>)</span>-<a name="line-48"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowIf</span> <span class='layout'>(</span> <span class='varid'>ifA</span> <span class='layout'>)</span>-<a name="line-49"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowTree</span> <span class='layout'>(</span> <span class='varid'>deep</span> <span class='layout'>)</span>-<a name="line-50"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ListArrow</span> <span class='layout'>(</span> <span class='conid'>LA</span><span class='layout'>,</span> <span class='varid'>runLA</span> <span class='layout'>)</span>-<a name="line-51"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlArrow</span>-<a name="line-52"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ReadDocument</span> <span class='layout'>(</span><span class='varid'>readDocument</span><span class='layout'>)</span>-<a name="line-53"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlIOStateArrow</span> <span class='layout'>(</span><span class='varid'>runX</span><span class='layout'>)</span>-<a name="line-54"></a>-<a name="line-55"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>-<a name="line-56"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlNode</span> <span class='keyword'>as</span> <span class='conid'>XN</span>-<a name="line-57"></a>-<a name="line-58"></a><span class='keyword'>import</span> <span class='conid'>System</span><span class='varop'>.</span><span class='conid'>IO</span><span class='varop'>.</span><span class='conid'>Unsafe</span>-<a name="line-59"></a> <span class='layout'>(</span> <span class='varid'>unsafePerformIO</span>-<a name="line-60"></a> <span class='layout'>)</span>-<a name="line-61"></a>-<a name="line-62"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Char</span>-<a name="line-63"></a> <span class='layout'>(</span> <span class='varid'>isAscii</span>-<a name="line-64"></a> <span class='layout'>,</span> <span class='varid'>isUpper</span>-<a name="line-65"></a> <span class='layout'>,</span> <span class='varid'>isLower</span>-<a name="line-66"></a> <span class='layout'>,</span> <span class='varid'>isDigit</span>-<a name="line-67"></a> <span class='layout'>,</span> <span class='varid'>ord</span>-<a name="line-68"></a> <span class='layout'>)</span>-<a name="line-69"></a>-<a name="line-70"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>List</span>-<a name="line-71"></a> <span class='layout'>(</span> <span class='varid'>sortBy</span>-<a name="line-72"></a> <span class='layout'>)</span>-<a name="line-73"></a>-<a name="line-74"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>-<a name="line-75"></a>-<a name="line-76"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>-<a name="line-77"></a>-<a name="line-78"></a><span class='comment'>-- added by Tim Walkenhorst to fix Pos0 vs. Float 0.0 problems...</span>-<a name="line-79"></a>-<a name="line-80"></a><a name="int2XPNumber"></a><span class='definition'>int2XPNumber</span> <span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-></span> <span class='conid'>XPNumber</span>-<a name="line-81"></a><span class='definition'>int2XPNumber</span> <span class='num'>0</span> <span class='keyglyph'>=</span> <span class='conid'>Pos0</span>-<a name="line-82"></a><span class='definition'>int2XPNumber</span> <span class='varid'>i</span> <span class='keyglyph'>=</span> <span class='conid'>Float</span> <span class='varop'>$</span> <span class='varid'>fromIntegral</span> <span class='varid'>i</span>-<a name="line-83"></a>-<a name="line-84"></a><span class='comment'>-- |</span>-<a name="line-85"></a><span class='comment'>-- Type signature for all functions which can be used in the XPath module.</span>-<a name="line-86"></a>-<a name="line-87"></a><a name="XFct"></a><span class='keyword'>type</span> <span class='conid'>XFct</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='conid'>Env</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>XPathValue</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>XPathValue</span><span class='layout'>)</span>-<a name="line-88"></a>-<a name="line-89"></a><span class='comment'>-- |</span>-<a name="line-90"></a><span class='comment'>-- All functions are stored in a function table.</span>-<a name="line-91"></a>-<a name="line-92"></a><a name="FctTable"></a><span class='keyword'>type</span> <span class='conid'>FctTable</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>FctName</span><span class='layout'>,</span> <span class='conid'>FctTableElem</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-93"></a>-<a name="line-94"></a><span class='comment'>-- |</span>-<a name="line-95"></a><span class='comment'>-- Each table entry consists of the function and the expected function arguments.</span>-<a name="line-96"></a>-<a name="line-97"></a><a name="FctTableElem"></a><span class='keyword'>type</span> <span class='conid'>FctTableElem</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>XFct</span><span class='layout'>,</span> <span class='conid'>CheckArgCount</span><span class='layout'>)</span>-<a name="line-98"></a>-<a name="line-99"></a><span class='comment'>-- |</span>-<a name="line-100"></a><span class='comment'>-- Tests whether the number of current function arguments is correct</span>-<a name="line-101"></a>-<a name="line-102"></a><a name="CheckArgCount"></a><span class='keyword'>type</span> <span class='conid'>CheckArgCount</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='keyglyph'>[</span><span class='conid'>XPathValue</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span><span class='layout'>)</span>-<a name="line-103"></a>-<a name="line-104"></a><a name="zero"></a><span class='definition'>zero</span><span class='layout'>,</span> <span class='varid'>zeroOrOne</span><span class='layout'>,</span> <span class='varid'>one</span><span class='layout'>,</span> <span class='varid'>two</span><span class='layout'>,</span> <span class='varid'>twoOrM</span><span class='layout'>,</span> <span class='varid'>twoOrThree</span><span class='layout'>,</span> <span class='varid'>three</span> <span class='keyglyph'>::</span> <span class='conid'>CheckArgCount</span>-<a name="line-105"></a><span class='definition'>zero</span> <span class='varid'>ex</span> <span class='keyglyph'>=</span> <span class='varid'>length</span> <span class='varid'>ex</span> <span class='varop'>==</span> <span class='num'>0</span>-<a name="line-106"></a><a name="zeroOrOne"></a><span class='definition'>zeroOrOne</span> <span class='varid'>ex</span> <span class='keyglyph'>=</span> <span class='varid'>length</span> <span class='varid'>ex</span> <span class='varop'>==</span> <span class='num'>0</span> <span class='varop'>||</span> <span class='varid'>length</span> <span class='varid'>ex</span> <span class='varop'>==</span> <span class='num'>1</span>-<a name="line-107"></a><a name="one"></a><span class='definition'>one</span> <span class='varid'>ex</span> <span class='keyglyph'>=</span> <span class='varid'>length</span> <span class='varid'>ex</span> <span class='varop'>==</span> <span class='num'>1</span>-<a name="line-108"></a><a name="two"></a><span class='definition'>two</span> <span class='varid'>ex</span> <span class='keyglyph'>=</span> <span class='varid'>length</span> <span class='varid'>ex</span> <span class='varop'>==</span> <span class='num'>2</span>-<a name="line-109"></a><a name="twoOrM"></a><span class='definition'>twoOrM</span> <span class='varid'>ex</span> <span class='keyglyph'>=</span> <span class='varid'>length</span> <span class='varid'>ex</span> <span class='varop'>>=</span> <span class='num'>2</span>-<a name="line-110"></a><a name="twoOrThree"></a><span class='definition'>twoOrThree</span> <span class='varid'>ex</span> <span class='keyglyph'>=</span> <span class='varid'>length</span> <span class='varid'>ex</span> <span class='varop'>==</span> <span class='num'>2</span> <span class='varop'>||</span> <span class='varid'>length</span> <span class='varid'>ex</span> <span class='varop'>==</span> <span class='num'>3</span>-<a name="line-111"></a><a name="three"></a><span class='definition'>three</span> <span class='varid'>ex</span> <span class='keyglyph'>=</span> <span class='varid'>length</span> <span class='varid'>ex</span> <span class='varop'>==</span> <span class='num'>3</span>-<a name="line-112"></a>-<a name="line-113"></a>-<a name="line-114"></a><span class='comment'>-- |</span>-<a name="line-115"></a><span class='comment'>-- The core-functions library</span>-<a name="line-116"></a>-<a name="line-117"></a><a name="fctTable"></a><span class='definition'>fctTable</span> <span class='keyglyph'>::</span> <span class='conid'>FctTable</span>-<a name="line-118"></a><span class='definition'>fctTable</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span>-<a name="line-119"></a> <span class='layout'>(</span><span class='str'>"last"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xlast</span><span class='layout'>,</span> <span class='varid'>zero</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>,</span> <span class='comment'>-- nodeset functions</span>-<a name="line-120"></a> <span class='layout'>(</span><span class='str'>"position"</span><span class='layout'>,</span><span class='layout'>(</span><span class='varid'>xposition</span><span class='layout'>,</span> <span class='varid'>zero</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>,</span>-<a name="line-121"></a> <span class='layout'>(</span><span class='str'>"count"</span><span class='layout'>,</span><span class='layout'>(</span><span class='varid'>xcount</span><span class='layout'>,</span> <span class='varid'>one</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>,</span>-<a name="line-122"></a> <span class='layout'>(</span><span class='str'>"id"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xid</span><span class='layout'>,</span> <span class='varid'>one</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>,</span>-<a name="line-123"></a> <span class='layout'>(</span><span class='str'>"local-name"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xlocalName</span><span class='layout'>,</span> <span class='varid'>zeroOrOne</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>,</span>-<a name="line-124"></a> <span class='layout'>(</span><span class='str'>"namespace-uri"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xnamespaceUri</span><span class='layout'>,</span> <span class='varid'>zeroOrOne</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>,</span>-<a name="line-125"></a> <span class='layout'>(</span><span class='str'>"name"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xname</span><span class='layout'>,</span> <span class='varid'>zeroOrOne</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>,</span>-<a name="line-126"></a>-<a name="line-127"></a> <span class='layout'>(</span><span class='str'>"string"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xstring</span><span class='layout'>,</span> <span class='varid'>zeroOrOne</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>,</span> <span class='comment'>-- string functions</span>-<a name="line-128"></a> <span class='layout'>(</span><span class='str'>"concat"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xconcat</span><span class='layout'>,</span> <span class='varid'>twoOrM</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>,</span>-<a name="line-129"></a> <span class='layout'>(</span><span class='str'>"starts-with"</span><span class='layout'>,</span><span class='layout'>(</span><span class='varid'>xstartsWith</span><span class='layout'>,</span> <span class='varid'>two</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>,</span>-<a name="line-130"></a> <span class='layout'>(</span><span class='str'>"contains"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xcontains</span><span class='layout'>,</span> <span class='varid'>two</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>,</span>-<a name="line-131"></a> <span class='layout'>(</span><span class='str'>"substring-before"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsubstringBefore</span><span class='layout'>,</span> <span class='varid'>two</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>,</span>-<a name="line-132"></a> <span class='layout'>(</span><span class='str'>"substring-after"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsubstringAfter</span><span class='layout'>,</span> <span class='varid'>two</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>,</span>-<a name="line-133"></a> <span class='layout'>(</span><span class='str'>"substring"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xsubstring</span><span class='layout'>,</span> <span class='varid'>twoOrThree</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>,</span>-<a name="line-134"></a> <span class='layout'>(</span><span class='str'>"string-length"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xstringLength</span><span class='layout'>,</span> <span class='varid'>zeroOrOne</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>,</span>-<a name="line-135"></a> <span class='layout'>(</span><span class='str'>"normalize-space"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xnormalizeSpace</span><span class='layout'>,</span> <span class='varid'>zeroOrOne</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>,</span>-<a name="line-136"></a> <span class='layout'>(</span><span class='str'>"translate"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xtranslate</span><span class='layout'>,</span> <span class='varid'>three</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>,</span>-<a name="line-137"></a>-<a name="line-138"></a> <span class='layout'>(</span><span class='str'>"boolean"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xboolean</span><span class='layout'>,</span> <span class='varid'>one</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>,</span> <span class='comment'>-- boolean functions</span>-<a name="line-139"></a> <span class='layout'>(</span><span class='str'>"not"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xnot</span><span class='layout'>,</span> <span class='varid'>one</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>,</span>-<a name="line-140"></a> <span class='layout'>(</span><span class='str'>"true"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xtrue</span><span class='layout'>,</span> <span class='varid'>zero</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>,</span>-<a name="line-141"></a> <span class='layout'>(</span><span class='str'>"false"</span><span class='layout'>,</span><span class='layout'>(</span><span class='varid'>xfalse</span><span class='layout'>,</span> <span class='varid'>zero</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>,</span>-<a name="line-142"></a> <span class='layout'>(</span><span class='str'>"lang"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xlang</span><span class='layout'>,</span> <span class='varid'>one</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>,</span>-<a name="line-143"></a>-<a name="line-144"></a> <span class='layout'>(</span><span class='str'>"number"</span><span class='layout'>,</span><span class='layout'>(</span><span class='varid'>xnumber</span><span class='layout'>,</span> <span class='varid'>zeroOrOne</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>,</span> <span class='comment'>-- number functions</span>-<a name="line-145"></a> <span class='layout'>(</span><span class='str'>"sum"</span><span class='layout'>,</span><span class='layout'>(</span><span class='varid'>xsum</span><span class='layout'>,</span> <span class='varid'>one</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>,</span>-<a name="line-146"></a> <span class='layout'>(</span><span class='str'>"floor"</span><span class='layout'>,</span><span class='layout'>(</span><span class='varid'>xfloor</span><span class='layout'>,</span> <span class='varid'>one</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>,</span>-<a name="line-147"></a> <span class='layout'>(</span><span class='str'>"ceiling"</span><span class='layout'>,</span><span class='layout'>(</span><span class='varid'>xceiling</span><span class='layout'>,</span> <span class='varid'>one</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>,</span>-<a name="line-148"></a> <span class='layout'>(</span><span class='str'>"round"</span><span class='layout'>,</span><span class='layout'>(</span><span class='varid'>xround</span><span class='layout'>,</span> <span class='varid'>one</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>,</span>-<a name="line-149"></a> <span class='layout'>(</span><span class='str'>"key"</span><span class='layout'>,</span><span class='layout'>(</span><span class='varid'>xkey</span><span class='layout'>,</span> <span class='varid'>two</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>,</span>-<a name="line-150"></a> <span class='layout'>(</span><span class='str'>"format-number"</span><span class='layout'>,</span><span class='layout'>(</span><span class='varid'>xformatNumber</span><span class='layout'>,</span> <span class='varid'>twoOrThree</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>,</span>-<a name="line-151"></a> -<a name="line-152"></a> <span class='layout'>(</span><span class='str'>"document"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xdocument</span><span class='layout'>,</span> <span class='varid'>one</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>,</span><span class='comment'>-- extension functions for xslt 1.0</span>-<a name="line-153"></a> <span class='layout'>(</span><span class='str'>"generate-id"</span><span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>xgenerateId</span><span class='layout'>,</span> <span class='varid'>zeroOrOne</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-154"></a> -<a name="line-155"></a> <span class='keyglyph'>]</span>-<a name="line-156"></a>-<a name="line-157"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>-<a name="line-158"></a>-<a name="line-159"></a><span class='comment'>-- some helper functions</span>-<a name="line-160"></a>-<a name="line-161"></a><span class='comment'>-- |</span>-<a name="line-162"></a><span class='comment'>-- Returns the table of keys, needed by xslt, from the environment</span>-<a name="line-163"></a>-<a name="line-164"></a><a name="getKeyTab"></a><span class='definition'>getKeyTab</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span> <span class='keyglyph'>-></span> <span class='conid'>KeyTab</span>-<a name="line-165"></a><span class='definition'>getKeyTab</span> <span class='layout'>(</span><span class='keyword'>_</span><span class='layout'>,</span> <span class='varid'>keyTab</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>keyTab</span>-<a name="line-166"></a>-<a name="line-167"></a>-<a name="line-168"></a><span class='comment'>-- |</span>-<a name="line-169"></a><span class='comment'>-- Returns the table of variables from the environment</span>-<a name="line-170"></a>-<a name="line-171"></a><a name="getVarTab"></a><span class='definition'>getVarTab</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span> <span class='keyglyph'>-></span> <span class='conid'>VarTab</span>-<a name="line-172"></a><span class='definition'>getVarTab</span> <span class='layout'>(</span><span class='varid'>varTab</span><span class='layout'>,</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>varTab</span>-<a name="line-173"></a>-<a name="line-174"></a>-<a name="line-175"></a><span class='comment'>-- |</span>-<a name="line-176"></a><span class='comment'>-- Returns the conversion function for the XPath results: string, boolean and number</span>-<a name="line-177"></a><span class='comment'>-- A nodeset can not be converted.</span>-<a name="line-178"></a>-<a name="line-179"></a><a name="getConvFct"></a><span class='definition'>getConvFct</span> <span class='keyglyph'>::</span> <span class='conid'>XPathValue</span> <span class='keyglyph'>-></span> <span class='conid'>Maybe</span> <span class='conid'>XFct</span>-<a name="line-180"></a><span class='definition'>getConvFct</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='varid'>xnumber</span>-<a name="line-181"></a><span class='definition'>getConvFct</span> <span class='layout'>(</span><span class='conid'>XPVString</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='varid'>xstring</span>-<a name="line-182"></a><span class='definition'>getConvFct</span> <span class='layout'>(</span><span class='conid'>XPVBool</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='varid'>xboolean</span>-<a name="line-183"></a><span class='definition'>getConvFct</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>Nothing</span>-<a name="line-184"></a>-<a name="line-185"></a>-<a name="line-186"></a><span class='comment'>-- |</span>-<a name="line-187"></a><span class='comment'>-- Filter for ordering a list of Nodes in document order</span>-<a name="line-188"></a>-<a name="line-189"></a><a name="createDocumentOrder"></a><span class='definition'>createDocumentOrder</span> <span class='keyglyph'>::</span> <span class='conid'>XPathFilter</span>-<a name="line-190"></a><span class='definition'>createDocumentOrder</span> <span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNode</span> <span class='layout'>(</span><span class='varid'>sortBy</span> <span class='varid'>documentOrder</span> <span class='varid'>n</span><span class='layout'>)</span>-<a name="line-191"></a> <span class='keyword'>where</span>-<a name="line-192"></a> <span class='varid'>documentOrder</span> <span class='keyglyph'>::</span> <span class='conid'>NavXmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>NavXmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>Ordering</span>-<a name="line-193"></a> <span class='varid'>documentOrder</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='keyglyph'>=</span> <span class='varid'>compare</span> <span class='layout'>(</span><span class='varid'>documentPos</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>documentPos</span> <span class='varid'>b</span><span class='layout'>)</span>-<a name="line-194"></a>-<a name="line-195"></a><span class='definition'>createDocumentOrder</span> <span class='varid'>e</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>XPVError</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>e</span>-<a name="line-196"></a><span class='definition'>createDocumentOrder</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"Call to createDocumentOrder without a nodeset"</span>-<a name="line-197"></a>-<a name="line-198"></a>-<a name="line-199"></a><span class='comment'>-- |</span>-<a name="line-200"></a><span class='comment'>-- Filter for ordering a list of Nodes in reverse document order</span>-<a name="line-201"></a>-<a name="line-202"></a><a name="createDocumentOrderReverse"></a><span class='definition'>createDocumentOrderReverse</span> <span class='keyglyph'>::</span> <span class='conid'>XPathFilter</span>-<a name="line-203"></a><span class='definition'>createDocumentOrderReverse</span> <span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNode</span> <span class='layout'>(</span><span class='varid'>sortBy</span> <span class='varid'>documentOrderReverse</span> <span class='varid'>n</span><span class='layout'>)</span>-<a name="line-204"></a> <span class='keyword'>where</span>-<a name="line-205"></a> <span class='varid'>documentOrderReverse</span> <span class='keyglyph'>::</span> <span class='conid'>NavXmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>NavXmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>Ordering</span>-<a name="line-206"></a> <span class='varid'>documentOrderReverse</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='keyglyph'>=</span> <span class='varid'>compare</span> <span class='layout'>(</span><span class='varid'>documentPos</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>documentPos</span> <span class='varid'>a</span><span class='layout'>)</span>-<a name="line-207"></a>-<a name="line-208"></a><span class='definition'>createDocumentOrderReverse</span> <span class='varid'>e</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>XPVError</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>e</span>-<a name="line-209"></a><span class='definition'>createDocumentOrderReverse</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"Call to createDocumentOrderReverse without a nodeset"</span>-<a name="line-210"></a>-<a name="line-211"></a><span class='comment'>-- |</span>-<a name="line-212"></a><span class='comment'>-- Filter for removing identical fragment trees in a nodeset</span>-<a name="line-213"></a>-<a name="line-214"></a><a name="remDups"></a><span class='definition'>remDups</span> <span class='keyglyph'>::</span> <span class='conid'>XPathFilter</span>-<a name="line-215"></a><span class='definition'>remDups</span> <span class='varid'>e</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>XPVError</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>e</span>-<a name="line-216"></a><span class='definition'>remDups</span> <span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='conid'>[]</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNode</span> <span class='conid'>[]</span>-<a name="line-217"></a><span class='definition'>remDups</span> <span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='layout'>(</span><span class='varid'>x</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-218"></a> <span class='keyglyph'>|</span> <span class='varid'>isNotInNodeList</span> <span class='varid'>x</span> <span class='varid'>xs</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNode</span> <span class='layout'>(</span><span class='varid'>x</span> <span class='conop'>:</span> <span class='varid'>y</span><span class='layout'>)</span>-<a name="line-219"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>remDups</span> <span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='varid'>xs</span><span class='layout'>)</span>-<a name="line-220"></a> <span class='keyword'>where</span>-<a name="line-221"></a> <span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='varid'>y</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>remDups</span> <span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='varid'>xs</span><span class='layout'>)</span>-<a name="line-222"></a><span class='definition'>remDups</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"Call to remDups without a nodeset"</span>-<a name="line-223"></a>-<a name="line-224"></a><span class='comment'>-- |</span>-<a name="line-225"></a><span class='comment'>-- Check whether a node is not a part of a node list. Needed to implement matching & testing in xslt.</span>-<a name="line-226"></a>-<a name="line-227"></a><a name="isNotInNodeList"></a><span class='definition'>isNotInNodeList</span> <span class='keyglyph'>::</span> <span class='conid'>NavXmlTree</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>NavXmlTree</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-228"></a><span class='definition'>isNotInNodeList</span> <span class='varid'>n</span> <span class='varid'>xs'</span> <span class='keyglyph'>=</span> <span class='varid'>nodeID</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='varop'>`notElem`</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>nodeID</span> <span class='varop'>.</span> <span class='conid'>Just</span><span class='layout'>)</span> <span class='varid'>xs'</span>-<a name="line-229"></a>-<a name="line-230"></a>-<a name="line-231"></a><span class='comment'>-- |</span>-<a name="line-232"></a><span class='comment'>-- calculate an ID for a NODE</span>-<a name="line-233"></a><span class='comment'>--</span>-<a name="line-234"></a><span class='comment'>-- - returns : a list of numbers, one number for each level of the tree</span>-<a name="line-235"></a>-<a name="line-236"></a><span class='comment'>-- Tim Walkenhorst:</span>-<a name="line-237"></a><span class='comment'>-- - Attributes are identified by their QName (they do not have previous siblings)</span>-<a name="line-238"></a><span class='comment'>-- - Elements are identified by their relative position (# of previous siblings)</span>-<a name="line-239"></a>-<a name="line-240"></a><a name="IdPathStep"></a><span class='keyword'>data</span> <span class='conid'>IdPathStep</span> <span class='keyglyph'>=</span> <span class='conid'>IdRoot</span> <span class='conid'>String</span> <span class='keyglyph'>|</span> <span class='conid'>IdPos</span> <span class='conid'>Int</span> <span class='keyglyph'>|</span> <span class='conid'>IdAttr</span> <span class='conid'>QName</span> <span class='keyword'>deriving</span> <span class='layout'>(</span><span class='conid'>Show</span><span class='layout'>,</span> <span class='conid'>Eq</span><span class='layout'>,</span> <span class='conid'>Ord</span><span class='layout'>)</span>-<a name="line-241"></a>-<a name="line-242"></a><a name="nodeID"></a><span class='definition'>nodeID</span> <span class='keyglyph'>::</span> <span class='conid'>Maybe</span> <span class='layout'>(</span><span class='conid'>NavXmlTree</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>IdPathStep</span><span class='keyglyph'>]</span>-<a name="line-243"></a><span class='definition'>nodeID</span> <span class='conid'>Nothing</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-244"></a><span class='definition'>nodeID</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>t</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NT</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='layout'>(</span><span class='conid'>XAttr</span> <span class='varid'>qn</span><span class='layout'>)</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>IdAttr</span> <span class='varid'>qn</span> <span class='conop'>:</span> <span class='varid'>nodeID</span> <span class='layout'>(</span><span class='varid'>upNT</span> <span class='varid'>t</span><span class='layout'>)</span>-<a name="line-245"></a><span class='definition'>nodeID</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>t</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NT</span> <span class='varid'>node</span> <span class='keyword'>_</span> <span class='varid'>prev</span> <span class='keyword'>_</span><span class='layout'>)</span><span class='layout'>)</span> -<a name="line-246"></a> <span class='keyglyph'>|</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isRoot</span> <span class='varid'>node</span>-<a name="line-247"></a> <span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='conid'>IdRoot</span> <span class='layout'>(</span><span class='varid'>getRootId</span> <span class='varid'>node</span><span class='layout'>)</span> -<a name="line-248"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-249"></a> <span class='keyglyph'>=</span> <span class='conid'>IdPos</span> <span class='layout'>(</span><span class='varid'>length</span> <span class='varid'>prev</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>nodeID</span> <span class='layout'>(</span><span class='varid'>upNT</span> <span class='varid'>t</span><span class='layout'>)</span>-<a name="line-250"></a> <span class='keyword'>where</span>-<a name="line-251"></a> <span class='varid'>getRootId</span> <span class='keyglyph'>=</span> <span class='varid'>concat</span> <span class='varop'>.</span> <span class='varid'>runLA</span> <span class='layout'>(</span><span class='varid'>getAttrValue</span> <span class='str'>"rootId"</span><span class='layout'>)</span>-<a name="line-252"></a>-<a name="line-253"></a><span class='comment'>-- |</span>-<a name="line-254"></a><span class='comment'>-- Calculates the position of a node in a tree (in document order)</span>-<a name="line-255"></a>-<a name="line-256"></a><a name="documentPos"></a><span class='definition'>documentPos</span> <span class='keyglyph'>::</span> <span class='conid'>NavXmlTree</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>IdPathStep</span><span class='keyglyph'>]</span>-<a name="line-257"></a><span class='definition'>documentPos</span> <span class='varid'>tree</span> <span class='keyglyph'>=</span> <span class='varid'>reverse</span> <span class='varop'>$</span> <span class='varid'>nodeID</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>tree</span><span class='layout'>)</span>-<a name="line-258"></a>-<a name="line-259"></a>-<a name="line-260"></a><span class='comment'>-- |</span>-<a name="line-261"></a><span class='comment'>-- Evaluates a function.</span>-<a name="line-262"></a><span class='comment'>-- Calculation of the function value is done by looking up the function name in the function table,</span>-<a name="line-263"></a><span class='comment'>-- check the number of arguments and calculate the funtion, if no</span>-<a name="line-264"></a><span class='comment'>-- argument evaluation returns an error.</span>-<a name="line-265"></a><span class='comment'>--</span>-<a name="line-266"></a><span class='comment'>-- - returns : the function value as 'XPathValue'</span>-<a name="line-267"></a>-<a name="line-268"></a><a name="evalFct"></a><span class='definition'>evalFct</span> <span class='keyglyph'>::</span> <span class='conid'>FctName</span> <span class='keyglyph'>-></span> <span class='conid'>Env</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>XPathValue</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>XPathValue</span>-<a name="line-269"></a><span class='definition'>evalFct</span> <span class='varid'>name</span> <span class='varid'>env</span> <span class='varid'>cont</span> <span class='varid'>args</span>-<a name="line-270"></a> <span class='keyglyph'>=</span> <span class='keyword'>case</span> <span class='layout'>(</span><span class='varid'>lookup</span> <span class='varid'>name</span> <span class='varid'>fctTable</span><span class='layout'>)</span> <span class='keyword'>of</span>-<a name="line-271"></a> <span class='conid'>Nothing</span> <span class='keyglyph'>-></span> <span class='conid'>XPVError</span> <span class='layout'>(</span><span class='str'>"Call to undefined function "</span><span class='varop'>++</span> <span class='varid'>name</span><span class='layout'>)</span>-<a name="line-272"></a> <span class='conid'>Just</span> <span class='layout'>(</span><span class='varid'>fct</span><span class='layout'>,</span> <span class='varid'>checkArgCount</span><span class='layout'>)</span> <span class='keyglyph'>-></span>-<a name="line-273"></a> <span class='keyword'>if</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>checkArgCount</span> <span class='varid'>args</span><span class='layout'>)</span>-<a name="line-274"></a> <span class='keyword'>then</span> <span class='conid'>XPVError</span> <span class='layout'>(</span><span class='str'>"Call to function "</span><span class='varop'>++</span> <span class='varid'>name</span> <span class='varop'>++</span> <span class='str'>" with wrong arguments"</span><span class='layout'>)</span>-<a name="line-275"></a> <span class='keyword'>else</span> <span class='keyword'>case</span> <span class='layout'>(</span><span class='varid'>checkArgErrors</span> <span class='varid'>args</span><span class='layout'>)</span> <span class='keyword'>of</span>-<a name="line-276"></a> <span class='conid'>Just</span> <span class='varid'>e</span> <span class='keyglyph'>-></span> <span class='varid'>e</span>-<a name="line-277"></a> <span class='conid'>Nothing</span> <span class='keyglyph'>-></span> <span class='varid'>fct</span> <span class='varid'>cont</span> <span class='varid'>env</span> <span class='varid'>args</span>-<a name="line-278"></a> <span class='keyword'>where</span>-<a name="line-279"></a> <span class='varid'>checkArgErrors</span> <span class='conid'>[]</span> <span class='keyglyph'>=</span> <span class='conid'>Nothing</span>-<a name="line-280"></a> <span class='varid'>checkArgErrors</span> <span class='layout'>(</span><span class='layout'>(</span><span class='conid'>XPVError</span> <span class='varid'>r</span><span class='layout'>)</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>Just</span> <span class='layout'>(</span><span class='conid'>XPVError</span> <span class='varid'>r</span><span class='layout'>)</span>-<a name="line-281"></a> <span class='varid'>checkArgErrors</span> <span class='layout'>(</span><span class='keyword'>_</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>checkArgErrors</span> <span class='varid'>xs</span>-<a name="line-282"></a>-<a name="line-283"></a>-<a name="line-284"></a><span class='comment'>-- |</span>-<a name="line-285"></a><span class='comment'>-- Converts a list of different 'XPathValue' types in a list of one 'XPathValue' type.</span>-<a name="line-286"></a><span class='comment'>--</span>-<a name="line-287"></a><span class='comment'>-- * 1.parameter fct : the conversion function</span>-<a name="line-288"></a><span class='comment'>--</span>-<a name="line-289"></a>-<a name="line-290"></a><a name="toXValue"></a><span class='definition'>toXValue</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='conid'>Env</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>XPathValue</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>XPathValue</span><span class='keyglyph'>]</span>-<a name="line-291"></a><span class='definition'>toXValue</span> <span class='varid'>fct</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='varid'>args</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>fct</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='keyglyph'>[</span><span class='varid'>x</span><span class='keyglyph'>]</span> <span class='keyglyph'>|</span> <span class='varid'>x</span> <span class='keyglyph'><-</span> <span class='varid'>args</span><span class='keyglyph'>]</span>-<a name="line-292"></a>-<a name="line-293"></a>-<a name="line-294"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>-<a name="line-295"></a><span class='comment'>-- core-funktions library</span>-<a name="line-296"></a>-<a name="line-297"></a><span class='comment'>-- nodeset functions</span>-<a name="line-298"></a>-<a name="line-299"></a><span class='comment'>-- |</span>-<a name="line-300"></a><span class='comment'>-- number last(): returns a number equal to the context size from the expression evaluation context</span>-<a name="line-301"></a>-<a name="line-302"></a><a name="xlast"></a><span class='definition'>xlast</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>-<a name="line-303"></a><span class='definition'>xlast</span> <span class='layout'>(</span><span class='keyword'>_</span><span class='layout'>,</span> <span class='varid'>len</span> <span class='layout'>,</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='varop'>$</span> <span class='varid'>int2XPNumber</span> <span class='varid'>len</span>-<a name="line-304"></a>-<a name="line-305"></a>-<a name="line-306"></a><span class='comment'>-- |</span>-<a name="line-307"></a><span class='comment'>-- number position(): returns a number equal to the context position from the expression evaluation context</span>-<a name="line-308"></a>-<a name="line-309"></a><a name="xposition"></a><span class='definition'>xposition</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>-<a name="line-310"></a><span class='definition'>xposition</span> <span class='layout'>(</span><span class='varid'>pos</span><span class='layout'>,</span> <span class='keyword'>_</span> <span class='layout'>,</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='varop'>$</span> <span class='varid'>int2XPNumber</span> <span class='varid'>pos</span>-<a name="line-311"></a>-<a name="line-312"></a>-<a name="line-313"></a><span class='comment'>-- |</span>-<a name="line-314"></a><span class='comment'>-- number count(node-set): returns the number of nodes in the argument node-set</span>-<a name="line-315"></a>-<a name="line-316"></a><a name="xcount"></a><span class='definition'>xcount</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>-<a name="line-317"></a><span class='definition'>xcount</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>[</span><span class='conid'>XPVNode</span> <span class='varid'>ns</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='varop'>$</span> <span class='varid'>int2XPNumber</span> <span class='varop'>$</span> <span class='varid'>length</span> <span class='varid'>ns</span>-<a name="line-318"></a><span class='definition'>xcount</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"Call to function count with wrong arguments"</span>-<a name="line-319"></a>-<a name="line-320"></a>-<a name="line-321"></a><span class='comment'>-- |</span>-<a name="line-322"></a><span class='comment'>-- node-set id(object): selects elements by their unique ID</span>-<a name="line-323"></a>-<a name="line-324"></a><a name="xid"></a><span class='definition'>xid</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>-<a name="line-325"></a><span class='definition'>xid</span> <span class='layout'>(</span><span class='keyword'>_</span><span class='layout'>,</span> <span class='keyword'>_</span><span class='layout'>,</span> <span class='varid'>cn</span><span class='layout'>)</span> <span class='varid'>env</span> <span class='keyglyph'>[</span><span class='conid'>XPVNode</span> <span class='varid'>ns</span><span class='keyglyph'>]</span>-<a name="line-326"></a> <span class='keyglyph'>=</span> <span class='varid'>isInId</span> <span class='layout'>(</span><span class='varid'>getIds</span> <span class='varid'>env</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>strValues</span> <span class='varid'>ns</span><span class='layout'>)</span> <span class='keyglyph'>[</span><span class='varid'>cn</span><span class='keyglyph'>]</span>-<a name="line-327"></a> <span class='keyword'>where</span>-<a name="line-328"></a> <span class='varid'>strValues</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='layout'>(</span><span class='keyglyph'>\</span> <span class='layout'>(</span><span class='conid'>XPVString</span> <span class='varid'>str</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>str</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>stringValue</span><span class='layout'>)</span>-<a name="line-329"></a>-<a name="line-330"></a><span class='definition'>xid</span> <span class='varid'>c</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='keyword'>_</span><span class='layout'>,</span> <span class='keyword'>_</span><span class='layout'>,</span> <span class='varid'>cn</span><span class='layout'>)</span> <span class='varid'>env</span> <span class='varid'>arg</span>-<a name="line-331"></a> <span class='keyglyph'>=</span> <span class='varid'>isInId</span> <span class='layout'>(</span><span class='varid'>getIds</span> <span class='varid'>env</span><span class='layout'>)</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='layout'>(</span><span class='conid'>XPVString</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>words</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>xstring</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='varid'>arg</span><span class='layout'>)</span><span class='layout'>)</span> <span class='keyglyph'>[</span><span class='varid'>cn</span><span class='keyglyph'>]</span>-<a name="line-332"></a>-<a name="line-333"></a>-<a name="line-334"></a>-<a name="line-335"></a><span class='comment'>-- |</span>-<a name="line-336"></a><span class='comment'>-- returns all IDs from the variable environment as a list of strings.</span>-<a name="line-337"></a><span class='comment'>-- the IDs are stored in the variable: idAttr</span>-<a name="line-338"></a>-<a name="line-339"></a><a name="getIds"></a><span class='definition'>getIds</span> <span class='keyglyph'>::</span> <span class='conid'>Env</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span>-<a name="line-340"></a><span class='definition'>getIds</span> <span class='varid'>env</span>-<a name="line-341"></a><span class='comment'>-- hier muss noch auf prefix getestet werden</span>-<a name="line-342"></a> <span class='keyglyph'>=</span> <span class='varid'>words</span> <span class='varop'>$</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='layout'>(</span><span class='conid'>XPVString</span> <span class='varid'>str</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>str</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>lookup</span> <span class='layout'>(</span><span class='str'>""</span><span class='layout'>,</span> <span class='str'>"idAttr"</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>getVarTab</span> <span class='varid'>env</span> -<a name="line-343"></a>-<a name="line-344"></a>-<a name="line-345"></a><a name="isInId"></a><span class='definition'>isInId</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>NavXmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>XPathValue</span>-<a name="line-346"></a><span class='definition'>isInId</span> <span class='varid'>ids</span> <span class='varid'>str</span> <span class='varid'>ns</span>-<a name="line-347"></a> <span class='keyglyph'>=</span> <span class='varid'>remDups</span> <span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='layout'>(</span><span class='varid'>concat</span> <span class='varop'>$</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>filterNS</span> <span class='varid'>ids</span> <span class='varid'>str</span> <span class='varop'>.</span> <span class='varid'>descendantOrSelfAxis</span><span class='layout'>)</span> <span class='varid'>ns</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-348"></a>-<a name="line-349"></a>-<a name="line-350"></a><a name="filterNS"></a><span class='definition'>filterNS</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>NavXmlTrees</span> <span class='keyglyph'>-></span> <span class='conid'>NavXmlTrees</span>-<a name="line-351"></a><span class='definition'>filterNS</span> <span class='varid'>ids</span> <span class='varid'>str</span> <span class='varid'>ns</span>-<a name="line-352"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='varid'>n</span> <span class='keyglyph'>|</span> <span class='varid'>n</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NT</span> <span class='varid'>a</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NTree</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'><-</span> <span class='varid'>ns</span><span class='layout'>,</span> <span class='varid'>or</span> <span class='varop'>$</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>idInIdList</span> <span class='varid'>a</span> <span class='varid'>str</span><span class='layout'>)</span> <span class='varid'>ids</span><span class='keyglyph'>]</span>-<a name="line-353"></a> <span class='keyword'>where</span>-<a name="line-354"></a> <span class='varid'>idInIdList</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-355"></a> <span class='varid'>idInIdList</span> <span class='varid'>al</span> <span class='varid'>str'</span> <span class='varid'>b</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>getValue</span> <span class='varid'>b</span> <span class='varid'>al</span><span class='layout'>)</span> <span class='varop'>`elem`</span> <span class='varid'>str'</span>-<a name="line-356"></a>-<a name="line-357"></a>-<a name="line-358"></a><span class='comment'>-- |</span>-<a name="line-359"></a><span class='comment'>-- string local-name(node-set?):</span>-<a name="line-360"></a><span class='comment'>-- returns the local part of the expanded-name of the node in the argument node-set</span>-<a name="line-361"></a><span class='comment'>-- that is first in document order. </span>-<a name="line-362"></a><span class='comment'>-- If the argument node-set is empty or the first node has no expanded-name, an empty string is returned. </span>-<a name="line-363"></a><span class='comment'>-- If the argument is omitted, it defaults to a node-set with the context node as its only member</span>-<a name="line-364"></a>-<a name="line-365"></a><span class='comment'>-- Bugfix: name(\/) is "" not "\/"!</span>-<a name="line-366"></a>-<a name="line-367"></a><a name="xlocalName"></a><span class='definition'>xlocalName</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>-<a name="line-368"></a><span class='definition'>xlocalName</span> <span class='layout'>(</span><span class='keyword'>_</span><span class='layout'>,</span> <span class='keyword'>_</span><span class='layout'>,</span> <span class='varid'>cn</span><span class='layout'>)</span> <span class='keyword'>_</span> <span class='conid'>[]</span> <span class='keyglyph'>=</span> <span class='conid'>XPVString</span> <span class='layout'>(</span><span class='varid'>xpLocalPartOf</span> <span class='varop'>$</span> <span class='varid'>subtreeNT</span> <span class='varid'>cn</span><span class='layout'>)</span>-<a name="line-369"></a><span class='definition'>xlocalName</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>[</span><span class='conid'>XPVNode</span> <span class='conid'>[]</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='conid'>XPVString</span> <span class='str'>""</span>-<a name="line-370"></a><span class='definition'>xlocalName</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>[</span><span class='conid'>XPVNode</span> <span class='varid'>ns</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='conid'>XPVString</span> <span class='layout'>(</span><span class='varid'>xpLocalPartOf</span> <span class='varop'>$</span> <span class='varid'>subtreeNT</span> <span class='varop'>$</span> <span class='varid'>head</span> <span class='varop'>$</span> <span class='varid'>ns</span><span class='layout'>)</span>-<a name="line-371"></a><span class='definition'>xlocalName</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"Call to function local-name with wrong arguments"</span>-<a name="line-372"></a>-<a name="line-373"></a><span class='comment'>-- |</span>-<a name="line-374"></a><span class='comment'>-- string namespace-uri(node-set?):</span>-<a name="line-375"></a><span class='comment'>-- returns the namespace URI of the expanded-name of the node in the argument node-set</span>-<a name="line-376"></a><span class='comment'>-- that is first in document order.</span>-<a name="line-377"></a><span class='comment'>-- If the argument node-set is empty, the first node has no expanded-name,</span>-<a name="line-378"></a><span class='comment'>-- or the namespace URI of the expanded-name</span>-<a name="line-379"></a><span class='comment'>-- is null, an empty string is returned. If the argument is omitted,</span>-<a name="line-380"></a><span class='comment'>-- it defaults to a node-set with the context node as its only member</span>-<a name="line-381"></a>-<a name="line-382"></a><a name="xnamespaceUri"></a><span class='definition'>xnamespaceUri</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>-<a name="line-383"></a><span class='definition'>xnamespaceUri</span> <span class='layout'>(</span><span class='keyword'>_</span><span class='layout'>,</span> <span class='keyword'>_</span><span class='layout'>,</span> <span class='varid'>cn</span><span class='layout'>)</span> <span class='keyword'>_</span> <span class='conid'>[]</span> <span class='keyglyph'>=</span> <span class='conid'>XPVString</span> <span class='layout'>(</span><span class='varid'>xpNamespaceOf</span> <span class='varop'>$</span> <span class='varid'>subtreeNT</span> <span class='varid'>cn</span><span class='layout'>)</span>-<a name="line-384"></a><span class='definition'>xnamespaceUri</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>[</span><span class='conid'>XPVNode</span> <span class='conid'>[]</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='conid'>XPVString</span> <span class='str'>""</span>-<a name="line-385"></a><span class='definition'>xnamespaceUri</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>[</span><span class='conid'>XPVNode</span> <span class='varid'>ns</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='conid'>XPVString</span> <span class='layout'>(</span><span class='varid'>xpNamespaceOf</span> <span class='varop'>$</span> <span class='varid'>subtreeNT</span> <span class='varop'>$</span> <span class='varid'>head</span> <span class='varop'>$</span> <span class='varid'>ns</span><span class='layout'>)</span>-<a name="line-386"></a><span class='definition'>xnamespaceUri</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"Call to function namespace-uri with wrong arguments"</span>-<a name="line-387"></a>-<a name="line-388"></a>-<a name="line-389"></a><span class='comment'>-- |</span>-<a name="line-390"></a><span class='comment'>-- string name(node-set?): </span>-<a name="line-391"></a><span class='comment'>-- returns a string containing a QName representing the expanded-name of the node</span>-<a name="line-392"></a><span class='comment'>-- in the argument node-set </span>-<a name="line-393"></a><span class='comment'>-- that is first in document order. If the argument node-set is empty or the first</span>-<a name="line-394"></a><span class='comment'>-- node has no expanded-name, </span>-<a name="line-395"></a><span class='comment'>-- an empty string is returned. If the argument it omitted, it defaults to a node-set</span>-<a name="line-396"></a><span class='comment'>-- with the context node as its only member.</span>-<a name="line-397"></a><span class='comment'>-- Tim Walkenhorst: </span>-<a name="line-398"></a>-<a name="line-399"></a><span class='comment'>-- Bugfix: name(\/) is "" not "\/"!</span>-<a name="line-400"></a>-<a name="line-401"></a><a name="xname"></a><span class='definition'>xname</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>-<a name="line-402"></a><span class='definition'>xname</span> <span class='layout'>(</span><span class='keyword'>_</span><span class='layout'>,</span> <span class='keyword'>_</span><span class='layout'>,</span> <span class='varid'>cn</span><span class='layout'>)</span> <span class='keyword'>_</span> <span class='conid'>[]</span> <span class='keyglyph'>=</span> <span class='conid'>XPVString</span> <span class='layout'>(</span><span class='varid'>xpNameOf</span> <span class='varop'>$</span> <span class='varid'>subtreeNT</span> <span class='varid'>cn</span><span class='layout'>)</span>-<a name="line-403"></a><span class='definition'>xname</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>[</span><span class='conid'>XPVNode</span> <span class='conid'>[]</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='conid'>XPVString</span> <span class='str'>""</span>-<a name="line-404"></a><span class='definition'>xname</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>[</span><span class='conid'>XPVNode</span> <span class='varid'>ns</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='conid'>XPVString</span> <span class='layout'>(</span><span class='varid'>xpNameOf</span> <span class='varop'>$</span> <span class='varid'>subtreeNT</span> <span class='varop'>$</span> <span class='varid'>head</span> <span class='varop'>$</span> <span class='varid'>ns</span><span class='layout'>)</span>-<a name="line-405"></a><span class='definition'>xname</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"Call to function name with wrong arguments"</span>-<a name="line-406"></a>-<a name="line-407"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-408"></a><span class='comment'>-- string functions</span>-<a name="line-409"></a>-<a name="line-410"></a><a name="getFirstPos"></a><span class='comment'>-- |</span>-<a name="line-411"></a><span class='comment'>-- some helper functions</span>-<a name="line-412"></a><span class='definition'>getFirstPos</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Int</span>-<a name="line-413"></a><span class='definition'>getFirstPos</span> <span class='varid'>s</span> <span class='varid'>sub</span>-<a name="line-414"></a> <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='layout'>(</span><span class='varid'>getFirstPos'</span> <span class='varid'>s</span> <span class='varid'>sub</span><span class='layout'>)</span> <span class='varop'>></span> <span class='varid'>length</span> <span class='varid'>s</span>-<a name="line-415"></a> <span class='keyword'>then</span> <span class='comment'>-</span><span class='num'>1</span>-<a name="line-416"></a> <span class='keyword'>else</span> <span class='varid'>getFirstPos'</span> <span class='varid'>s</span> <span class='varid'>sub</span>-<a name="line-417"></a>-<a name="line-418"></a><a name="getFirstPos'"></a><span class='definition'>getFirstPos'</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Int</span>-<a name="line-419"></a><span class='definition'>getFirstPos'</span> <span class='conid'>[]</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='num'>2</span>-<a name="line-420"></a><span class='definition'>getFirstPos'</span> <span class='layout'>(</span><span class='varid'>x</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span> <span class='varid'>sub</span>-<a name="line-421"></a> <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>strStartsWith</span> <span class='layout'>(</span><span class='varid'>x</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span> <span class='varid'>sub</span>-<a name="line-422"></a> <span class='keyword'>then</span> <span class='num'>0</span>-<a name="line-423"></a> <span class='keyword'>else</span> <span class='num'>1</span> <span class='varop'>+</span> <span class='varid'>getFirstPos'</span> <span class='varid'>xs</span> <span class='varid'>sub</span>-<a name="line-424"></a>-<a name="line-425"></a><a name="strStartsWith"></a><span class='definition'>strStartsWith</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-426"></a><span class='definition'>strStartsWith</span> <span class='varid'>a</span> <span class='varid'>b</span>-<a name="line-427"></a> <span class='keyglyph'>=</span> <span class='varid'>take</span> <span class='layout'>(</span><span class='varid'>length</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='varid'>a</span> <span class='varop'>==</span> <span class='varid'>b</span>-<a name="line-428"></a>-<a name="line-429"></a>-<a name="line-430"></a>-<a name="line-431"></a><span class='comment'>-- |</span>-<a name="line-432"></a><span class='comment'>-- Returns the string-value of a node,</span>-<a name="line-433"></a><span class='comment'>-- the value of a namespace node is not supported</span>-<a name="line-434"></a>-<a name="line-435"></a><a name="stringValue"></a><span class='definition'>stringValue</span> <span class='keyglyph'>::</span> <span class='conid'>NavXmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XPathValue</span>-<a name="line-436"></a><span class='definition'>stringValue</span> <span class='layout'>(</span><span class='conid'>NT</span> <span class='varid'>a</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span>-<a name="line-437"></a> <span class='keyglyph'>=</span> <span class='conid'>XPVString</span> <span class='varop'>$</span> <span class='varid'>xpTextOf</span> <span class='varid'>a</span>-<a name="line-438"></a>-<a name="line-439"></a><span class='comment'>{--<a name="line-440"></a> textFilter -<a name="line-441"></a> = getXCmt `orElse`-<a name="line-442"></a>-- getXNamespace `orElse`-<a name="line-443"></a> multi isXText-<a name="line-444"></a> -<a name="line-445"></a>-- = (isXTag `guards` multi isXText) `orElse`-<a name="line-446"></a>-- (isXPi `guards` multi isXText) `orElse`-<a name="line-447"></a>-- (isXAttr `guards` multi isXText) `orElse` -<a name="line-448"></a>-- (isXText `guards` multi isXText) `orElse`-<a name="line-449"></a>-- getXCmt-<a name="line-450"></a>-}</span>-<a name="line-451"></a>-<a name="line-452"></a>-<a name="line-453"></a><span class='comment'>-- |</span>-<a name="line-454"></a><span class='comment'>-- string string(object?): converts an object to a string</span>-<a name="line-455"></a>-<a name="line-456"></a><a name="xstring"></a><span class='definition'>xstring</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>-<a name="line-457"></a><span class='definition'>xstring</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>[</span><span class='conid'>XPVNode</span> <span class='conid'>[]</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='conid'>XPVString</span> <span class='str'>""</span>-<a name="line-458"></a><span class='definition'>xstring</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>[</span><span class='conid'>XPVNode</span> <span class='layout'>(</span><span class='varid'>x</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='varid'>stringValue</span> <span class='varid'>x</span>-<a name="line-459"></a><span class='definition'>xstring</span> <span class='layout'>(</span><span class='keyword'>_</span><span class='layout'>,</span> <span class='keyword'>_</span><span class='layout'>,</span> <span class='varid'>cn</span><span class='layout'>)</span> <span class='keyword'>_</span> <span class='conid'>[]</span> <span class='keyglyph'>=</span> <span class='varid'>stringValue</span> <span class='varid'>cn</span>-<a name="line-460"></a>-<a name="line-461"></a><span class='definition'>xstring</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>[</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>a</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-462"></a> <span class='keyglyph'>|</span> <span class='varid'>a</span> <span class='varop'>==</span> <span class='layout'>(</span><span class='varid'>fromInteger</span> <span class='varop'>$</span> <span class='varid'>round</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>XPVString</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>round</span> <span class='varid'>a</span><span class='layout'>)</span><span class='keyglyph'>::</span><span class='conid'>Integer</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-463"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='conid'>XPVString</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>a</span><span class='layout'>)</span>-<a name="line-464"></a><span class='definition'>xstring</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>[</span><span class='conid'>XPVNumber</span> <span class='varid'>s</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='conid'>XPVString</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>s</span><span class='layout'>)</span>-<a name="line-465"></a>-<a name="line-466"></a><span class='definition'>xstring</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>[</span><span class='conid'>XPVBool</span> <span class='conid'>True</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='conid'>XPVString</span> <span class='str'>"true"</span>-<a name="line-467"></a><span class='definition'>xstring</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>[</span><span class='conid'>XPVBool</span> <span class='conid'>False</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='conid'>XPVString</span> <span class='str'>"false"</span>-<a name="line-468"></a>-<a name="line-469"></a><span class='definition'>xstring</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>[</span><span class='conid'>XPVString</span> <span class='varid'>s</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='conid'>XPVString</span> <span class='varid'>s</span>-<a name="line-470"></a><span class='definition'>xstring</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>[</span><span class='conid'>XPVError</span> <span class='varid'>e</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='varid'>e</span>-<a name="line-471"></a><span class='definition'>xstring</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"Call to xstring with a wrong argument"</span>-<a name="line-472"></a>-<a name="line-473"></a>-<a name="line-474"></a>-<a name="line-475"></a><span class='comment'>-- |</span>-<a name="line-476"></a><span class='comment'>-- string concat(string, string, string*): returns the concatenation of its arguments</span>-<a name="line-477"></a>-<a name="line-478"></a><a name="xconcat"></a><span class='definition'>xconcat</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>-<a name="line-479"></a><span class='definition'>xconcat</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='varid'>args</span> -<a name="line-480"></a> <span class='keyglyph'>=</span> <span class='conid'>XPVString</span> <span class='layout'>(</span><span class='varid'>foldr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='layout'>(</span><span class='conid'>XPVString</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='varid'>s</span> <span class='varop'>++</span><span class='layout'>)</span><span class='layout'>)</span> <span class='str'>""</span> <span class='layout'>(</span><span class='varid'>toXValue</span> <span class='varid'>xstring</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='varid'>args</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-481"></a>-<a name="line-482"></a>-<a name="line-483"></a><span class='comment'>-- |</span>-<a name="line-484"></a><span class='comment'>-- boolean starts-with(string, string): </span>-<a name="line-485"></a><span class='comment'>-- returns true if the first argument string starts </span>-<a name="line-486"></a><span class='comment'>-- with the second argument string, and otherwise returns false</span>-<a name="line-487"></a>-<a name="line-488"></a><a name="xstartsWith"></a><span class='definition'>xstartsWith</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>-<a name="line-489"></a><span class='definition'>xstartsWith</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='varid'>args</span>-<a name="line-490"></a> <span class='keyglyph'>=</span> <span class='conid'>XPVBool</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='layout'>(</span><span class='layout'>(</span><span class='conid'>XPVString</span> <span class='varid'>a</span><span class='layout'>)</span><span class='conop'>:</span><span class='keyglyph'>[</span><span class='conid'>XPVString</span> <span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>strStartsWith</span> <span class='varid'>a</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>toXValue</span> <span class='varid'>xstring</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='varid'>args</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-491"></a>-<a name="line-492"></a>-<a name="line-493"></a><span class='comment'>-- |</span>-<a name="line-494"></a><span class='comment'>-- boolean contains(string, string):</span>-<a name="line-495"></a><span class='comment'>-- returns true if the first argument string contains the second argument string,</span>-<a name="line-496"></a><span class='comment'>-- and otherwise returns false</span>-<a name="line-497"></a>-<a name="line-498"></a><a name="xcontains"></a><span class='definition'>xcontains</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>-<a name="line-499"></a><span class='definition'>xcontains</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='varid'>args</span>-<a name="line-500"></a> <span class='keyglyph'>=</span> <span class='conid'>XPVBool</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='layout'>(</span><span class='layout'>(</span><span class='conid'>XPVString</span> <span class='varid'>s</span><span class='layout'>)</span><span class='conop'>:</span><span class='keyglyph'>[</span><span class='conid'>XPVString</span> <span class='varid'>sub</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>getFirstPos</span> <span class='varid'>s</span> <span class='varid'>sub</span> <span class='varop'>/=</span> <span class='comment'>-</span><span class='num'>1</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>toXValue</span> <span class='varid'>xstring</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='varid'>args</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-501"></a>-<a name="line-502"></a>-<a name="line-503"></a><span class='comment'>-- |</span>-<a name="line-504"></a><span class='comment'>-- string substring-before(string, string):</span>-<a name="line-505"></a><span class='comment'>-- returns the substring of the first argument string that precedes the first occurrence of</span>-<a name="line-506"></a><span class='comment'>-- the second argument string </span>-<a name="line-507"></a><span class='comment'>-- in the first argument string, or the empty string if the first argument string does not</span>-<a name="line-508"></a><span class='comment'>-- contain the second argument string</span>-<a name="line-509"></a>-<a name="line-510"></a><a name="xsubstringBefore"></a><span class='definition'>xsubstringBefore</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>-<a name="line-511"></a><span class='definition'>xsubstringBefore</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='varid'>args</span>-<a name="line-512"></a> <span class='keyglyph'>=</span> <span class='varid'>xsubstringBefore'</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='layout'>(</span><span class='varid'>toXValue</span> <span class='varid'>xstring</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='varid'>args</span><span class='layout'>)</span>-<a name="line-513"></a>-<a name="line-514"></a><a name="xsubstringBefore'"></a><span class='definition'>xsubstringBefore'</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>-<a name="line-515"></a><span class='definition'>xsubstringBefore'</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='layout'>(</span><span class='conid'>XPVString</span> <span class='keyword'>_</span><span class='layout'>)</span><span class='conop'>:</span><span class='keyglyph'>[</span><span class='conid'>XPVString</span> <span class='conid'>[]</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>XPVString</span> <span class='str'>""</span>-<a name="line-516"></a><span class='definition'>xsubstringBefore'</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='layout'>(</span><span class='conid'>XPVString</span> <span class='varid'>s</span><span class='layout'>)</span><span class='conop'>:</span><span class='keyglyph'>[</span><span class='conid'>XPVString</span> <span class='varid'>sub</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>XPVString</span> <span class='layout'>(</span><span class='varid'>take</span> <span class='layout'>(</span><span class='varid'>getFirstPos</span> <span class='varid'>s</span> <span class='varid'>sub</span><span class='layout'>)</span> <span class='varid'>s</span><span class='layout'>)</span>-<a name="line-517"></a><span class='definition'>xsubstringBefore'</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"Call to xsubstringBefore' with a wrong argument"</span>-<a name="line-518"></a>-<a name="line-519"></a>-<a name="line-520"></a>-<a name="line-521"></a>-<a name="line-522"></a><span class='comment'>-- |</span>-<a name="line-523"></a><span class='comment'>-- string substring-after(string, string):</span>-<a name="line-524"></a><span class='comment'>-- returns the substring of the first argument string that follows the first occurrence of</span>-<a name="line-525"></a><span class='comment'>-- the second argument string </span>-<a name="line-526"></a><span class='comment'>-- in the first argument string, or the empty string if the first argument string does not</span>-<a name="line-527"></a><span class='comment'>-- contain the second argument string</span>-<a name="line-528"></a>-<a name="line-529"></a><a name="xsubstringAfter"></a><span class='definition'>xsubstringAfter</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>-<a name="line-530"></a><span class='definition'>xsubstringAfter</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='varid'>args</span>-<a name="line-531"></a> <span class='keyglyph'>=</span> <span class='varid'>xsubstringAfter'</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='layout'>(</span><span class='varid'>toXValue</span> <span class='varid'>xstring</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='varid'>args</span><span class='layout'>)</span>-<a name="line-532"></a>-<a name="line-533"></a><a name="xsubstringAfter'"></a><span class='definition'>xsubstringAfter'</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>-<a name="line-534"></a><span class='definition'>xsubstringAfter'</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='layout'>(</span><span class='conid'>XPVString</span> <span class='varid'>s</span><span class='layout'>)</span><span class='conop'>:</span><span class='keyglyph'>[</span><span class='conid'>XPVString</span> <span class='conid'>[]</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-535"></a> <span class='keyglyph'>=</span> <span class='conid'>XPVString</span> <span class='varid'>s</span>-<a name="line-536"></a><span class='definition'>xsubstringAfter'</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='layout'>(</span><span class='conid'>XPVString</span> <span class='varid'>s</span><span class='layout'>)</span><span class='conop'>:</span><span class='keyglyph'>[</span><span class='conid'>XPVString</span> <span class='varid'>sub</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-537"></a> <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>getFirstPos</span> <span class='varid'>s</span> <span class='varid'>sub</span> <span class='varop'>==</span> <span class='comment'>-</span><span class='num'>1</span>-<a name="line-538"></a> <span class='keyword'>then</span> <span class='layout'>(</span><span class='conid'>XPVString</span> <span class='str'>""</span><span class='layout'>)</span>-<a name="line-539"></a> <span class='keyword'>else</span> <span class='conid'>XPVString</span> <span class='layout'>(</span><span class='varid'>drop</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>getFirstPos</span> <span class='varid'>s</span> <span class='varid'>sub</span><span class='layout'>)</span><span class='varop'>+</span><span class='varid'>length</span> <span class='varid'>sub</span><span class='layout'>)</span> <span class='varid'>s</span><span class='layout'>)</span>-<a name="line-540"></a><span class='definition'>xsubstringAfter'</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> -<a name="line-541"></a> <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"Call to xsubstringAfter' with a wrong argument"</span>-<a name="line-542"></a>-<a name="line-543"></a>-<a name="line-544"></a><span class='comment'>-- |</span>-<a name="line-545"></a><span class='comment'>-- string substring(string, number, number?):</span>-<a name="line-546"></a><span class='comment'>-- returns the substring of the first argument starting at the position specified</span>-<a name="line-547"></a><span class='comment'>-- in the second argument </span>-<a name="line-548"></a><span class='comment'>-- with length specified in the third argument. If the third argument is not specified,</span>-<a name="line-549"></a><span class='comment'>-- it returns the substring </span>-<a name="line-550"></a><span class='comment'>-- starting at the position specified in the second argument and continuing to the end of the string.</span>-<a name="line-551"></a>-<a name="line-552"></a><a name="xsubstring"></a><span class='definition'>xsubstring</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>-<a name="line-553"></a><span class='definition'>xsubstring</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='layout'>(</span><span class='varid'>x</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span>-<a name="line-554"></a> <span class='keyglyph'>=</span> <span class='varid'>xsubstring'</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>toXValue</span> <span class='varid'>xstring</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='keyglyph'>[</span><span class='varid'>x</span><span class='keyglyph'>]</span><span class='layout'>)</span><span class='varop'>++</span><span class='layout'>(</span><span class='varid'>toXValue</span> <span class='varid'>xnumber</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='varid'>xs</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-555"></a><span class='definition'>xsubstring</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span>-<a name="line-556"></a> <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"Call to xsubstring with a wrong argument"</span>-<a name="line-557"></a>-<a name="line-558"></a><a name="xsubstring'"></a><span class='definition'>xsubstring'</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>-<a name="line-559"></a><span class='definition'>xsubstring'</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='layout'>(</span><span class='layout'>(</span><span class='conid'>XPVString</span> <span class='varid'>s</span><span class='layout'>)</span><span class='conop'>:</span><span class='varid'>start</span><span class='conop'>:</span><span class='conid'>[]</span><span class='layout'>)</span>-<a name="line-560"></a> <span class='keyglyph'>=</span> <span class='keyword'>case</span> <span class='varid'>xround</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='keyglyph'>[</span><span class='varid'>start</span><span class='keyglyph'>]</span> <span class='keyword'>of</span>-<a name="line-561"></a> <span class='conid'>XPVNumber</span> <span class='conid'>NaN</span> <span class='keyglyph'>-></span> <span class='conid'>XPVString</span> <span class='str'>""</span>-<a name="line-562"></a> <span class='conid'>XPVNumber</span> <span class='conid'>PosInf</span> <span class='keyglyph'>-></span> <span class='conid'>XPVString</span> <span class='str'>""</span>-<a name="line-563"></a> <span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>XPVString</span> <span class='layout'>(</span><span class='varid'>drop</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>round</span> <span class='varid'>f</span><span class='layout'>)</span><span class='comment'>-</span><span class='num'>1</span><span class='layout'>)</span> <span class='varid'>s</span><span class='layout'>)</span>-<a name="line-564"></a> <span class='conid'>XPVNumber</span> <span class='keyword'>_</span> <span class='keyglyph'>-></span> <span class='conid'>XPVString</span> <span class='varid'>s</span>-<a name="line-565"></a> <span class='keyword'>_</span> <span class='keyglyph'>-></span> <span class='conid'>XPVError</span> <span class='str'>"Call to xsubstring' with a wrong argument"</span>-<a name="line-566"></a>-<a name="line-567"></a><span class='definition'>xsubstring'</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='layout'>(</span><span class='layout'>(</span><span class='conid'>XPVString</span> <span class='varid'>s</span><span class='layout'>)</span><span class='conop'>:</span><span class='varid'>start</span><span class='conop'>:</span><span class='keyglyph'>[</span><span class='varid'>end</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-568"></a> <span class='keyglyph'>=</span> <span class='keyword'>case</span> <span class='varid'>xPathAdd</span> <span class='conid'>Plus</span> <span class='layout'>(</span><span class='varid'>xround</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='keyglyph'>[</span><span class='varid'>start</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>xround</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='keyglyph'>[</span><span class='varid'>end</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyword'>of</span>-<a name="line-569"></a> <span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>xsubstring'</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='conid'>XPVString</span> <span class='layout'>(</span><span class='varid'>take</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>round</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='comment'>-</span><span class='num'>1</span><span class='layout'>)</span> <span class='varid'>s</span><span class='layout'>)</span><span class='layout'>)</span><span class='conop'>:</span><span class='keyglyph'>[</span><span class='varid'>start</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-570"></a> <span class='conid'>XPVNumber</span> <span class='conid'>PosInf</span> <span class='keyglyph'>-></span> <span class='varid'>xsubstring'</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='conid'>XPVString</span> <span class='varid'>s</span><span class='layout'>)</span><span class='conop'>:</span><span class='keyglyph'>[</span><span class='varid'>start</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-571"></a> <span class='conid'>XPVNumber</span> <span class='keyword'>_</span> <span class='keyglyph'>-></span> <span class='conid'>XPVString</span> <span class='str'>""</span>-<a name="line-572"></a> <span class='keyword'>_</span> <span class='keyglyph'>-></span> <span class='conid'>XPVError</span> <span class='str'>"Call to xsubstring' with a wrong argument"</span>-<a name="line-573"></a><span class='definition'>xsubstring'</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span>-<a name="line-574"></a> <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"Call to xsubstring' with a wrong argument"</span>-<a name="line-575"></a>-<a name="line-576"></a>-<a name="line-577"></a><span class='comment'>-- |</span>-<a name="line-578"></a><span class='comment'>-- number string-length(string?):</span>-<a name="line-579"></a><span class='comment'>-- returns the number of characters in the string. If the argument is omitted,</span>-<a name="line-580"></a><span class='comment'>-- it defaults to the context node </span>-<a name="line-581"></a><span class='comment'>-- converted to a string, in other words the string-value of the context node.</span>-<a name="line-582"></a>-<a name="line-583"></a><a name="xstringLength"></a><span class='definition'>xstringLength</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>-<a name="line-584"></a><span class='definition'>xstringLength</span> <span class='varid'>c</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='keyword'>_</span><span class='layout'>,</span> <span class='keyword'>_</span><span class='layout'>,</span> <span class='varid'>cn</span><span class='layout'>)</span> <span class='varid'>env</span> <span class='conid'>[]</span>-<a name="line-585"></a> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='layout'>(</span><span class='varid'>fromIntegral</span> <span class='varop'>$</span> <span class='varid'>length</span> <span class='varid'>s</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-586"></a> <span class='keyword'>where</span> <span class='layout'>(</span><span class='conid'>XPVString</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>xstring</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='keyglyph'>[</span><span class='conid'>XPVNode</span> <span class='keyglyph'>[</span><span class='varid'>cn</span><span class='keyglyph'>]</span><span class='keyglyph'>]</span>-<a name="line-587"></a><span class='definition'>xstringLength</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='varid'>args</span>-<a name="line-588"></a> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='varop'>$</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='keyglyph'>[</span><span class='conid'>XPVString</span> <span class='varid'>s</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='varid'>int2XPNumber</span> <span class='varop'>$</span> <span class='varid'>length</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>toXValue</span> <span class='varid'>xstring</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='varid'>args</span><span class='layout'>)</span>-<a name="line-589"></a>-<a name="line-590"></a>-<a name="line-591"></a><span class='comment'>-- |</span>-<a name="line-592"></a><span class='comment'>-- string normalize-space(string?):</span>-<a name="line-593"></a><span class='comment'>-- returns the argument string with whitespace normalized by stripping leading</span>-<a name="line-594"></a><span class='comment'>-- and trailing whitespace and replacing sequences </span>-<a name="line-595"></a><span class='comment'>-- of whitespace characters by a single space. If the argument is omitted,</span>-<a name="line-596"></a><span class='comment'>-- it defaults to the context node converted to a string, </span>-<a name="line-597"></a><span class='comment'>-- in other words the string-value of the context node.</span>-<a name="line-598"></a><span class='comment'>-- The string is parsed by a function parseStr from XPathParser module. <-- No longer! Tim Walkenhorst</span>-<a name="line-599"></a>-<a name="line-600"></a><a name="xnormalizeSpace"></a><span class='definition'>xnormalizeSpace</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>-<a name="line-601"></a><span class='definition'>xnormalizeSpace</span> <span class='varid'>c</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='keyword'>_</span><span class='layout'>,</span> <span class='keyword'>_</span><span class='layout'>,</span> <span class='varid'>cn</span><span class='layout'>)</span> <span class='varid'>env</span> <span class='conid'>[]</span>-<a name="line-602"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='layout'>(</span><span class='conid'>XPVString</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>XPVString</span> <span class='varop'>$</span> <span class='varid'>normStr</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>xstring</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='keyglyph'>[</span><span class='conid'>XPVNode</span> <span class='keyglyph'>[</span><span class='varid'>cn</span><span class='keyglyph'>]</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-603"></a><span class='definition'>xnormalizeSpace</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='varid'>args</span>-<a name="line-604"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='keyglyph'>[</span><span class='conid'>XPVString</span> <span class='varid'>s</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>XPVString</span> <span class='varop'>$</span> <span class='varid'>normStr</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>toXValue</span> <span class='varid'>xstring</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='varid'>args</span><span class='layout'>)</span>-<a name="line-605"></a>-<a name="line-606"></a><a name="normStr"></a><span class='comment'>-- Tim Walkenhorst normStr replaces the use of parseStr...</span>-<a name="line-607"></a><span class='definition'>normStr</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-608"></a><span class='definition'>normStr</span> <span class='keyglyph'>=</span> <span class='varid'>unwords</span> <span class='varop'>.</span> <span class='varid'>words</span>-<a name="line-609"></a>-<a name="line-610"></a><a name="xtranslate"></a><span class='comment'>-- |</span>-<a name="line-611"></a><span class='comment'>-- string translate(string, string, string):</span>-<a name="line-612"></a><span class='comment'>-- returns the first argument string with occurrences of characters in the second argument string replaced by the character at </span>-<a name="line-613"></a><span class='comment'>-- the corresponding position in the third argument string</span>-<a name="line-614"></a><span class='definition'>xtranslate</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>-<a name="line-615"></a><span class='definition'>xtranslate</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='varid'>args</span>-<a name="line-616"></a> <span class='keyglyph'>=</span> <span class='varid'>xtranslate'</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='layout'>(</span><span class='varid'>toXValue</span> <span class='varid'>xstring</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='varid'>args</span><span class='layout'>)</span>-<a name="line-617"></a>-<a name="line-618"></a><a name="xtranslate'"></a><span class='definition'>xtranslate'</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>-<a name="line-619"></a><span class='definition'>xtranslate'</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='layout'>(</span><span class='layout'>(</span><span class='conid'>XPVString</span> <span class='varid'>a</span><span class='layout'>)</span><span class='conop'>:</span><span class='layout'>(</span><span class='conid'>XPVString</span> <span class='varid'>b</span><span class='layout'>)</span><span class='conop'>:</span><span class='keyglyph'>[</span><span class='conid'>XPVString</span> <span class='varid'>c</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-620"></a> <span class='keyglyph'>=</span> <span class='conid'>XPVString</span> <span class='layout'>(</span><span class='varid'>replace</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span><span class='layout'>)</span>-<a name="line-621"></a><span class='definition'>xtranslate'</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span>-<a name="line-622"></a> <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"Call to xtranslate' with a wrong argument"</span>-<a name="line-623"></a>-<a name="line-624"></a><a name="replace"></a><span class='definition'>replace</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-625"></a><span class='definition'>replace</span> <span class='varid'>str</span> <span class='conid'>[]</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='varid'>str</span>-<a name="line-626"></a>-<a name="line-627"></a><span class='comment'>-- remove all characters, if there is no corresponding character in the third argument</span>-<a name="line-628"></a><span class='definition'>replace</span> <span class='varid'>str</span> <span class='layout'>(</span><span class='varid'>x</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span> <span class='conid'>[]</span>-<a name="line-629"></a> <span class='keyglyph'>=</span> <span class='varid'>replace</span> <span class='keyglyph'>[</span> <span class='varid'>s</span> <span class='keyglyph'>|</span> <span class='varid'>s</span> <span class='keyglyph'><-</span> <span class='varid'>str</span><span class='layout'>,</span> <span class='varid'>x</span> <span class='varop'>/=</span> <span class='varid'>s</span><span class='keyglyph'>]</span> <span class='varid'>xs</span> <span class='conid'>[]</span>-<a name="line-630"></a>-<a name="line-631"></a><span class='definition'>replace</span> <span class='varid'>str</span> <span class='layout'>(</span><span class='varid'>x</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>y</span><span class='conop'>:</span><span class='varid'>ys</span><span class='layout'>)</span>-<a name="line-632"></a> <span class='keyglyph'>=</span> <span class='varid'>replace</span> <span class='layout'>(</span><span class='varid'>rep</span> <span class='varid'>x</span> <span class='varid'>y</span> <span class='varid'>str</span><span class='layout'>)</span> <span class='varid'>xs</span> <span class='varid'>ys</span>-<a name="line-633"></a> <span class='keyword'>where</span> <span class='comment'>-- replace all characters in the first argument</span>-<a name="line-634"></a> <span class='varid'>rep</span> <span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-></span> <span class='conid'>Char</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-635"></a> <span class='varid'>rep</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='keyglyph'>=</span> <span class='varid'>foldr</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>c</span> <span class='keyglyph'>-></span> <span class='keyword'>if</span> <span class='varid'>c</span> <span class='varop'>==</span> <span class='varid'>a</span> <span class='keyword'>then</span> <span class='layout'>(</span><span class='varid'>b</span><span class='conop'>:</span><span class='layout'>)</span> <span class='keyword'>else</span> <span class='layout'>(</span><span class='varid'>c</span><span class='conop'>:</span><span class='layout'>)</span><span class='layout'>)</span> <span class='str'>""</span>-<a name="line-636"></a>-<a name="line-637"></a>-<a name="line-638"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-639"></a><span class='comment'>-- boolean functions</span>-<a name="line-640"></a>-<a name="line-641"></a><a name="xboolean"></a><span class='comment'>-- |</span>-<a name="line-642"></a><span class='comment'>-- boolean boolean(object): converts its argument to a boolean value</span>-<a name="line-643"></a><span class='definition'>xboolean</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>-<a name="line-644"></a><span class='definition'>xboolean</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>[</span><span class='conid'>XPVNumber</span> <span class='varid'>a</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='conid'>XPVBool</span> <span class='layout'>(</span><span class='varid'>a</span><span class='varop'>/=</span> <span class='conid'>NaN</span> <span class='varop'>&&</span> <span class='varid'>a</span><span class='varop'>/=</span> <span class='conid'>Neg0</span> <span class='varop'>&&</span> <span class='varid'>a</span><span class='varop'>/=</span> <span class='conid'>Pos0</span><span class='layout'>)</span>-<a name="line-645"></a><span class='definition'>xboolean</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>[</span><span class='conid'>XPVString</span> <span class='varid'>s</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='conid'>XPVBool</span> <span class='layout'>(</span><span class='varid'>length</span> <span class='varid'>s</span> <span class='varop'>/=</span> <span class='num'>0</span><span class='layout'>)</span>-<a name="line-646"></a><span class='definition'>xboolean</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>[</span><span class='conid'>XPVBool</span> <span class='varid'>b</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='conid'>XPVBool</span> <span class='varid'>b</span>-<a name="line-647"></a><span class='definition'>xboolean</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>[</span><span class='conid'>XPVNode</span> <span class='varid'>ns</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='conid'>XPVBool</span> <span class='layout'>(</span><span class='varid'>length</span> <span class='varid'>ns</span> <span class='varop'>></span> <span class='num'>0</span><span class='layout'>)</span>-<a name="line-648"></a><span class='definition'>xboolean</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>[</span><span class='conid'>XPVError</span> <span class='varid'>e</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='varid'>e</span>-<a name="line-649"></a><span class='definition'>xboolean</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"Call to xboolean with a wrong argument"</span>-<a name="line-650"></a>-<a name="line-651"></a>-<a name="line-652"></a><a name="xnot"></a><span class='comment'>-- |</span>-<a name="line-653"></a><span class='comment'>-- boolean not(boolean): returns true if its argument is false, and false otherwise</span>-<a name="line-654"></a><span class='definition'>xnot</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>-<a name="line-655"></a><span class='definition'>xnot</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='varid'>args</span>-<a name="line-656"></a> <span class='keyglyph'>=</span> <span class='conid'>XPVBool</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='layout'>(</span><span class='conid'>XPVBool</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>not</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>xboolean</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='varid'>args</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-657"></a>-<a name="line-658"></a>-<a name="line-659"></a><a name="xtrue"></a><span class='comment'>-- |</span>-<a name="line-660"></a><span class='comment'>-- boolean true(): returns true</span>-<a name="line-661"></a><span class='definition'>xtrue</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>-<a name="line-662"></a><span class='definition'>xtrue</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>XPVBool</span> <span class='conid'>True</span>-<a name="line-663"></a>-<a name="line-664"></a>-<a name="line-665"></a><a name="xfalse"></a><span class='comment'>-- |</span>-<a name="line-666"></a><span class='comment'>-- boolean false(): returns false</span>-<a name="line-667"></a><span class='definition'>xfalse</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>-<a name="line-668"></a><span class='definition'>xfalse</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>XPVBool</span> <span class='conid'>False</span>-<a name="line-669"></a>-<a name="line-670"></a>-<a name="line-671"></a><span class='comment'>-- |</span>-<a name="line-672"></a><span class='comment'>-- boolean lang(string):</span>-<a name="line-673"></a><span class='comment'>-- returns true or false depending on whether the language of the context node as specified by xml:lang attributes </span>-<a name="line-674"></a><span class='comment'>-- is the same as or is a sublanguage of the language specified by the argument string</span>-<a name="line-675"></a>-<a name="line-676"></a><a name="xlang"></a><span class='comment'>-- function needs namespaces which are not supported by the toolbox</span>-<a name="line-677"></a><span class='definition'>xlang</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>-<a name="line-678"></a><span class='definition'>xlang</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span>-<a name="line-679"></a> <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"namespaces are not supported"</span>-<a name="line-680"></a>-<a name="line-681"></a><span class='comment'>-- xlang c env args</span>-<a name="line-682"></a><span class='comment'>-- = (\ (_, _, cn) [XPVString s] -> ...) c (toXValue xstring c env args)</span>-<a name="line-683"></a>-<a name="line-684"></a>-<a name="line-685"></a>-<a name="line-686"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-687"></a><span class='comment'>-- number functions</span>-<a name="line-688"></a>-<a name="line-689"></a><a name="xnumber"></a><span class='comment'>-- |</span>-<a name="line-690"></a><span class='comment'>-- number number(object?): converts its argument to a number</span>-<a name="line-691"></a><span class='definition'>xnumber</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>-<a name="line-692"></a><span class='definition'>xnumber</span> <span class='varid'>c</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='keyword'>_</span><span class='layout'>,</span> <span class='keyword'>_</span><span class='layout'>,</span> <span class='varid'>cn</span><span class='layout'>)</span> <span class='varid'>env</span> <span class='conid'>[]</span>-<a name="line-693"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='layout'>(</span><span class='conid'>XPVString</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>parseNumber</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>xstring</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='keyglyph'>[</span><span class='conid'>XPVNode</span> <span class='keyglyph'>[</span><span class='varid'>cn</span><span class='keyglyph'>]</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-694"></a><span class='definition'>xnumber</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='keyglyph'>[</span><span class='varid'>n</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='keyword'>_</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-695"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='layout'>(</span><span class='conid'>XPVString</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>parseNumber</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>xstring</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='keyglyph'>[</span><span class='varid'>n</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-696"></a>-<a name="line-697"></a><span class='definition'>xnumber</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>[</span><span class='conid'>XPVBool</span> <span class='varid'>b</span><span class='keyglyph'>]</span>-<a name="line-698"></a> <span class='keyglyph'>|</span> <span class='varid'>b</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='num'>1</span><span class='layout'>)</span>-<a name="line-699"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>Pos0</span>-<a name="line-700"></a>-<a name="line-701"></a><span class='definition'>xnumber</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>[</span><span class='conid'>XPVString</span> <span class='varid'>s</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='varid'>parseNumber</span> <span class='varid'>s</span>-<a name="line-702"></a><span class='definition'>xnumber</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>[</span><span class='conid'>XPVNumber</span> <span class='varid'>a</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='varid'>a</span>-<a name="line-703"></a><span class='definition'>xnumber</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>[</span><span class='conid'>XPVError</span> <span class='varid'>e</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='varid'>e</span>-<a name="line-704"></a><span class='definition'>xnumber</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"Call to xnumber with a wrong argument"</span>-<a name="line-705"></a>-<a name="line-706"></a>-<a name="line-707"></a><a name="xsum"></a><span class='comment'>-- |</span>-<a name="line-708"></a><span class='comment'>-- number sum(node-set): </span>-<a name="line-709"></a><span class='comment'>-- returns the sum, for each node in the argument node-set, of the result of </span>-<a name="line-710"></a><span class='comment'>-- converting the string-values of the node to a number</span>-<a name="line-711"></a><span class='definition'>xsum</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>-<a name="line-712"></a><span class='definition'>xsum</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>[</span><span class='conid'>XPVNode</span> <span class='conid'>[]</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>NaN</span>-<a name="line-713"></a><span class='definition'>xsum</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='keyglyph'>[</span><span class='conid'>XPVNode</span> <span class='varid'>ns</span><span class='keyglyph'>]</span>-<a name="line-714"></a> <span class='keyglyph'>=</span> <span class='varid'>foldr1</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='varid'>xPathAdd</span> <span class='conid'>Plus</span> <span class='varid'>a</span> <span class='varid'>b</span><span class='layout'>)</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>getValues</span> <span class='varid'>ns</span><span class='layout'>)</span>-<a name="line-715"></a> <span class='keyword'>where</span>-<a name="line-716"></a> <span class='varid'>getValues</span> <span class='keyglyph'>::</span> <span class='conid'>NodeSet</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>XPathValue</span><span class='keyglyph'>]</span>-<a name="line-717"></a> <span class='varid'>getValues</span> <span class='keyglyph'>=</span> <span class='varid'>foldr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='keyglyph'>[</span><span class='varid'>xnumber</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='varop'>$</span> <span class='keyglyph'>[</span><span class='varid'>stringValue</span> <span class='varid'>n</span><span class='keyglyph'>]</span> <span class='keyglyph'>]</span> <span class='varop'>++</span><span class='layout'>)</span> <span class='layout'>)</span> <span class='conid'>[]</span>-<a name="line-718"></a>-<a name="line-719"></a><span class='definition'>xsum</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span>-<a name="line-720"></a> <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"The value of the function sum is not a nodeset"</span>-<a name="line-721"></a>-<a name="line-722"></a><a name="xfloor"></a><span class='comment'>-- |</span>-<a name="line-723"></a><span class='comment'>-- number floor(number): returns the largest (closest to positive infinity) number that is not greater </span>-<a name="line-724"></a><span class='comment'>-- than the argument and that is an integer</span>-<a name="line-725"></a><span class='definition'>xfloor</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>-<a name="line-726"></a><span class='definition'>xfloor</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='varid'>args</span>-<a name="line-727"></a> <span class='keyglyph'>=</span> <span class='varid'>xfloor'</span> <span class='layout'>(</span><span class='varid'>toXValue</span> <span class='varid'>xnumber</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='varid'>args</span><span class='layout'>)</span>-<a name="line-728"></a> <span class='keyword'>where</span>-<a name="line-729"></a> <span class='varid'>xfloor'</span> <span class='keyglyph'>[</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>f</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-730"></a> <span class='keyglyph'>|</span> <span class='varid'>f</span> <span class='varop'>></span> <span class='num'>0</span> <span class='varop'>&&</span> <span class='varid'>f</span> <span class='varop'><</span> <span class='num'>1</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>Pos0</span>-<a name="line-731"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='layout'>(</span><span class='varid'>fromInteger</span> <span class='varop'>$</span> <span class='varid'>floor</span> <span class='varid'>f</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-732"></a> <span class='varid'>xfloor'</span> <span class='keyglyph'>[</span><span class='conid'>XPVNumber</span> <span class='varid'>a</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='varid'>a</span>-<a name="line-733"></a> <span class='varid'>xfloor'</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"Call to xfloor' without a number"</span>-<a name="line-734"></a>-<a name="line-735"></a>-<a name="line-736"></a><a name="xceiling"></a><span class='comment'>-- |</span>-<a name="line-737"></a><span class='comment'>-- number ceiling(number): returns the smallest (closest to negative infinity) number that is not less </span>-<a name="line-738"></a><span class='comment'>-- than the argument and that is an integer</span>-<a name="line-739"></a><span class='definition'>xceiling</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>-<a name="line-740"></a><span class='definition'>xceiling</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='varid'>args</span>-<a name="line-741"></a> <span class='keyglyph'>=</span> <span class='varid'>xceiling'</span> <span class='layout'>(</span><span class='varid'>toXValue</span> <span class='varid'>xnumber</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='varid'>args</span><span class='layout'>)</span>-<a name="line-742"></a> <span class='keyword'>where</span>-<a name="line-743"></a> <span class='varid'>xceiling'</span> <span class='keyglyph'>[</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>f</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-744"></a> <span class='keyglyph'>|</span> <span class='varid'>f</span> <span class='varop'><</span> <span class='num'>0</span> <span class='varop'>&&</span> <span class='varid'>f</span> <span class='varop'>></span> <span class='comment'>-</span><span class='num'>1</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>Pos0</span>-<a name="line-745"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='layout'>(</span><span class='varid'>fromInteger</span> <span class='varop'>$</span> <span class='varid'>ceiling</span> <span class='varid'>f</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-746"></a> <span class='varid'>xceiling'</span> <span class='keyglyph'>[</span><span class='conid'>XPVNumber</span> <span class='varid'>a</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='varid'>a</span>-<a name="line-747"></a> <span class='varid'>xceiling'</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"Call to xceiling' without a number"</span>-<a name="line-748"></a>-<a name="line-749"></a><a name="xround"></a><span class='comment'>-- |</span>-<a name="line-750"></a><span class='comment'>-- number round(number):</span>-<a name="line-751"></a><span class='comment'>-- returns the number that is closest to the argument and that is an integer. </span>-<a name="line-752"></a><span class='comment'>-- If there are two such numbers, then the one that is closest to positive infinity is returned.</span>-<a name="line-753"></a><span class='definition'>xround</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>-<a name="line-754"></a><span class='definition'>xround</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='varid'>args</span>-<a name="line-755"></a> <span class='keyglyph'>=</span> <span class='varid'>xround'</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='layout'>(</span><span class='varid'>toXValue</span> <span class='varid'>xnumber</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='varid'>args</span><span class='layout'>)</span>-<a name="line-756"></a>-<a name="line-757"></a><a name="xround'"></a><span class='definition'>xround'</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>-<a name="line-758"></a><span class='definition'>xround'</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>[</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>f</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-759"></a> <span class='keyglyph'>|</span> <span class='varid'>f</span> <span class='varop'><</span> <span class='num'>0</span> <span class='varop'>&&</span> <span class='varid'>f</span> <span class='varop'>>=</span> <span class='comment'>-</span><span class='num'>0.5</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>Neg0</span>-<a name="line-760"></a> <span class='keyglyph'>|</span> <span class='varid'>f</span> <span class='varop'>>=</span> <span class='num'>0</span> <span class='varop'>&&</span> <span class='varid'>f</span> <span class='varop'><</span> <span class='num'>0.5</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='conid'>Pos0</span>-<a name="line-761"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='layout'>(</span><span class='varid'>fromInteger</span> <span class='varop'>$</span> <span class='varid'>xPathRound</span> <span class='varid'>f</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-762"></a> <span class='keyword'>where</span>-<a name="line-763"></a> <span class='varid'>xPathRound</span> <span class='varid'>a</span> -<a name="line-764"></a> <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>a</span> <span class='comment'>-</span> <span class='layout'>(</span><span class='varid'>fromInteger</span> <span class='varop'>$</span> <span class='varid'>floor</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='varop'><</span> <span class='num'>0.5</span>-<a name="line-765"></a> <span class='keyword'>then</span> <span class='varid'>floor</span> <span class='varid'>a</span>-<a name="line-766"></a> <span class='keyword'>else</span> <span class='varid'>floor</span> <span class='layout'>(</span><span class='varid'>a</span><span class='varop'>+</span><span class='num'>1</span><span class='layout'>)</span>-<a name="line-767"></a>-<a name="line-768"></a><span class='definition'>xround'</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>[</span><span class='conid'>XPVNumber</span> <span class='varid'>a</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNumber</span> <span class='varid'>a</span>-<a name="line-769"></a><span class='definition'>xround'</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"Call to xround' without a number"</span>-<a name="line-770"></a>-<a name="line-771"></a>-<a name="line-772"></a>-<a name="line-773"></a><a name="xkey"></a><span class='comment'>-- |</span>-<a name="line-774"></a><span class='comment'>-- node-set key(string, object):</span>-<a name="line-775"></a><span class='comment'>-- does for keys what the id function does for IDs</span>-<a name="line-776"></a><span class='comment'>-- The first argument specifies the name of the key.</span>-<a name="line-777"></a><span class='comment'>-- When the second argument is of type node-set, then the result is the</span>-<a name="line-778"></a><span class='comment'>-- union of the result of applying the key function to the string value</span>-<a name="line-779"></a><span class='comment'>-- of each of the nodes in the argument node-set.</span>-<a name="line-780"></a><span class='comment'>-- When the second argument is of any other type, the argument is</span>-<a name="line-781"></a><span class='comment'>-- converted to a string </span>-<a name="line-782"></a><span class='definition'>xkey</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>-<a name="line-783"></a><span class='definition'>xkey</span> <span class='keyword'>_</span> <span class='varid'>env</span> <span class='layout'>(</span><span class='layout'>(</span><span class='conid'>XPVString</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='keyglyph'>[</span><span class='conid'>XPVNode</span> <span class='varid'>ns</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-784"></a> <span class='keyglyph'>=</span> <span class='varid'>isInKey</span> <span class='layout'>(</span><span class='varid'>getKeyTab</span> <span class='varid'>env</span><span class='layout'>)</span> <span class='varid'>s</span> <span class='layout'>(</span><span class='varid'>strValues</span> <span class='varid'>ns</span><span class='layout'>)</span>-<a name="line-785"></a> <span class='keyword'>where</span>-<a name="line-786"></a> <span class='varid'>strValues</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='layout'>(</span><span class='keyglyph'>\</span> <span class='layout'>(</span><span class='conid'>XPVString</span> <span class='varid'>str</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>str</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>stringValue</span><span class='layout'>)</span>-<a name="line-787"></a>-<a name="line-788"></a><span class='definition'>xkey</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='layout'>(</span><span class='layout'>(</span><span class='conid'>XPVString</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>arg</span><span class='layout'>)</span>-<a name="line-789"></a> <span class='comment'>-- = isInKey (getKeyTab env) s ( (\(XPVString s) -> words s) (xstring c env arg))</span>-<a name="line-790"></a> <span class='keyglyph'>=</span> <span class='varid'>isInKey</span> <span class='layout'>(</span><span class='varid'>getKeyTab</span> <span class='varid'>env</span><span class='layout'>)</span> <span class='varid'>s</span> <span class='keyglyph'>[</span><span class='varid'>str</span><span class='keyglyph'>]</span>-<a name="line-791"></a> <span class='keyword'>where</span>-<a name="line-792"></a> <span class='layout'>(</span><span class='conid'>XPVString</span> <span class='varid'>str</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>xstring</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='varid'>arg</span>-<a name="line-793"></a>-<a name="line-794"></a><span class='definition'>xkey</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"Call to xkey with a wrong argument"</span>-<a name="line-795"></a>-<a name="line-796"></a>-<a name="line-797"></a><a name="isInKey"></a><span class='definition'>isInKey</span> <span class='keyglyph'>::</span> <span class='conid'>KeyTab</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>XPathValue</span>-<a name="line-798"></a><span class='definition'>isInKey</span> <span class='varid'>kt</span> <span class='varid'>kn</span> <span class='varid'>kv</span>-<a name="line-799"></a> <span class='comment'>-- = remDups (XPVNode (map ntree ts) )</span>-<a name="line-800"></a> <span class='keyglyph'>=</span> <span class='conid'>XPVNode</span> <span class='varid'>ts</span> <span class='comment'>--(map ntree ts)</span>-<a name="line-801"></a> <span class='keyword'>where</span>-<a name="line-802"></a> <span class='layout'>(</span><span class='keyword'>_</span><span class='layout'>,</span> <span class='keyword'>_</span><span class='layout'>,</span> <span class='varid'>ts</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>unzip3</span> <span class='varop'>$</span> <span class='varid'>concat</span> <span class='varop'>$</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>isKeyVal</span> <span class='layout'>(</span><span class='varid'>isKeyName</span> <span class='varid'>kt</span> <span class='varid'>kn</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varid'>kv</span>-<a name="line-803"></a>-<a name="line-804"></a><a name="isKeyName"></a><span class='definition'>isKeyName</span> <span class='keyglyph'>::</span> <span class='conid'>KeyTab</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>KeyTab</span>-<a name="line-805"></a><span class='definition'>isKeyName</span> <span class='varid'>kt</span> <span class='varid'>kn</span> <span class='keyglyph'>=</span> <span class='varid'>filter</span> <span class='layout'>(</span><span class='varid'>isOfKeyName</span> <span class='varid'>kn</span><span class='layout'>)</span> <span class='varid'>kt</span>-<a name="line-806"></a>-<a name="line-807"></a><a name="isKeyVal"></a><span class='definition'>isKeyVal</span> <span class='keyglyph'>::</span> <span class='conid'>KeyTab</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>KeyTab</span>-<a name="line-808"></a><span class='definition'>isKeyVal</span> <span class='varid'>kt</span> <span class='varid'>kv</span> <span class='keyglyph'>=</span> <span class='varid'>filter</span> <span class='layout'>(</span><span class='varid'>isOfKeyValue</span> <span class='varid'>kv</span><span class='layout'>)</span> <span class='varid'>kt</span>-<a name="line-809"></a>-<a name="line-810"></a><a name="isOfKeyName"></a><span class='definition'>isOfKeyName</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='conid'>QName</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>NavXmlTree</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-811"></a><span class='definition'>isOfKeyName</span> <span class='varid'>kn</span> <span class='layout'>(</span><span class='varid'>qn</span><span class='layout'>,</span> <span class='keyword'>_</span><span class='layout'>,</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>localPart</span> <span class='varid'>qn</span><span class='layout'>)</span> <span class='varop'>==</span> <span class='varid'>kn</span>-<a name="line-812"></a>-<a name="line-813"></a>-<a name="line-814"></a><a name="isOfKeyValue"></a><span class='definition'>isOfKeyValue</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='conid'>QName</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>NavXmlTree</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-815"></a><span class='definition'>isOfKeyValue</span> <span class='varid'>kv</span> <span class='layout'>(</span><span class='keyword'>_</span><span class='layout'>,</span> <span class='varid'>v</span><span class='layout'>,</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>v</span> <span class='varop'>==</span> <span class='varid'>kv</span>-<a name="line-816"></a>-<a name="line-817"></a>-<a name="line-818"></a><span class='comment'>-- |</span>-<a name="line-819"></a><span class='comment'>-- string format-number(number, string, string?):</span>-<a name="line-820"></a><span class='comment'>-- converts its first argument to a string using the format pattern string</span>-<a name="line-821"></a><span class='comment'>-- specified by the second argument and the decimal-format named by the</span>-<a name="line-822"></a><span class='comment'>-- third argument, or the default decimal-format, if there is no third argument</span>-<a name="line-823"></a>-<a name="line-824"></a><a name="xformatNumber"></a><span class='definition'>xformatNumber</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>-<a name="line-825"></a><span class='definition'>xformatNumber</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='layout'>(</span><span class='varid'>x</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span>-<a name="line-826"></a> <span class='keyglyph'>=</span> <span class='varid'>xsubstring'</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>toXValue</span> <span class='varid'>xstring</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='keyglyph'>[</span><span class='varid'>x</span><span class='keyglyph'>]</span><span class='layout'>)</span><span class='varop'>++</span><span class='layout'>(</span><span class='varid'>toXValue</span> <span class='varid'>xnumber</span> <span class='varid'>c</span> <span class='varid'>env</span> <span class='varid'>xs</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-827"></a><span class='definition'>xformatNumber</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span>-<a name="line-828"></a> <span class='keyglyph'>=</span> <span class='conid'>XPVError</span> <span class='str'>"Call to xformatNumber with a wrong argument"</span>-<a name="line-829"></a>-<a name="line-830"></a>-<a name="line-831"></a><span class='comment'>-- Poor man's document(...) function. Opens exactly one document. </span>-<a name="line-832"></a><span class='comment'>-- Does not support "fragment identifiers". "Base-URI" is always current directory.</span>-<a name="line-833"></a><span class='comment'>-- Should still be good enough for home use.</span>-<a name="line-834"></a>-<a name="line-835"></a><a name="xdocument"></a><span class='definition'>xdocument</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>-<a name="line-836"></a><span class='definition'>xdocument</span> <span class='varid'>c</span> <span class='varid'>e</span> <span class='varid'>val</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNode</span> <span class='varop'>$</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='layout'>(</span><span class='conid'>XPVString</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>xdocument'</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>xstring</span> <span class='varid'>c</span> <span class='varid'>e</span> <span class='varid'>val</span>-<a name="line-837"></a>-<a name="line-838"></a><a name="xdocument'"></a><span class='definition'>xdocument'</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>NavXmlTree</span><span class='keyglyph'>]</span>-<a name="line-839"></a><span class='definition'>xdocument'</span> <span class='varid'>uri</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>ntree</span> <span class='varop'>$</span>-<a name="line-840"></a> <span class='varid'>unsafePerformIO</span> <span class='varop'>$</span>-<a name="line-841"></a> <span class='varid'>runX</span> <span class='layout'>(</span> <span class='varid'>readDocument</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a_validate</span><span class='layout'>,</span> <span class='varid'>v_0</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='varid'>uri</span>-<a name="line-842"></a> <span class='varop'>>>></span>-<a name="line-843"></a> <span class='varid'>addAttr</span> <span class='str'>"rootId"</span> <span class='layout'>(</span><span class='str'>"doc "</span> <span class='varop'>++</span> <span class='varid'>uri</span><span class='layout'>)</span>-<a name="line-844"></a> <span class='layout'>)</span>-<a name="line-845"></a>-<a name="line-846"></a><a name="xgenerateId"></a><span class='comment'>-- generate-id, should be fully compliant with XSLT specification.</span>-<a name="line-847"></a><span class='definition'>xgenerateId</span> <span class='keyglyph'>::</span> <span class='conid'>XFct</span>-<a name="line-848"></a><span class='definition'>xgenerateId</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>[</span><span class='conid'>XPVNode</span> <span class='layout'>(</span><span class='varid'>node</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='varid'>xgenerateId'</span> <span class='varid'>node</span>-<a name="line-849"></a><span class='definition'>xgenerateId</span> <span class='layout'>(</span><span class='keyword'>_</span><span class='layout'>,</span> <span class='keyword'>_</span><span class='layout'>,</span> <span class='varid'>node</span><span class='layout'>)</span> <span class='keyword'>_</span> <span class='conid'>[]</span> <span class='keyglyph'>=</span> <span class='varid'>xgenerateId'</span> <span class='varid'>node</span>-<a name="line-850"></a><span class='definition'>xgenerateId</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='str'>"illegal arguments in xgenerateId"</span>-<a name="line-851"></a>-<a name="line-852"></a><a name="xgenerateId'"></a><span class='definition'>xgenerateId'</span> <span class='keyglyph'>::</span> <span class='conid'>NavXmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XPathValue</span>-<a name="line-853"></a><span class='definition'>xgenerateId'</span> <span class='keyglyph'>=</span> <span class='conid'>XPVString</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='str'>"id_"</span><span class='varop'>++</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>str2XmlId</span> <span class='varop'>.</span> <span class='varid'>show</span> <span class='varop'>.</span> <span class='varid'>nodeID</span> <span class='varop'>.</span> <span class='conid'>Just</span>-<a name="line-854"></a>-<a name="line-855"></a><a name="str2XmlId"></a><span class='definition'>str2XmlId</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-856"></a><span class='definition'>str2XmlId</span> <span class='keyglyph'>=</span> <span class='varid'>concatMap</span> <span class='varid'>convert</span>-<a name="line-857"></a> <span class='keyword'>where</span> <span class='varid'>convert</span> <span class='varid'>c</span> <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>isAscii</span> <span class='varid'>c</span> <span class='varop'>&&</span> <span class='layout'>(</span><span class='varid'>isUpper</span> <span class='varid'>c</span> <span class='varop'>||</span> <span class='varid'>isLower</span> <span class='varid'>c</span> <span class='varop'>||</span> <span class='varid'>isDigit</span> <span class='varid'>c</span><span class='layout'>)</span>-<a name="line-858"></a> <span class='keyword'>then</span> <span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span>-<a name="line-859"></a> <span class='keyword'>else</span> <span class='str'>"_"</span> <span class='varop'>++</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varop'>$</span> <span class='varid'>ord</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='str'>"_"</span>-<a name="line-860"></a>-<a name="line-861"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-862"></a>-<a name="line-863"></a><a name="xpNamePart"></a><span class='definition'>xpNamePart</span> <span class='keyglyph'>::</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-864"></a><span class='definition'>xpNamePart</span> <span class='varid'>getNp</span>-<a name="line-865"></a> <span class='keyglyph'>=</span> <span class='varid'>concat</span>-<a name="line-866"></a> <span class='varop'>.</span>-<a name="line-867"></a> <span class='varid'>runLA</span> <span class='layout'>(</span> <span class='varid'>ifA</span> <span class='varid'>isRoot</span>-<a name="line-868"></a> <span class='layout'>(</span><span class='varid'>constA</span> <span class='str'>""</span><span class='layout'>)</span>-<a name="line-869"></a> <span class='varid'>getNp</span>-<a name="line-870"></a> <span class='layout'>)</span>-<a name="line-871"></a>-<a name="line-872"></a><a name="xpLocalPartOf"></a><span class='definition'>xpLocalPartOf</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-873"></a><span class='definition'>xpLocalPartOf</span> <span class='keyglyph'>=</span> <span class='varid'>xpNamePart</span> <span class='varid'>getLocalPart</span>-<a name="line-874"></a>-<a name="line-875"></a><a name="xpNamespaceOf"></a><span class='definition'>xpNamespaceOf</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-876"></a><span class='definition'>xpNamespaceOf</span> <span class='keyglyph'>=</span> <span class='varid'>xpNamePart</span> <span class='varid'>getNamespaceUri</span>-<a name="line-877"></a>-<a name="line-878"></a><a name="xpNameOf"></a><span class='definition'>xpNameOf</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-879"></a><span class='definition'>xpNameOf</span> <span class='keyglyph'>=</span> <span class='varid'>xpNamePart</span> <span class='varid'>getName</span>-<a name="line-880"></a>-<a name="line-881"></a><a name="getValue"></a><span class='definition'>getValue</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-882"></a><span class='definition'>getValue</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='varid'>concat</span> <span class='varop'>.</span> <span class='varid'>runLA</span> <span class='layout'>(</span><span class='varid'>getAttrValue</span> <span class='varid'>n</span><span class='layout'>)</span>-<a name="line-883"></a>-<a name="line-884"></a><a name="xpTextOf"></a><span class='definition'>xpTextOf</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-885"></a><span class='definition'>xpTextOf</span> <span class='keyglyph'>=</span> <span class='varid'>concat</span> <span class='varop'>.</span> <span class='varid'>runLA</span> <span class='layout'>(</span><span class='varid'>xshow</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>getCmt</span> <span class='varop'>>>></span> <span class='varid'>mkText</span><span class='layout'>)</span> <span class='varop'><+></span> <span class='varid'>deep</span> <span class='varid'>isText</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-886"></a>-<a name="line-887"></a><span class='comment'>-- ------------------------------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-XPath-XPathKeywords.html
@@ -1,67 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- |</span>-<a name="line-2"></a><span class='comment'>-- $Id: XPathKeywords.hs,v 1.1 2004/09/02 19:12:05 hxml Exp $</span>-<a name="line-3"></a><span class='comment'>--</span>-<a name="line-4"></a><span class='comment'>-- the XPath keywords</span>-<a name="line-5"></a><span class='comment'>--</span>-<a name="line-6"></a>-<a name="line-7"></a>-<a name="line-8"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathKeywords</span>-<a name="line-9"></a><span class='keyword'>where</span>-<a name="line-10"></a>-<a name="line-11"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-12"></a><span class='comment'>--</span>-<a name="line-13"></a><span class='comment'>-- string constants for representing XPath keywords and axis</span>-<a name="line-14"></a>-<a name="line-15"></a><a name="a_ancestor"></a><span class='definition'>a_ancestor</span><span class='layout'>,</span> <span class='comment'>-- axisNames</span>-<a name="line-16"></a> <span class='varid'>a_ancestor_or_self</span><span class='layout'>,</span>-<a name="line-17"></a> <span class='varid'>a_attribute</span><span class='layout'>,</span>-<a name="line-18"></a> <span class='varid'>a_child</span><span class='layout'>,</span>-<a name="line-19"></a> <span class='varid'>a_descendant</span><span class='layout'>,</span>-<a name="line-20"></a> <span class='varid'>a_descendant_or_self</span><span class='layout'>,</span>-<a name="line-21"></a> <span class='varid'>a_following</span><span class='layout'>,</span>-<a name="line-22"></a> <span class='varid'>a_following_sibling</span><span class='layout'>,</span>-<a name="line-23"></a> <span class='varid'>a_namespace</span><span class='layout'>,</span>-<a name="line-24"></a> <span class='varid'>a_parent</span><span class='layout'>,</span>-<a name="line-25"></a> <span class='varid'>a_preceding</span><span class='layout'>,</span>-<a name="line-26"></a> <span class='varid'>a_preceding_sibling</span><span class='layout'>,</span>-<a name="line-27"></a> <span class='varid'>a_self</span> <span class='keyglyph'>::</span> <span class='conid'>String</span>-<a name="line-28"></a>-<a name="line-29"></a>-<a name="line-30"></a><a name="n_comment"></a><span class='definition'>n_comment</span><span class='layout'>,</span> <span class='comment'>-- nodeTypes</span>-<a name="line-31"></a> <span class='varid'>n_text</span><span class='layout'>,</span>-<a name="line-32"></a> <span class='varid'>n_processing_instruction</span><span class='layout'>,</span>-<a name="line-33"></a> <span class='varid'>n_node</span> <span class='keyglyph'>::</span> <span class='conid'>String</span>-<a name="line-34"></a>-<a name="line-35"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-36"></a>-<a name="line-37"></a><span class='definition'>a_ancestor</span> <span class='keyglyph'>=</span> <span class='str'>"ancestor"</span> -<a name="line-38"></a><a name="a_ancestor_or_self"></a><span class='definition'>a_ancestor_or_self</span> <span class='keyglyph'>=</span> <span class='str'>"ancestor-or-self"</span> -<a name="line-39"></a><a name="a_attribute"></a><span class='definition'>a_attribute</span> <span class='keyglyph'>=</span> <span class='str'>"attribute"</span> -<a name="line-40"></a><a name="a_child"></a><span class='definition'>a_child</span> <span class='keyglyph'>=</span> <span class='str'>"child"</span> -<a name="line-41"></a><a name="a_descendant"></a><span class='definition'>a_descendant</span> <span class='keyglyph'>=</span> <span class='str'>"descendant"</span> -<a name="line-42"></a><a name="a_descendant_or_self"></a><span class='definition'>a_descendant_or_self</span> <span class='keyglyph'>=</span> <span class='str'>"descendant-or-self"</span> -<a name="line-43"></a><a name="a_following"></a><span class='definition'>a_following</span> <span class='keyglyph'>=</span> <span class='str'>"following"</span> -<a name="line-44"></a><a name="a_following_sibling"></a><span class='definition'>a_following_sibling</span> <span class='keyglyph'>=</span> <span class='str'>"following-sibling"</span> -<a name="line-45"></a><a name="a_namespace"></a><span class='definition'>a_namespace</span> <span class='keyglyph'>=</span> <span class='str'>"namespace"</span> -<a name="line-46"></a><a name="a_parent"></a><span class='definition'>a_parent</span> <span class='keyglyph'>=</span> <span class='str'>"parent"</span> -<a name="line-47"></a><a name="a_preceding"></a><span class='definition'>a_preceding</span> <span class='keyglyph'>=</span> <span class='str'>"preceding"</span> -<a name="line-48"></a><a name="a_preceding_sibling"></a><span class='definition'>a_preceding_sibling</span> <span class='keyglyph'>=</span> <span class='str'>"preceding-sibling"</span> -<a name="line-49"></a><a name="a_self"></a><span class='definition'>a_self</span> <span class='keyglyph'>=</span> <span class='str'>"self"</span> -<a name="line-50"></a>-<a name="line-51"></a>-<a name="line-52"></a><span class='definition'>n_comment</span> <span class='keyglyph'>=</span> <span class='str'>"comment"</span>-<a name="line-53"></a><a name="n_text"></a><span class='definition'>n_text</span> <span class='keyglyph'>=</span> <span class='str'>"text"</span>-<a name="line-54"></a><a name="n_processing_instruction"></a><span class='definition'>n_processing_instruction</span> <span class='keyglyph'>=</span> <span class='str'>"processing-instruction"</span>-<a name="line-55"></a><a name="n_node"></a><span class='definition'>n_node</span> <span class='keyglyph'>=</span> <span class='str'>"node"</span>-<a name="line-56"></a>-<a name="line-57"></a><span class='comment'>-- ------------------------------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-XPath-XPathParser.html
@@ -1,662 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Text.XML.HXT.XPath.XPathParser-<a name="line-5"></a> Copyright : Copyright (C) 2006-2008 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe@fh-wedel.de)-<a name="line-9"></a> Stability : experimental-<a name="line-10"></a> Portability: portable-<a name="line-11"></a>-<a name="line-12"></a> the XPath Parser-<a name="line-13"></a>-<a name="line-14"></a>-}</span>-<a name="line-15"></a>-<a name="line-16"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-17"></a>-<a name="line-18"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathParser</span>-<a name="line-19"></a> <span class='layout'>(</span> <span class='varid'>parseNumber</span>-<a name="line-20"></a> <span class='layout'>,</span> <span class='varid'>parseXPath</span>-<a name="line-21"></a> <span class='layout'>)</span>-<a name="line-22"></a><span class='keyword'>where</span>-<a name="line-23"></a>-<a name="line-24"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>-<a name="line-25"></a>-<a name="line-26"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>ParserCombinators</span><span class='varop'>.</span><span class='conid'>Parsec</span>-<a name="line-27"></a>-<a name="line-28"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>TypeDefs</span>-<a name="line-29"></a>-<a name="line-30"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathKeywords</span>-<a name="line-31"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathDataTypes</span>-<a name="line-32"></a>-<a name="line-33"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Parser</span><span class='varop'>.</span><span class='conid'>XmlTokenParser</span>-<a name="line-34"></a> <span class='layout'>(</span> <span class='varid'>separator</span>-<a name="line-35"></a> <span class='layout'>,</span> <span class='varid'>systemLiteral</span>-<a name="line-36"></a> <span class='layout'>,</span> <span class='varid'>skipS0</span>-<a name="line-37"></a> <span class='layout'>,</span> <span class='varid'>ncName</span>-<a name="line-38"></a> <span class='layout'>,</span> <span class='varid'>qName</span>-<a name="line-39"></a> <span class='layout'>)</span>-<a name="line-40"></a>-<a name="line-41"></a><a name="lookupNs"></a><span class='definition'>lookupNs</span> <span class='keyglyph'>::</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-></span> <span class='conid'>XName</span> <span class='keyglyph'>-></span> <span class='conid'>XName</span>-<a name="line-42"></a><span class='definition'>lookupNs</span> <span class='varid'>uris</span> <span class='varid'>prefix</span>-<a name="line-43"></a> <span class='comment'>-- downwards compatibility: if namespace env is not supported</span>-<a name="line-44"></a> <span class='comment'>-- no error is raised, but the uri remains empty</span>-<a name="line-45"></a> <span class='comment'>-- not conformant to XPath spec:</span>-<a name="line-46"></a> <span class='comment'>-- If namespaces are used, a complete env must be supported,</span>-<a name="line-47"></a> <span class='comment'>-- but we don't care about this</span>-<a name="line-48"></a> <span class='keyglyph'>=</span> <span class='varid'>fromMaybe</span> <span class='varid'>nullXName</span> <span class='varop'>$</span> <span class='varid'>lookup</span> <span class='varid'>prefix</span> <span class='varid'>uris</span>-<a name="line-49"></a>-<a name="line-50"></a><a name="enhanceAttrQName"></a><span class='definition'>enhanceAttrQName</span> <span class='keyglyph'>::</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-></span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='conid'>QName</span>-<a name="line-51"></a><span class='definition'>enhanceAttrQName</span> <span class='varid'>uris</span> <span class='varid'>qn</span>-<a name="line-52"></a> <span class='keyglyph'>|</span> <span class='varid'>isNullXName</span> <span class='layout'>(</span><span class='varid'>namePrefix'</span> <span class='varid'>qn</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>qn</span>-<a name="line-53"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>enhanceQName</span> <span class='varid'>uris</span> <span class='varid'>qn</span>-<a name="line-54"></a>-<a name="line-55"></a><a name="enhanceQName"></a><span class='definition'>enhanceQName</span> <span class='keyglyph'>::</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-></span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='conid'>QName</span>-<a name="line-56"></a><span class='definition'>enhanceQName</span> <span class='varid'>uris</span> <span class='varid'>qn</span> <span class='keyglyph'>=</span> <span class='varid'>setNamespaceUri'</span> <span class='layout'>(</span> <span class='varid'>lookupNs</span> <span class='varid'>uris</span> <span class='layout'>(</span><span class='varid'>namePrefix'</span> <span class='varid'>qn</span><span class='layout'>)</span> <span class='layout'>)</span> <span class='varid'>qn</span>-<a name="line-57"></a>-<a name="line-58"></a><a name="enhanceQN"></a><span class='definition'>enhanceQN</span> <span class='keyglyph'>::</span> <span class='conid'>AxisSpec</span> <span class='keyglyph'>-></span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-></span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='conid'>QName</span>-<a name="line-59"></a><span class='definition'>enhanceQN</span> <span class='conid'>Attribute</span> <span class='keyglyph'>=</span> <span class='varid'>enhanceAttrQName</span>-<a name="line-60"></a><span class='definition'>enhanceQN</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='varid'>enhanceQName</span>-<a name="line-61"></a>-<a name="line-62"></a><a name="XParser"></a><span class='keyword'>type</span> <span class='conid'>XParser</span> <span class='varid'>a</span> <span class='keyglyph'>=</span> <span class='conid'>GenParser</span> <span class='conid'>Char</span> <span class='conid'>NsEnv</span> <span class='varid'>a</span>-<a name="line-63"></a>-<a name="line-64"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-65"></a><span class='comment'>-- parse functions which are used in the XPathFct module</span>-<a name="line-66"></a>-<a name="line-67"></a><a name="parseNumber"></a><span class='comment'>-- |</span>-<a name="line-68"></a><span class='comment'>-- parsing a number, parseNumber is used in "XPathFct"</span>-<a name="line-69"></a><span class='comment'>-- by the number function</span>-<a name="line-70"></a><span class='comment'>--</span>-<a name="line-71"></a><span class='comment'>-- - returns : the parsed number as 'XPNumber' float</span>-<a name="line-72"></a><span class='comment'>-- or 'XPVNumber' 'NaN' in case of error</span>-<a name="line-73"></a><span class='definition'>parseNumber</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>XPathValue</span>-<a name="line-74"></a><span class='definition'>parseNumber</span> <span class='varid'>s</span>-<a name="line-75"></a> <span class='keyglyph'>=</span> <span class='keyword'>case</span> <span class='layout'>(</span><span class='varid'>runParser</span> <span class='varid'>parseNumber'</span> <span class='conid'>[]</span> <span class='comment'>{- Map.empty -}</span> <span class='str'>""</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyword'>of</span>-<a name="line-76"></a> <span class='conid'>Left</span> <span class='keyword'>_</span> <span class='keyglyph'>-></span> <span class='conid'>XPVNumber</span> <span class='conid'>NaN</span>-<a name="line-77"></a> <span class='conid'>Right</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='keyword'>if</span> <span class='layout'>(</span><span class='varid'>read</span> <span class='varid'>x</span> <span class='keyglyph'>::</span> <span class='conid'>Float</span><span class='layout'>)</span> <span class='varop'>==</span> <span class='num'>0</span>-<a name="line-78"></a> <span class='keyword'>then</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='conid'>Pos0</span><span class='layout'>)</span>-<a name="line-79"></a> <span class='keyword'>else</span> <span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='layout'>(</span><span class='varid'>read</span> <span class='varid'>x</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-80"></a>-<a name="line-81"></a><a name="parseNumber'"></a><span class='definition'>parseNumber'</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>String</span>-<a name="line-82"></a><span class='definition'>parseNumber'</span>-<a name="line-83"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-84"></a> <span class='varid'>skipS0</span>-<a name="line-85"></a> <span class='varid'>m</span> <span class='keyglyph'><-</span> <span class='varid'>option</span> <span class='str'>""</span> <span class='layout'>(</span><span class='varid'>string</span> <span class='str'>"-"</span><span class='layout'>)</span>-<a name="line-86"></a> <span class='varid'>n</span> <span class='keyglyph'><-</span> <span class='varid'>number</span>-<a name="line-87"></a> <span class='varid'>skipS0</span>-<a name="line-88"></a> <span class='varid'>eof</span>-<a name="line-89"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>m</span> <span class='varop'>++</span> <span class='varid'>n</span><span class='layout'>)</span>-<a name="line-90"></a>-<a name="line-91"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-92"></a>-<a name="line-93"></a>-<a name="line-94"></a><span class='comment'>-- |</span>-<a name="line-95"></a><span class='comment'>-- the main entry point:</span>-<a name="line-96"></a><span class='comment'>-- parsing a XPath expression</span>-<a name="line-97"></a>-<a name="line-98"></a><a name="parseXPath"></a><span class='definition'>parseXPath</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>Expr</span>-<a name="line-99"></a><span class='definition'>parseXPath</span>-<a name="line-100"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-101"></a> <span class='varid'>skipS0</span>-<a name="line-102"></a> <span class='varid'>xPathExpr</span> <span class='keyglyph'><-</span> <span class='varid'>expr</span>-<a name="line-103"></a> <span class='varid'>skipS0</span>-<a name="line-104"></a> <span class='varid'>eof</span>-<a name="line-105"></a> <span class='varid'>return</span> <span class='varid'>xPathExpr</span>-<a name="line-106"></a>-<a name="line-107"></a>-<a name="line-108"></a><a name="lpar"></a><span class='comment'>-- some useful token and symbol parser</span>-<a name="line-109"></a><span class='definition'>lpar</span><span class='layout'>,</span> <span class='varid'>rpar</span><span class='layout'>,</span> <span class='varid'>lbra</span><span class='layout'>,</span> <span class='varid'>rbra</span><span class='layout'>,</span> <span class='varid'>slash</span><span class='layout'>,</span> <span class='varid'>dslash</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>()</span>-<a name="line-110"></a>-<a name="line-111"></a><span class='definition'>lpar</span> <span class='keyglyph'>=</span> <span class='varid'>tokenParser</span> <span class='layout'>(</span><span class='varid'>symbol</span> <span class='str'>"("</span><span class='layout'>)</span>-<a name="line-112"></a><a name="rpar"></a><span class='definition'>rpar</span> <span class='keyglyph'>=</span> <span class='varid'>tokenParser</span> <span class='layout'>(</span><span class='varid'>symbol</span> <span class='str'>")"</span><span class='layout'>)</span>-<a name="line-113"></a><a name="lbra"></a><span class='definition'>lbra</span> <span class='keyglyph'>=</span> <span class='varid'>tokenParser</span> <span class='layout'>(</span><span class='varid'>symbol</span> <span class='str'>"["</span><span class='layout'>)</span>-<a name="line-114"></a><a name="rbra"></a><span class='definition'>rbra</span> <span class='keyglyph'>=</span> <span class='varid'>tokenParser</span> <span class='layout'>(</span><span class='varid'>symbol</span> <span class='str'>"]"</span><span class='layout'>)</span>-<a name="line-115"></a><a name="slash"></a><span class='definition'>slash</span> <span class='keyglyph'>=</span> <span class='varid'>tokenParser</span> <span class='layout'>(</span><span class='varid'>symbol</span> <span class='str'>"/"</span><span class='layout'>)</span>-<a name="line-116"></a><a name="dslash"></a><span class='definition'>dslash</span> <span class='keyglyph'>=</span> <span class='varid'>tokenParser</span> <span class='layout'>(</span><span class='varid'>symbol</span> <span class='str'>"//"</span><span class='layout'>)</span>-<a name="line-117"></a>-<a name="line-118"></a>-<a name="line-119"></a><a name="tokenParser"></a><span class='definition'>tokenParser</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>XParser</span> <span class='conid'>()</span>-<a name="line-120"></a><span class='definition'>tokenParser</span> <span class='varid'>p</span>-<a name="line-121"></a> <span class='keyglyph'>=</span> <span class='varid'>try</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-122"></a> <span class='varid'>skipS0</span>-<a name="line-123"></a> <span class='varid'>p</span>-<a name="line-124"></a> <span class='varid'>skipS0</span>-<a name="line-125"></a> <span class='layout'>)</span>-<a name="line-126"></a>-<a name="line-127"></a>-<a name="line-128"></a><a name="symbolParser"></a><span class='definition'>symbolParser</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>XParser</span> <span class='varid'>a</span>-<a name="line-129"></a><span class='definition'>symbolParser</span> <span class='layout'>(</span><span class='varid'>s</span><span class='layout'>,</span><span class='varid'>a</span><span class='layout'>)</span>-<a name="line-130"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-131"></a> <span class='varid'>tokenParser</span> <span class='layout'>(</span><span class='varid'>symbol</span> <span class='varid'>s</span><span class='layout'>)</span>-<a name="line-132"></a> <span class='varid'>return</span> <span class='varid'>a</span>-<a name="line-133"></a>-<a name="line-134"></a>-<a name="line-135"></a><a name="symbol"></a><span class='definition'>symbol</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>XParser</span> <span class='conid'>String</span>-<a name="line-136"></a><span class='definition'>symbol</span> <span class='varid'>s</span> <span class='keyglyph'>=</span> <span class='varid'>try</span> <span class='layout'>(</span><span class='varid'>string</span> <span class='varid'>s</span><span class='layout'>)</span>-<a name="line-137"></a>-<a name="line-138"></a>-<a name="line-139"></a>-<a name="line-140"></a><a name="orOp"></a><span class='comment'>-- operation parser</span>-<a name="line-141"></a><span class='definition'>orOp</span><span class='layout'>,</span> <span class='varid'>andOp</span><span class='layout'>,</span> <span class='varid'>eqOp</span><span class='layout'>,</span> <span class='varid'>relOp</span><span class='layout'>,</span> <span class='varid'>addOp</span><span class='layout'>,</span> <span class='varid'>multiOp</span><span class='layout'>,</span> <span class='varid'>unionOp</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>Op</span>-<a name="line-142"></a>-<a name="line-143"></a><span class='definition'>orOp</span> <span class='keyglyph'>=</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='str'>"or"</span><span class='layout'>,</span> <span class='conid'>Or</span><span class='layout'>)</span>-<a name="line-144"></a><a name="andOp"></a><span class='definition'>andOp</span> <span class='keyglyph'>=</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='str'>"and"</span><span class='layout'>,</span> <span class='conid'>And</span><span class='layout'>)</span>-<a name="line-145"></a>-<a name="line-146"></a><a name="eqOp"></a><span class='definition'>eqOp</span>-<a name="line-147"></a> <span class='keyglyph'>=</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='str'>"="</span><span class='layout'>,</span> <span class='conid'>Eq</span><span class='layout'>)</span>-<a name="line-148"></a> <span class='varop'><|></span> -<a name="line-149"></a> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='str'>"!="</span><span class='layout'>,</span> <span class='conid'>NEq</span><span class='layout'>)</span>-<a name="line-150"></a>-<a name="line-151"></a><a name="relOp"></a><span class='definition'>relOp</span>-<a name="line-152"></a> <span class='keyglyph'>=</span> <span class='varid'>choice</span> <span class='keyglyph'>[</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='str'>"<="</span><span class='layout'>,</span> <span class='conid'>LessEq</span><span class='layout'>)</span>-<a name="line-153"></a> <span class='layout'>,</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='str'>">="</span><span class='layout'>,</span> <span class='conid'>GreaterEq</span><span class='layout'>)</span>-<a name="line-154"></a> <span class='layout'>,</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='str'>"<"</span><span class='layout'>,</span> <span class='conid'>Less</span><span class='layout'>)</span>-<a name="line-155"></a> <span class='layout'>,</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='str'>">"</span><span class='layout'>,</span> <span class='conid'>Greater</span><span class='layout'>)</span>-<a name="line-156"></a> <span class='keyglyph'>]</span>-<a name="line-157"></a>-<a name="line-158"></a><a name="addOp"></a><span class='definition'>addOp</span>-<a name="line-159"></a> <span class='keyglyph'>=</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='str'>"+"</span><span class='layout'>,</span> <span class='conid'>Plus</span><span class='layout'>)</span>-<a name="line-160"></a> <span class='varop'><|></span> -<a name="line-161"></a> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='str'>"-"</span><span class='layout'>,</span> <span class='conid'>Minus</span><span class='layout'>)</span>-<a name="line-162"></a>-<a name="line-163"></a>-<a name="line-164"></a><a name="multiOp"></a><span class='definition'>multiOp</span>-<a name="line-165"></a> <span class='keyglyph'>=</span> <span class='varid'>choice</span> <span class='keyglyph'>[</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='str'>"*"</span><span class='layout'>,</span> <span class='conid'>Mult</span><span class='layout'>)</span>-<a name="line-166"></a> <span class='layout'>,</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='str'>"mod"</span><span class='layout'>,</span> <span class='conid'>Mod</span><span class='layout'>)</span>-<a name="line-167"></a> <span class='layout'>,</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='str'>"div"</span><span class='layout'>,</span> <span class='conid'>Div</span><span class='layout'>)</span>-<a name="line-168"></a> <span class='keyglyph'>]</span>-<a name="line-169"></a>-<a name="line-170"></a>-<a name="line-171"></a><a name="unionOp"></a><span class='definition'>unionOp</span> <span class='keyglyph'>=</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='str'>"|"</span><span class='layout'>,</span> <span class='conid'>Union</span><span class='layout'>)</span>-<a name="line-172"></a>-<a name="line-173"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-174"></a>-<a name="line-175"></a><a name="mkExprNode"></a><span class='definition'>mkExprNode</span> <span class='keyglyph'>::</span> <span class='conid'>Expr</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>Op</span><span class='layout'>,</span> <span class='conid'>Expr</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>Expr</span>-<a name="line-176"></a><span class='definition'>mkExprNode</span> <span class='varid'>e1</span> <span class='conid'>[]</span> <span class='keyglyph'>=</span> <span class='varid'>e1</span>-<a name="line-177"></a><span class='definition'>mkExprNode</span> <span class='varid'>e1</span> <span class='varid'>l</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='layout'>(</span><span class='varid'>op</span><span class='layout'>,</span> <span class='keyword'>_</span><span class='layout'>)</span><span class='conop'>:</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> -<a name="line-178"></a> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>rest</span>-<a name="line-179"></a> <span class='keyword'>then</span> <span class='conid'>GenExpr</span> <span class='varid'>op</span> <span class='layout'>(</span><span class='varid'>e1</span><span class='conop'>:</span><span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>snd</span> <span class='varid'>l</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-180"></a> <span class='keyword'>else</span> <span class='conid'>GenExpr</span> <span class='varid'>op</span> <span class='varop'>$</span> <span class='layout'>(</span><span class='varid'>e1</span><span class='conop'>:</span><span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>snd</span> <span class='varop'>$</span> <span class='varid'>init</span> <span class='varid'>same</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='keyglyph'>[</span><span class='varid'>mkExprNode</span> <span class='layout'>(</span><span class='varid'>snd</span> <span class='varop'>$</span> <span class='varid'>last</span> <span class='varid'>same</span><span class='layout'>)</span> <span class='varid'>rest</span><span class='keyglyph'>]</span>-<a name="line-181"></a> <span class='keyword'>where</span> -<a name="line-182"></a> <span class='layout'>(</span><span class='varid'>same</span><span class='layout'>,</span> <span class='varid'>rest</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>span</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varop'>==</span><span class='varid'>op</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>fst</span><span class='layout'>)</span> <span class='varid'>l</span>-<a name="line-183"></a> -<a name="line-184"></a><span class='comment'>-- Tim Walkenhorst, original expr. below:</span>-<a name="line-185"></a><span class='comment'>-- It seems mkExprNode is called only with operators of the same precedence, that should make it fixable</span>-<a name="line-186"></a><span class='comment'>-- FIXED, see above!</span>-<a name="line-187"></a><span class='comment'>--mkExprNode e1 l@((op, _): _) = GenExpr op (e1:(map snd l)) -- Less than ideal: 1+1-1 = 3 ???</span>-<a name="line-188"></a>-<a name="line-189"></a>-<a name="line-190"></a><span class='comment'>--GenExpr op (e1:(map snd l))</span>-<a name="line-191"></a>-<a name="line-192"></a>-<a name="line-193"></a><a name="exprRest"></a><span class='definition'>exprRest</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>Op</span> <span class='keyglyph'>-></span> <span class='conid'>XParser</span> <span class='conid'>Expr</span> <span class='keyglyph'>-></span> <span class='conid'>XParser</span> <span class='layout'>(</span><span class='conid'>Op</span><span class='layout'>,</span> <span class='conid'>Expr</span><span class='layout'>)</span>-<a name="line-194"></a><span class='definition'>exprRest</span> <span class='varid'>parserOp</span> <span class='varid'>parserExpr</span>-<a name="line-195"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-196"></a> <span class='varid'>op</span> <span class='keyglyph'><-</span> <span class='varid'>parserOp</span>-<a name="line-197"></a> <span class='varid'>e2</span> <span class='keyglyph'><-</span> <span class='varid'>parserExpr</span>-<a name="line-198"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>op</span><span class='layout'>,</span> <span class='varid'>e2</span><span class='layout'>)</span>-<a name="line-199"></a>-<a name="line-200"></a>-<a name="line-201"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-202"></a>-<a name="line-203"></a><a name="descOrSelfStep"></a><span class='comment'>-- abbreviation of "//"</span>-<a name="line-204"></a><span class='definition'>descOrSelfStep</span> <span class='keyglyph'>::</span> <span class='conid'>XStep</span> -<a name="line-205"></a><span class='definition'>descOrSelfStep</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>Step</span> <span class='conid'>DescendantOrSelf</span> <span class='layout'>(</span><span class='conid'>TypeTest</span> <span class='conid'>XPNode</span><span class='layout'>)</span> <span class='conid'>[]</span><span class='layout'>)</span>-<a name="line-206"></a>-<a name="line-207"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-208"></a><span class='comment'>-- Location Paths (2)</span>-<a name="line-209"></a>-<a name="line-210"></a>-<a name="line-211"></a><a name="locPath"></a><span class='comment'>-- [1] LocationPath </span>-<a name="line-212"></a><span class='definition'>locPath</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>LocationPath</span>-<a name="line-213"></a><span class='definition'>locPath</span>-<a name="line-214"></a> <span class='keyglyph'>=</span> <span class='varid'>absLocPath</span>-<a name="line-215"></a> <span class='varop'><|></span> -<a name="line-216"></a> <span class='varid'>relLocPath'</span>-<a name="line-217"></a>-<a name="line-218"></a>-<a name="line-219"></a><a name="absLocPath"></a><span class='comment'>-- [2] AbsoluteLocationPath</span>-<a name="line-220"></a><span class='definition'>absLocPath</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>LocationPath</span>-<a name="line-221"></a><span class='definition'>absLocPath</span>-<a name="line-222"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span> <span class='comment'>-- [10]</span>-<a name="line-223"></a> <span class='varid'>dslash</span>-<a name="line-224"></a> <span class='varid'>s</span> <span class='keyglyph'><-</span> <span class='varid'>relLocPath</span>-<a name="line-225"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>LocPath</span> <span class='conid'>Abs</span> <span class='layout'>(</span><span class='keyglyph'>[</span><span class='varid'>descOrSelfStep</span><span class='keyglyph'>]</span> <span class='varop'>++</span> <span class='varid'>s</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-226"></a> <span class='varop'><|></span> -<a name="line-227"></a> <span class='keyword'>do</span>-<a name="line-228"></a> <span class='varid'>slash</span>-<a name="line-229"></a> <span class='varid'>s</span> <span class='keyglyph'><-</span> <span class='varid'>option</span> <span class='conid'>[]</span> <span class='varid'>relLocPath</span>-<a name="line-230"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>LocPath</span> <span class='conid'>Abs</span> <span class='varid'>s</span><span class='layout'>)</span>-<a name="line-231"></a> <span class='varop'><?></span> <span class='str'>"absLocPath"</span>-<a name="line-232"></a>-<a name="line-233"></a>-<a name="line-234"></a><a name="relLocPath'"></a><span class='comment'>-- [3] RelativeLocationPath</span>-<a name="line-235"></a><span class='definition'>relLocPath'</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>LocationPath</span>-<a name="line-236"></a><span class='definition'>relLocPath'</span>-<a name="line-237"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-238"></a> <span class='varid'>rel</span> <span class='keyglyph'><-</span> <span class='varid'>relLocPath</span>-<a name="line-239"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>LocPath</span> <span class='conid'>Rel</span> <span class='varid'>rel</span><span class='layout'>)</span>-<a name="line-240"></a>-<a name="line-241"></a><a name="relLocPath"></a><span class='definition'>relLocPath</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='keyglyph'>[</span><span class='conid'>XStep</span><span class='keyglyph'>]</span>-<a name="line-242"></a><span class='definition'>relLocPath</span>-<a name="line-243"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-244"></a> <span class='varid'>s1</span> <span class='keyglyph'><-</span> <span class='varid'>step</span>-<a name="line-245"></a> <span class='varid'>s2</span> <span class='keyglyph'><-</span> <span class='varid'>many</span> <span class='layout'>(</span><span class='varid'>step'</span><span class='layout'>)</span>-<a name="line-246"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='keyglyph'>[</span><span class='varid'>s1</span><span class='keyglyph'>]</span> <span class='varop'>++</span> <span class='layout'>(</span><span class='varid'>concat</span> <span class='varid'>s2</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-247"></a> <span class='varop'><?></span> <span class='str'>"relLocPath"</span>-<a name="line-248"></a>-<a name="line-249"></a>-<a name="line-250"></a><a name="step'"></a><span class='comment'>-- Location Steps (2.1)</span>-<a name="line-251"></a><span class='comment'>--</span>-<a name="line-252"></a><span class='comment'>-- [4] Step</span>-<a name="line-253"></a><span class='definition'>step'</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='keyglyph'>[</span><span class='conid'>XStep</span><span class='keyglyph'>]</span>-<a name="line-254"></a><span class='definition'>step'</span>-<a name="line-255"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span> <span class='comment'>-- [11]</span>-<a name="line-256"></a> <span class='varid'>dslash</span>-<a name="line-257"></a> <span class='varid'>s</span> <span class='keyglyph'><-</span> <span class='varid'>step</span>-<a name="line-258"></a> <span class='varid'>return</span> <span class='keyglyph'>[</span><span class='varid'>descOrSelfStep</span><span class='layout'>,</span><span class='varid'>s</span><span class='keyglyph'>]</span>-<a name="line-259"></a> <span class='varop'><|></span>-<a name="line-260"></a> <span class='keyword'>do</span>-<a name="line-261"></a> <span class='varid'>slash</span>-<a name="line-262"></a> <span class='varid'>s</span> <span class='keyglyph'><-</span> <span class='varid'>step</span>-<a name="line-263"></a> <span class='varid'>return</span> <span class='keyglyph'>[</span><span class='varid'>s</span><span class='keyglyph'>]</span>-<a name="line-264"></a> <span class='varop'><?></span> <span class='str'>"step'"</span>-<a name="line-265"></a>-<a name="line-266"></a><a name="step"></a><span class='definition'>step</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>XStep</span>-<a name="line-267"></a><span class='definition'>step</span>-<a name="line-268"></a> <span class='keyglyph'>=</span> <span class='varid'>abbrStep</span>-<a name="line-269"></a> <span class='varop'><|></span>-<a name="line-270"></a> <span class='keyword'>do</span>-<a name="line-271"></a> <span class='keyword'>as</span> <span class='keyglyph'><-</span> <span class='varid'>axisSpecifier'</span>-<a name="line-272"></a> <span class='varid'>nt</span> <span class='keyglyph'><-</span> <span class='varid'>nodeTest</span> <span class='keyword'>as</span>-<a name="line-273"></a> <span class='varid'>pr</span> <span class='keyglyph'><-</span> <span class='varid'>many</span> <span class='varid'>predicate</span>-<a name="line-274"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>Step</span> <span class='keyword'>as</span> <span class='varid'>nt</span> <span class='varid'>pr</span><span class='layout'>)</span>-<a name="line-275"></a> <span class='varop'><?></span> <span class='str'>"step"</span>-<a name="line-276"></a>-<a name="line-277"></a>-<a name="line-278"></a><a name="axisSpecifier'"></a><span class='comment'>-- [5] AxisSpecifier</span>-<a name="line-279"></a><span class='definition'>axisSpecifier'</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>AxisSpec</span>-<a name="line-280"></a><span class='definition'>axisSpecifier'</span>-<a name="line-281"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span> <span class='comment'>-- [13]</span>-<a name="line-282"></a> <span class='varid'>tokenParser</span> <span class='layout'>(</span><span class='varid'>symbol</span> <span class='str'>"@"</span><span class='layout'>)</span>-<a name="line-283"></a> <span class='varid'>return</span> <span class='conid'>Attribute</span>-<a name="line-284"></a> <span class='varop'><|></span>-<a name="line-285"></a> <span class='keyword'>do</span>-<a name="line-286"></a> <span class='keyword'>as</span> <span class='keyglyph'><-</span> <span class='varid'>option</span> <span class='conid'>Child</span> <span class='layout'>(</span> <span class='varid'>try</span> <span class='layout'>(</span> <span class='keyword'>do</span> <span class='comment'>-- child-axis is default-axis</span>-<a name="line-287"></a> <span class='varid'>a</span> <span class='keyglyph'><-</span> <span class='varid'>axisSpecifier</span>-<a name="line-288"></a> <span class='varid'>tokenParser</span> <span class='layout'>(</span><span class='varid'>symbol</span> <span class='str'>"::"</span><span class='layout'>)</span>-<a name="line-289"></a> <span class='varid'>return</span> <span class='varid'>a</span>-<a name="line-290"></a> <span class='layout'>)</span>-<a name="line-291"></a> <span class='layout'>)</span>-<a name="line-292"></a> <span class='varid'>return</span> <span class='keyword'>as</span>-<a name="line-293"></a> <span class='varop'><?></span> <span class='str'>"axisSpecifier'"</span>-<a name="line-294"></a>-<a name="line-295"></a>-<a name="line-296"></a><a name="axisSpecifier"></a><span class='comment'>-- Axes (2.2)</span>-<a name="line-297"></a><span class='comment'>--</span>-<a name="line-298"></a><span class='comment'>-- [6] AxisName</span>-<a name="line-299"></a><span class='definition'>axisSpecifier</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>AxisSpec</span>-<a name="line-300"></a><span class='definition'>axisSpecifier</span>-<a name="line-301"></a> <span class='keyglyph'>=</span> <span class='varid'>choice</span> <span class='keyglyph'>[</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='varid'>a_ancestor_or_self</span><span class='layout'>,</span> <span class='conid'>AncestorOrSelf</span><span class='layout'>)</span>-<a name="line-302"></a> <span class='layout'>,</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='varid'>a_ancestor</span><span class='layout'>,</span> <span class='conid'>Ancestor</span><span class='layout'>)</span>-<a name="line-303"></a> <span class='layout'>,</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='varid'>a_attribute</span><span class='layout'>,</span> <span class='conid'>Attribute</span><span class='layout'>)</span>-<a name="line-304"></a> <span class='layout'>,</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='varid'>a_child</span><span class='layout'>,</span> <span class='conid'>Child</span><span class='layout'>)</span>-<a name="line-305"></a> <span class='layout'>,</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='varid'>a_descendant_or_self</span><span class='layout'>,</span> <span class='conid'>DescendantOrSelf</span><span class='layout'>)</span>-<a name="line-306"></a> <span class='layout'>,</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='varid'>a_descendant</span><span class='layout'>,</span> <span class='conid'>Descendant</span><span class='layout'>)</span>-<a name="line-307"></a> <span class='layout'>,</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='varid'>a_following_sibling</span><span class='layout'>,</span> <span class='conid'>FollowingSibling</span><span class='layout'>)</span>-<a name="line-308"></a> <span class='layout'>,</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='varid'>a_following</span><span class='layout'>,</span> <span class='conid'>Following</span><span class='layout'>)</span>-<a name="line-309"></a> <span class='layout'>,</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='varid'>a_namespace</span><span class='layout'>,</span> <span class='conid'>Namespace</span><span class='layout'>)</span>-<a name="line-310"></a> <span class='layout'>,</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='varid'>a_parent</span><span class='layout'>,</span> <span class='conid'>Parent</span><span class='layout'>)</span>-<a name="line-311"></a> <span class='layout'>,</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='varid'>a_preceding_sibling</span><span class='layout'>,</span> <span class='conid'>PrecedingSibling</span><span class='layout'>)</span>-<a name="line-312"></a> <span class='layout'>,</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='varid'>a_preceding</span><span class='layout'>,</span> <span class='conid'>Preceding</span><span class='layout'>)</span>-<a name="line-313"></a> <span class='layout'>,</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='varid'>a_self</span><span class='layout'>,</span> <span class='conid'>Self</span><span class='layout'>)</span>-<a name="line-314"></a> <span class='keyglyph'>]</span>-<a name="line-315"></a> <span class='varop'><?></span> <span class='str'>"axisSpecifier"</span>-<a name="line-316"></a>-<a name="line-317"></a>-<a name="line-318"></a><a name="nodeTest"></a><span class='comment'>-- Node Tests (2.3)</span>-<a name="line-319"></a><span class='comment'>--</span>-<a name="line-320"></a><span class='comment'>-- [7] NodeTest</span>-<a name="line-321"></a><span class='definition'>nodeTest</span> <span class='keyglyph'>::</span> <span class='conid'>AxisSpec</span> <span class='keyglyph'>-></span> <span class='conid'>XParser</span> <span class='conid'>NodeTest</span>-<a name="line-322"></a><span class='definition'>nodeTest</span> <span class='keyword'>as</span>-<a name="line-323"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-324"></a> <span class='varid'>nt</span> <span class='keyglyph'><-</span> <span class='varid'>try</span> <span class='varid'>nodeType'</span>-<a name="line-325"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>TypeTest</span> <span class='varid'>nt</span><span class='layout'>)</span>-<a name="line-326"></a> <span class='varop'><|></span>-<a name="line-327"></a> <span class='keyword'>do</span>-<a name="line-328"></a> <span class='varid'>processInst</span> <span class='keyglyph'><-</span> <span class='varid'>pI</span>-<a name="line-329"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>PI</span> <span class='varid'>processInst</span><span class='layout'>)</span>-<a name="line-330"></a> <span class='varop'><|></span>-<a name="line-331"></a> <span class='keyword'>do</span>-<a name="line-332"></a> <span class='varid'>nt</span> <span class='keyglyph'><-</span> <span class='varid'>nameTest</span> <span class='keyword'>as</span>-<a name="line-333"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>NameTest</span> <span class='varid'>nt</span><span class='layout'>)</span>-<a name="line-334"></a> <span class='varop'><?></span> <span class='str'>"nodeTest"</span>-<a name="line-335"></a>-<a name="line-336"></a><a name="pI"></a><span class='definition'>pI</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>String</span>-<a name="line-337"></a><span class='definition'>pI</span>-<a name="line-338"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-339"></a> <span class='varid'>tokenParser</span> <span class='layout'>(</span><span class='varid'>symbol</span> <span class='varid'>n_processing_instruction</span><span class='layout'>)</span>-<a name="line-340"></a> <span class='varid'>li</span> <span class='keyglyph'><-</span> <span class='varid'>between</span> <span class='varid'>lpar</span> <span class='varid'>rpar</span> <span class='varid'>literal</span>-<a name="line-341"></a> <span class='varid'>return</span> <span class='varid'>li</span>-<a name="line-342"></a> <span class='varop'><?></span> <span class='str'>"Processing-Instruction"</span>-<a name="line-343"></a>-<a name="line-344"></a>-<a name="line-345"></a><a name="predicate"></a><span class='comment'>-- Predicates (2.4)</span>-<a name="line-346"></a><span class='comment'>--</span>-<a name="line-347"></a><span class='comment'>-- [8] Predicate</span>-<a name="line-348"></a><span class='comment'>-- [9] PredicateExpr</span>-<a name="line-349"></a><span class='definition'>predicate</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>Expr</span>-<a name="line-350"></a><span class='definition'>predicate</span> -<a name="line-351"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-352"></a> <span class='varid'>ex</span> <span class='keyglyph'><-</span> <span class='varid'>between</span> <span class='varid'>lbra</span> <span class='varid'>rbra</span> <span class='varid'>expr</span>-<a name="line-353"></a> <span class='varid'>return</span> <span class='varid'>ex</span>-<a name="line-354"></a>-<a name="line-355"></a>-<a name="line-356"></a><span class='comment'>-- Abbreviated Syntax (2.5)</span>-<a name="line-357"></a><span class='comment'>--</span>-<a name="line-358"></a><span class='comment'>-- [10] AbbreviatedAbsoluteLocationPath: q.v. [2]</span>-<a name="line-359"></a><span class='comment'>-- [11] AbbreviatedRelativeLocationPath: q.v. [4]</span>-<a name="line-360"></a>-<a name="line-361"></a><a name="abbrStep"></a><span class='comment'>-- [12] AbbreviatedStep</span>-<a name="line-362"></a><span class='definition'>abbrStep</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>XStep</span>-<a name="line-363"></a><span class='definition'>abbrStep</span> -<a name="line-364"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-365"></a> <span class='varid'>tokenParser</span> <span class='layout'>(</span><span class='varid'>symbol</span> <span class='str'>".."</span><span class='layout'>)</span>-<a name="line-366"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>Step</span> <span class='conid'>Parent</span> <span class='layout'>(</span><span class='conid'>TypeTest</span> <span class='conid'>XPNode</span><span class='layout'>)</span> <span class='conid'>[]</span><span class='layout'>)</span>-<a name="line-367"></a> <span class='varop'><|></span>-<a name="line-368"></a> <span class='keyword'>do</span>-<a name="line-369"></a> <span class='varid'>tokenParser</span> <span class='layout'>(</span><span class='varid'>symbol</span> <span class='str'>"."</span><span class='layout'>)</span>-<a name="line-370"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>Step</span> <span class='conid'>Self</span> <span class='layout'>(</span><span class='conid'>TypeTest</span> <span class='conid'>XPNode</span><span class='layout'>)</span> <span class='conid'>[]</span><span class='layout'>)</span>-<a name="line-371"></a> <span class='varop'><?></span> <span class='str'>"abbrStep"</span>-<a name="line-372"></a>-<a name="line-373"></a><span class='comment'>-- [13] AbbreviatedAxisSpecifier: q.v. [5]</span>-<a name="line-374"></a>-<a name="line-375"></a>-<a name="line-376"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-377"></a><span class='comment'>-- Expressions (3)</span>-<a name="line-378"></a>-<a name="line-379"></a>-<a name="line-380"></a><a name="expr"></a><span class='comment'>-- Basics (3.1)</span>-<a name="line-381"></a><span class='comment'>--</span>-<a name="line-382"></a><span class='comment'>-- [14] Expr</span>-<a name="line-383"></a><span class='definition'>expr</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>Expr</span>-<a name="line-384"></a><span class='definition'>expr</span> <span class='keyglyph'>=</span> <span class='varid'>orExpr</span>-<a name="line-385"></a>-<a name="line-386"></a>-<a name="line-387"></a><a name="primaryExpr"></a><span class='comment'>-- [15] PrimaryExpr</span>-<a name="line-388"></a><span class='definition'>primaryExpr</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>Expr</span>-<a name="line-389"></a><span class='definition'>primaryExpr</span>-<a name="line-390"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-391"></a> <span class='varid'>vr</span> <span class='keyglyph'><-</span> <span class='varid'>variableReference</span>-<a name="line-392"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>VarExpr</span> <span class='varid'>vr</span><span class='layout'>)</span>-<a name="line-393"></a> <span class='varop'><|></span>-<a name="line-394"></a> <span class='keyword'>do</span>-<a name="line-395"></a> <span class='varid'>ex</span> <span class='keyglyph'><-</span> <span class='varid'>between</span> <span class='varid'>lpar</span> <span class='varid'>rpar</span> <span class='varid'>expr</span>-<a name="line-396"></a> <span class='varid'>return</span> <span class='varid'>ex</span>-<a name="line-397"></a> <span class='varop'><|></span>-<a name="line-398"></a> <span class='keyword'>do</span>-<a name="line-399"></a> <span class='varid'>li</span> <span class='keyglyph'><-</span> <span class='varid'>literal</span>-<a name="line-400"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>LiteralExpr</span> <span class='varid'>li</span><span class='layout'>)</span>-<a name="line-401"></a> <span class='varop'><|></span> -<a name="line-402"></a> <span class='keyword'>do</span>-<a name="line-403"></a> <span class='varid'>num</span> <span class='keyglyph'><-</span> <span class='varid'>number</span>-<a name="line-404"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>NumberExpr</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varop'>$</span> <span class='varid'>read</span> <span class='varid'>num</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-405"></a> <span class='varop'><|></span>-<a name="line-406"></a> <span class='keyword'>do</span>-<a name="line-407"></a> <span class='varid'>fc</span> <span class='keyglyph'><-</span> <span class='varid'>functionCall</span>-<a name="line-408"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>fc</span><span class='layout'>)</span>-<a name="line-409"></a> <span class='varop'><?></span> <span class='str'>"primaryExpr"</span>-<a name="line-410"></a>-<a name="line-411"></a>-<a name="line-412"></a><a name="functionCall"></a><span class='comment'>-- Function Calls (3.2)</span>-<a name="line-413"></a><span class='comment'>--</span>-<a name="line-414"></a><span class='comment'>-- [16] FunctionCall</span>-<a name="line-415"></a><span class='comment'>-- [17] Argument</span>-<a name="line-416"></a><span class='definition'>functionCall</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>Expr</span>-<a name="line-417"></a><span class='definition'>functionCall</span>-<a name="line-418"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-419"></a> <span class='varid'>fn</span> <span class='keyglyph'><-</span> <span class='varid'>functionName</span>-<a name="line-420"></a> <span class='varid'>arg</span> <span class='keyglyph'><-</span> <span class='varid'>between</span> <span class='varid'>lpar</span> <span class='varid'>rpar</span> <span class='layout'>(</span> <span class='varid'>sepBy</span> <span class='varid'>expr</span> <span class='layout'>(</span><span class='varid'>separator</span> <span class='chr'>','</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-421"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>FctExpr</span> <span class='varid'>fn</span> <span class='varid'>arg</span><span class='layout'>)</span>-<a name="line-422"></a> <span class='varop'><?></span> <span class='str'>"functionCall"</span>-<a name="line-423"></a>-<a name="line-424"></a>-<a name="line-425"></a><a name="unionExpr"></a><span class='comment'>-- Node-sets (3.3)</span>-<a name="line-426"></a><span class='comment'>--</span>-<a name="line-427"></a><span class='comment'>-- [18] UnionExpr</span>-<a name="line-428"></a><span class='definition'>unionExpr</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>Expr</span>-<a name="line-429"></a><span class='definition'>unionExpr</span>-<a name="line-430"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-431"></a> <span class='varid'>e1</span> <span class='keyglyph'><-</span> <span class='varid'>pathExpr</span>-<a name="line-432"></a> <span class='varid'>eRest</span> <span class='keyglyph'><-</span> <span class='varid'>many</span> <span class='layout'>(</span><span class='varid'>exprRest</span> <span class='varid'>unionOp</span> <span class='varid'>pathExpr</span><span class='layout'>)</span>-<a name="line-433"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>mkExprNode</span> <span class='varid'>e1</span> <span class='varid'>eRest</span><span class='layout'>)</span>-<a name="line-434"></a>-<a name="line-435"></a>-<a name="line-436"></a><a name="pathExpr"></a><span class='comment'>-- [19] PathExpr</span>-<a name="line-437"></a><span class='definition'>pathExpr</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>Expr</span>-<a name="line-438"></a><span class='definition'>pathExpr</span>-<a name="line-439"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-440"></a> <span class='varid'>fe</span> <span class='keyglyph'><-</span> <span class='varid'>try</span> <span class='varid'>filterExpr</span>-<a name="line-441"></a> <span class='varid'>path</span> <span class='keyglyph'><-</span> <span class='keyword'>do</span>-<a name="line-442"></a> <span class='varid'>dslash</span>-<a name="line-443"></a> <span class='conid'>LocPath</span> <span class='varid'>t1</span> <span class='varid'>t2</span> <span class='keyglyph'><-</span> <span class='varid'>relLocPath'</span>-<a name="line-444"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>PathExpr</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>fe</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='layout'>(</span><span class='conid'>LocPath</span> <span class='varid'>t1</span> <span class='layout'>(</span><span class='keyglyph'>[</span><span class='varid'>descOrSelfStep</span><span class='keyglyph'>]</span> <span class='varop'>++</span> <span class='varid'>t2</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-445"></a> <span class='varop'><|></span>-<a name="line-446"></a> <span class='keyword'>do</span>-<a name="line-447"></a> <span class='varid'>slash</span>-<a name="line-448"></a> <span class='varid'>relPath</span> <span class='keyglyph'><-</span> <span class='varid'>relLocPath'</span>-<a name="line-449"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>PathExpr</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>fe</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>relPath</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-450"></a> <span class='varop'><|></span>-<a name="line-451"></a> <span class='varid'>return</span> <span class='varid'>fe</span>-<a name="line-452"></a> <span class='varid'>return</span> <span class='varid'>path</span>-<a name="line-453"></a> <span class='varop'><|></span>-<a name="line-454"></a> <span class='keyword'>do</span>-<a name="line-455"></a> <span class='varid'>lp</span> <span class='keyglyph'><-</span> <span class='varid'>locPath</span>-<a name="line-456"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>PathExpr</span> <span class='conid'>Nothing</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>lp</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-457"></a> <span class='varop'><?></span> <span class='str'>"pathExpr"</span>-<a name="line-458"></a>-<a name="line-459"></a>-<a name="line-460"></a><a name="filterExpr"></a><span class='comment'>-- [20] FilterExpr</span>-<a name="line-461"></a><span class='definition'>filterExpr</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>Expr</span>-<a name="line-462"></a><span class='definition'>filterExpr</span>-<a name="line-463"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-464"></a> <span class='varid'>prim</span> <span class='keyglyph'><-</span> <span class='varid'>primaryExpr</span>-<a name="line-465"></a> <span class='varid'>predicates</span> <span class='keyglyph'><-</span> <span class='varid'>many</span> <span class='varid'>predicate</span>-<a name="line-466"></a> <span class='keyword'>if</span> <span class='varid'>length</span> <span class='varid'>predicates</span> <span class='varop'>></span> <span class='num'>0</span>-<a name="line-467"></a> <span class='keyword'>then</span> <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>FilterExpr</span> <span class='layout'>(</span><span class='varid'>prim</span> <span class='conop'>:</span> <span class='varid'>predicates</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-468"></a> <span class='keyword'>else</span> <span class='varid'>return</span> <span class='varid'>prim</span>-<a name="line-469"></a> <span class='varop'><?></span> <span class='str'>"filterExpr"</span>-<a name="line-470"></a>-<a name="line-471"></a>-<a name="line-472"></a><a name="orExpr"></a><span class='comment'>-- Booleans (3.4)</span>-<a name="line-473"></a><span class='comment'>--</span>-<a name="line-474"></a><span class='comment'>-- [21] OrExpr</span>-<a name="line-475"></a><span class='definition'>orExpr</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>Expr</span>-<a name="line-476"></a><span class='definition'>orExpr</span>-<a name="line-477"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-478"></a> <span class='varid'>e1</span> <span class='keyglyph'><-</span> <span class='varid'>andExpr</span>-<a name="line-479"></a> <span class='varid'>eRest</span> <span class='keyglyph'><-</span> <span class='varid'>many</span> <span class='layout'>(</span><span class='varid'>exprRest</span> <span class='varid'>orOp</span> <span class='varid'>andExpr</span><span class='layout'>)</span>-<a name="line-480"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>mkExprNode</span> <span class='varid'>e1</span> <span class='varid'>eRest</span><span class='layout'>)</span>-<a name="line-481"></a> <span class='varop'><?></span> <span class='str'>"orExpr"</span>-<a name="line-482"></a>-<a name="line-483"></a>-<a name="line-484"></a><a name="andExpr"></a><span class='comment'>-- [22] AndExpr</span>-<a name="line-485"></a><span class='definition'>andExpr</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>Expr</span>-<a name="line-486"></a><span class='definition'>andExpr</span>-<a name="line-487"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-488"></a> <span class='varid'>e1</span> <span class='keyglyph'><-</span> <span class='varid'>equalityExpr</span>-<a name="line-489"></a> <span class='varid'>eRest</span> <span class='keyglyph'><-</span> <span class='varid'>many</span> <span class='layout'>(</span><span class='varid'>exprRest</span> <span class='varid'>andOp</span> <span class='varid'>equalityExpr</span><span class='layout'>)</span>-<a name="line-490"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>mkExprNode</span> <span class='varid'>e1</span> <span class='varid'>eRest</span><span class='layout'>)</span>-<a name="line-491"></a> <span class='varop'><?></span> <span class='str'>"andExpr"</span>-<a name="line-492"></a>-<a name="line-493"></a>-<a name="line-494"></a><a name="equalityExpr"></a><span class='comment'>-- [23] EqualityExpr</span>-<a name="line-495"></a><span class='definition'>equalityExpr</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>Expr</span>-<a name="line-496"></a><span class='definition'>equalityExpr</span>-<a name="line-497"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-498"></a> <span class='varid'>e1</span> <span class='keyglyph'><-</span> <span class='varid'>relationalExpr</span>-<a name="line-499"></a> <span class='varid'>eRest</span> <span class='keyglyph'><-</span> <span class='varid'>many</span> <span class='layout'>(</span><span class='varid'>exprRest</span> <span class='varid'>eqOp</span> <span class='varid'>relationalExpr</span><span class='layout'>)</span>-<a name="line-500"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>mkExprNode</span> <span class='varid'>e1</span> <span class='varid'>eRest</span><span class='layout'>)</span>-<a name="line-501"></a> <span class='varop'><?></span> <span class='str'>"equalityExpr"</span>-<a name="line-502"></a>-<a name="line-503"></a>-<a name="line-504"></a><a name="relationalExpr"></a><span class='comment'>-- [24] RelationalExpr</span>-<a name="line-505"></a><span class='definition'>relationalExpr</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>Expr</span>-<a name="line-506"></a><span class='definition'>relationalExpr</span>-<a name="line-507"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-508"></a> <span class='varid'>e1</span> <span class='keyglyph'><-</span> <span class='varid'>additiveExpr</span>-<a name="line-509"></a> <span class='varid'>eRest</span> <span class='keyglyph'><-</span> <span class='varid'>many</span> <span class='layout'>(</span><span class='varid'>exprRest</span> <span class='varid'>relOp</span> <span class='varid'>additiveExpr</span><span class='layout'>)</span>-<a name="line-510"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>mkExprNode</span> <span class='varid'>e1</span> <span class='varid'>eRest</span><span class='layout'>)</span>-<a name="line-511"></a> <span class='varop'><?></span> <span class='str'>"relationalExpr"</span>-<a name="line-512"></a>-<a name="line-513"></a>-<a name="line-514"></a><a name="additiveExpr"></a><span class='comment'>-- Numbers (3.5)</span>-<a name="line-515"></a><span class='comment'>--</span>-<a name="line-516"></a><span class='comment'>-- [25] AdditiveExpr</span>-<a name="line-517"></a><span class='definition'>additiveExpr</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>Expr</span>-<a name="line-518"></a><span class='definition'>additiveExpr</span>-<a name="line-519"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-520"></a> <span class='varid'>e1</span> <span class='keyglyph'><-</span> <span class='varid'>multiplicativeExpr</span>-<a name="line-521"></a> <span class='varid'>eRest</span> <span class='keyglyph'><-</span> <span class='varid'>many</span> <span class='layout'>(</span><span class='varid'>exprRest</span> <span class='varid'>addOp</span> <span class='varid'>multiplicativeExpr</span><span class='layout'>)</span>-<a name="line-522"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>mkExprNode</span> <span class='varid'>e1</span> <span class='varid'>eRest</span><span class='layout'>)</span>-<a name="line-523"></a> <span class='varop'><?></span> <span class='str'>"additiveExpr"</span>-<a name="line-524"></a>-<a name="line-525"></a>-<a name="line-526"></a><a name="multiplicativeExpr"></a><span class='comment'>-- [26] MultiplicativeExpr</span>-<a name="line-527"></a><span class='definition'>multiplicativeExpr</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>Expr</span>-<a name="line-528"></a><span class='definition'>multiplicativeExpr</span>-<a name="line-529"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-530"></a> <span class='varid'>e1</span> <span class='keyglyph'><-</span> <span class='varid'>unaryExpr</span>-<a name="line-531"></a> <span class='varid'>eRest</span> <span class='keyglyph'><-</span> <span class='varid'>many</span> <span class='layout'>(</span><span class='varid'>exprRest</span> <span class='varid'>multiOp</span> <span class='varid'>unaryExpr</span><span class='layout'>)</span>-<a name="line-532"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>mkExprNode</span> <span class='varid'>e1</span> <span class='varid'>eRest</span><span class='layout'>)</span>-<a name="line-533"></a> <span class='varop'><?></span> <span class='str'>"multiplicativeExpr"</span>-<a name="line-534"></a>-<a name="line-535"></a>-<a name="line-536"></a><a name="unaryExpr"></a><span class='comment'>-- [27] UnaryExpr</span>-<a name="line-537"></a><span class='definition'>unaryExpr</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>Expr</span>-<a name="line-538"></a><span class='definition'>unaryExpr</span>-<a name="line-539"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-540"></a> <span class='varid'>tokenParser</span> <span class='layout'>(</span><span class='varid'>symbol</span> <span class='str'>"-"</span><span class='layout'>)</span>-<a name="line-541"></a> <span class='varid'>u</span> <span class='keyglyph'><-</span> <span class='varid'>unaryExpr</span>-<a name="line-542"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='conid'>GenExpr</span> <span class='conid'>Unary</span> <span class='keyglyph'>[</span><span class='varid'>u</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-543"></a> <span class='varop'><|></span>-<a name="line-544"></a> <span class='keyword'>do</span>-<a name="line-545"></a> <span class='varid'>u</span> <span class='keyglyph'><-</span> <span class='varid'>unionExpr</span>-<a name="line-546"></a> <span class='varid'>return</span> <span class='varid'>u</span>-<a name="line-547"></a> <span class='varop'><?></span> <span class='str'>"unaryExpr"</span>-<a name="line-548"></a>-<a name="line-549"></a>-<a name="line-550"></a><a name="literal"></a><span class='comment'>-- Lexical Structure (3.7)</span>-<a name="line-551"></a><span class='comment'>--</span>-<a name="line-552"></a><span class='comment'>-- [29] Literal</span>-<a name="line-553"></a><span class='comment'>-- systemLiteral from XmlParser is used</span>-<a name="line-554"></a><span class='definition'>literal</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>String</span>-<a name="line-555"></a><span class='definition'>literal</span> <span class='keyglyph'>=</span> <span class='varid'>systemLiteral</span>-<a name="line-556"></a>-<a name="line-557"></a>-<a name="line-558"></a><a name="number"></a><span class='comment'>-- [30] Number</span>-<a name="line-559"></a><span class='definition'>number</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>String</span>-<a name="line-560"></a><span class='definition'>number</span>-<a name="line-561"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-562"></a> <span class='varid'>tokenParser</span> <span class='layout'>(</span><span class='varid'>symbol</span> <span class='str'>"."</span><span class='layout'>)</span>-<a name="line-563"></a> <span class='varid'>d</span> <span class='keyglyph'><-</span> <span class='varid'>many1</span> <span class='varid'>digit</span>-<a name="line-564"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='str'>"0."</span> <span class='varop'>++</span> <span class='varid'>d</span><span class='layout'>)</span>-<a name="line-565"></a> <span class='varop'><|></span>-<a name="line-566"></a> <span class='keyword'>do</span>-<a name="line-567"></a> <span class='varid'>d</span> <span class='keyglyph'><-</span> <span class='varid'>many1</span> <span class='varid'>digit</span>-<a name="line-568"></a> <span class='varid'>d1</span> <span class='keyglyph'><-</span> <span class='varid'>option</span> <span class='str'>""</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-569"></a> <span class='varid'>tokenParser</span> <span class='layout'>(</span><span class='varid'>symbol</span> <span class='str'>"."</span><span class='layout'>)</span>-<a name="line-570"></a> <span class='varid'>d2</span> <span class='keyglyph'><-</span> <span class='varid'>option</span> <span class='str'>"0"</span> <span class='layout'>(</span><span class='varid'>many1</span> <span class='varid'>digit</span><span class='layout'>)</span>-<a name="line-571"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='str'>"."</span> <span class='varop'>++</span> <span class='varid'>d2</span><span class='layout'>)</span>-<a name="line-572"></a> <span class='layout'>)</span>-<a name="line-573"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>d</span> <span class='varop'>++</span> <span class='varid'>d1</span><span class='layout'>)</span>-<a name="line-574"></a> <span class='varop'><?></span> <span class='str'>"number"</span>-<a name="line-575"></a>-<a name="line-576"></a>-<a name="line-577"></a><span class='comment'>-- [35] FunctionName</span>-<a name="line-578"></a><span class='comment'>-- no nodetype name is allowed as a function name</span>-<a name="line-579"></a><span class='comment'>-- Tim Walkenhorst:</span>-<a name="line-580"></a><span class='comment'>-- Change in String encoding for function name</span>-<a name="line-581"></a><span class='comment'>--</span>-<a name="line-582"></a><span class='comment'>-- previoulsy: new:</span>-<a name="line-583"></a><span class='comment'>-- </span>-<a name="line-584"></a><span class='comment'>-- name name</span>-<a name="line-585"></a><span class='comment'>-- pref:name {<a href="http://uri-for-pref">http://uri-for-pref</a>}name</span>-<a name="line-586"></a>-<a name="line-587"></a><a name="functionName"></a><span class='definition'>functionName</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>String</span>-<a name="line-588"></a><span class='definition'>functionName</span>-<a name="line-589"></a> <span class='keyglyph'>=</span> <span class='varid'>try</span> <span class='layout'>(</span> <span class='keyword'>do</span> -<a name="line-590"></a> <span class='layout'>(</span><span class='varid'>p</span><span class='layout'>,</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='keyglyph'><-</span> <span class='varid'>qName</span>-<a name="line-591"></a> <span class='varid'>uris</span> <span class='keyglyph'><-</span> <span class='varid'>getState</span>-<a name="line-592"></a> <span class='varid'>u</span> <span class='keyglyph'><-</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>p</span>-<a name="line-593"></a> <span class='keyword'>then</span> <span class='str'>""</span>-<a name="line-594"></a> <span class='keyword'>else</span> <span class='chr'>'{'</span> <span class='conop'>:</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>lookupNs</span> <span class='varid'>uris</span> <span class='layout'>(</span><span class='varid'>newXName</span> <span class='varid'>p</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='str'>"}"</span>-<a name="line-595"></a> <span class='keyword'>let</span> <span class='varid'>fn</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>u</span> <span class='varop'>++</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='keyword'>in</span>-<a name="line-596"></a> <span class='keyword'>if</span> <span class='varid'>fn</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='str'>"processing-instruction"</span><span class='layout'>,</span> <span class='str'>"comment"</span><span class='layout'>,</span> <span class='str'>"text"</span><span class='layout'>,</span> <span class='str'>"node"</span><span class='keyglyph'>]</span>-<a name="line-597"></a> <span class='keyword'>then</span> <span class='varid'>fail</span> <span class='layout'>(</span><span class='str'>"function name: "</span> <span class='varop'>++</span> <span class='varid'>fn</span> <span class='varop'>++</span> <span class='str'>"not allowed"</span><span class='layout'>)</span>-<a name="line-598"></a> <span class='keyword'>else</span> <span class='varid'>return</span> <span class='varid'>fn</span>-<a name="line-599"></a> <span class='layout'>)</span>-<a name="line-600"></a> <span class='varop'><?></span> <span class='str'>"functionName"</span>-<a name="line-601"></a>-<a name="line-602"></a>-<a name="line-603"></a><a name="variableReference"></a><span class='comment'>-- [36] VariableReference</span>-<a name="line-604"></a><span class='definition'>variableReference</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span>-<a name="line-605"></a><span class='definition'>variableReference</span>-<a name="line-606"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-607"></a> <span class='varid'>tokenParser</span> <span class='layout'>(</span><span class='varid'>symbol</span> <span class='str'>"$"</span><span class='layout'>)</span>-<a name="line-608"></a> <span class='layout'>(</span><span class='varid'>p</span><span class='layout'>,</span><span class='varid'>n</span><span class='layout'>)</span> <span class='keyglyph'><-</span> <span class='varid'>qName</span>-<a name="line-609"></a> <span class='varid'>uris</span> <span class='keyglyph'><-</span> <span class='varid'>getState</span>-<a name="line-610"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>lookupNs</span> <span class='varid'>uris</span> <span class='layout'>(</span><span class='varid'>newXName</span> <span class='varid'>p</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>,</span> <span class='varid'>n</span><span class='layout'>)</span>-<a name="line-611"></a> <span class='varop'><?></span> <span class='str'>"variableReference"</span>-<a name="line-612"></a>-<a name="line-613"></a>-<a name="line-614"></a><a name="nameTest"></a><span class='comment'>-- [37] NameTest</span>-<a name="line-615"></a><span class='definition'>nameTest</span> <span class='keyglyph'>::</span> <span class='conid'>AxisSpec</span> <span class='keyglyph'>-></span> <span class='conid'>XParser</span> <span class='conid'>QName</span>-<a name="line-616"></a><span class='definition'>nameTest</span> <span class='keyword'>as</span>-<a name="line-617"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span> <span class='varid'>tokenParser</span> <span class='layout'>(</span><span class='varid'>symbol</span> <span class='str'>"*"</span><span class='layout'>)</span>-<a name="line-618"></a> <span class='varid'>uris</span> <span class='keyglyph'><-</span> <span class='varid'>getState</span>-<a name="line-619"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>enhanceQN</span> <span class='keyword'>as</span> <span class='varid'>uris</span> <span class='varop'>$</span> <span class='varid'>mkPrefixLocalPart</span> <span class='str'>""</span> <span class='str'>"*"</span><span class='layout'>)</span>-<a name="line-620"></a> <span class='varop'><|></span>-<a name="line-621"></a> <span class='varid'>try</span> <span class='layout'>(</span> <span class='keyword'>do</span> <span class='varid'>pre</span> <span class='keyglyph'><-</span> <span class='varid'>ncName</span>-<a name="line-622"></a> <span class='varid'>symbol</span> <span class='str'>":*"</span>-<a name="line-623"></a> <span class='varid'>uris</span> <span class='keyglyph'><-</span> <span class='varid'>getState</span>-<a name="line-624"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>enhanceQN</span> <span class='keyword'>as</span> <span class='varid'>uris</span> <span class='varop'>$</span> <span class='varid'>mkPrefixLocalPart</span> <span class='varid'>pre</span> <span class='str'>"*"</span><span class='layout'>)</span>-<a name="line-625"></a> <span class='layout'>)</span>-<a name="line-626"></a> <span class='varop'><|></span>-<a name="line-627"></a> <span class='keyword'>do</span> <span class='layout'>(</span><span class='varid'>pre</span><span class='layout'>,</span><span class='varid'>local</span><span class='layout'>)</span> <span class='keyglyph'><-</span> <span class='varid'>qName</span>-<a name="line-628"></a> <span class='varid'>uris</span> <span class='keyglyph'><-</span> <span class='varid'>getState</span>-<a name="line-629"></a> <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>enhanceQN</span> <span class='keyword'>as</span> <span class='varid'>uris</span> <span class='varop'>$</span> <span class='varid'>mkPrefixLocalPart</span> <span class='varid'>pre</span> <span class='varid'>local</span><span class='layout'>)</span>-<a name="line-630"></a> <span class='varop'><?></span> <span class='str'>"nameTest"</span>-<a name="line-631"></a>-<a name="line-632"></a> -<a name="line-633"></a><a name="nodeType'"></a><span class='comment'>-- [38] NodeType</span>-<a name="line-634"></a><span class='definition'>nodeType'</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>XPathNode</span>-<a name="line-635"></a><span class='definition'>nodeType'</span> -<a name="line-636"></a> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-637"></a> <span class='varid'>nt</span> <span class='keyglyph'><-</span> <span class='varid'>nodeType</span>-<a name="line-638"></a> <span class='varid'>lpar</span>-<a name="line-639"></a> <span class='varid'>rpar</span>-<a name="line-640"></a> <span class='varid'>return</span> <span class='varid'>nt</span>-<a name="line-641"></a> <span class='varop'><?></span> <span class='str'>"nodeType'"</span>-<a name="line-642"></a> -<a name="line-643"></a><a name="nodeType"></a><span class='definition'>nodeType</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>XPathNode</span>-<a name="line-644"></a><span class='definition'>nodeType</span> -<a name="line-645"></a> <span class='keyglyph'>=</span> <span class='varid'>choice</span> <span class='keyglyph'>[</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='varid'>n_comment</span><span class='layout'>,</span> <span class='conid'>XPCommentNode</span><span class='layout'>)</span>-<a name="line-646"></a> <span class='layout'>,</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='varid'>n_text</span><span class='layout'>,</span> <span class='conid'>XPTextNode</span><span class='layout'>)</span>-<a name="line-647"></a> <span class='layout'>,</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='varid'>n_processing_instruction</span><span class='layout'>,</span> <span class='conid'>XPPINode</span><span class='layout'>)</span>-<a name="line-648"></a> <span class='layout'>,</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='varid'>n_node</span><span class='layout'>,</span> <span class='conid'>XPNode</span><span class='layout'>)</span>-<a name="line-649"></a> <span class='keyglyph'>]</span>-<a name="line-650"></a> <span class='varop'><?></span> <span class='str'>"nodeType"</span>-<a name="line-651"></a>-<a name="line-652"></a><span class='comment'>-- ------------------------------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-XPath-XPathToNodeSet.html
@@ -1,88 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- |</span>-<a name="line-2"></a><span class='comment'>-- Convert an XPath result set into a node set</span>-<a name="line-3"></a><span class='comment'>--</span>-<a name="line-4"></a>-<a name="line-5"></a>-<a name="line-6"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathToNodeSet</span>-<a name="line-7"></a> <span class='layout'>(</span> <span class='varid'>xPValue2NodeSet</span>-<a name="line-8"></a> <span class='layout'>,</span> <span class='varid'>emptyNodeSet</span>-<a name="line-9"></a> <span class='layout'>)</span>-<a name="line-10"></a><span class='keyword'>where</span>-<a name="line-11"></a>-<a name="line-12"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>TypeDefs</span>-<a name="line-13"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathDataTypes</span>-<a name="line-14"></a>-<a name="line-15"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>-<a name="line-16"></a>-<a name="line-17"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>-<a name="line-18"></a><span class='comment'>-- |</span>-<a name="line-19"></a><span class='comment'>-- Convert a a XPath-value into a XmlNodeSet represented by a tree structure</span>-<a name="line-20"></a><span class='comment'>--</span>-<a name="line-21"></a><span class='comment'>-- The XmlNodeSet can be used to traverse a tree an process all</span>-<a name="line-22"></a><span class='comment'>-- marked nodes.</span>-<a name="line-23"></a>-<a name="line-24"></a><a name="xPValue2NodeSet"></a><span class='definition'>xPValue2NodeSet</span> <span class='keyglyph'>::</span> <span class='conid'>XPathValue</span> <span class='keyglyph'>-></span> <span class='conid'>XmlNodeSet</span>-<a name="line-25"></a><span class='definition'>xPValue2NodeSet</span> <span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='varid'>ns</span><span class='layout'>)</span>-<a name="line-26"></a> <span class='keyglyph'>=</span> <span class='varid'>toNodeSet</span> <span class='varid'>ns</span>-<a name="line-27"></a>-<a name="line-28"></a><span class='definition'>xPValue2NodeSet</span> <span class='keyword'>_</span>-<a name="line-29"></a> <span class='keyglyph'>=</span> <span class='varid'>emptyNodeSet</span>-<a name="line-30"></a>-<a name="line-31"></a><a name="emptyNodeSet"></a><span class='definition'>emptyNodeSet</span> <span class='keyglyph'>::</span> <span class='conid'>XmlNodeSet</span>-<a name="line-32"></a><span class='definition'>emptyNodeSet</span> <span class='keyglyph'>=</span> <span class='conid'>XNS</span> <span class='conid'>False</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-33"></a>-<a name="line-34"></a><a name="leafNodeSet"></a><span class='definition'>leafNodeSet</span> <span class='keyglyph'>::</span> <span class='conid'>XmlNodeSet</span>-<a name="line-35"></a><span class='definition'>leafNodeSet</span> <span class='keyglyph'>=</span> <span class='conid'>XNS</span> <span class='conid'>True</span> <span class='conid'>[]</span> <span class='conid'>[]</span>-<a name="line-36"></a>-<a name="line-37"></a><a name="toNodeSet"></a><span class='definition'>toNodeSet</span> <span class='keyglyph'>::</span> <span class='conid'>NodeSet</span> <span class='keyglyph'>-></span> <span class='conid'>XmlNodeSet</span>-<a name="line-38"></a><span class='definition'>toNodeSet</span>-<a name="line-39"></a> <span class='keyglyph'>=</span> <span class='varid'>pathListToNodeSet</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='varid'>toPath</span>-<a name="line-40"></a>-<a name="line-41"></a><a name="toPath"></a><span class='definition'>toPath</span> <span class='keyglyph'>::</span> <span class='conid'>NavXmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XmlNodeSet</span>-<a name="line-42"></a><span class='definition'>toPath</span>-<a name="line-43"></a> <span class='keyglyph'>=</span> <span class='varid'>upTree</span> <span class='varid'>leafNodeSet</span>-<a name="line-44"></a>-<a name="line-45"></a>-<a name="line-46"></a><a name="upTree"></a><span class='definition'>upTree</span> <span class='keyglyph'>::</span> <span class='conid'>XmlNodeSet</span> <span class='keyglyph'>-></span> <span class='conid'>NavXmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XmlNodeSet</span>-<a name="line-47"></a><span class='definition'>upTree</span> <span class='varid'>ps</span> <span class='varid'>t</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NT</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='varid'>n</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='sel'>_par</span> <span class='varid'>left</span> <span class='sel'>_right</span><span class='layout'>)</span>-<a name="line-48"></a> <span class='keyglyph'>=</span> <span class='varid'>up</span> <span class='layout'>(</span><span class='varid'>upNT</span> <span class='varid'>t</span><span class='layout'>)</span>-<a name="line-49"></a> <span class='keyword'>where</span>-<a name="line-50"></a> <span class='varid'>up</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>pt</span><span class='layout'>)</span>-<a name="line-51"></a> <span class='keyglyph'>|</span> <span class='varid'>isJust</span> <span class='varop'>.</span> <span class='varid'>upNT</span> <span class='varop'>$</span> <span class='varid'>pt</span> <span class='comment'>-- pt is a "real" node</span>-<a name="line-52"></a> <span class='keyglyph'>=</span> <span class='varid'>upTree</span> <span class='layout'>(</span><span class='varid'>pix</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='varid'>pt</span>-<a name="line-53"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='comment'>-- pt is the added root node, stop recursion</span>-<a name="line-54"></a> <span class='keyglyph'>=</span> <span class='varid'>ps</span>-<a name="line-55"></a> <span class='varid'>up</span> <span class='conid'>Nothing</span> <span class='comment'>-- never used recursion should stop earler</span>-<a name="line-56"></a> <span class='keyglyph'>=</span> <span class='varid'>ps</span>-<a name="line-57"></a>-<a name="line-58"></a> <span class='varid'>pix</span> <span class='layout'>(</span><span class='conid'>XAttr</span> <span class='varid'>qn</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>XNS</span> <span class='conid'>False</span> <span class='keyglyph'>[</span><span class='varid'>qn</span><span class='keyglyph'>]</span> <span class='conid'>[]</span>-<a name="line-59"></a> <span class='varid'>pix</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>XNS</span> <span class='conid'>False</span> <span class='conid'>[]</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>length</span> <span class='varid'>left</span><span class='layout'>,</span> <span class='varid'>ps</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-60"></a>-<a name="line-61"></a><a name="pathListToNodeSet"></a><span class='definition'>pathListToNodeSet</span> <span class='keyglyph'>::</span><span class='keyglyph'>[</span><span class='conid'>XmlNodeSet</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>XmlNodeSet</span>-<a name="line-62"></a><span class='definition'>pathListToNodeSet</span>-<a name="line-63"></a> <span class='keyglyph'>=</span> <span class='varid'>foldr</span> <span class='varid'>mergePaths</span> <span class='varid'>emptyNodeSet</span>-<a name="line-64"></a> <span class='keyword'>where</span>-<a name="line-65"></a> <span class='varid'>mergePaths</span> <span class='layout'>(</span><span class='conid'>XNS</span> <span class='varid'>p1</span> <span class='varid'>al1</span> <span class='varid'>cl1</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>XNS</span> <span class='varid'>p2</span> <span class='varid'>al2</span> <span class='varid'>cl2</span><span class='layout'>)</span>-<a name="line-66"></a> <span class='keyglyph'>=</span> <span class='conid'>XNS</span> <span class='layout'>(</span><span class='varid'>p1</span> <span class='varop'>||</span> <span class='varid'>p2</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>al1</span> <span class='varop'>++</span> <span class='varid'>al2</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>mergeSubPaths</span> <span class='varid'>cl1</span> <span class='varid'>cl2</span><span class='layout'>)</span>-<a name="line-67"></a>-<a name="line-68"></a> <span class='varid'>mergeSubPaths</span> <span class='conid'>[]</span> <span class='varid'>sp2</span> <span class='keyglyph'>=</span> <span class='varid'>sp2</span>-<a name="line-69"></a> <span class='varid'>mergeSubPaths</span> <span class='layout'>(</span><span class='varid'>s1</span><span class='conop'>:</span><span class='varid'>sp1</span><span class='layout'>)</span> <span class='varid'>sp2</span> <span class='keyglyph'>=</span> <span class='varid'>mergeSubPath</span> <span class='varid'>s1</span> <span class='layout'>(</span><span class='varid'>mergeSubPaths</span> <span class='varid'>sp1</span> <span class='varid'>sp2</span><span class='layout'>)</span>-<a name="line-70"></a>-<a name="line-71"></a> <span class='varid'>mergeSubPath</span> <span class='varid'>s1</span> <span class='conid'>[]</span>-<a name="line-72"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>s1</span><span class='keyglyph'>]</span>-<a name="line-73"></a> <span class='varid'>mergeSubPath</span> <span class='varid'>s1</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='varid'>ix1</span><span class='layout'>,</span><span class='varid'>p1</span><span class='layout'>)</span> <span class='varid'>sl</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='varid'>s2</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='varid'>ix2</span><span class='layout'>,</span> <span class='varid'>p2</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>sl'</span><span class='layout'>)</span>-<a name="line-74"></a> <span class='keyglyph'>|</span> <span class='varid'>ix1</span> <span class='varop'><</span> <span class='varid'>ix2</span> <span class='keyglyph'>=</span> <span class='varid'>s1</span> <span class='conop'>:</span> <span class='varid'>sl</span>-<a name="line-75"></a> <span class='keyglyph'>|</span> <span class='varid'>ix1</span> <span class='varop'>></span> <span class='varid'>ix2</span> <span class='keyglyph'>=</span> <span class='varid'>s2</span> <span class='conop'>:</span> <span class='varid'>mergeSubPath</span> <span class='varid'>s1</span> <span class='varid'>sl'</span> <span class='comment'>-- ordered insert of s1 </span>-<a name="line-76"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>ix1</span><span class='layout'>,</span> <span class='varid'>mergePaths</span> <span class='varid'>p1</span> <span class='varid'>p2</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>sl'</span> <span class='comment'>-- same ix merge subpaths</span>-<a name="line-77"></a>-<a name="line-78"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-XPath-XPathToString.html
@@ -1,146 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Text.XML.HXT.XPath.XPathToString-<a name="line-5"></a> Copyright : Copyright (C) 2008 Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe@fh-wedel.de)-<a name="line-9"></a> Stability : experimental-<a name="line-10"></a> Portability: portable-<a name="line-11"></a>-<a name="line-12"></a> Format an expression or value in tree- or string-representation-<a name="line-13"></a>-<a name="line-14"></a>-}</span>-<a name="line-15"></a>-<a name="line-16"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-17"></a>-<a name="line-18"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathToString</span>-<a name="line-19"></a> <span class='layout'>(</span> <span class='varid'>expr2XPathTree</span>-<a name="line-20"></a> <span class='layout'>,</span> <span class='varid'>xPValue2String</span>-<a name="line-21"></a> <span class='layout'>,</span> <span class='varid'>xPValue2XmlTrees</span>-<a name="line-22"></a> <span class='layout'>,</span> <span class='varid'>nt2XPathTree</span>-<a name="line-23"></a> <span class='layout'>,</span> <span class='varid'>pred2XPathTree</span>-<a name="line-24"></a> <span class='layout'>,</span> <span class='varid'>toXPathTree</span>-<a name="line-25"></a> <span class='layout'>)</span>-<a name="line-26"></a><span class='keyword'>where</span>-<a name="line-27"></a>-<a name="line-28"></a><span class='comment'>-- import Text.XML.HXT.DOM.XmlTree</span>-<a name="line-29"></a>-<a name="line-30"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>-<a name="line-31"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlNode</span>-<a name="line-32"></a> <span class='layout'>(</span> <span class='varid'>mkText</span>-<a name="line-33"></a> <span class='layout'>,</span> <span class='varid'>mkError</span>-<a name="line-34"></a> <span class='layout'>)</span>-<a name="line-35"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>FormatXmlTree</span>-<a name="line-36"></a> <span class='layout'>(</span> <span class='varid'>formatXmlTree</span> <span class='layout'>)</span>-<a name="line-37"></a>-<a name="line-38"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathDataTypes</span>-<a name="line-39"></a>-<a name="line-40"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Char</span>-<a name="line-41"></a> <span class='layout'>(</span> <span class='varid'>toLower</span> <span class='layout'>)</span>-<a name="line-42"></a>-<a name="line-43"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-44"></a>-<a name="line-45"></a><a name="XPathTree"></a><span class='keyword'>type</span> <span class='conid'>XPathTree</span> <span class='keyglyph'>=</span> <span class='conid'>NTree</span> <span class='conid'>String</span>-<a name="line-46"></a>-<a name="line-47"></a>-<a name="line-48"></a><a name="toXPathTree"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>-<a name="line-49"></a><span class='comment'>-- |</span>-<a name="line-50"></a><span class='comment'>-- Convert an navigable tree in a xmltree</span>-<a name="line-51"></a><span class='comment'>--</span>-<a name="line-52"></a><span class='definition'>toXPathTree</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>NavTree</span> <span class='varid'>a</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>NTree</span> <span class='varid'>a</span><span class='keyglyph'>]</span>-<a name="line-53"></a><span class='definition'>toXPathTree</span> <span class='varid'>xs</span> <span class='keyglyph'>=</span> <span class='varid'>foldr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='varid'>subtreeNT</span> <span class='varid'>x</span> <span class='conop'>:</span><span class='layout'>)</span><span class='layout'>)</span> <span class='conid'>[]</span> <span class='varid'>xs</span>-<a name="line-54"></a>-<a name="line-55"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>-<a name="line-56"></a><span class='comment'>-- |</span>-<a name="line-57"></a><span class='comment'>-- Format a XPath-value in string representation.</span>-<a name="line-58"></a><span class='comment'>-- Text output is done by 'formatXmlTree' for node-sets (trees),</span>-<a name="line-59"></a><span class='comment'>-- all other values are represented as strings.</span>-<a name="line-60"></a><span class='comment'>--</span>-<a name="line-61"></a>-<a name="line-62"></a><a name="xPValue2String"></a><span class='definition'>xPValue2String</span> <span class='keyglyph'>::</span> <span class='conid'>XPathValue</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-63"></a><span class='definition'>xPValue2String</span> <span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='varid'>ns</span><span class='layout'>)</span>-<a name="line-64"></a> <span class='keyglyph'>=</span> <span class='varid'>foldr</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>t</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>formatXmlTree</span> <span class='varid'>t</span> <span class='varop'>++</span> <span class='str'>"\n"</span><span class='layout'>)</span> <span class='varop'>++</span><span class='layout'>)</span><span class='layout'>)</span> <span class='str'>""</span> <span class='layout'>(</span><span class='varid'>toXPathTree</span> <span class='varid'>ns</span><span class='layout'>)</span>-<a name="line-65"></a><span class='definition'>xPValue2String</span> <span class='layout'>(</span><span class='conid'>XPVBool</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>toLower</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>b</span><span class='layout'>)</span>-<a name="line-66"></a><span class='definition'>xPValue2String</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>f</span><span class='layout'>)</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>show</span> <span class='varid'>f</span>-<a name="line-67"></a><span class='definition'>xPValue2String</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>show</span> <span class='varid'>s</span>-<a name="line-68"></a><span class='definition'>xPValue2String</span> <span class='layout'>(</span><span class='conid'>XPVString</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>s</span>-<a name="line-69"></a><span class='definition'>xPValue2String</span> <span class='layout'>(</span><span class='conid'>XPVError</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='str'>"Error: "</span> <span class='varop'>++</span> <span class='varid'>s</span>-<a name="line-70"></a>-<a name="line-71"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>-<a name="line-72"></a><span class='comment'>-- |</span>-<a name="line-73"></a><span class='comment'>-- Convert a a XPath-value into XmlTrees.</span>-<a name="line-74"></a><span class='comment'>--</span>-<a name="line-75"></a>-<a name="line-76"></a><a name="xPValue2XmlTrees"></a><span class='definition'>xPValue2XmlTrees</span> <span class='keyglyph'>::</span> <span class='conid'>XPathValue</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span>-<a name="line-77"></a><span class='definition'>xPValue2XmlTrees</span> <span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='varid'>ns</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>toXPathTree</span> <span class='varid'>ns</span>-<a name="line-78"></a><span class='definition'>xPValue2XmlTrees</span> <span class='layout'>(</span><span class='conid'>XPVBool</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>xtext</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>b</span><span class='layout'>)</span>-<a name="line-79"></a><span class='definition'>xPValue2XmlTrees</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>f</span><span class='layout'>)</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>xtext</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>f</span><span class='layout'>)</span>-<a name="line-80"></a><span class='definition'>xPValue2XmlTrees</span> <span class='layout'>(</span><span class='conid'>XPVNumber</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>xtext</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>s</span><span class='layout'>)</span>-<a name="line-81"></a><span class='definition'>xPValue2XmlTrees</span> <span class='layout'>(</span><span class='conid'>XPVString</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>xtext</span> <span class='varid'>s</span>-<a name="line-82"></a><span class='definition'>xPValue2XmlTrees</span> <span class='layout'>(</span><span class='conid'>XPVError</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>xerr</span> <span class='varid'>s</span>-<a name="line-83"></a>-<a name="line-84"></a><a name="xtext"></a><span class='definition'>xtext</span><span class='layout'>,</span> <span class='varid'>xerr</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTrees</span>-<a name="line-85"></a><span class='definition'>xtext</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conop'>:</span><span class='conid'>[]</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>mkText</span>-<a name="line-86"></a><a name="xerr"></a><span class='definition'>xerr</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conop'>:</span><span class='conid'>[]</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>mkError</span> <span class='varid'>c_err</span>-<a name="line-87"></a>-<a name="line-88"></a>-<a name="line-89"></a><a name="expr2XPathTree"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>-<a name="line-90"></a><span class='comment'>-- |</span>-<a name="line-91"></a><span class='comment'>-- Format a parsed XPath-expression in tree representation.</span>-<a name="line-92"></a><span class='comment'>-- Text output is done by 'formatXmlTree'</span>-<a name="line-93"></a><span class='comment'>--</span>-<a name="line-94"></a><span class='definition'>expr2XPathTree</span> <span class='keyglyph'>::</span> <span class='conid'>Expr</span> <span class='keyglyph'>-></span> <span class='conid'>XPathTree</span>-<a name="line-95"></a><span class='definition'>expr2XPathTree</span> <span class='layout'>(</span><span class='conid'>GenExpr</span> <span class='varid'>op</span> <span class='varid'>ex</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>NTree</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>op</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>expr2XPathTree</span> <span class='varid'>ex</span><span class='layout'>)</span>-<a name="line-96"></a><span class='definition'>expr2XPathTree</span> <span class='layout'>(</span><span class='conid'>NumberExpr</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>NTree</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='conid'>[]</span>-<a name="line-97"></a><span class='definition'>expr2XPathTree</span> <span class='layout'>(</span><span class='conid'>LiteralExpr</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>NTree</span> <span class='varid'>s</span> <span class='conid'>[]</span>-<a name="line-98"></a><span class='definition'>expr2XPathTree</span> <span class='layout'>(</span><span class='conid'>VarExpr</span> <span class='varid'>name</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>NTree</span> <span class='layout'>(</span><span class='str'>"Var: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>name</span><span class='layout'>)</span> <span class='conid'>[]</span>-<a name="line-99"></a><span class='definition'>expr2XPathTree</span> <span class='layout'>(</span><span class='conid'>FctExpr</span> <span class='varid'>n</span> <span class='varid'>arg</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>NTree</span> <span class='layout'>(</span><span class='str'>"Fct: "</span> <span class='varop'>++</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>expr2XPathTree</span> <span class='varid'>arg</span><span class='layout'>)</span>-<a name="line-100"></a>-<a name="line-101"></a><span class='definition'>expr2XPathTree</span> <span class='layout'>(</span><span class='conid'>FilterExpr</span> <span class='conid'>[]</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>NTree</span> <span class='str'>""</span> <span class='conid'>[]</span>-<a name="line-102"></a><span class='definition'>expr2XPathTree</span> <span class='layout'>(</span><span class='conid'>FilterExpr</span> <span class='layout'>(</span><span class='varid'>primary</span><span class='conop'>:</span><span class='varid'>predicate</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-103"></a> <span class='keyglyph'>=</span> <span class='conid'>NTree</span> <span class='str'>"FilterExpr"</span> <span class='keyglyph'>[</span><span class='varid'>expr2XPathTree</span> <span class='varid'>primary</span><span class='layout'>,</span> <span class='varid'>pred2XPathTree</span> <span class='varid'>predicate</span><span class='keyglyph'>]</span>-<a name="line-104"></a>-<a name="line-105"></a><span class='definition'>expr2XPathTree</span> <span class='layout'>(</span><span class='conid'>PathExpr</span> <span class='conid'>Nothing</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>lp</span><span class='layout'>)</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>locpath2XPathTree</span> <span class='varid'>lp</span>-<a name="line-106"></a><span class='definition'>expr2XPathTree</span> <span class='layout'>(</span><span class='conid'>PathExpr</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>fe</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>lp</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-107"></a> <span class='keyglyph'>=</span> <span class='conid'>NTree</span> <span class='str'>"PathExpr"</span> <span class='keyglyph'>[</span><span class='varid'>expr2XPathTree</span> <span class='varid'>fe</span><span class='layout'>,</span> <span class='varid'>locpath2XPathTree</span> <span class='varid'>lp</span><span class='keyglyph'>]</span>-<a name="line-108"></a><span class='definition'>expr2XPathTree</span> <span class='layout'>(</span><span class='conid'>PathExpr</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>NTree</span> <span class='str'>""</span> <span class='conid'>[]</span>-<a name="line-109"></a>-<a name="line-110"></a><a name="locpath2XPathTree"></a><span class='definition'>locpath2XPathTree</span> <span class='keyglyph'>::</span> <span class='conid'>LocationPath</span> <span class='keyglyph'>-></span> <span class='conid'>XPathTree</span>-<a name="line-111"></a><span class='definition'>locpath2XPathTree</span> <span class='layout'>(</span><span class='conid'>LocPath</span> <span class='varid'>rel</span> <span class='varid'>steps</span><span class='layout'>)</span>-<a name="line-112"></a> <span class='keyglyph'>=</span> <span class='conid'>NTree</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>rel</span> <span class='varop'>++</span> <span class='str'>"LocationPath"</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>step2XPathTree</span> <span class='varid'>steps</span><span class='layout'>)</span>-<a name="line-113"></a>-<a name="line-114"></a>-<a name="line-115"></a><a name="step2XPathTree"></a><span class='definition'>step2XPathTree</span> <span class='keyglyph'>::</span> <span class='conid'>XStep</span> <span class='keyglyph'>-></span> <span class='conid'>XPathTree</span>-<a name="line-116"></a><span class='definition'>step2XPathTree</span> <span class='layout'>(</span><span class='conid'>Step</span> <span class='varid'>axis</span> <span class='varid'>nt</span> <span class='conid'>[]</span><span class='layout'>)</span>-<a name="line-117"></a> <span class='keyglyph'>=</span> <span class='conid'>NTree</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>axis</span><span class='layout'>)</span> <span class='keyglyph'>[</span><span class='varid'>nt2XPathTree</span> <span class='varid'>nt</span><span class='keyglyph'>]</span>-<a name="line-118"></a><span class='definition'>step2XPathTree</span> <span class='layout'>(</span><span class='conid'>Step</span> <span class='varid'>axis</span> <span class='varid'>nt</span> <span class='varid'>expr</span><span class='layout'>)</span>-<a name="line-119"></a> <span class='keyglyph'>=</span> <span class='conid'>NTree</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>axis</span><span class='layout'>)</span> <span class='keyglyph'>[</span><span class='varid'>nt2XPathTree</span> <span class='varid'>nt</span><span class='layout'>,</span> <span class='varid'>pred2XPathTree</span> <span class='varid'>expr</span><span class='keyglyph'>]</span>-<a name="line-120"></a>-<a name="line-121"></a><a name="nt2XPathTree"></a><span class='definition'>nt2XPathTree</span> <span class='keyglyph'>::</span> <span class='conid'>NodeTest</span> <span class='keyglyph'>-></span> <span class='conid'>XPathTree</span>-<a name="line-122"></a><span class='definition'>nt2XPathTree</span> <span class='layout'>(</span><span class='conid'>TypeTest</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>NTree</span> <span class='layout'>(</span><span class='str'>"TypeTest: "</span><span class='varop'>++</span> <span class='varid'>typeTest2String</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='conid'>[]</span>-<a name="line-123"></a><span class='definition'>nt2XPathTree</span> <span class='layout'>(</span><span class='conid'>PI</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>NTree</span> <span class='layout'>(</span><span class='str'>"TypeTest: processing-instruction("</span><span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>s</span> <span class='varop'>++</span> <span class='str'>")"</span><span class='layout'>)</span> <span class='conid'>[]</span>-<a name="line-124"></a><span class='definition'>nt2XPathTree</span> <span class='layout'>(</span><span class='conid'>NameTest</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>NTree</span> <span class='layout'>(</span><span class='str'>"NameTest: "</span><span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='conid'>[]</span>-<a name="line-125"></a>-<a name="line-126"></a>-<a name="line-127"></a><a name="pred2XPathTree"></a><span class='definition'>pred2XPathTree</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>Expr</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>XPathTree</span>-<a name="line-128"></a><span class='definition'>pred2XPathTree</span> <span class='varid'>exprL</span> <span class='keyglyph'>=</span> <span class='conid'>NTree</span> <span class='str'>"Predicates"</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>expr2XPathTree</span> <span class='varid'>exprL</span><span class='layout'>)</span>-<a name="line-129"></a>-<a name="line-130"></a><a name="typeTest2String"></a><span class='definition'>typeTest2String</span> <span class='keyglyph'>::</span> <span class='conid'>XPathNode</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-131"></a><span class='definition'>typeTest2String</span> <span class='conid'>XPNode</span> <span class='keyglyph'>=</span> <span class='str'>"node()"</span>-<a name="line-132"></a><span class='definition'>typeTest2String</span> <span class='conid'>XPCommentNode</span> <span class='keyglyph'>=</span> <span class='str'>"comment()"</span>-<a name="line-133"></a><span class='definition'>typeTest2String</span> <span class='conid'>XPPINode</span> <span class='keyglyph'>=</span> <span class='str'>"processing-instruction()"</span>-<a name="line-134"></a><span class='definition'>typeTest2String</span> <span class='conid'>XPTextNode</span> <span class='keyglyph'>=</span> <span class='str'>"text()"</span>-<a name="line-135"></a>-<a name="line-136"></a><span class='comment'>-- ------------------------------------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-XPath.html
@@ -1,27 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- |</span>-<a name="line-2"></a><span class='comment'>-- This helper module exports elements from the basic libraries:</span>-<a name="line-3"></a><span class='comment'>-- XPathEval, XPathToString and XPathParser</span>-<a name="line-4"></a><span class='comment'>--</span>-<a name="line-5"></a><span class='comment'>-- Author : Torben Kuseler</span>-<a name="line-6"></a>-<a name="line-7"></a>-<a name="line-8"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span>-<a name="line-9"></a> <span class='layout'>(</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathEval</span>-<a name="line-10"></a> <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathToString</span>-<a name="line-11"></a> <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathParser</span>-<a name="line-12"></a> <span class='layout'>)</span> -<a name="line-13"></a><span class='keyword'>where</span>-<a name="line-14"></a>-<a name="line-15"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathEval</span>-<a name="line-16"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathToString</span>-<a name="line-17"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathParser</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-XSLT-Application.html
@@ -1,650 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Text.XML.HXT.XSLT.Application-<a name="line-5"></a> Copyright : Copyright (C) 2006 Tim Walkenhorst, Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)-<a name="line-9"></a> Stability : experimental-<a name="line-10"></a> Portability: portable-<a name="line-11"></a> Version : $Id: Application.hs,v 1.7 2007/05/02 06:41:05 hxml Exp $-<a name="line-12"></a>-<a name="line-13"></a> The transformation functions for XSLT transformation of XML documents-<a name="line-14"></a>-<a name="line-15"></a> Exports only two pure functions 'applyStylesheet' and 'applyStylesheetWParams'-<a name="line-16"></a>-<a name="line-17"></a>-}</span>-<a name="line-18"></a>-<a name="line-19"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-20"></a>-<a name="line-21"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XSLT</span><span class='varop'>.</span><span class='conid'>Application</span> -<a name="line-22"></a> <span class='layout'>(</span> <span class='varid'>applyStylesheet</span> <span class='comment'>-- CompiledStylesheet -> XmlTree -> [XmlTree]</span>-<a name="line-23"></a> <span class='layout'>,</span> <span class='varid'>applyStylesheetWParams</span> <span class='comment'>-- Map ExName Expr -> CompiledStylesheet -> XmlTree -> [XmlTree]</span>-<a name="line-24"></a> <span class='layout'>,</span> <span class='conid'>XPathParams</span>-<a name="line-25"></a> <span class='layout'>)</span>-<a name="line-26"></a><span class='keyword'>where</span>-<a name="line-27"></a>-<a name="line-28"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XSLT</span><span class='varop'>.</span><span class='conid'>Common</span>-<a name="line-29"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XSLT</span><span class='varop'>.</span><span class='conid'>CompiledStylesheet</span>-<a name="line-30"></a>-<a name="line-31"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>-<a name="line-32"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Either</span>-<a name="line-33"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>List</span>-<a name="line-34"></a>-<a name="line-35"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Map</span><span class='layout'>(</span><span class='conid'>Map</span><span class='layout'>)</span>-<a name="line-36"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Map</span> <span class='keyword'>as</span> <span class='conid'>Map</span> <span class='varid'>hiding</span> <span class='layout'>(</span><span class='conid'>Map</span><span class='layout'>)</span>-<a name="line-37"></a>-<a name="line-38"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Char</span>-<a name="line-39"></a>-<a name="line-40"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-41"></a>-<a name="line-42"></a><a name="XPathParams"></a><span class='keyword'>type</span> <span class='conid'>XPathParams</span> <span class='keyglyph'>=</span> <span class='conid'>Map</span> <span class='conid'>ExName</span> <span class='conid'>Expr</span>-<a name="line-43"></a>-<a name="line-44"></a><a name="VariableSet"></a><span class='keyword'>type</span> <span class='conid'>VariableSet</span> <span class='keyglyph'>=</span> <span class='conid'>Map</span> <span class='conid'>ExName</span> <span class='conid'>XPathValue</span>-<a name="line-45"></a>-<a name="line-46"></a><a name="ParamSet"></a><span class='keyword'>type</span> <span class='conid'>ParamSet</span> <span class='keyglyph'>=</span> <span class='conid'>VariableSet</span>-<a name="line-47"></a>-<a name="line-48"></a><a name="Context"></a><span class='keyword'>data</span> <span class='conid'>Context</span> <span class='keyglyph'>=</span> <span class='conid'>Ctx</span> <span class='conid'>NavXmlTree</span> <span class='comment'>-- current node</span>-<a name="line-49"></a> <span class='keyglyph'>[</span><span class='conid'>NavXmlTree</span><span class='keyglyph'>]</span> <span class='comment'>-- current node list </span>-<a name="line-50"></a> <span class='conid'>Int</span> <span class='comment'>-- pos. of curr-node 1..length</span>-<a name="line-51"></a> <span class='conid'>Int</span> <span class='comment'>-- length of node list</span>-<a name="line-52"></a> <span class='conid'>VariableSet</span> <span class='comment'>-- glob. Var</span>-<a name="line-53"></a> <span class='conid'>VariableSet</span> <span class='comment'>-- loc. Var</span>-<a name="line-54"></a> <span class='conid'>CompiledStylesheet</span> <span class='comment'>-- The stylesheet which is being applied</span>-<a name="line-55"></a> <span class='layout'>(</span><span class='conid'>Maybe</span> <span class='conid'>MatchRule</span><span class='layout'>)</span> <span class='comment'>-- Just the last applied match rule, Nothing within xsl:for-each</span>-<a name="line-56"></a> <span class='conid'>Int</span> <span class='comment'>-- recursion depth, needed for the creation of rtf-ids</span>-<a name="line-57"></a> <span class='keyglyph'>|</span> <span class='conid'>CtxEmpty</span> <span class='comment'>-- The empty-context, indicates that a branch of a transformation has been finished</span>-<a name="line-58"></a>-<a name="line-59"></a><a name="ctxGetNode"></a><span class='definition'>ctxGetNode</span> <span class='keyglyph'>::</span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='conid'>NavXmlTree</span>-<a name="line-60"></a><span class='definition'>ctxGetNode</span> <span class='conid'>CtxEmpty</span> <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='str'>"ctxGetNode: Internal error attempt to access the empty context"</span>-<a name="line-61"></a><span class='definition'>ctxGetNode</span> <span class='layout'>(</span><span class='conid'>Ctx</span> <span class='varid'>node</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>node</span>-<a name="line-62"></a>-<a name="line-63"></a><a name="ctxGetStylesheet"></a><span class='definition'>ctxGetStylesheet</span> <span class='keyglyph'>::</span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='conid'>CompiledStylesheet</span>-<a name="line-64"></a><span class='definition'>ctxGetStylesheet</span> <span class='conid'>CtxEmpty</span> <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='str'>"ctxGetStylesheet: Internal error attempt to access the empty context"</span>-<a name="line-65"></a><span class='definition'>ctxGetStylesheet</span> <span class='layout'>(</span><span class='conid'>Ctx</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='varid'>stylesheet</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>stylesheet</span>-<a name="line-66"></a>-<a name="line-67"></a><a name="ctxGetRule"></a><span class='definition'>ctxGetRule</span> <span class='keyglyph'>::</span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='conid'>Maybe</span> <span class='conid'>MatchRule</span>-<a name="line-68"></a><span class='definition'>ctxGetRule</span> <span class='conid'>CtxEmpty</span> <span class='keyglyph'>=</span> <span class='conid'>Nothing</span>-<a name="line-69"></a><span class='definition'>ctxGetRule</span> <span class='layout'>(</span><span class='conid'>Ctx</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='varid'>rule</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>rule</span>-<a name="line-70"></a>-<a name="line-71"></a><a name="ctxSetNodes"></a><span class='definition'>ctxSetNodes</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>NavXmlTree</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span>-<a name="line-72"></a><span class='definition'>ctxSetNodes</span> <span class='keyword'>_</span> <span class='conid'>CtxEmpty</span> <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='str'>"ctxSetNodes: Internal error attempt to access the empty context"</span>-<a name="line-73"></a><span class='definition'>ctxSetNodes</span> <span class='conid'>[]</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>CtxEmpty</span>-<a name="line-74"></a><span class='definition'>ctxSetNodes</span> <span class='varid'>nodes</span> <span class='layout'>(</span><span class='conid'>Ctx</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='varid'>globVars</span> <span class='varid'>locVars</span> <span class='varid'>cs</span> <span class='varid'>rl</span> <span class='varid'>rd</span><span class='layout'>)</span> <span class='keyglyph'>=</span>-<a name="line-75"></a> <span class='conid'>Ctx</span> <span class='layout'>(</span><span class='varid'>head</span> <span class='varid'>nodes</span><span class='layout'>)</span> <span class='varid'>nodes</span> <span class='num'>1</span> <span class='layout'>(</span><span class='varid'>length</span> <span class='varid'>nodes</span><span class='layout'>)</span> <span class='varid'>globVars</span> <span class='varid'>locVars</span> <span class='varid'>cs</span> <span class='varid'>rl</span> <span class='varid'>rd</span>-<a name="line-76"></a>-<a name="line-77"></a><a name="ctxSetRule"></a><span class='definition'>ctxSetRule</span> <span class='keyglyph'>::</span> <span class='conid'>Maybe</span> <span class='conid'>MatchRule</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span>-<a name="line-78"></a><span class='definition'>ctxSetRule</span> <span class='keyword'>_</span> <span class='conid'>CtxEmpty</span> <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='str'>"ctxSetRule: Internal error attempt to access the empty context"</span>-<a name="line-79"></a><span class='definition'>ctxSetRule</span> <span class='varid'>rule</span> <span class='layout'>(</span><span class='conid'>Ctx</span> <span class='varid'>node</span> <span class='varid'>nodes</span> <span class='varid'>pos</span> <span class='varid'>len</span> <span class='varid'>globVars</span> <span class='varid'>locVars</span> <span class='varid'>cs</span> <span class='keyword'>_</span> <span class='varid'>rd</span><span class='layout'>)</span> <span class='keyglyph'>=</span>-<a name="line-80"></a> <span class='conid'>Ctx</span> <span class='varid'>node</span> <span class='varid'>nodes</span> <span class='varid'>pos</span> <span class='varid'>len</span> <span class='varid'>globVars</span> <span class='varid'>locVars</span> <span class='varid'>cs</span> <span class='varid'>rule</span> <span class='varid'>rd</span>-<a name="line-81"></a>-<a name="line-82"></a><a name="addVariableBinding"></a><span class='definition'>addVariableBinding</span> <span class='keyglyph'>::</span> <span class='conid'>ExName</span> <span class='keyglyph'>-></span> <span class='conid'>XPathValue</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span>-<a name="line-83"></a><span class='definition'>addVariableBinding</span> <span class='varid'>name</span> <span class='varid'>val</span> <span class='layout'>(</span><span class='conid'>Ctx</span> <span class='varid'>node</span> <span class='varid'>nodes</span> <span class='varid'>pos</span> <span class='varid'>len</span> <span class='varid'>globVars</span> <span class='varid'>locVars</span> <span class='varid'>cs</span> <span class='varid'>rl</span> <span class='varid'>rd</span><span class='layout'>)</span>-<a name="line-84"></a> <span class='keyglyph'>=</span> <span class='conid'>Ctx</span> <span class='varid'>node</span> <span class='varid'>nodes</span> <span class='varid'>pos</span> <span class='varid'>len</span> <span class='varid'>globVars</span> <span class='varid'>locVarsNew</span> <span class='varid'>cs</span> <span class='varid'>rl</span> <span class='varid'>rd</span>-<a name="line-85"></a> <span class='keyword'>where</span>-<a name="line-86"></a> <span class='varid'>locVarsNew</span> <span class='keyglyph'>=</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>insertWith</span> <span class='layout'>(</span><span class='varid'>errF</span><span class='layout'>)</span> <span class='varid'>name</span> <span class='varid'>val</span> <span class='varid'>locVars</span>-<a name="line-87"></a> <span class='varid'>errF</span> <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='varop'>$</span> <span class='str'>"Local variable or parameter "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>name</span> <span class='varop'>++</span> <span class='str'>" is already bound in this context"</span>-<a name="line-88"></a>-<a name="line-89"></a><span class='definition'>addVariableBinding</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='conid'>CtxEmpty</span> <span class='keyglyph'>=</span> <span class='conid'>CtxEmpty</span>-<a name="line-90"></a>-<a name="line-91"></a><a name="clearLocalVariables"></a><span class='definition'>clearLocalVariables</span> <span class='keyglyph'>::</span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span>-<a name="line-92"></a><span class='definition'>clearLocalVariables</span> <span class='conid'>CtxEmpty</span> <span class='keyglyph'>=</span> <span class='conid'>CtxEmpty</span>-<a name="line-93"></a><span class='definition'>clearLocalVariables</span> <span class='layout'>(</span><span class='conid'>Ctx</span> <span class='varid'>node</span> <span class='varid'>nodes</span> <span class='varid'>pos</span> <span class='varid'>len</span> <span class='varid'>globVars</span> <span class='keyword'>_</span> <span class='varid'>cs</span> <span class='varid'>rl</span> <span class='varid'>rd</span><span class='layout'>)</span>-<a name="line-94"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conid'>Ctx</span> <span class='varid'>node</span> <span class='varid'>nodes</span> <span class='varid'>pos</span> <span class='varid'>len</span> <span class='varid'>globVars</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>empty</span> <span class='varid'>cs</span> <span class='varid'>rl</span> <span class='varid'>rd</span><span class='layout'>)</span>-<a name="line-95"></a>-<a name="line-96"></a><a name="processContext"></a><span class='definition'>processContext</span> <span class='keyglyph'>::</span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='conid'>Context</span><span class='keyglyph'>-></span><span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>-<a name="line-97"></a><span class='definition'>processContext</span> <span class='conid'>CtxEmpty</span> <span class='sel'>_f</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-98"></a><span class='definition'>processContext</span> <span class='varid'>ctx</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Ctx</span> <span class='sel'>_node</span> <span class='varid'>nodeList</span> <span class='varid'>pos</span> <span class='varid'>len</span> <span class='varid'>globVar</span> <span class='varid'>locVar</span> <span class='varid'>cs</span> <span class='varid'>rl</span> <span class='varid'>rd</span><span class='layout'>)</span> <span class='varid'>f</span>-<a name="line-99"></a> <span class='keyglyph'>|</span> <span class='varid'>pos</span> <span class='varop'>></span> <span class='varid'>len</span>-<a name="line-100"></a> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-101"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-102"></a> <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varid'>ctx</span> <span class='varop'>++</span> <span class='varid'>processContext</span> <span class='layout'>(</span><span class='conid'>Ctx</span> <span class='layout'>(</span><span class='varid'>nodeList</span><span class='varop'>!!</span><span class='varid'>pos</span><span class='layout'>)</span> <span class='varid'>nodeList</span> <span class='layout'>(</span><span class='varid'>pos</span><span class='varop'>+</span><span class='num'>1</span><span class='layout'>)</span> <span class='varid'>len</span> <span class='varid'>globVar</span> <span class='varid'>locVar</span> <span class='varid'>cs</span> <span class='varid'>rl</span> <span class='varid'>rd</span><span class='layout'>)</span> <span class='varid'>f</span>-<a name="line-103"></a> -<a name="line-104"></a><a name="incRecDepth"></a><span class='definition'>incRecDepth</span> <span class='keyglyph'>::</span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span>-<a name="line-105"></a><span class='definition'>incRecDepth</span> <span class='conid'>CtxEmpty</span> <span class='keyglyph'>=</span> <span class='conid'>CtxEmpty</span>-<a name="line-106"></a><span class='definition'>incRecDepth</span> <span class='layout'>(</span><span class='conid'>Ctx</span> <span class='varid'>n</span> <span class='varid'>nl</span> <span class='varid'>p</span> <span class='varid'>l</span> <span class='varid'>gl</span> <span class='varid'>lc</span> <span class='varid'>cs</span> <span class='varid'>rl</span> <span class='varid'>rd</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>Ctx</span> <span class='varid'>n</span> <span class='varid'>nl</span> <span class='varid'>p</span> <span class='varid'>l</span> <span class='varid'>gl</span> <span class='varid'>lc</span> <span class='varid'>cs</span> <span class='varid'>rl</span> <span class='layout'>(</span><span class='varid'>rd</span><span class='varop'>+</span><span class='num'>1</span><span class='layout'>)</span>-<a name="line-107"></a>-<a name="line-108"></a><a name="recDepth"></a><span class='definition'>recDepth</span> <span class='keyglyph'>::</span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='conid'>Int</span>-<a name="line-109"></a><span class='definition'>recDepth</span> <span class='layout'>(</span><span class='conid'>Ctx</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='varid'>rd</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>rd</span>-<a name="line-110"></a><span class='definition'>recDepth</span> <span class='conid'>CtxEmpty</span> <span class='keyglyph'>=</span> <span class='num'>0</span>-<a name="line-111"></a> -<a name="line-112"></a><span class='comment'>-- ----------------</span>-<a name="line-113"></a>-<a name="line-114"></a><a name="evalXPathExpr"></a><span class='definition'>evalXPathExpr</span> <span class='keyglyph'>::</span> <span class='conid'>Expr</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='conid'>XPathValue</span>-<a name="line-115"></a><span class='definition'>evalXPathExpr</span> <span class='varid'>expr</span> <span class='layout'>(</span><span class='conid'>Ctx</span> <span class='varid'>node</span> <span class='keyword'>_</span> <span class='varid'>pos</span> <span class='varid'>len</span> <span class='varid'>globVars</span> <span class='varid'>locVars</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span>-<a name="line-116"></a> <span class='keyglyph'>=</span> <span class='varid'>filterXPath</span> <span class='varop'>$</span> <span class='varid'>evalExpr</span> <span class='layout'>(</span><span class='varid'>vars</span><span class='layout'>,</span><span class='conid'>[]</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>pos</span><span class='layout'>,</span> <span class='varid'>len</span><span class='layout'>,</span> <span class='varid'>node</span><span class='layout'>)</span> <span class='varid'>expr</span> <span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='keyglyph'>[</span><span class='varid'>node</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-117"></a> <span class='keyword'>where</span> -<a name="line-118"></a> <span class='varid'>filterXPath</span> <span class='layout'>(</span><span class='conid'>XPVError</span> <span class='varid'>err</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='varid'>err</span>-<a name="line-119"></a> <span class='varid'>filterXPath</span> <span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='varid'>nodes</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNode</span> <span class='varop'>$</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>x</span> <span class='keyglyph'>-></span> <span class='varid'>fst</span> <span class='varid'>x</span> <span class='varop'>++</span> <span class='varid'>snd</span> <span class='varid'>x</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>partition</span> <span class='layout'>(</span><span class='varid'>isAttr</span><span class='varop'>.</span><span class='varid'>subtreeNT</span><span class='layout'>)</span> <span class='varid'>nodes</span>-<a name="line-120"></a> <span class='comment'>-- line above: complicated issue: consider: <lre><xsl:copy-of select="a/@*|a/*|b/@*"/></lre></span>-<a name="line-121"></a> <span class='comment'>-- assume a is in document order before b. Shall b's attributes be added to lre or be ignored?!</span>-<a name="line-122"></a> <span class='varid'>filterXPath</span> <span class='varid'>xpv</span> <span class='keyglyph'>=</span> <span class='varid'>xpv</span>-<a name="line-123"></a> <span class='varid'>vars</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='layout'>(</span><span class='varid'>name</span><span class='layout'>,</span> <span class='varid'>val</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>exUri</span> <span class='varid'>name</span><span class='layout'>,</span> <span class='varid'>exLocal</span> <span class='varid'>name</span><span class='layout'>)</span><span class='layout'>,</span> <span class='varid'>val</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varid'>varList</span>-<a name="line-124"></a> <span class='varid'>varList</span> <span class='keyglyph'>=</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>toAscList</span> <span class='varop'>$</span> <span class='varid'>locVars</span> <span class='varop'>`</span><span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>union</span><span class='varop'>`</span> <span class='varid'>globVars</span>-<a name="line-125"></a>-<a name="line-126"></a><span class='definition'>evalXPathExpr</span> <span class='keyword'>_</span> <span class='conid'>CtxEmpty</span>-<a name="line-127"></a> <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='str'>"internal error in evalXPathExpr in XSLT module"</span>-<a name="line-128"></a>-<a name="line-129"></a><a name="evalRtf"></a><span class='definition'>evalRtf</span> <span class='keyglyph'>::</span> <span class='conid'>Template</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='conid'>XPathValue</span>-<a name="line-130"></a><span class='definition'>evalRtf</span> <span class='varid'>template</span> <span class='varid'>rtfId</span> <span class='varid'>ctx</span> <span class='keyglyph'>=</span> <span class='conid'>XPVNode</span> <span class='keyglyph'>[</span><span class='varid'>ntree</span> <span class='varid'>rtfRoot</span><span class='keyglyph'>]</span>-<a name="line-131"></a> <span class='keyword'>where</span>-<a name="line-132"></a> <span class='varid'>rtfRoot</span> <span class='keyglyph'>=</span> <span class='varid'>setAttribute</span> <span class='varid'>rootIdName</span> <span class='layout'>(</span><span class='str'>"rtf "</span> <span class='varop'>++</span> <span class='varid'>rtfId</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>mkRoot</span> <span class='conid'>[]</span> <span class='varop'>$</span> <span class='varid'>applyTemplate</span> <span class='varid'>template</span> <span class='varid'>ctx</span>-<a name="line-133"></a> <span class='varid'>rootIdName</span> <span class='keyglyph'>=</span> <span class='varid'>mkQName</span> <span class='str'>""</span> <span class='str'>"rootId"</span> <span class='str'>""</span>-<a name="line-134"></a>-<a name="line-135"></a><a name="applySelect"></a><span class='definition'>applySelect</span> <span class='keyglyph'>::</span> <span class='conid'>SelectExpr</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>NavXmlTree</span><span class='keyglyph'>]</span>-<a name="line-136"></a><span class='definition'>applySelect</span> <span class='layout'>(</span><span class='conid'>SelectExpr</span> <span class='varid'>expr</span><span class='layout'>)</span> <span class='varid'>ctx</span> <span class='keyglyph'>=</span> -<a name="line-137"></a> <span class='varid'>extractNodes</span> <span class='varid'>xpathResult</span>-<a name="line-138"></a> <span class='keyword'>where</span> -<a name="line-139"></a> <span class='varid'>xpathResult</span> <span class='keyglyph'>=</span> <span class='varid'>evalXPathExpr</span> <span class='varid'>expr</span> <span class='varid'>ctx</span>-<a name="line-140"></a> <span class='varid'>extractNodes</span> <span class='layout'>(</span><span class='conid'>XPVNode</span> <span class='varid'>nodes</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>nodes</span>-<a name="line-141"></a> <span class='varid'>extractNodes</span> <span class='varid'>r</span> <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='varop'>$</span> <span class='str'>"XPATH-Expression in select or match attribute returned a value of the wrong type ("</span> -<a name="line-142"></a> <span class='varop'>++</span> <span class='varid'>take</span> <span class='num'>15</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='varid'>r</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='str'>"...)"</span>-<a name="line-143"></a>-<a name="line-144"></a><a name="applyTest"></a><span class='definition'>applyTest</span> <span class='keyglyph'>::</span> <span class='conid'>TestExpr</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-145"></a><span class='definition'>applyTest</span> <span class='layout'>(</span><span class='conid'>TestExpr</span> <span class='varid'>expr</span><span class='layout'>)</span> <span class='varid'>ctx</span> <span class='keyglyph'>=</span> <span class='varid'>bool</span>-<a name="line-146"></a> <span class='keyword'>where</span> <span class='layout'>(</span><span class='conid'>XPVBool</span> <span class='varid'>bool</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>evalXPathExpr</span> <span class='varid'>expr</span> <span class='varid'>ctx</span>-<a name="line-147"></a>-<a name="line-148"></a><a name="applyStringExpr"></a><span class='definition'>applyStringExpr</span> <span class='keyglyph'>::</span> <span class='conid'>StringExpr</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-149"></a><span class='definition'>applyStringExpr</span> <span class='layout'>(</span><span class='conid'>StringExpr</span> <span class='varid'>expr</span><span class='layout'>)</span> <span class='varid'>ctx</span> <span class='keyglyph'>=</span> <span class='varid'>string</span>-<a name="line-150"></a> <span class='keyword'>where</span> <span class='layout'>(</span><span class='conid'>XPVString</span> <span class='varid'>string</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>evalXPathExpr</span> <span class='varid'>expr</span> <span class='varid'>ctx</span>-<a name="line-151"></a>-<a name="line-152"></a><a name="applyMatch"></a><span class='definition'>applyMatch</span> <span class='keyglyph'>::</span> <span class='conid'>MatchExpr</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-153"></a><span class='definition'>applyMatch</span> <span class='layout'>(</span><span class='conid'>MatchExpr</span> <span class='varid'>expr</span><span class='layout'>)</span> <span class='varid'>ctx</span>-<a name="line-154"></a> <span class='keyglyph'>=</span> <span class='varid'>matchBySelect</span> <span class='layout'>(</span><span class='conid'>SelectExpr</span> <span class='varid'>expr</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>ctxGetNode</span> <span class='varid'>ctx</span><span class='layout'>)</span> <span class='varid'>ctx</span>-<a name="line-155"></a> <span class='keyword'>where</span>-<a name="line-156"></a> <span class='varid'>matchBySelect</span> <span class='keyglyph'>::</span> <span class='conid'>SelectExpr</span> <span class='keyglyph'>-></span> <span class='conid'>NavXmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-157"></a> <span class='varid'>matchBySelect</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='conid'>CtxEmpty</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-158"></a> <span class='varid'>matchBySelect</span> <span class='varid'>expr'</span> <span class='varid'>matchNode</span> <span class='varid'>ctx'</span> -<a name="line-159"></a> <span class='keyglyph'>|</span> <span class='varid'>matchNode</span> <span class='varop'>`isNotInNodeList`</span> <span class='varid'>applySelect</span> <span class='varid'>expr'</span> <span class='varid'>ctx'</span>-<a name="line-160"></a> <span class='keyglyph'>=</span> <span class='varid'>matchBySelect</span> <span class='varid'>expr'</span> <span class='varid'>matchNode</span> <span class='varop'>$</span> <span class='varid'>ctxSetNodes</span> <span class='layout'>(</span><span class='varid'>maybeToList</span> <span class='varop'>$</span> <span class='varid'>upNT</span> <span class='varop'>$</span> <span class='varid'>ctxGetNode</span> <span class='varid'>ctx'</span><span class='layout'>)</span> <span class='varid'>ctx'</span>-<a name="line-161"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-162"></a> <span class='keyglyph'>=</span> <span class='conid'>True</span> -<a name="line-163"></a>-<a name="line-164"></a><span class='comment'>-- ------------------------------------</span>-<a name="line-165"></a>-<a name="line-166"></a><a name="applyComputedQName"></a><span class='definition'>applyComputedQName</span> <span class='keyglyph'>::</span> <span class='conid'>ComputedQName</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='conid'>QName</span>-<a name="line-167"></a>-<a name="line-168"></a><span class='definition'>applyComputedQName</span> <span class='layout'>(</span><span class='conid'>LiteralQName</span> <span class='varid'>qName</span><span class='layout'>)</span> <span class='varid'>ctx</span> <span class='keyglyph'>=</span> -<a name="line-169"></a> <span class='varid'>lookupAlias</span> <span class='layout'>(</span><span class='varid'>getAliases</span> <span class='varop'>$</span> <span class='varid'>ctxGetStylesheet</span> <span class='varid'>ctx</span><span class='layout'>)</span> <span class='varid'>qName</span>-<a name="line-170"></a>-<a name="line-171"></a><span class='definition'>applyComputedQName</span> <span class='layout'>(</span><span class='conid'>CompQName</span> <span class='varid'>uris</span> <span class='varid'>nameATV</span> <span class='varid'>nsATV</span><span class='layout'>)</span> <span class='varid'>ctx</span> <span class='keyglyph'>=</span>-<a name="line-172"></a> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>nsuri</span> <span class='varop'>&&</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>null</span> <span class='varid'>pref</span><span class='layout'>)</span>-<a name="line-173"></a> <span class='keyword'>then</span> <span class='varid'>mkQName</span> <span class='varid'>pref</span> <span class='varid'>loc</span> <span class='varop'>$</span> <span class='varid'>lookupPrefix</span> <span class='varid'>uris</span> <span class='varid'>pref</span>-<a name="line-174"></a> <span class='keyword'>else</span> <span class='varid'>mkQName</span> <span class='varid'>pref</span> <span class='varid'>loc</span> <span class='varid'>nsuri</span>-<a name="line-175"></a> <span class='keyword'>where</span> -<a name="line-176"></a> <span class='varid'>nsuri</span> <span class='keyglyph'>=</span> <span class='varid'>applyStringExpr</span> <span class='varid'>nsATV</span> <span class='varid'>ctx</span> -<a name="line-177"></a> <span class='layout'>(</span><span class='varid'>pref</span><span class='layout'>,</span> <span class='varid'>loc</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>loc'</span> <span class='keyword'>then</span> <span class='layout'>(</span><span class='str'>""</span><span class='layout'>,</span> <span class='varid'>pref'</span><span class='layout'>)</span> -<a name="line-178"></a> <span class='keyword'>else</span> <span class='layout'>(</span><span class='varid'>pref'</span><span class='layout'>,</span> <span class='varid'>tail</span> <span class='varid'>loc'</span><span class='layout'>)</span>-<a name="line-179"></a> <span class='layout'>(</span><span class='varid'>pref'</span><span class='layout'>,</span> <span class='varid'>loc'</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>span</span> <span class='layout'>(</span><span class='varop'>/=</span><span class='chr'>':'</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>applyStringExpr</span> <span class='varid'>nameATV</span> <span class='varid'>ctx</span>-<a name="line-180"></a>-<a name="line-181"></a><span class='comment'>-- ------------------------------------</span>-<a name="line-182"></a> -<a name="line-183"></a><a name="applyComposite"></a><span class='definition'>applyComposite</span> <span class='keyglyph'>::</span> <span class='conid'>Template</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>-<a name="line-184"></a><span class='definition'>applyComposite</span> <span class='layout'>(</span><span class='conid'>TemplComposite</span> <span class='varid'>templates</span><span class='layout'>)</span> <span class='varid'>ctx</span>-<a name="line-185"></a> <span class='keyglyph'>=</span> <span class='varid'>concat</span> <span class='varop'>$</span> <span class='varid'>reverse</span> <span class='varop'>$</span> <span class='varid'>fst</span> <span class='varop'>$</span> <span class='varid'>foldl</span> <span class='varid'>applyElem</span> <span class='layout'>(</span><span class='conid'>[]</span><span class='layout'>,</span> <span class='varid'>ctx</span><span class='layout'>)</span> <span class='varid'>templates</span>-<a name="line-186"></a> <span class='keyword'>where</span> -<a name="line-187"></a> <span class='varid'>applyElem</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='keyglyph'>[</span><span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span><span class='keyglyph'>]</span><span class='layout'>,</span> <span class='conid'>Context</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>Template</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='keyglyph'>[</span><span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span><span class='keyglyph'>]</span><span class='layout'>,</span> <span class='conid'>Context</span><span class='layout'>)</span>-<a name="line-188"></a> <span class='varid'>applyElem</span> <span class='layout'>(</span><span class='varid'>nodes</span><span class='layout'>,</span> <span class='varid'>ctx'</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>TemplVariable</span> <span class='varid'>v</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>nodes</span><span class='layout'>,</span> <span class='varid'>processLocalVariable</span> <span class='varid'>v</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>empty</span> <span class='varid'>ctx'</span><span class='layout'>)</span>-<a name="line-189"></a> <span class='varid'>applyElem</span> <span class='layout'>(</span><span class='varid'>nodes</span><span class='layout'>,</span> <span class='varid'>ctx'</span><span class='layout'>)</span> <span class='varid'>t</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>applyTemplate</span> <span class='varid'>t</span> <span class='varid'>ctx'</span> <span class='conop'>:</span> <span class='varid'>nodes</span><span class='layout'>,</span> <span class='varid'>ctx'</span><span class='layout'>)</span>-<a name="line-190"></a>-<a name="line-191"></a><span class='definition'>applyComposite</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-192"></a>-<a name="line-193"></a>-<a name="line-194"></a><a name="applyForEach"></a><span class='definition'>applyForEach</span> <span class='keyglyph'>::</span> <span class='conid'>Template</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>-<a name="line-195"></a><span class='definition'>applyForEach</span> <span class='layout'>(</span><span class='conid'>TemplForEach</span> <span class='varid'>expr</span> <span class='varid'>sorting</span> <span class='varid'>template</span><span class='layout'>)</span> <span class='varid'>ctx</span>-<a name="line-196"></a> <span class='keyglyph'>=</span> <span class='varid'>processContext</span> <span class='varid'>sortedCtx</span> <span class='varop'>$</span> <span class='varid'>applyTemplate</span> <span class='varid'>template</span>-<a name="line-197"></a> <span class='keyword'>where</span> -<a name="line-198"></a> <span class='varid'>sortedCtx</span> <span class='keyglyph'>=</span> <span class='varid'>applySorting</span> <span class='varid'>sorting</span> <span class='varid'>ctxWOrule</span> <span class='varid'>nodes</span>-<a name="line-199"></a> <span class='varid'>ctxWOrule</span> <span class='keyglyph'>=</span> <span class='varid'>ctxSetRule</span> <span class='conid'>Nothing</span> <span class='varop'>$</span> <span class='varid'>ctx</span>-<a name="line-200"></a> <span class='varid'>nodes</span> <span class='keyglyph'>=</span> <span class='varid'>applySelect</span> <span class='varid'>expr</span> <span class='varid'>ctx</span>-<a name="line-201"></a>-<a name="line-202"></a><span class='definition'>applyForEach</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-203"></a>-<a name="line-204"></a> -<a name="line-205"></a><a name="applyChoose"></a><span class='definition'>applyChoose</span> <span class='keyglyph'>::</span> <span class='conid'>Template</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>-<a name="line-206"></a><span class='definition'>applyChoose</span> <span class='layout'>(</span><span class='conid'>TemplChoose</span> <span class='varid'>whenList</span><span class='layout'>)</span> <span class='varid'>ctx</span>-<a name="line-207"></a> <span class='keyglyph'>=</span> <span class='varid'>applyWhenList</span> <span class='varid'>whenList</span> <span class='varid'>ctx</span>-<a name="line-208"></a>-<a name="line-209"></a><span class='definition'>applyChoose</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-210"></a>-<a name="line-211"></a>-<a name="line-212"></a><a name="applyWhenList"></a><span class='definition'>applyWhenList</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>When</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>-<a name="line-213"></a><span class='definition'>applyWhenList</span> <span class='conid'>[]</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-214"></a><span class='definition'>applyWhenList</span> <span class='layout'>(</span><span class='layout'>(</span><span class='conid'>WhenPart</span> <span class='varid'>expr</span> <span class='varid'>template</span><span class='layout'>)</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span> <span class='varid'>ctx</span>-<a name="line-215"></a> <span class='keyglyph'>|</span> <span class='varid'>applyTest</span> <span class='varid'>expr</span> <span class='varid'>ctx</span>-<a name="line-216"></a> <span class='keyglyph'>=</span> <span class='varid'>applyTemplate</span> <span class='varid'>template</span> <span class='varid'>ctx</span>-<a name="line-217"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-218"></a> <span class='keyglyph'>=</span> <span class='varid'>applyWhenList</span> <span class='varid'>xs</span> <span class='varid'>ctx</span>-<a name="line-219"></a>-<a name="line-220"></a><a name="applyMessage"></a><span class='definition'>applyMessage</span> <span class='keyglyph'>::</span> <span class='conid'>Template</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>-<a name="line-221"></a><span class='definition'>applyMessage</span> <span class='layout'>(</span><span class='conid'>TemplMessage</span> <span class='varid'>halt</span> <span class='varid'>template</span><span class='layout'>)</span> <span class='varid'>ctx</span>-<a name="line-222"></a> <span class='keyglyph'>|</span> <span class='varid'>halt</span>-<a name="line-223"></a> <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='varop'>$</span> <span class='str'>"Message(fatal): "</span> <span class='varop'>++</span> <span class='varid'>msg</span>-<a name="line-224"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-225"></a> <span class='keyglyph'>=</span> <span class='conid'>[]</span> <span class='comment'>-- trace ("Message(trace): " ++ msg) []</span>-<a name="line-226"></a> <span class='keyword'>where</span>-<a name="line-227"></a> <span class='varid'>msg</span> <span class='keyglyph'>=</span> <span class='varid'>showTrees</span> <span class='varid'>content</span>-<a name="line-228"></a> <span class='varid'>content</span> <span class='keyglyph'>=</span> <span class='varid'>applyTemplate</span> <span class='varid'>template</span> <span class='varid'>ctx</span>-<a name="line-229"></a>-<a name="line-230"></a><span class='definition'>applyMessage</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-231"></a>-<a name="line-232"></a><span class='comment'>-- ------------------------------------</span>-<a name="line-233"></a>-<a name="line-234"></a><a name="applyElement"></a><span class='definition'>applyElement</span> <span class='keyglyph'>::</span> <span class='conid'>Template</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>-<a name="line-235"></a><span class='definition'>applyElement</span> <span class='layout'>(</span><span class='conid'>TemplElement</span> <span class='varid'>compQName</span> <span class='varid'>uris</span> <span class='varid'>attribSets</span> <span class='varid'>template</span><span class='layout'>)</span> <span class='varid'>ctx</span> <span class='keyglyph'>=</span>-<a name="line-236"></a> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>createElement</span> <span class='varid'>name</span> <span class='varid'>uris</span> <span class='varid'>aliases</span> <span class='varid'>fullcontent</span>-<a name="line-237"></a> <span class='keyword'>where</span> -<a name="line-238"></a> <span class='varid'>aliases</span> <span class='keyglyph'>=</span> <span class='varid'>getAliases</span> <span class='varop'>$</span> <span class='varid'>ctxGetStylesheet</span> <span class='varid'>ctx</span>-<a name="line-239"></a> <span class='varid'>name</span> <span class='keyglyph'>=</span> <span class='varid'>applyComputedQName</span> <span class='varid'>compQName</span> <span class='varid'>ctx</span>-<a name="line-240"></a> <span class='varid'>fullcontent</span> <span class='keyglyph'>=</span> <span class='varid'>applyAttribSets</span> <span class='conid'>[]</span> <span class='varid'>attribSets</span> <span class='varid'>ctx</span> <span class='varop'>++</span> <span class='varid'>applyTemplate</span> <span class='varid'>template</span> <span class='varid'>ctx</span>-<a name="line-241"></a>-<a name="line-242"></a><span class='definition'>applyElement</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-243"></a>-<a name="line-244"></a>-<a name="line-245"></a><span class='comment'>-- create an element from a list of attributes followed by content</span>-<a name="line-246"></a>-<a name="line-247"></a><a name="createElement"></a><span class='definition'>createElement</span> <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-></span> <span class='conid'>NSAliasing</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span>-<a name="line-248"></a><span class='definition'>createElement</span> <span class='varid'>name</span> <span class='varid'>uris</span> <span class='varid'>aliases</span> <span class='varid'>fullcontent</span> <span class='keyglyph'>=</span>-<a name="line-249"></a> <span class='varid'>mkElement</span> <span class='varid'>name</span> <span class='layout'>(</span><span class='varid'>nsAttrs</span> <span class='varop'>++</span> <span class='varid'>distinctAttribs</span><span class='layout'>)</span> <span class='varid'>content</span>-<a name="line-250"></a> <span class='keyword'>where</span> -<a name="line-251"></a> <span class='varid'>nsAttrs</span> <span class='keyglyph'>=</span> <span class='varid'>uriMap2Attrs</span> <span class='varop'>$</span> <span class='varid'>aliasUriMapping</span> <span class='varid'>aliases</span> <span class='varid'>uris</span>-<a name="line-252"></a> <span class='varid'>distinctAttribs</span> <span class='keyglyph'>=</span> <span class='varid'>nubBy</span> <span class='varid'>eqAttr</span> <span class='varop'>$</span> <span class='varid'>reverse</span> <span class='varid'>attribs</span> -<a name="line-253"></a> <span class='layout'>(</span><span class='varid'>attribs</span><span class='layout'>,</span> <span class='varid'>content</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>span</span> <span class='layout'>(</span><span class='varid'>isAttr</span><span class='layout'>)</span> <span class='varid'>fullcontent</span>-<a name="line-254"></a> <span class='varid'>eqAttr</span> <span class='varid'>node1</span> <span class='varid'>node2</span> <span class='keyglyph'>=</span> <span class='varid'>equivQName</span> <span class='layout'>(</span><span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>getAttrName</span> <span class='varid'>node1</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>getAttrName</span> <span class='varid'>node2</span><span class='layout'>)</span> -<a name="line-255"></a>-<a name="line-256"></a>-<a name="line-257"></a><a name="applyAttribute"></a><span class='definition'>applyAttribute</span> <span class='keyglyph'>::</span> <span class='conid'>Template</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>-<a name="line-258"></a><span class='definition'>applyAttribute</span> <span class='layout'>(</span><span class='conid'>TemplAttribute</span> <span class='varid'>compQName</span> <span class='varid'>template</span><span class='layout'>)</span> <span class='varid'>ctx</span> <span class='keyglyph'>=</span>-<a name="line-259"></a> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mkAttr</span> <span class='varid'>qName</span> <span class='varid'>content</span>-<a name="line-260"></a> <span class='keyword'>where</span> -<a name="line-261"></a> <span class='varid'>qName</span> <span class='keyglyph'>=</span> <span class='varid'>applyComputedQName</span> <span class='varid'>compQName</span> <span class='varid'>ctx</span>-<a name="line-262"></a> <span class='varid'>content</span> <span class='keyglyph'>=</span> <span class='varid'>applyTemplate</span> <span class='varid'>template</span> <span class='varid'>ctx</span>-<a name="line-263"></a>-<a name="line-264"></a><span class='definition'>applyAttribute</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-265"></a>-<a name="line-266"></a> -<a name="line-267"></a><a name="applyText"></a><span class='definition'>applyText</span> <span class='keyglyph'>::</span> <span class='conid'>Template</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>-<a name="line-268"></a><span class='definition'>applyText</span> <span class='layout'>(</span><span class='conid'>TemplText</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyword'>_</span>-<a name="line-269"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>mkText</span> <span class='varid'>s</span><span class='keyglyph'>]</span>-<a name="line-270"></a>-<a name="line-271"></a><span class='definition'>applyText</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-272"></a>-<a name="line-273"></a>-<a name="line-274"></a><a name="applyValueOf"></a><span class='definition'>applyValueOf</span> <span class='keyglyph'>::</span> <span class='conid'>Template</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>-<a name="line-275"></a><span class='definition'>applyValueOf</span> <span class='layout'>(</span><span class='conid'>TemplValueOf</span> <span class='varid'>expr</span><span class='layout'>)</span> <span class='varid'>ctx</span>-<a name="line-276"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>mkText</span> <span class='varop'>$</span> <span class='varid'>applyStringExpr</span> <span class='varid'>expr</span> <span class='varid'>ctx</span><span class='keyglyph'>]</span>-<a name="line-277"></a>-<a name="line-278"></a><span class='definition'>applyValueOf</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-279"></a>-<a name="line-280"></a>-<a name="line-281"></a><a name="applyComment"></a><span class='definition'>applyComment</span> <span class='keyglyph'>::</span> <span class='conid'>Template</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>-<a name="line-282"></a><span class='definition'>applyComment</span> <span class='layout'>(</span><span class='conid'>TemplComment</span> <span class='varid'>content</span><span class='layout'>)</span> <span class='varid'>ctx</span> <span class='keyglyph'>=</span> -<a name="line-283"></a> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mkCmt</span> <span class='varop'>$</span> <span class='varid'>format</span> <span class='varop'>$</span> <span class='varid'>collectTextnodes</span> <span class='varop'>$</span> <span class='varid'>applyTemplate</span> <span class='varid'>content</span> <span class='varid'>ctx</span>-<a name="line-284"></a> <span class='keyword'>where</span>-<a name="line-285"></a> <span class='varid'>format</span> <span class='str'>""</span> <span class='keyglyph'>=</span> <span class='str'>""</span> <span class='comment'>-- could probably move to hxt...?</span>-<a name="line-286"></a> <span class='varid'>format</span> <span class='str'>"-"</span> <span class='keyglyph'>=</span> <span class='str'>"- "</span>-<a name="line-287"></a> <span class='varid'>format</span> <span class='layout'>(</span><span class='chr'>'-'</span><span class='conop'>:</span><span class='chr'>'-'</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='chr'>'-'</span><span class='conop'>:</span><span class='chr'>' '</span><span class='conop'>:</span><span class='varid'>format</span> <span class='layout'>(</span><span class='chr'>'-'</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span>-<a name="line-288"></a> <span class='varid'>format</span> <span class='layout'>(</span><span class='varid'>x</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>x</span><span class='conop'>:</span><span class='varid'>format</span> <span class='varid'>xs</span>-<a name="line-289"></a>-<a name="line-290"></a><span class='definition'>applyComment</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-291"></a>-<a name="line-292"></a><a name="applyProcInstr"></a><span class='definition'>applyProcInstr</span> <span class='keyglyph'>::</span> <span class='conid'>Template</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>-<a name="line-293"></a><span class='definition'>applyProcInstr</span> <span class='layout'>(</span><span class='conid'>TemplProcInstr</span> <span class='varid'>nameExpr</span> <span class='varid'>template</span><span class='layout'>)</span> <span class='varid'>ctx</span> <span class='keyglyph'>=</span>-<a name="line-294"></a> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>mkPi</span> <span class='layout'>(</span><span class='varid'>mkName</span> <span class='varid'>name</span><span class='layout'>)</span> <span class='keyglyph'>[</span><span class='varid'>mkText</span> <span class='varop'>.</span> <span class='varid'>format</span> <span class='varop'>.</span> <span class='varid'>collectTextnodes</span> <span class='varop'>.</span> <span class='varid'>applyTemplate</span> <span class='varid'>template</span> <span class='varop'>$</span> <span class='varid'>ctx</span><span class='keyglyph'>]</span>-<a name="line-295"></a> <span class='keyword'>where</span>-<a name="line-296"></a> <span class='varid'>name</span> <span class='keyglyph'>=</span> <span class='varid'>applyStringExpr</span> <span class='varid'>nameExpr</span> <span class='varid'>ctx</span> -<a name="line-297"></a> <span class='varid'>format</span> <span class='str'>""</span> <span class='keyglyph'>=</span> <span class='str'>""</span> <span class='comment'>-- In a better Haskell: format = replaceAll "?>" "? >"</span>-<a name="line-298"></a> <span class='varid'>format</span> <span class='layout'>(</span><span class='chr'>'?'</span><span class='conop'>:</span><span class='chr'>'>'</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='chr'>'?'</span><span class='conop'>:</span><span class='chr'>' '</span><span class='conop'>:</span><span class='chr'>'>'</span><span class='conop'>:</span><span class='varid'>format</span> <span class='varid'>xs</span> <span class='comment'>-- could probably move to hxt...?</span>-<a name="line-299"></a> <span class='varid'>format</span> <span class='layout'>(</span><span class='varid'>x</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>x</span><span class='conop'>:</span><span class='varid'>format</span> <span class='varid'>xs</span>-<a name="line-300"></a>-<a name="line-301"></a><span class='definition'>applyProcInstr</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-302"></a>-<a name="line-303"></a><span class='comment'>-- ------------------------------------</span>-<a name="line-304"></a>-<a name="line-305"></a><a name="applyApplTempl"></a><span class='definition'>applyApplTempl</span> <span class='keyglyph'>::</span> <span class='conid'>Template</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>-<a name="line-306"></a><span class='definition'>applyApplTempl</span> <span class='layout'>(</span><span class='conid'>TemplApply</span> <span class='varid'>expr</span> <span class='varid'>mode</span> <span class='varid'>args</span> <span class='varid'>sorting</span><span class='layout'>)</span> <span class='varid'>ctx</span> <span class='keyglyph'>=</span>-<a name="line-307"></a> <span class='varid'>applyMatchRulesToEntireContext</span> <span class='varid'>params</span> <span class='varid'>rules</span> <span class='varid'>mode</span> <span class='varid'>sortedCtx</span>-<a name="line-308"></a> <span class='keyword'>where</span> -<a name="line-309"></a> <span class='varid'>params</span> <span class='keyglyph'>=</span> <span class='varid'>createParamSet</span> <span class='varid'>args</span> <span class='varid'>ctx</span>-<a name="line-310"></a> <span class='varid'>sortedCtx</span> <span class='keyglyph'>=</span> <span class='varid'>applySorting</span> <span class='varid'>sorting</span> <span class='varid'>ctx</span> <span class='varid'>nodes</span>-<a name="line-311"></a> <span class='varid'>nodes</span> <span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='layout'>(</span><span class='varid'>getChildrenNT</span> <span class='varop'>$</span> <span class='varid'>ctxGetNode</span> <span class='varid'>ctx</span><span class='layout'>)</span>-<a name="line-312"></a> <span class='layout'>(</span><span class='varid'>flip</span> <span class='varid'>applySelect</span> <span class='varid'>ctx</span><span class='layout'>)</span>-<a name="line-313"></a> <span class='varid'>expr</span>-<a name="line-314"></a> <span class='varid'>rules</span> <span class='keyglyph'>=</span> <span class='varid'>getMatchRules</span> <span class='varop'>$</span> <span class='varid'>ctxGetStylesheet</span> <span class='varid'>ctx</span>-<a name="line-315"></a>-<a name="line-316"></a><span class='definition'>applyApplTempl</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-317"></a>-<a name="line-318"></a>-<a name="line-319"></a><a name="applyImports"></a><span class='definition'>applyImports</span> <span class='keyglyph'>::</span> <span class='conid'>Template</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>-<a name="line-320"></a><span class='definition'>applyImports</span> <span class='layout'>(</span><span class='conid'>TemplApplyImports</span><span class='layout'>)</span> <span class='varid'>ctx</span><span class='keyglyph'>=</span> -<a name="line-321"></a> <span class='varid'>applyMatchRules</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>empty</span> <span class='varid'>rules</span> <span class='varid'>mode</span> <span class='varid'>ctx</span>-<a name="line-322"></a> <span class='keyword'>where</span>-<a name="line-323"></a> <span class='varid'>rules</span> <span class='keyglyph'>=</span> <span class='varid'>getRuleImports</span> <span class='varid'>currRule</span>-<a name="line-324"></a> <span class='varid'>mode</span> <span class='keyglyph'>=</span> <span class='varid'>getRuleMode</span> <span class='varid'>currRule</span>-<a name="line-325"></a> <span class='varid'>currRule</span> <span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='layout'>(</span><span class='varid'>error</span> <span class='str'>"apply-imports must not be called during xsl:for-each"</span><span class='layout'>)</span> <span class='varid'>id</span> <span class='varop'>$</span> <span class='varid'>ctxGetRule</span> <span class='varid'>ctx</span>-<a name="line-326"></a>-<a name="line-327"></a><span class='definition'>applyImports</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-328"></a>-<a name="line-329"></a>-<a name="line-330"></a><a name="applyCallTempl"></a><span class='definition'>applyCallTempl</span> <span class='keyglyph'>::</span> <span class='conid'>Template</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>-<a name="line-331"></a><span class='definition'>applyCallTempl</span> <span class='layout'>(</span><span class='conid'>TemplCall</span> <span class='varid'>name</span> <span class='varid'>args</span><span class='layout'>)</span> <span class='varid'>ctx</span> <span class='keyglyph'>=</span>-<a name="line-332"></a> <span class='varid'>instantiateNamedRule</span> <span class='varid'>params</span> <span class='varid'>rule</span> <span class='varid'>ctx</span>-<a name="line-333"></a> <span class='keyword'>where</span>-<a name="line-334"></a> <span class='varid'>params</span> <span class='keyglyph'>=</span> <span class='varid'>createParamSet</span> <span class='varid'>args</span> <span class='varid'>ctx</span>-<a name="line-335"></a> <span class='varid'>rule</span> <span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='varid'>errNoRule</span> <span class='varid'>id</span> <span class='varop'>$</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>lookup</span> <span class='varid'>name</span> <span class='varid'>rules</span>-<a name="line-336"></a> <span class='varid'>rules</span> <span class='keyglyph'>=</span> <span class='varid'>getNamedRules</span> <span class='varop'>$</span> <span class='varid'>ctxGetStylesheet</span> <span class='varid'>ctx</span>-<a name="line-337"></a> <span class='varid'>errNoRule</span> <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='varop'>$</span> <span class='str'>"No rule with qualified name: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>name</span>-<a name="line-338"></a>-<a name="line-339"></a><span class='definition'>applyCallTempl</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-340"></a>-<a name="line-341"></a><span class='comment'>-- ------------------------------------</span>-<a name="line-342"></a>-<a name="line-343"></a><a name="applyCopy"></a><span class='definition'>applyCopy</span> <span class='keyglyph'>::</span> <span class='conid'>Template</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>-<a name="line-344"></a><span class='definition'>applyCopy</span> <span class='layout'>(</span><span class='conid'>TemplCopy</span> <span class='varid'>attrsets</span> <span class='varid'>template</span><span class='layout'>)</span> <span class='varid'>ctx</span>-<a name="line-345"></a> <span class='keyglyph'>|</span> <span class='varid'>isRoot</span> <span class='varid'>currNode</span> <span class='comment'>-- Case 1: Root node => just use the content template</span>-<a name="line-346"></a> <span class='keyglyph'>=</span> <span class='varid'>applyTemplate</span> <span class='varid'>template</span> <span class='varid'>ctx</span>-<a name="line-347"></a> <span class='keyglyph'>|</span> <span class='varid'>isElem</span> <span class='varid'>currNode</span> <span class='comment'>-- Case 2: Any other element-node</span>-<a name="line-348"></a> <span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>createElement</span> <span class='varid'>name</span> <span class='layout'>(</span><span class='varid'>getUriMap</span> <span class='varid'>currNode</span><span class='layout'>)</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>empty</span> <span class='varid'>fullcontent</span>-<a name="line-349"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='comment'>-- Just return the current node as result</span>-<a name="line-350"></a> <span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varid'>currNode</span> -<a name="line-351"></a> <span class='keyword'>where</span>-<a name="line-352"></a> <span class='varid'>currNode</span> <span class='keyglyph'>=</span> <span class='varid'>subtreeNT</span> <span class='varop'>$</span> <span class='varid'>ctxGetNode</span> <span class='varid'>ctx</span>-<a name="line-353"></a> <span class='varid'>name</span> <span class='keyglyph'>=</span> <span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>getElemName</span> <span class='varid'>currNode</span>-<a name="line-354"></a> <span class='varid'>fullcontent</span> <span class='keyglyph'>=</span> <span class='varid'>applyAttribSets</span> <span class='conid'>[]</span> <span class='varid'>attrsets</span> <span class='varid'>ctx</span> <span class='varop'>++</span> <span class='varid'>applyTemplate</span> <span class='varid'>template</span> <span class='varid'>ctx</span>-<a name="line-355"></a>-<a name="line-356"></a><span class='definition'>applyCopy</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-357"></a>-<a name="line-358"></a><a name="applyCopyOf"></a><span class='definition'>applyCopyOf</span> <span class='keyglyph'>::</span> <span class='conid'>Template</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>-<a name="line-359"></a><span class='definition'>applyCopyOf</span> <span class='layout'>(</span><span class='conid'>TemplCopyOf</span> <span class='varid'>expr</span><span class='layout'>)</span>-<a name="line-360"></a> <span class='keyglyph'>=</span> <span class='varid'>concatMap</span> <span class='varid'>expandRoot</span> <span class='varop'>.</span> <span class='varid'>xPValue2XmlTrees</span> <span class='varop'>.</span> <span class='varid'>evalXPathExpr</span> <span class='varid'>expr</span>-<a name="line-361"></a> <span class='keyword'>where</span>-<a name="line-362"></a> <span class='varid'>expandRoot</span> <span class='varid'>node</span>-<a name="line-363"></a> <span class='keyglyph'>|</span> <span class='varid'>isRoot</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> <span class='varid'>getChildren</span> <span class='varid'>node</span>-<a name="line-364"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='varid'>node</span>-<a name="line-365"></a>-<a name="line-366"></a><span class='definition'>applyCopyOf</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='varid'>const</span> <span class='conid'>[]</span>-<a name="line-367"></a>-<a name="line-368"></a><span class='comment'>-- ------------------------------------</span>-<a name="line-369"></a>-<a name="line-370"></a><a name="applyTemplate"></a><span class='definition'>applyTemplate</span> <span class='keyglyph'>::</span> <span class='conid'>Template</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>-<a name="line-371"></a><span class='definition'>applyTemplate</span> <span class='varid'>t</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>TemplComposite</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>applyComposite</span> <span class='varid'>t</span>-<a name="line-372"></a><span class='definition'>applyTemplate</span> <span class='varid'>t</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>TemplMessage</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>applyMessage</span> <span class='varid'>t</span>-<a name="line-373"></a><span class='definition'>applyTemplate</span> <span class='varid'>t</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>TemplForEach</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>applyForEach</span> <span class='varid'>t</span>-<a name="line-374"></a><span class='definition'>applyTemplate</span> <span class='varid'>t</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>TemplChoose</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>applyChoose</span> <span class='varid'>t</span>-<a name="line-375"></a><span class='definition'>applyTemplate</span> <span class='varid'>t</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>TemplElement</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>applyElement</span> <span class='varid'>t</span>-<a name="line-376"></a><span class='definition'>applyTemplate</span> <span class='varid'>t</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>TemplAttribute</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>applyAttribute</span> <span class='varid'>t</span>-<a name="line-377"></a><span class='definition'>applyTemplate</span> <span class='varid'>t</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>TemplText</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>applyText</span> <span class='varid'>t</span>-<a name="line-378"></a><span class='definition'>applyTemplate</span> <span class='varid'>t</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>TemplValueOf</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>applyValueOf</span> <span class='varid'>t</span>-<a name="line-379"></a><span class='definition'>applyTemplate</span> <span class='varid'>t</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>TemplComment</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>applyComment</span> <span class='varid'>t</span>-<a name="line-380"></a><span class='definition'>applyTemplate</span> <span class='varid'>t</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>TemplProcInstr</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>applyProcInstr</span> <span class='varid'>t</span>-<a name="line-381"></a><span class='definition'>applyTemplate</span> <span class='varid'>t</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>TemplApply</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>applyApplTempl</span> <span class='varid'>t</span>-<a name="line-382"></a><span class='definition'>applyTemplate</span> <span class='varid'>t</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>TemplApplyImports</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>applyImports</span> <span class='varid'>t</span>-<a name="line-383"></a><span class='definition'>applyTemplate</span> <span class='varid'>t</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>TemplCall</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>applyCallTempl</span> <span class='varid'>t</span>-<a name="line-384"></a><span class='definition'>applyTemplate</span> <span class='varid'>t</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>TemplCopy</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>applyCopy</span> <span class='varid'>t</span>-<a name="line-385"></a><span class='definition'>applyTemplate</span> <span class='varid'>t</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>TemplCopyOf</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>applyCopyOf</span> <span class='varid'>t</span>-<a name="line-386"></a><span class='definition'>applyTemplate</span> <span class='layout'>(</span><span class='conid'>TemplVariable</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>const</span> <span class='conid'>[]</span> <span class='comment'>-- trace ("Warning: Unreacheable variable: " ++ show (getVarName v)) const []</span>-<a name="line-387"></a>-<a name="line-388"></a><span class='comment'>-- ------------------------------------</span>-<a name="line-389"></a><span class='comment'>-- "Main" :</span>-<a name="line-390"></a>-<a name="line-391"></a><a name="applyStylesheetWParams"></a><span class='definition'>applyStylesheetWParams</span> <span class='keyglyph'>::</span> <span class='conid'>XPathParams</span> <span class='keyglyph'>-></span> <span class='conid'>CompiledStylesheet</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>-<a name="line-392"></a><span class='definition'>applyStylesheetWParams</span> <span class='varid'>inputParams</span> <span class='varid'>cs</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>CompStylesheet</span> <span class='varid'>matchRules</span> <span class='keyword'>_</span> <span class='varid'>vars</span> <span class='keyword'>_</span> <span class='varid'>strips</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='varid'>rawDoc</span> <span class='keyglyph'>=</span> -<a name="line-393"></a> <span class='varid'>map</span> <span class='varid'>fixupNS</span> <span class='varop'>$</span> <span class='varid'>applyMatchRules</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>empty</span> <span class='varid'>matchRules</span> <span class='conid'>Nothing</span> <span class='varid'>ctxRoot</span>-<a name="line-394"></a> <span class='keyword'>where</span>-<a name="line-395"></a> <span class='varid'>ctxRoot</span> <span class='keyglyph'>=</span> <span class='conid'>Ctx</span> <span class='varid'>docNode</span> <span class='keyglyph'>[</span><span class='varid'>docNode</span><span class='keyglyph'>]</span> <span class='num'>1</span> <span class='num'>1</span> <span class='varid'>gloVars</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>empty</span> <span class='varid'>cs</span> <span class='conid'>Nothing</span> <span class='num'>0</span>-<a name="line-396"></a> <span class='varid'>gloVars</span> <span class='keyglyph'>=</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>evalVariableWParamSet</span> <span class='varid'>extParams</span> <span class='varid'>ctxRoot</span><span class='layout'>)</span> <span class='varid'>vars</span>-<a name="line-397"></a> <span class='varid'>extParams</span> <span class='keyglyph'>=</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>flip</span> <span class='varid'>evalXPathExpr</span> <span class='varid'>ctxRoot</span><span class='layout'>)</span> <span class='varid'>inputParams</span>-<a name="line-398"></a> <span class='varid'>docNode</span> <span class='keyglyph'>=</span> <span class='varid'>ntree</span> <span class='varop'>$</span> <span class='varid'>expandNSDecls</span> <span class='varop'>$</span> <span class='varid'>stripDocument</span> <span class='varid'>strips</span> <span class='varid'>rawDoc</span>-<a name="line-399"></a>-<a name="line-400"></a><a name="applyStylesheet"></a><span class='definition'>applyStylesheet</span> <span class='keyglyph'>::</span> <span class='conid'>CompiledStylesheet</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>-<a name="line-401"></a><span class='definition'>applyStylesheet</span> <span class='keyglyph'>=</span> <span class='varid'>applyStylesheetWParams</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>empty</span>-<a name="line-402"></a>-<a name="line-403"></a><span class='comment'>-- ------------------------------------</span>-<a name="line-404"></a><span class='comment'>-- calling named- and applying match-rules</span>-<a name="line-405"></a>-<a name="line-406"></a><a name="applyMatchRulesToChildren"></a><span class='definition'>applyMatchRulesToChildren</span> <span class='keyglyph'>::</span> <span class='conid'>ParamSet</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>MatchRule</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='conid'>Maybe</span> <span class='conid'>ExName</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>-<a name="line-407"></a><span class='definition'>applyMatchRulesToChildren</span> <span class='varid'>args</span> <span class='varid'>rules</span> <span class='varid'>mode</span> <span class='varid'>ctx</span> <span class='keyglyph'>=</span> -<a name="line-408"></a> <span class='varid'>applyMatchRulesToEntireContext</span> <span class='varid'>args</span> <span class='varid'>rules</span> <span class='varid'>mode</span> <span class='varid'>childCtx</span>-<a name="line-409"></a> <span class='keyword'>where</span>-<a name="line-410"></a> <span class='varid'>childCtx</span> <span class='keyglyph'>=</span> <span class='varid'>ctxSetNodes</span> <span class='layout'>(</span><span class='varid'>getChildrenNT</span> <span class='varop'>$</span> <span class='varid'>ctxGetNode</span> <span class='varid'>ctx</span><span class='layout'>)</span> <span class='varid'>ctx</span>-<a name="line-411"></a>-<a name="line-412"></a><a name="applyMatchRulesToEntireContext"></a><span class='definition'>applyMatchRulesToEntireContext</span> <span class='keyglyph'>::</span> <span class='conid'>ParamSet</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>MatchRule</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>Maybe</span> <span class='conid'>ExName</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>-<a name="line-413"></a><span class='definition'>applyMatchRulesToEntireContext</span> <span class='varid'>args</span> <span class='varid'>rules</span> <span class='varid'>mode</span> <span class='varid'>ctx</span> <span class='keyglyph'>=</span> <span class='varid'>processContext</span> <span class='varid'>ctx</span> <span class='layout'>(</span><span class='varid'>applyMatchRules</span> <span class='varid'>args</span> <span class='varid'>rules</span> <span class='varid'>mode</span><span class='layout'>)</span>-<a name="line-414"></a>-<a name="line-415"></a><a name="applyMatchRules"></a><span class='definition'>applyMatchRules</span> <span class='keyglyph'>::</span> <span class='conid'>ParamSet</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>MatchRule</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='conid'>Maybe</span> <span class='conid'>ExName</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>-<a name="line-416"></a><span class='definition'>applyMatchRules</span> <span class='keyword'>_</span> <span class='conid'>[]</span> <span class='varid'>mode</span> <span class='varid'>ctx</span> <span class='keyglyph'>=</span> <span class='varid'>matchDefaultRules</span> <span class='varid'>mode</span> <span class='varid'>ctx</span>-<a name="line-417"></a><span class='definition'>applyMatchRules</span> <span class='varid'>args</span> <span class='layout'>(</span><span class='varid'>rule</span><span class='conop'>:</span><span class='varid'>rules</span><span class='layout'>)</span> <span class='varid'>mode</span> <span class='varid'>ctx</span> <span class='keyglyph'>=</span> -<a name="line-418"></a> <span class='varid'>maybe</span> <span class='layout'>(</span><span class='varid'>applyMatchRules</span> <span class='varid'>args</span> <span class='varid'>rules</span> <span class='varid'>mode</span> <span class='varid'>ctx</span><span class='layout'>)</span> -<a name="line-419"></a> <span class='varid'>id</span>-<a name="line-420"></a> <span class='layout'>(</span><span class='varid'>applyMatchRule</span> <span class='varid'>args</span> <span class='varid'>rule</span> <span class='varid'>mode</span> <span class='varid'>ctx</span><span class='layout'>)</span>-<a name="line-421"></a>-<a name="line-422"></a><a name="applyMatchRule"></a><span class='definition'>applyMatchRule</span> <span class='keyglyph'>::</span> <span class='conid'>ParamSet</span> <span class='keyglyph'>-></span> <span class='conid'>MatchRule</span> <span class='keyglyph'>-></span> <span class='conid'>Maybe</span> <span class='conid'>ExName</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='conid'>Maybe</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>-<a name="line-423"></a><span class='definition'>applyMatchRule</span> <span class='varid'>args</span> <span class='varid'>rule</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>MatRule</span> <span class='varid'>expr</span> <span class='keyword'>_</span> <span class='varid'>ruleMode</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='varid'>mode</span> <span class='varid'>ctx</span> <span class='keyglyph'>=</span>-<a name="line-424"></a> <span class='keyword'>if</span> <span class='varid'>mode</span><span class='varop'>==</span><span class='varid'>ruleMode</span> <span class='varop'>&&</span> <span class='varid'>applyMatch</span> <span class='varid'>expr</span> <span class='varid'>ctx</span>-<a name="line-425"></a> <span class='keyword'>then</span> <span class='conid'>Just</span> <span class='varop'>$</span> <span class='varid'>instantiateMatchRule</span> <span class='varid'>args</span> <span class='varid'>rule</span> <span class='varop'>$</span> <span class='varid'>ctxSetRule</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>rule</span><span class='layout'>)</span> <span class='varid'>ctx</span>-<a name="line-426"></a> <span class='keyword'>else</span> <span class='conid'>Nothing</span>-<a name="line-427"></a>-<a name="line-428"></a>-<a name="line-429"></a><a name="instantiateMatchRule"></a><span class='definition'>instantiateMatchRule</span> <span class='keyglyph'>::</span> <span class='conid'>ParamSet</span> <span class='keyglyph'>-></span> <span class='conid'>MatchRule</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>-<a name="line-430"></a><span class='definition'>instantiateMatchRule</span> <span class='varid'>args</span> <span class='layout'>(</span><span class='conid'>MatRule</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='varid'>params</span> <span class='varid'>content</span><span class='layout'>)</span> <span class='varid'>ctx</span> <span class='keyglyph'>=</span>-<a name="line-431"></a> <span class='varid'>applyTemplate</span> <span class='varid'>content</span> <span class='varid'>ctxNew</span>-<a name="line-432"></a> <span class='keyword'>where</span> -<a name="line-433"></a> <span class='varid'>ctxNew</span> <span class='keyglyph'>=</span> <span class='varid'>incRecDepth</span> <span class='varop'>$</span> <span class='varid'>processParameters</span> <span class='varid'>params</span> <span class='varid'>args</span> <span class='varop'>$</span> <span class='varid'>clearLocalVariables</span> <span class='varid'>ctx</span>-<a name="line-434"></a>-<a name="line-435"></a><a name="instantiateNamedRule"></a><span class='definition'>instantiateNamedRule</span> <span class='keyglyph'>::</span> <span class='conid'>ParamSet</span> <span class='keyglyph'>-></span> <span class='conid'>NamedRule</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>-<a name="line-436"></a><span class='definition'>instantiateNamedRule</span> <span class='varid'>args</span> <span class='layout'>(</span><span class='conid'>NamRule</span> <span class='keyword'>_</span> <span class='varid'>params</span> <span class='varid'>content</span><span class='layout'>)</span> <span class='varid'>ctx</span> <span class='keyglyph'>=</span>-<a name="line-437"></a> <span class='varid'>applyTemplate</span> <span class='varid'>content</span> <span class='varid'>ctxNew</span>-<a name="line-438"></a> <span class='keyword'>where</span> -<a name="line-439"></a> <span class='varid'>ctxNew</span> <span class='keyglyph'>=</span> <span class='varid'>incRecDepth</span> <span class='varop'>$</span> <span class='varid'>processParameters</span> <span class='varid'>params</span> <span class='varid'>args</span> <span class='varop'>$</span> <span class='varid'>clearLocalVariables</span> <span class='varid'>ctx</span>-<a name="line-440"></a>-<a name="line-441"></a><span class='comment'>-- ------------------------------------</span>-<a name="line-442"></a> -<a name="line-443"></a><a name="matchDefaultRules"></a><span class='definition'>matchDefaultRules</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Maybe</span> <span class='conid'>ExName</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>-<a name="line-444"></a><span class='definition'>matchDefaultRules</span> <span class='varid'>mode</span> <span class='varid'>ctx</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>Ctx</span> <span class='varid'>ctxNavNode</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='varid'>stylesheet</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span>-<a name="line-445"></a> <span class='keyglyph'>|</span> <span class='varid'>isElem</span> <span class='varid'>ctxNode</span> <span class='comment'>-- rules for match="*|/"</span>-<a name="line-446"></a> <span class='keyglyph'>=</span> <span class='varid'>applyMatchRulesToChildren</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>empty</span> <span class='varid'>rules</span> <span class='varid'>mode</span> <span class='varid'>ctx</span> -<a name="line-447"></a> <span class='keyglyph'>|</span> <span class='varid'>isText</span> <span class='varid'>ctxNode</span> <span class='comment'>-- rule for match="text()"</span>-<a name="line-448"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>ctxNode</span><span class='keyglyph'>]</span>-<a name="line-449"></a> <span class='keyglyph'>|</span> <span class='varid'>isAttr</span> <span class='varid'>ctxNode</span> <span class='comment'>-- rule for match="@*"</span>-<a name="line-450"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>mkText</span> <span class='varop'>$</span> <span class='varid'>collectTextnodes</span> <span class='varop'>$</span> <span class='varid'>getChildren</span> <span class='varid'>ctxNode</span><span class='keyglyph'>]</span>-<a name="line-451"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='comment'>-- the glorious rest (PIs and comments):</span>-<a name="line-452"></a> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-453"></a> <span class='keyword'>where</span> -<a name="line-454"></a> <span class='varid'>rules</span> <span class='keyglyph'>=</span> <span class='varid'>getMatchRules</span> <span class='varid'>stylesheet</span>-<a name="line-455"></a> <span class='varid'>ctxNode</span> <span class='keyglyph'>=</span> <span class='varid'>subtreeNT</span> <span class='varid'>ctxNavNode</span>-<a name="line-456"></a>-<a name="line-457"></a><span class='definition'>matchDefaultRules</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-458"></a> -<a name="line-459"></a><span class='comment'>-- ------------------------------------</span>-<a name="line-460"></a>-<a name="line-461"></a><span class='comment'>-- Variables and Parameters</span>-<a name="line-462"></a>-<a name="line-463"></a><span class='comment'>-- Evaluate a xsl:variable or xsl:param element and add the newly</span>-<a name="line-464"></a><span class='comment'>-- created local variable to the context</span>-<a name="line-465"></a>-<a name="line-466"></a><a name="processLocalVariable"></a><span class='definition'>processLocalVariable</span> <span class='keyglyph'>::</span> <span class='conid'>Variable</span> <span class='keyglyph'>-></span> <span class='conid'>ParamSet</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span>-<a name="line-467"></a><span class='definition'>processLocalVariable</span> <span class='varid'>var</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>MkVar</span> <span class='keyword'>_</span> <span class='varid'>name</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='varid'>arguments</span> <span class='varid'>ctx</span> <span class='keyglyph'>=</span> -<a name="line-468"></a> <span class='varid'>addVariableBinding</span> <span class='varid'>name</span> <span class='varid'>val</span> <span class='varid'>ctx</span>-<a name="line-469"></a> <span class='keyword'>where</span>-<a name="line-470"></a> <span class='varid'>val</span> <span class='keyglyph'>=</span> <span class='varid'>evalVariableWParamSet</span> <span class='varid'>arguments</span> <span class='varid'>ctx</span> <span class='varid'>var</span>-<a name="line-471"></a>-<a name="line-472"></a><a name="processParameters"></a><span class='definition'>processParameters</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>Variable</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>ParamSet</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span>-<a name="line-473"></a><span class='definition'>processParameters</span> <span class='varid'>params</span> <span class='varid'>arguments</span> <span class='varid'>ctx</span>-<a name="line-474"></a> <span class='keyglyph'>=</span> <span class='varid'>foldl</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>c</span> <span class='varid'>v</span> <span class='keyglyph'>-></span> <span class='varid'>processLocalVariable</span> <span class='varid'>v</span> <span class='varid'>arguments</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='varid'>ctx</span> <span class='varid'>params</span>-<a name="line-475"></a>-<a name="line-476"></a><a name="evalVariableWParamSet"></a><span class='definition'>evalVariableWParamSet</span> <span class='keyglyph'>::</span> <span class='conid'>ParamSet</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='conid'>Variable</span> <span class='keyglyph'>-></span> <span class='conid'>XPathValue</span>-<a name="line-477"></a><span class='definition'>evalVariableWParamSet</span> <span class='varid'>ps</span> <span class='varid'>ctx</span> <span class='layout'>(</span><span class='conid'>MkVar</span> <span class='varid'>isPar</span> <span class='varid'>name</span> <span class='varid'>exprOrRtf</span><span class='layout'>)</span>-<a name="line-478"></a> <span class='keyglyph'>|</span> <span class='varid'>isPar</span>-<a name="line-479"></a> <span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='layout'>(</span><span class='varid'>resultFromVar</span> <span class='varid'>exprOrRtf</span><span class='layout'>)</span> <span class='varid'>id</span> <span class='varop'>$</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>lookup</span> <span class='varid'>name</span> <span class='varid'>ps</span> -<a name="line-480"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-481"></a> <span class='keyglyph'>=</span> <span class='varid'>resultFromVar</span> <span class='varid'>exprOrRtf</span>-<a name="line-482"></a> <span class='keyword'>where</span>-<a name="line-483"></a> <span class='varid'>resultFromVar</span> <span class='layout'>(</span><span class='conid'>Left</span> <span class='varid'>expr</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>evalXPathExpr</span> <span class='varid'>expr</span> <span class='varid'>ctx</span>-<a name="line-484"></a> <span class='varid'>resultFromVar</span> <span class='layout'>(</span><span class='conid'>Right</span> <span class='varid'>rtf</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>evalRtf</span> <span class='varid'>rtf</span> <span class='layout'>(</span><span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>recDepth</span> <span class='varid'>ctx</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='str'>" "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>name</span><span class='layout'>)</span> <span class='varid'>ctx</span>-<a name="line-485"></a>-<a name="line-486"></a><a name="createParamSet"></a><span class='comment'>-- create a set of parameters (Names refering to XPath-values) from a set of Variable-placeholders (unevaluated expressions)</span>-<a name="line-487"></a><span class='definition'>createParamSet</span> <span class='keyglyph'>::</span> <span class='conid'>Map</span> <span class='conid'>ExName</span> <span class='conid'>Variable</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='conid'>ParamSet</span>-<a name="line-488"></a><span class='definition'>createParamSet</span> <span class='varid'>wParamList</span> <span class='varid'>ctx</span> <span class='keyglyph'>=</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>evalVariableWParamSet</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>empty</span> <span class='varid'>ctx</span><span class='layout'>)</span> <span class='varid'>wParamList</span>-<a name="line-489"></a>-<a name="line-490"></a><span class='comment'>-- ------------------------------------</span>-<a name="line-491"></a><span class='comment'>-- handling of imported attributes</span>-<a name="line-492"></a>-<a name="line-493"></a><a name="applyAttribSets"></a><span class='definition'>applyAttribSets</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>ExName</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>UsedAttribSets</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>-<a name="line-494"></a><span class='definition'>applyAttribSets</span> <span class='varid'>callstack</span> <span class='layout'>(</span><span class='conid'>UsedAttribSets</span> <span class='varid'>sets</span><span class='layout'>)</span> <span class='varid'>ctx</span> <span class='keyglyph'>=</span> <span class='varid'>concatMap</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>name</span> <span class='keyglyph'>-></span> <span class='varid'>applyAllAttrSetForName</span> <span class='varid'>callstack</span> <span class='varid'>name</span> <span class='varid'>ctx</span><span class='layout'>)</span> <span class='varid'>sets</span>-<a name="line-495"></a>-<a name="line-496"></a><a name="applyAllAttrSetForName"></a><span class='definition'>applyAllAttrSetForName</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>ExName</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>ExName</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>-<a name="line-497"></a><span class='definition'>applyAllAttrSetForName</span> <span class='varid'>callstack</span> <span class='varid'>name</span> <span class='varid'>ctx</span> <span class='keyglyph'>=</span>-<a name="line-498"></a>-<a name="line-499"></a> <span class='keyword'>if</span> <span class='varid'>name</span> <span class='varop'>`elem`</span> <span class='varid'>callstack</span>-<a name="line-500"></a> <span class='keyword'>then</span> <span class='varid'>error</span> <span class='varop'>$</span> <span class='str'>"Attribute-Set "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>name</span> <span class='varop'>++</span> <span class='str'>" is recursively used."</span> <span class='varop'>++</span>-<a name="line-501"></a> <span class='varid'>concatMap</span> <span class='layout'>(</span><span class='layout'>(</span><span class='str'>"\n used in "</span><span class='varop'>++</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>show</span><span class='layout'>)</span> <span class='varid'>callstack</span>-<a name="line-502"></a> -<a name="line-503"></a> <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>isNothing</span> <span class='varid'>attrset</span>-<a name="line-504"></a> <span class='keyword'>then</span> <span class='varid'>error</span> <span class='varop'>$</span> <span class='str'>"No attribute set with name: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>name</span>-<a name="line-505"></a> -<a name="line-506"></a> <span class='keyword'>else</span> <span class='varid'>concatMap</span> <span class='layout'>(</span><span class='varid'>flip</span> <span class='layout'>(</span><span class='varid'>applyAttribSet</span> <span class='layout'>(</span><span class='varid'>name</span><span class='conop'>:</span><span class='varid'>callstack</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varid'>ctx</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>fromJust</span> <span class='varid'>attrset</span>-<a name="line-507"></a>-<a name="line-508"></a> <span class='keyword'>where</span>-<a name="line-509"></a> <span class='varid'>attrset</span> <span class='keyglyph'>=</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>lookup</span> <span class='varid'>name</span> <span class='varop'>$</span> <span class='varid'>getAttributeSets</span> <span class='varop'>$</span> <span class='varid'>ctxGetStylesheet</span> <span class='varid'>ctx</span>-<a name="line-510"></a>-<a name="line-511"></a><a name="applyAttribSet"></a><span class='definition'>applyAttribSet</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>ExName</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>AttributeSet</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>-<a name="line-512"></a><span class='definition'>applyAttribSet</span> <span class='varid'>callstack</span> <span class='layout'>(</span><span class='conid'>AttribSet</span> <span class='keyword'>_</span> <span class='varid'>usedSets</span> <span class='varid'>content</span><span class='layout'>)</span> <span class='varid'>ctx</span> <span class='keyglyph'>=</span> -<a name="line-513"></a> <span class='varid'>applyAttribSets</span> <span class='varid'>callstack</span> <span class='varid'>usedSets</span> <span class='varid'>ctx</span> <span class='varop'>++</span> <span class='varid'>applyTemplate</span> <span class='varid'>content</span> <span class='varid'>ctx</span>-<a name="line-514"></a> -<a name="line-515"></a><span class='comment'>-- ------------------------------------</span>-<a name="line-516"></a><span class='comment'>-- Sorting</span>-<a name="line-517"></a>-<a name="line-518"></a><a name="applySorting"></a><span class='definition'>applySorting</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>SortKey</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>NavXmlTree</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span>-<a name="line-519"></a><span class='definition'>applySorting</span> <span class='conid'>[]</span> <span class='varid'>ctx</span> <span class='varid'>nodes</span> <span class='keyglyph'>=</span> <span class='varid'>ctxSetNodes</span> <span class='varid'>nodes</span> <span class='varid'>ctx</span>-<a name="line-520"></a><span class='definition'>applySorting</span> <span class='varid'>sortKeys</span> <span class='varid'>ctx</span> <span class='varid'>nodes</span> <span class='keyglyph'>=</span> -<a name="line-521"></a> <span class='varid'>ctxSetNodes</span> <span class='varid'>resultOrder</span> <span class='varid'>ctx</span>-<a name="line-522"></a> <span class='keyword'>where</span>-<a name="line-523"></a> <span class='varid'>resultOrder</span> <span class='keyglyph'>=</span> <span class='varid'>snd</span> <span class='varop'>$</span> <span class='varid'>unzip</span> <span class='varid'>sortedKVs</span>-<a name="line-524"></a> <span class='varid'>sortedKVs</span> <span class='keyglyph'>=</span> <span class='varid'>sortBy</span> <span class='varid'>compKV</span> <span class='varid'>keysWVals</span>-<a name="line-525"></a> <span class='varid'>keysWVals</span> <span class='keyglyph'>=</span> <span class='varid'>zip</span> <span class='varid'>keys</span> <span class='varid'>nodes</span>-<a name="line-526"></a> <span class='varid'>keys</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>extract</span> <span class='varid'>nodes</span>-<a name="line-527"></a> <span class='layout'>(</span><span class='varid'>extrFs</span><span class='layout'>,</span> <span class='varid'>cmpFs</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>unzip</span> <span class='varop'>$</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>flip</span> <span class='varid'>applySortKey</span> <span class='varid'>ctx</span><span class='layout'>)</span> <span class='varid'>sortKeys</span>-<a name="line-528"></a>-<a name="line-529"></a> <span class='comment'>-- helper functions:</span>-<a name="line-530"></a> <span class='varid'>extract</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varop'>$</span> <span class='varid'>ctxSetNodes</span> <span class='keyglyph'>[</span><span class='varid'>node</span><span class='keyglyph'>]</span> <span class='varid'>ctx</span><span class='layout'>)</span> <span class='varid'>extrFs</span>-<a name="line-531"></a> <span class='varid'>compKV</span> <span class='layout'>(</span><span class='varid'>k1</span><span class='layout'>,</span><span class='keyword'>_</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>k2</span><span class='layout'>,</span><span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>compressOrds</span> <span class='varop'>$</span> <span class='varid'>compares</span> <span class='varid'>k1</span> <span class='varid'>k2</span>-<a name="line-532"></a> <span class='varid'>compares</span> <span class='keyglyph'>=</span> <span class='varid'>zipWith3</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varop'>$</span><span class='layout'>)</span> <span class='varop'>$</span><span class='layout'>)</span> <span class='varid'>cmpFs</span>-<a name="line-533"></a> <span class='varid'>compressOrds</span> <span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='conid'>EQ</span> <span class='varid'>id</span> <span class='varop'>.</span> <span class='varid'>find</span> <span class='layout'>(</span><span class='varop'>/=</span><span class='conid'>EQ</span><span class='layout'>)</span>-<a name="line-534"></a>-<a name="line-535"></a><a name="SortVal"></a><span class='keyword'>type</span> <span class='conid'>SortVal</span> <span class='keyglyph'>=</span> <span class='conid'>Either</span> <span class='conid'>Float</span> <span class='conid'>String</span>-<a name="line-536"></a>-<a name="line-537"></a><a name="applySortKey"></a><span class='definition'>applySortKey</span> <span class='keyglyph'>::</span> <span class='conid'>SortKey</span> <span class='keyglyph'>-></span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='layout'>(</span> <span class='conid'>Context</span> <span class='keyglyph'>-></span> <span class='conid'>SortVal</span>-<a name="line-538"></a> <span class='layout'>,</span> <span class='conid'>SortVal</span> <span class='keyglyph'>-></span> <span class='conid'>SortVal</span> <span class='keyglyph'>-></span> <span class='conid'>Ordering</span><span class='layout'>)</span>-<a name="line-539"></a><span class='definition'>applySortKey</span> <span class='layout'>(</span><span class='conid'>SortK</span> <span class='varid'>expr</span> <span class='varid'>typeATV</span> <span class='varid'>orderATV</span><span class='layout'>)</span> <span class='varid'>ctx</span>-<a name="line-540"></a> <span class='keyglyph'>|</span> <span class='varid'>typ</span> <span class='varop'>/=</span> <span class='str'>"number"</span>-<a name="line-541"></a> <span class='varop'>&&</span>-<a name="line-542"></a> <span class='varid'>typ</span> <span class='varop'>/=</span> <span class='str'>"text"</span> -<a name="line-543"></a> <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='varop'>$</span> <span class='str'>"unsupported type in xsl:sort: "</span> <span class='varop'>++</span> <span class='varid'>typ</span>-<a name="line-544"></a> <span class='keyglyph'>|</span> <span class='varid'>ordering</span> <span class='varop'>/=</span><span class='str'>"ascending"</span>-<a name="line-545"></a> <span class='varop'>&&</span>-<a name="line-546"></a> <span class='varid'>ordering</span> <span class='varop'>/=</span><span class='str'>"descending"</span>-<a name="line-547"></a> <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='varop'>$</span> <span class='str'>"order in xsl:sort element must be ascending or descending. Found: "</span> <span class='varop'>++</span> <span class='varid'>ordering</span>-<a name="line-548"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-549"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>extractFct</span><span class='layout'>,</span> <span class='varid'>cmpFct</span><span class='layout'>)</span>-<a name="line-550"></a> <span class='keyword'>where</span>-<a name="line-551"></a> <span class='varid'>isNum</span> <span class='keyglyph'>=</span> <span class='varid'>typ</span> <span class='varop'>==</span> <span class='str'>"number"</span>-<a name="line-552"></a> <span class='varid'>isDesc</span> <span class='keyglyph'>=</span> <span class='varid'>ordering</span> <span class='varop'>==</span> <span class='str'>"descending"</span>-<a name="line-553"></a> <span class='varid'>ordering</span> <span class='keyglyph'>=</span> <span class='varid'>applyStringExpr</span> <span class='varid'>orderATV</span> <span class='varid'>ctx</span>-<a name="line-554"></a> <span class='varid'>typ</span> <span class='keyglyph'>=</span> <span class='varid'>applyStringExpr</span> <span class='varid'>typeATV</span> <span class='varid'>ctx</span>-<a name="line-555"></a>-<a name="line-556"></a> <span class='varid'>extractFct</span> <span class='varid'>ctx'</span>-<a name="line-557"></a> <span class='keyglyph'>=</span> <span class='keyword'>let</span>-<a name="line-558"></a> <span class='varid'>val</span> <span class='keyglyph'>=</span> <span class='varid'>applyStringExpr</span> <span class='varid'>expr</span> <span class='varid'>ctx'</span>-<a name="line-559"></a> <span class='keyword'>in</span>-<a name="line-560"></a> <span class='keyword'>if</span> <span class='varid'>isNum</span>-<a name="line-561"></a> <span class='keyword'>then</span> <span class='conid'>Left</span> <span class='varop'>$</span> <span class='varid'>readWDefault</span> <span class='layout'>(</span><span class='comment'>-</span><span class='num'>1.0</span> <span class='varop'>/</span> <span class='num'>0.0</span><span class='layout'>)</span> <span class='varid'>val</span>-<a name="line-562"></a> <span class='keyword'>else</span> <span class='conid'>Right</span> <span class='varid'>val</span>-<a name="line-563"></a>-<a name="line-564"></a> <span class='varid'>cmpFct</span> <span class='varid'>a</span>-<a name="line-565"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>isDesc</span> <span class='keyword'>then</span> <span class='varid'>invertOrd</span> <span class='keyword'>else</span> <span class='varid'>id</span> <span class='layout'>)</span> -<a name="line-566"></a> <span class='varop'>.</span>-<a name="line-567"></a> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>isNum</span> <span class='keyword'>then</span> <span class='varid'>cmpNum</span> <span class='varid'>a</span> <span class='keyword'>else</span> <span class='varid'>cmpString</span> <span class='varid'>a</span> <span class='layout'>)</span>-<a name="line-568"></a>-<a name="line-569"></a> <span class='varid'>cmpNum</span> <span class='layout'>(</span><span class='conid'>Left</span> <span class='varid'>n1</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>Left</span> <span class='varid'>n2</span><span class='layout'>)</span>-<a name="line-570"></a> <span class='keyglyph'>=</span> <span class='varid'>compare</span> <span class='varid'>n1</span> <span class='varid'>n2</span>-<a name="line-571"></a> <span class='varid'>cmpNum</span> <span class='keyword'>_</span> <span class='keyword'>_</span>-<a name="line-572"></a> <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='str'>"internal error in cmpNum in applySortKey"</span>-<a name="line-573"></a>-<a name="line-574"></a> <span class='varid'>cmpString</span> <span class='layout'>(</span><span class='conid'>Right</span> <span class='varid'>s1</span><span class='layout'>)</span> <span class='layout'>(</span><span class='conid'>Right</span> <span class='varid'>s2</span><span class='layout'>)</span>-<a name="line-575"></a> <span class='keyglyph'>=</span> <span class='varid'>compare</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>toLower</span> <span class='varid'>s1</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='varid'>toLower</span> <span class='varid'>s2</span><span class='layout'>)</span> <span class='comment'>-- The text comparison still needs to be improved...</span>-<a name="line-576"></a> <span class='varid'>cmpString</span> <span class='keyword'>_</span> <span class='keyword'>_</span>-<a name="line-577"></a> <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='str'>"internal error in cmpString in applySortKey"</span>-<a name="line-578"></a>-<a name="line-579"></a><a name="invertOrd"></a><span class='definition'>invertOrd</span> <span class='keyglyph'>::</span> <span class='conid'>Ordering</span> <span class='keyglyph'>-></span> <span class='conid'>Ordering</span>-<a name="line-580"></a><span class='definition'>invertOrd</span> <span class='conid'>EQ</span> <span class='keyglyph'>=</span> <span class='conid'>EQ</span>-<a name="line-581"></a><span class='definition'>invertOrd</span> <span class='conid'>LT</span> <span class='keyglyph'>=</span> <span class='conid'>GT</span>-<a name="line-582"></a><span class='definition'>invertOrd</span> <span class='conid'>GT</span> <span class='keyglyph'>=</span> <span class='conid'>LT</span>-<a name="line-583"></a>-<a name="line-584"></a><span class='comment'>-- ------------------------------------</span>-<a name="line-585"></a><span class='comment'>-- Namespace FIXUP</span>-<a name="line-586"></a>-<a name="line-587"></a><a name="fixupNS"></a><span class='definition'>fixupNS</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span>-<a name="line-588"></a><span class='definition'>fixupNS</span> <span class='keyglyph'>=</span> <span class='varid'>compressNS</span> <span class='varop'>.</span> <span class='varid'>disambigNS</span>-<a name="line-589"></a>-<a name="line-590"></a><a name="compressNS"></a><span class='definition'>compressNS</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span>-<a name="line-591"></a><span class='definition'>compressNS</span> <span class='keyglyph'>=</span> -<a name="line-592"></a> <span class='varid'>mapTreeCtx</span> <span class='varid'>compressElem</span> <span class='varop'>$</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>fromAscList</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='str'>"xml"</span><span class='layout'>,</span> <span class='varid'>xmlNamespace</span><span class='layout'>)</span><span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"xmlns"</span><span class='layout'>,</span> <span class='varid'>xmlnsNamespace</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-593"></a> -<a name="line-594"></a><a name="compressElem"></a><span class='definition'>compressElem</span> <span class='keyglyph'>::</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-></span> <span class='conid'>XNode</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='conid'>UriMapping</span><span class='layout'>,</span> <span class='conid'>XNode</span><span class='layout'>)</span>-<a name="line-595"></a><span class='definition'>compressElem</span> <span class='varid'>uris</span> <span class='varid'>node</span>-<a name="line-596"></a> <span class='keyglyph'>|</span> <span class='varid'>isElem</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>newUris</span><span class='layout'>,</span> <span class='varid'>changeAttrl</span> <span class='layout'>(</span><span class='varid'>filter</span> <span class='varop'>$</span> <span class='varid'>isImportant</span><span class='layout'>)</span> <span class='varid'>node</span><span class='layout'>)</span>-<a name="line-597"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>uris</span><span class='layout'>,</span> <span class='varid'>node</span><span class='layout'>)</span>-<a name="line-598"></a> <span class='keyword'>where</span>-<a name="line-599"></a> <span class='varid'>newUris</span> <span class='keyglyph'>=</span> <span class='varid'>uris</span> <span class='varop'>`</span><span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>union</span><span class='varop'>`</span> <span class='varid'>getUriMap</span> <span class='varid'>node</span>-<a name="line-600"></a> <span class='varid'>isImportant</span> <span class='varid'>n</span> <span class='keyglyph'>=</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>isNsAttr</span> <span class='varid'>n</span><span class='layout'>)</span> -<a name="line-601"></a> <span class='varop'>||</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>localPart</span> <span class='varop'>$</span> <span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>getAttrName</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='varop'>`</span><span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>member</span><span class='varop'>`</span> <span class='varid'>uris</span><span class='layout'>)</span>-<a name="line-602"></a>-<a name="line-603"></a><a name="disambigNS"></a><span class='definition'>disambigNS</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span>-<a name="line-604"></a><span class='definition'>disambigNS</span> <span class='keyglyph'>=</span> -<a name="line-605"></a> <span class='varid'>mapTreeCtx</span> <span class='varid'>step</span> <span class='varop'>$</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>fromAscList</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='str'>"xml"</span><span class='layout'>,</span> <span class='varid'>xmlNamespace</span><span class='layout'>)</span><span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"xmlns"</span><span class='layout'>,</span> <span class='varid'>xmlnsNamespace</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-606"></a> <span class='keyword'>where</span>-<a name="line-607"></a> <span class='varid'>step</span> <span class='varid'>uris</span> <span class='varid'>node</span>-<a name="line-608"></a> <span class='keyglyph'>|</span> <span class='varid'>isElem</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> <span class='keyword'>let</span> <span class='varid'>uris'</span> <span class='keyglyph'>=</span> <span class='varid'>uris</span> <span class='varop'>`</span><span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>union</span><span class='varop'>`</span> <span class='varid'>getUriMap</span> <span class='varid'>node</span>-<a name="line-609"></a> <span class='layout'>(</span><span class='varid'>newUris</span><span class='layout'>,</span> <span class='varid'>newNode'</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>disambigElem</span> <span class='varid'>uris'</span> <span class='varid'>node</span> <span class='keyword'>in</span>-<a name="line-610"></a> <span class='layout'>(</span><span class='varid'>newUris</span><span class='layout'>,</span> <span class='varid'>setUriMap</span> <span class='varid'>newUris</span> <span class='varid'>newNode'</span><span class='layout'>)</span>-<a name="line-611"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>uris</span><span class='layout'>,</span> <span class='varid'>node</span><span class='layout'>)</span>-<a name="line-612"></a>-<a name="line-613"></a><a name="disambigElem"></a><span class='definition'>disambigElem</span> <span class='keyglyph'>::</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-></span> <span class='conid'>XNode</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='conid'>UriMapping</span><span class='layout'>,</span> <span class='conid'>XNode</span><span class='layout'>)</span>-<a name="line-614"></a><span class='definition'>disambigElem</span> <span class='varid'>nsMap</span> <span class='varid'>element</span> <span class='keyglyph'>=</span> -<a name="line-615"></a> <span class='layout'>(</span><span class='varid'>newNsMap</span><span class='layout'>,</span> <span class='conid'>XTag</span> -<a name="line-616"></a> <span class='layout'>(</span><span class='varid'>remapNsName</span> <span class='varid'>newNsMap</span> <span class='varop'>$</span> <span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>getElemName</span> <span class='varid'>element</span><span class='layout'>)</span>-<a name="line-617"></a> <span class='varop'>$</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>changeName</span> <span class='varop'>$</span> <span class='varid'>remapNsName</span> <span class='varid'>newNsMap</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>getAttrl</span> <span class='varid'>element</span> <span class='layout'>)</span>-<a name="line-618"></a> <span class='keyword'>where</span>-<a name="line-619"></a> <span class='varid'>newNsMap</span> <span class='keyglyph'>=</span> <span class='varid'>nsMap</span> <span class='varop'>`</span><span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>union</span><span class='varop'>`</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>fromAscList</span> <span class='varid'>newTuples</span>-<a name="line-620"></a> <span class='varid'>newTuples</span> <span class='keyglyph'>=</span> <span class='varid'>zip</span> <span class='varid'>newPrefs</span> <span class='varop'>$</span> <span class='varid'>nub</span> <span class='varid'>newUris</span>-<a name="line-621"></a> <span class='varid'>newUris</span> <span class='keyglyph'>=</span> <span class='varid'>filter</span> <span class='layout'>(</span><span class='varop'>`notElem`</span> <span class='varid'>oldUris</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>filter</span> <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>null</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>map</span> <span class='varid'>namespaceUri</span> <span class='varop'>$</span> <span class='varid'>mapMaybe</span> <span class='varid'>getName</span>-<a name="line-622"></a> <span class='layout'>(</span><span class='varid'>element</span> <span class='conop'>:</span> <span class='varid'>map</span> <span class='varid'>getNode</span> <span class='layout'>(</span><span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>getAttrl</span> <span class='varid'>element</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-623"></a> <span class='varid'>newPrefs</span> <span class='keyglyph'>=</span> <span class='varid'>filter</span> <span class='layout'>(</span><span class='varop'>`notElem`</span> <span class='varid'>oldPrefs</span><span class='layout'>)</span> <span class='keyglyph'>[</span><span class='str'>"ns"</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>i</span> <span class='keyglyph'>|</span> <span class='varid'>i</span> <span class='keyglyph'><-</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='num'>1</span><span class='keyglyph'>::</span><span class='conid'>Int</span><span class='layout'>)</span><span class='keyglyph'>..</span><span class='keyglyph'>]</span><span class='keyglyph'>]</span>-<a name="line-624"></a> <span class='varid'>oldPrefs</span> <span class='keyglyph'>=</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>keys</span> <span class='varid'>nsMap</span>-<a name="line-625"></a> <span class='varid'>oldUris</span> <span class='keyglyph'>=</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>elems</span> <span class='varid'>nsMap</span> -<a name="line-626"></a>-<a name="line-627"></a><a name="remapNsName"></a><span class='definition'>remapNsName</span> <span class='keyglyph'>::</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-></span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='conid'>QName</span>-<a name="line-628"></a><span class='definition'>remapNsName</span> <span class='varid'>nsMap</span> <span class='varid'>name</span> <span class='keyglyph'>=</span> -<a name="line-629"></a>-<a name="line-630"></a> <span class='keyword'>if</span> <span class='varid'>maybe</span> <span class='layout'>(</span><span class='varid'>nsUri</span><span class='varop'>==</span><span class='str'>""</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varop'>==</span> <span class='varid'>nsUri</span><span class='layout'>)</span> <span class='varid'>luUri</span>-<a name="line-631"></a> <span class='keyword'>then</span> <span class='varid'>name</span>-<a name="line-632"></a>-<a name="line-633"></a> <span class='keyword'>else</span> <span class='varid'>mkQName</span> <span class='varid'>newPref</span> <span class='layout'>(</span><span class='varid'>localPart</span> <span class='varid'>name</span><span class='layout'>)</span> <span class='varid'>nsUri</span>-<a name="line-634"></a>-<a name="line-635"></a> <span class='keyword'>where</span>-<a name="line-636"></a> <span class='varid'>luUri</span> <span class='keyglyph'>=</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>lookup</span> <span class='layout'>(</span><span class='varid'>namePrefix</span> <span class='varid'>name</span><span class='layout'>)</span> <span class='varid'>nsMap</span>-<a name="line-637"></a> <span class='varid'>newPref</span> <span class='keyglyph'>=</span> <span class='varid'>head</span> <span class='varop'>$</span> <span class='layout'>(</span><span class='varop'>++</span> <span class='layout'>(</span><span class='varid'>error</span> <span class='varop'>$</span> <span class='str'>"int. error: No prefix for "</span> <span class='varop'>++</span> <span class='varid'>nsUri</span><span class='layout'>)</span><span class='layout'>)</span> -<a name="line-638"></a> <span class='varop'>$</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>keys</span> <span class='varop'>$</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>filter</span> <span class='layout'>(</span><span class='varop'>==</span><span class='varid'>namespaceUri</span> <span class='varid'>name</span><span class='layout'>)</span> <span class='varid'>nsMap</span>-<a name="line-639"></a> <span class='varid'>nsUri</span> <span class='keyglyph'>=</span> <span class='varid'>namespaceUri</span> <span class='varid'>name</span>-<a name="line-640"></a>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-XSLT-Common.html
@@ -1,416 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Text.XML.HXT.XSLT.Application-<a name="line-5"></a> Copyright : Copyright (C) 2006-2008 Tim Walkenhorst, Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)-<a name="line-9"></a> Stability : experimental-<a name="line-10"></a> Portability: portable-<a name="line-11"></a>-<a name="line-12"></a> Common imports and functions for HXSLT-<a name="line-13"></a>-<a name="line-14"></a>-}</span>-<a name="line-15"></a>-<a name="line-16"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-17"></a>-<a name="line-18"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XSLT</span><span class='varop'>.</span><span class='conid'>Common</span>-<a name="line-19"></a> <span class='layout'>(</span> <span class='keyword'>module</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span>-<a name="line-20"></a> <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlNode</span>-<a name="line-21"></a> <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlKeywords</span>-<a name="line-22"></a> <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>TypeDefs</span>-<a name="line-23"></a> <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>FormatXmlTree</span>-<a name="line-24"></a> <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathDataTypes</span>-<a name="line-25"></a> <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathParser</span>-<a name="line-26"></a> <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathEval</span>-<a name="line-27"></a> <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathFct</span>-<a name="line-28"></a> <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathToString</span>-<a name="line-29"></a> <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>NavTree</span>-<a name="line-30"></a> <span class='layout'>,</span> <span class='keyword'>module</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Tree</span><span class='varop'>.</span><span class='conid'>Class</span>-<a name="line-31"></a>-<a name="line-32"></a> <span class='comment'>-- Tree Functions</span>-<a name="line-33"></a> <span class='layout'>,</span> <span class='varid'>filterTree</span> <span class='comment'>-- Tree t => (a -> Bool) -> t a -> Maybe (t a)</span>-<a name="line-34"></a> <span class='layout'>,</span> <span class='varid'>mapTreeCtx</span> <span class='comment'>-- Tree t => (c -> a -> (c, b)) -> c -> t a -> t b</span>-<a name="line-35"></a> <span class='layout'>,</span> <span class='varid'>filterTreeCtx</span> <span class='comment'>-- Tree t => (c -> a -> (c, Bool)) -> c -> t a -> Maybe (t a)</span>-<a name="line-36"></a> <span class='layout'>,</span> <span class='varid'>zipTreeWith</span> <span class='comment'>-- Tree t => (a -> b -> c) -> t a -> t b -> t c</span>-<a name="line-37"></a> <span class='layout'>,</span> <span class='varid'>zipTree</span> <span class='comment'>-- Tree t => t a -> t b -> t (a,b) (zipTreeWith (,))</span>-<a name="line-38"></a> <span class='layout'>,</span> <span class='varid'>unzipTree</span> <span class='comment'>-- Tree t => t (a,b) -> (t a, t b) (mapTree fst &&& mapTree snd)</span>-<a name="line-39"></a> <span class='layout'>,</span> <span class='varid'>showTrees</span>-<a name="line-40"></a>-<a name="line-41"></a> <span class='comment'>-- XML functions</span>-<a name="line-42"></a> <span class='layout'>,</span> <span class='varid'>isElemType</span> <span class='comment'>-- XmlNode n => QName -> n -> Bool</span>-<a name="line-43"></a> <span class='layout'>,</span> <span class='varid'>isAttrType</span> <span class='comment'>-- XmlNode n => QName -> n -> Bool</span>-<a name="line-44"></a> <span class='layout'>,</span> <span class='varid'>isWhitespaceNode</span> <span class='comment'>-- XmlTree -> Bool</span>-<a name="line-45"></a> <span class='layout'>,</span> <span class='varid'>collectTextnodes</span> <span class='comment'>-- [XmlTree] -> String</span>-<a name="line-46"></a> <span class='layout'>,</span> <span class='varid'>tryFetchAttribute</span> <span class='comment'>-- XmlNode n => n -> QName -> Maybe String</span>-<a name="line-47"></a> <span class='layout'>,</span> <span class='varid'>fetchAttributeWDefault</span> <span class='comment'>-- XmlNode n => n -> QName -> String -> String</span>-<a name="line-48"></a> <span class='layout'>,</span> <span class='varid'>fetchAttribute</span> <span class='comment'>-- XmlNode n => n -> QName -> String</span>-<a name="line-49"></a> <span class='layout'>,</span> <span class='varid'>hasAttribute</span> <span class='comment'>-- XmlNode n => n -> QName -> Bool</span>-<a name="line-50"></a> <span class='layout'>,</span> <span class='varid'>setAttribute</span> <span class='comment'>-- XmlNode n => QName -> String -> n -> n</span>-<a name="line-51"></a>-<a name="line-52"></a> <span class='comment'>-- Namespace functions</span>-<a name="line-53"></a> <span class='layout'>,</span> <span class='conid'>ExName</span><span class='layout'>(</span><span class='conid'>ExName</span><span class='layout'>)</span> <span class='comment'>-- String (local) -> String (uri) -> ExName</span>-<a name="line-54"></a> <span class='layout'>,</span> <span class='varid'>mkExName</span> <span class='comment'>-- QName -> ExName</span>-<a name="line-55"></a> <span class='layout'>,</span> <span class='varid'>exLocal</span> <span class='comment'>-- ExName -> String</span>-<a name="line-56"></a> <span class='layout'>,</span> <span class='varid'>exUri</span> <span class='comment'>-- ExName -> String</span>-<a name="line-57"></a> <span class='layout'>,</span> <span class='varid'>parseExName</span> <span class='comment'>-- UriMapping -> String -> ExName</span>-<a name="line-58"></a> <span class='layout'>,</span> <span class='conid'>UriMapping</span> <span class='comment'>-- Map String String</span>-<a name="line-59"></a> <span class='layout'>,</span> <span class='varid'>getUriMap</span> <span class='comment'>-- XmlNode n => n -> UriMapping (extract an Ns-Uri Map from an Element node)</span>-<a name="line-60"></a> <span class='layout'>,</span> <span class='varid'>setUriMap</span> <span class='comment'>-- XmlNode n => UriMap -> n -> n</span>-<a name="line-61"></a> <span class='layout'>,</span> <span class='varid'>uriMap2Attrs</span> <span class='comment'>-- UriMapping -> [XmlTree] (create xmlns:* Attribute nodes for Uri-Mapping)</span>-<a name="line-62"></a> <span class='layout'>,</span> <span class='varid'>expandNSDecls</span> <span class='comment'>-- XmlTree -> XmlTree</span>-<a name="line-63"></a> <span class='layout'>,</span> <span class='varid'>lookupPrefix</span> <span class='comment'>-- UriMapping -> String -> String</span>-<a name="line-64"></a> <span class='layout'>,</span> <span class='varid'>isNsAttr</span> <span class='comment'>-- XmlTree -> Bool</span>-<a name="line-65"></a>-<a name="line-66"></a> <span class='comment'>-- additions to XPATH:</span>-<a name="line-67"></a> <span class='layout'>,</span> <span class='varid'>mkLiteralExpr</span> <span class='comment'>-- String -> Expr</span>-<a name="line-68"></a> <span class='layout'>,</span> <span class='varid'>mkStringExpr</span> <span class='comment'>-- Expr -> Expr</span>-<a name="line-69"></a> <span class='layout'>,</span> <span class='varid'>mkBoolExpr</span> <span class='comment'>-- Expr -> Expr</span>-<a name="line-70"></a> <span class='layout'>,</span> <span class='varid'>mkTrueExpr</span> <span class='comment'>-- Expr</span>-<a name="line-71"></a> <span class='layout'>,</span> <span class='varid'>concatExpr</span> <span class='comment'>-- [Expr] -> Expr</span>-<a name="line-72"></a> <span class='layout'>,</span> <span class='varid'>splitExpr</span> <span class='comment'>-- Expr -> [Expr]</span>-<a name="line-73"></a> <span class='layout'>,</span> <span class='varid'>unionExpr</span> <span class='comment'>-- [Expr] -> Expr</span>-<a name="line-74"></a> <span class='layout'>,</span> <span class='varid'>splitMatchByPrio</span> <span class='comment'>-- Expr -> [(Float, Expr)]</span>-<a name="line-75"></a> <span class='layout'>,</span> <span class='varid'>computePriority</span> <span class='comment'>-- Expr -> Float</span>-<a name="line-76"></a> <span class='layout'>,</span> <span class='varid'>computeNTestPriority</span> <span class='comment'>-- NodeTest -> Float</span>-<a name="line-77"></a> <span class='layout'>,</span> <span class='varid'>isMatchExpr</span> <span class='comment'>-- Expr -> Bool</span>-<a name="line-78"></a>-<a name="line-79"></a> <span class='comment'>-- Misc.:</span>-<a name="line-80"></a> <span class='layout'>,</span> <span class='varid'>fromJustErr</span> <span class='comment'>-- String -> Maybe a -> a, fromJust with error message</span>-<a name="line-81"></a> <span class='layout'>,</span> <span class='varid'>readWDefault</span> <span class='comment'>-- Read a => a -> String -> a</span>-<a name="line-82"></a> <span class='layout'>)</span>-<a name="line-83"></a><span class='keyword'>where</span>-<a name="line-84"></a>-<a name="line-85"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span>-<a name="line-86"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ListArrow</span>-<a name="line-87"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ArrowList</span>-<a name="line-88"></a>-<a name="line-89"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlArrow</span> <span class='layout'>(</span> <span class='varid'>xshow</span>-<a name="line-90"></a> <span class='layout'>)</span>-<a name="line-91"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlKeywords</span>-<a name="line-92"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>XmlNode</span> <span class='layout'>(</span> <span class='conid'>XmlNode</span> <span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span>-<a name="line-93"></a> <span class='layout'>,</span> <span class='varid'>mkElement</span>-<a name="line-94"></a> <span class='layout'>,</span> <span class='varid'>mkRoot</span>-<a name="line-95"></a> <span class='layout'>,</span> <span class='varid'>mkAttr</span>-<a name="line-96"></a> <span class='layout'>,</span> <span class='varid'>mergeAttrl</span>-<a name="line-97"></a> <span class='layout'>)</span>-<a name="line-98"></a>-<a name="line-99"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>TypeDefs</span> <span class='layout'>(</span> <span class='conid'>XmlTree</span>-<a name="line-100"></a> <span class='layout'>,</span> <span class='conid'>XNode</span><span class='layout'>(</span><span class='conid'>XTag</span><span class='layout'>,</span> <span class='conid'>XAttr</span><span class='layout'>)</span>-<a name="line-101"></a> <span class='layout'>,</span> <span class='conid'>QName</span>-<a name="line-102"></a> <span class='layout'>,</span> <span class='varid'>toNsEnv</span>-<a name="line-103"></a> <span class='layout'>,</span> <span class='varid'>namePrefix</span>-<a name="line-104"></a> <span class='layout'>,</span> <span class='varid'>localPart</span>-<a name="line-105"></a> <span class='layout'>,</span> <span class='varid'>namespaceUri</span>-<a name="line-106"></a> <span class='layout'>,</span> <span class='varid'>equivQName</span>-<a name="line-107"></a> <span class='layout'>,</span> <span class='varid'>mkName</span>-<a name="line-108"></a> <span class='layout'>,</span> <span class='varid'>mkQName</span>-<a name="line-109"></a> <span class='layout'>)</span>-<a name="line-110"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>FormatXmlTree</span> <span class='layout'>(</span> <span class='varid'>formatXmlTree</span>-<a name="line-111"></a> <span class='layout'>)</span>-<a name="line-112"></a>-<a name="line-113"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathDataTypes</span><span class='layout'>(</span> <span class='conid'>Expr</span> <span class='layout'>(</span> <span class='conid'>LiteralExpr</span>-<a name="line-114"></a> <span class='layout'>,</span> <span class='conid'>FctExpr</span>-<a name="line-115"></a> <span class='layout'>,</span> <span class='conid'>GenExpr</span>-<a name="line-116"></a> <span class='layout'>,</span> <span class='conid'>PathExpr</span>-<a name="line-117"></a> <span class='layout'>)</span>-<a name="line-118"></a> <span class='layout'>,</span> <span class='conid'>Op</span> <span class='layout'>(</span> <span class='conid'>Union</span> <span class='layout'>)</span>-<a name="line-119"></a> <span class='layout'>,</span> <span class='conid'>LocationPath</span> <span class='layout'>(</span> <span class='conid'>LocPath</span> <span class='layout'>)</span>-<a name="line-120"></a> <span class='layout'>,</span> <span class='conid'>Path</span> <span class='layout'>(</span> <span class='conid'>Rel</span> <span class='layout'>)</span>-<a name="line-121"></a> <span class='layout'>,</span> <span class='conid'>XStep</span> <span class='layout'>(</span> <span class='conid'>Step</span> <span class='layout'>)</span>-<a name="line-122"></a> <span class='layout'>,</span> <span class='conid'>NodeTest</span> <span class='layout'>(</span> <span class='conid'>NameTest</span>-<a name="line-123"></a> <span class='layout'>,</span> <span class='conid'>PI</span>-<a name="line-124"></a> <span class='layout'>,</span> <span class='conid'>TypeTest</span>-<a name="line-125"></a> <span class='layout'>)</span>-<a name="line-126"></a> <span class='layout'>,</span> <span class='conid'>NavXmlTree</span>-<a name="line-127"></a> <span class='layout'>,</span> <span class='conid'>XPathValue</span> <span class='layout'>(</span> <span class='conid'>XPVNode</span>-<a name="line-128"></a> <span class='layout'>,</span> <span class='conid'>XPVBool</span>-<a name="line-129"></a> <span class='layout'>,</span> <span class='conid'>XPVString</span>-<a name="line-130"></a> <span class='layout'>,</span> <span class='conid'>XPVError</span>-<a name="line-131"></a> <span class='layout'>)</span>-<a name="line-132"></a> <span class='layout'>)</span>-<a name="line-133"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathParser</span> <span class='layout'>(</span> <span class='varid'>parseXPath</span>-<a name="line-134"></a> <span class='layout'>)</span>-<a name="line-135"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathEval</span> <span class='layout'>(</span> <span class='varid'>evalExpr</span>-<a name="line-136"></a> <span class='layout'>)</span>-<a name="line-137"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathFct</span> <span class='layout'>(</span> <span class='varid'>isNotInNodeList</span>-<a name="line-138"></a> <span class='layout'>)</span>-<a name="line-139"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XPath</span><span class='varop'>.</span><span class='conid'>XPathToString</span> <span class='layout'>(</span> <span class='varid'>xPValue2XmlTrees</span>-<a name="line-140"></a> <span class='layout'>)</span>-<a name="line-141"></a>-<a name="line-142"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Map</span> <span class='layout'>(</span><span class='conid'>Map</span><span class='layout'>)</span>-<a name="line-143"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Map</span> <span class='keyword'>as</span> <span class='conid'>Map</span> <span class='varid'>hiding</span> <span class='layout'>(</span><span class='conid'>Map</span><span class='layout'>)</span>-<a name="line-144"></a>-<a name="line-145"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Tree</span><span class='varop'>.</span><span class='conid'>Class</span> -<a name="line-146"></a>-<a name="line-147"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>NavTree</span> <span class='layout'>(</span> <span class='conid'>NavTree</span>-<a name="line-148"></a> <span class='layout'>,</span> <span class='varid'>ntree</span>-<a name="line-149"></a> <span class='layout'>,</span> <span class='varid'>subtreeNT</span>-<a name="line-150"></a> <span class='layout'>,</span> <span class='varid'>upNT</span>-<a name="line-151"></a> <span class='layout'>,</span> <span class='varid'>downNT</span>-<a name="line-152"></a> <span class='layout'>,</span> <span class='varid'>rightNT</span>-<a name="line-153"></a> <span class='layout'>,</span> <span class='varid'>leftNT</span>-<a name="line-154"></a> <span class='layout'>,</span> <span class='varid'>getChildrenNT</span>-<a name="line-155"></a> <span class='layout'>)</span>-<a name="line-156"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>-<a name="line-157"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>List</span>-<a name="line-158"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Char</span>-<a name="line-159"></a>-<a name="line-160"></a><span class='comment'>--------------------------- </span>-<a name="line-161"></a><span class='comment'>-- Tree functions</span>-<a name="line-162"></a>-<a name="line-163"></a><span class='comment'>-- mapTree :: Functor t => (a -> b) -> t a -> t b</span>-<a name="line-164"></a><span class='comment'>-- mapTree = fmap</span>-<a name="line-165"></a>-<a name="line-166"></a><span class='comment'>-- "map" on a tree with a context. </span>-<a name="line-167"></a><span class='comment'>-- Contextual information from the ancestors of the current node can be collected in the context</span>-<a name="line-168"></a>-<a name="line-169"></a><a name="mapTreeCtx"></a><span class='definition'>mapTreeCtx</span> <span class='keyglyph'>::</span> <span class='conid'>Tree</span> <span class='varid'>t</span> <span class='keyglyph'>=></span> <span class='layout'>(</span><span class='varid'>c</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='varid'>c</span><span class='layout'>,</span> <span class='varid'>b</span><span class='layout'>)</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>c</span> <span class='keyglyph'>-></span> <span class='varid'>t</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='varid'>t</span> <span class='varid'>b</span>-<a name="line-170"></a><span class='definition'>mapTreeCtx</span> <span class='varid'>f</span> <span class='varid'>c</span> <span class='varid'>tree</span> <span class='keyglyph'>=</span> -<a name="line-171"></a> <span class='varid'>mkTree</span> <span class='varid'>b</span> <span class='varop'>$</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>mapTreeCtx</span> <span class='varid'>f</span> <span class='varid'>cN</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>getChildren</span> <span class='varid'>tree</span>-<a name="line-172"></a> <span class='keyword'>where</span> -<a name="line-173"></a> <span class='layout'>(</span><span class='varid'>cN</span><span class='layout'>,</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varid'>c</span> <span class='varop'>$</span> <span class='varid'>getNode</span> <span class='varid'>tree</span>-<a name="line-174"></a>-<a name="line-175"></a><a name="filterTree"></a><span class='definition'>filterTree</span> <span class='keyglyph'>::</span> <span class='conid'>Tree</span> <span class='varid'>t</span> <span class='keyglyph'>=></span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>t</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>Maybe</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>a</span><span class='layout'>)</span>-<a name="line-176"></a><span class='definition'>filterTree</span> <span class='varid'>p</span> <span class='varid'>tree</span> <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>p</span> <span class='varid'>node</span>-<a name="line-177"></a> <span class='keyword'>then</span> <span class='conid'>Just</span> <span class='varop'>$</span> <span class='varid'>mkTree</span> <span class='varid'>node</span> <span class='varop'>$</span> <span class='varid'>mapMaybe</span> <span class='layout'>(</span><span class='varid'>filterTree</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>getChildren</span> <span class='varid'>tree</span>-<a name="line-178"></a> <span class='keyword'>else</span> <span class='conid'>Nothing</span>-<a name="line-179"></a> <span class='keyword'>where</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> <span class='varid'>getNode</span> <span class='varid'>tree</span>-<a name="line-180"></a>-<a name="line-181"></a><a name="filterTreeCtx"></a><span class='comment'>-- "filter" on a tree with a context. </span>-<a name="line-182"></a><span class='comment'>-- Contextual information from the ancestors of the current node can be collected in the context</span>-<a name="line-183"></a><span class='definition'>filterTreeCtx</span> <span class='keyglyph'>::</span> <span class='conid'>Tree</span> <span class='varid'>t</span> <span class='keyglyph'>=></span> <span class='layout'>(</span><span class='varid'>c</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='varid'>c</span><span class='layout'>,</span> <span class='conid'>Bool</span><span class='layout'>)</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>c</span> <span class='keyglyph'>-></span> <span class='varid'>t</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>Maybe</span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>a</span><span class='layout'>)</span>-<a name="line-184"></a><span class='definition'>filterTreeCtx</span> <span class='varid'>p</span> <span class='varid'>c</span> <span class='varid'>tree</span> <span class='keyglyph'>=</span>-<a name="line-185"></a> <span class='keyword'>if</span> <span class='varid'>b</span> -<a name="line-186"></a> <span class='keyword'>then</span> <span class='conid'>Just</span> <span class='varop'>$</span> <span class='varid'>mkTree</span> <span class='varid'>node</span> <span class='varop'>$</span> <span class='varid'>mapMaybe</span> <span class='layout'>(</span><span class='varid'>filterTreeCtx</span> <span class='varid'>p</span> <span class='varid'>cN</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>getChildren</span> <span class='varid'>tree</span>-<a name="line-187"></a> <span class='keyword'>else</span> <span class='conid'>Nothing</span>-<a name="line-188"></a> <span class='keyword'>where</span> -<a name="line-189"></a> <span class='layout'>(</span><span class='varid'>cN</span><span class='layout'>,</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>p</span> <span class='varid'>c</span> <span class='varid'>node</span>-<a name="line-190"></a> <span class='varid'>node</span> <span class='keyglyph'>=</span> <span class='varid'>getNode</span> <span class='varid'>tree</span>-<a name="line-191"></a>-<a name="line-192"></a><a name="zipTreeWith"></a><span class='definition'>zipTreeWith</span> <span class='keyglyph'>::</span> <span class='conid'>Tree</span> <span class='varid'>t</span> <span class='keyglyph'>=></span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='varid'>b</span> <span class='keyglyph'>-></span> <span class='varid'>c</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>t</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='varid'>t</span> <span class='varid'>b</span> <span class='keyglyph'>-></span> <span class='varid'>t</span> <span class='varid'>c</span>-<a name="line-193"></a><span class='definition'>zipTreeWith</span> <span class='varid'>f</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='keyglyph'>=</span> <span class='varid'>mkTree</span> <span class='layout'>(</span><span class='varid'>f</span> <span class='layout'>(</span><span class='varid'>getNode</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>getNode</span> <span class='varid'>b</span><span class='layout'>)</span><span class='layout'>)</span> -<a name="line-194"></a> <span class='varop'>$</span> <span class='varid'>zipWith</span> <span class='layout'>(</span><span class='varid'>zipTreeWith</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>getChildren</span> <span class='varid'>b</span>-<a name="line-195"></a>-<a name="line-196"></a><a name="zipTree"></a><span class='definition'>zipTree</span> <span class='keyglyph'>::</span> <span class='conid'>Tree</span> <span class='varid'>t</span> <span class='keyglyph'>=></span> <span class='varid'>t</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='varid'>t</span> <span class='varid'>b</span> <span class='keyglyph'>-></span> <span class='varid'>t</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span><span class='varid'>b</span><span class='layout'>)</span>-<a name="line-197"></a><span class='definition'>zipTree</span> <span class='keyglyph'>=</span> <span class='varid'>zipTreeWith</span> <span class='conid'>(,)</span>-<a name="line-198"></a>-<a name="line-199"></a><a name="unzipTree"></a><span class='definition'>unzipTree</span> <span class='keyglyph'>::</span> <span class='conid'>Functor</span> <span class='varid'>t</span> <span class='keyglyph'>=></span> <span class='varid'>t</span> <span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span><span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='varid'>t</span> <span class='varid'>a</span><span class='layout'>,</span> <span class='varid'>t</span> <span class='varid'>b</span><span class='layout'>)</span>-<a name="line-200"></a><span class='definition'>unzipTree</span> <span class='keyglyph'>=</span> <span class='varid'>fmap</span> <span class='varid'>fst</span> <span class='varop'>&&&</span> <span class='varid'>fmap</span> <span class='varid'>snd</span>-<a name="line-201"></a>-<a name="line-202"></a><a name="showTrees"></a><span class='definition'>showTrees</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-203"></a><span class='definition'>showTrees</span> <span class='varid'>ts</span>-<a name="line-204"></a> <span class='keyglyph'>=</span> <span class='varid'>concat</span> -<a name="line-205"></a> <span class='layout'>(</span><span class='varid'>runLA</span> <span class='layout'>(</span><span class='varid'>xshow</span> <span class='layout'>(</span><span class='varid'>constL</span> <span class='varid'>ts</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>undefined</span><span class='layout'>)</span>-<a name="line-206"></a>-<a name="line-207"></a><span class='comment'>--------------------------- </span>-<a name="line-208"></a><span class='comment'>-- Xml Functions</span>-<a name="line-209"></a>-<a name="line-210"></a><a name="collectTextnodes"></a><span class='definition'>collectTextnodes</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-211"></a><span class='definition'>collectTextnodes</span>-<a name="line-212"></a> <span class='keyglyph'>=</span> <span class='varid'>concat</span> <span class='varop'>.</span> <span class='varid'>mapMaybe</span> <span class='varid'>getText</span>-<a name="line-213"></a>-<a name="line-214"></a><a name="isElemType"></a><span class='definition'>isElemType</span> <span class='keyglyph'>::</span> <span class='conid'>XmlNode</span> <span class='varid'>n</span> <span class='keyglyph'>=></span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='varid'>n</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-215"></a><span class='definition'>isElemType</span> <span class='varid'>qn</span> <span class='varid'>node</span>-<a name="line-216"></a> <span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varid'>node</span>-<a name="line-217"></a> <span class='varop'>&&</span>-<a name="line-218"></a> <span class='varid'>equivQName</span> <span class='varid'>qn</span> <span class='layout'>(</span><span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>getElemName</span> <span class='varid'>node</span><span class='layout'>)</span>-<a name="line-219"></a>-<a name="line-220"></a><a name="isAttrType"></a><span class='definition'>isAttrType</span> <span class='keyglyph'>::</span> <span class='conid'>XmlNode</span> <span class='varid'>n</span> <span class='keyglyph'>=></span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='varid'>n</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-221"></a><span class='definition'>isAttrType</span> <span class='varid'>qname</span> <span class='varid'>node</span>-<a name="line-222"></a> <span class='keyglyph'>=</span> <span class='varid'>isAttr</span> <span class='varid'>node</span>-<a name="line-223"></a> <span class='varop'>&&</span>-<a name="line-224"></a> <span class='varid'>equivQName</span> <span class='varid'>qname</span> <span class='layout'>(</span><span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>getAttrName</span> <span class='varid'>node</span><span class='layout'>)</span>-<a name="line-225"></a>-<a name="line-226"></a><a name="tryFetchAttribute"></a><span class='definition'>tryFetchAttribute</span> <span class='keyglyph'>::</span> <span class='conid'>XmlNode</span> <span class='varid'>n</span> <span class='keyglyph'>=></span> <span class='varid'>n</span> <span class='keyglyph'>-></span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='conid'>Maybe</span> <span class='conid'>String</span>-<a name="line-227"></a><span class='definition'>tryFetchAttribute</span> <span class='varid'>node</span> <span class='varid'>qn</span>-<a name="line-228"></a> <span class='keyglyph'>|</span> <span class='varid'>isElem</span> <span class='varid'>node</span> <span class='keyglyph'>=</span>-<a name="line-229"></a>-<a name="line-230"></a> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>candidates</span> -<a name="line-231"></a> <span class='keyword'>then</span> <span class='conid'>Nothing</span>-<a name="line-232"></a>-<a name="line-233"></a> <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>length</span> <span class='varid'>candidates</span> <span class='varop'>></span> <span class='num'>1</span>-<a name="line-234"></a> <span class='keyword'>then</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"More than one attribute "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>qn</span><span class='layout'>)</span>-<a name="line-235"></a>-<a name="line-236"></a> <span class='keyword'>else</span> <span class='conid'>Just</span> <span class='varop'>$</span> <span class='varid'>collectTextnodes</span> <span class='varop'>$</span> <span class='varid'>getChildren</span> <span class='varop'>$</span> <span class='varid'>head</span> <span class='varid'>candidates</span>-<a name="line-237"></a>-<a name="line-238"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='conid'>Nothing</span> -<a name="line-239"></a> <span class='keyword'>where</span> -<a name="line-240"></a> <span class='varid'>candidates</span> <span class='keyglyph'>=</span> <span class='varid'>filter</span> <span class='layout'>(</span><span class='varid'>isAttrType</span> <span class='varid'>qn</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>getAttrl</span> <span class='varid'>node</span>-<a name="line-241"></a>-<a name="line-242"></a><a name="fetchAttributeWDefault"></a><span class='definition'>fetchAttributeWDefault</span> <span class='keyglyph'>::</span> <span class='conid'>XmlNode</span> <span class='varid'>n</span> <span class='keyglyph'>=></span> <span class='varid'>n</span> <span class='keyglyph'>-></span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-243"></a><span class='definition'>fetchAttributeWDefault</span> <span class='varid'>node</span> <span class='varid'>name</span> <span class='varid'>def</span> <span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='varid'>def</span> <span class='varid'>id</span> <span class='layout'>(</span><span class='varid'>tryFetchAttribute</span> <span class='varid'>node</span> <span class='varid'>name</span><span class='layout'>)</span>-<a name="line-244"></a>-<a name="line-245"></a><a name="fetchAttribute"></a><span class='definition'>fetchAttribute</span> <span class='keyglyph'>::</span> <span class='conid'>XmlNode</span> <span class='varid'>n</span> <span class='keyglyph'>=></span> <span class='varid'>n</span> <span class='keyglyph'>-></span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-246"></a><span class='definition'>fetchAttribute</span> <span class='varid'>node</span> <span class='varid'>name</span> <span class='keyglyph'>=</span> <span class='varid'>fetchAttributeWDefault</span> <span class='varid'>node</span> <span class='varid'>name</span> <span class='varop'>$</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"Element "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>getElemName</span> <span class='varid'>node</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='str'>" has no attribute: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>name</span><span class='layout'>)</span>-<a name="line-247"></a>-<a name="line-248"></a><a name="hasAttribute"></a><span class='definition'>hasAttribute</span> <span class='keyglyph'>::</span> <span class='conid'>XmlNode</span> <span class='varid'>n</span> <span class='keyglyph'>=></span> <span class='varid'>n</span> <span class='keyglyph'>-></span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-249"></a><span class='definition'>hasAttribute</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> <span class='varid'>isJust</span> <span class='varop'>.</span> <span class='varid'>tryFetchAttribute</span> <span class='varid'>node</span>-<a name="line-250"></a>-<a name="line-251"></a><a name="setAttribute"></a><span class='definition'>setAttribute</span> <span class='keyglyph'>::</span> <span class='conid'>XmlNode</span> <span class='varid'>n</span> <span class='keyglyph'>=></span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='varid'>n</span> <span class='keyglyph'>-></span> <span class='varid'>n</span>-<a name="line-252"></a><span class='definition'>setAttribute</span> <span class='varid'>qn</span> <span class='varid'>val</span> <span class='varid'>node</span>-<a name="line-253"></a> <span class='keyglyph'>|</span> <span class='varid'>isElem</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> <span class='varid'>setElemAttrl</span> <span class='layout'>(</span><span class='varid'>newA</span> <span class='conop'>:</span> <span class='varid'>attrs</span><span class='layout'>)</span> <span class='varid'>node</span>-<a name="line-254"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='varop'>$</span> <span class='str'>"setAttribute on none-element node"</span> <span class='comment'>-- how print an XmlNode...</span>-<a name="line-255"></a> <span class='keyword'>where</span> -<a name="line-256"></a> <span class='varid'>attrs</span> <span class='keyglyph'>=</span> <span class='varid'>filter</span> <span class='layout'>(</span><span class='varid'>not</span> <span class='varop'>.</span> <span class='varid'>isAttrType</span> <span class='varid'>qn</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>getAttrl</span> <span class='varid'>node</span>-<a name="line-257"></a> <span class='varid'>newA</span> <span class='keyglyph'>=</span> <span class='varid'>mkTree</span> <span class='layout'>(</span><span class='conid'>XAttr</span> <span class='varid'>qn</span><span class='layout'>)</span> <span class='keyglyph'>[</span><span class='varid'>mkText</span> <span class='varid'>val</span><span class='keyglyph'>]</span>-<a name="line-258"></a>-<a name="line-259"></a><a name="isWhitespaceNode"></a><span class='definition'>isWhitespaceNode</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>XmlNode</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='keyglyph'>=></span> <span class='varid'>n</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-260"></a><span class='definition'>isWhitespaceNode</span> <span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='conid'>False</span> <span class='layout'>(</span><span class='varid'>all</span> <span class='varid'>isSpace</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>getText</span>-<a name="line-261"></a>-<a name="line-262"></a><span class='comment'>--------------------------- </span>-<a name="line-263"></a><span class='comment'>-- Namespace Functions</span>-<a name="line-264"></a>-<a name="line-265"></a><span class='comment'>-- Expanded name, is unique can therefore be used as a key (unlike QName)</span>-<a name="line-266"></a>-<a name="line-267"></a><a name="ExName"></a><span class='keyword'>data</span> <span class='conid'>ExName</span> <span class='keyglyph'>=</span> <span class='conid'>ExName</span> <span class='conid'>String</span> <span class='conid'>String</span>-<a name="line-268"></a> <span class='keyword'>deriving</span> <span class='layout'>(</span><span class='conid'>Show</span><span class='layout'>,</span> <span class='conid'>Eq</span><span class='layout'>,</span> <span class='conid'>Ord</span><span class='layout'>)</span>-<a name="line-269"></a>-<a name="line-270"></a><a name="mkExName"></a><span class='definition'>mkExName</span> <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='conid'>ExName</span>-<a name="line-271"></a><span class='definition'>mkExName</span> <span class='varid'>qn</span> <span class='keyglyph'>=</span> <span class='conid'>ExName</span> <span class='layout'>(</span><span class='varid'>localPart</span> <span class='varid'>qn</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>namespaceUri</span> <span class='varid'>qn</span><span class='layout'>)</span>-<a name="line-272"></a>-<a name="line-273"></a><a name="exLocal"></a><span class='definition'>exLocal</span><span class='layout'>,</span> <span class='varid'>exUri</span> <span class='keyglyph'>::</span> <span class='conid'>ExName</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-274"></a><span class='definition'>exLocal</span> <span class='layout'>(</span><span class='conid'>ExName</span> <span class='varid'>l</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>l</span>-<a name="line-275"></a><a name="exUri"></a><span class='definition'>exUri</span> <span class='layout'>(</span><span class='conid'>ExName</span> <span class='keyword'>_</span> <span class='varid'>u</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>u</span>-<a name="line-276"></a>-<a name="line-277"></a><a name="parseExName"></a><span class='definition'>parseExName</span> <span class='keyglyph'>::</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>ExName</span>-<a name="line-278"></a><span class='definition'>parseExName</span> <span class='varid'>uris</span> <span class='varid'>str</span>-<a name="line-279"></a> <span class='keyglyph'>|</span> <span class='varid'>noPrefix</span> <span class='keyglyph'>=</span> <span class='conid'>ExName</span> <span class='varid'>str</span> <span class='str'>""</span>-<a name="line-280"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='conid'>ExName</span> <span class='varid'>loc</span> <span class='varop'>$</span> <span class='varid'>lookupPrefix</span> <span class='varid'>uris</span> <span class='varid'>prefix</span>-<a name="line-281"></a> <span class='keyword'>where</span>-<a name="line-282"></a> <span class='varid'>noPrefix</span> <span class='keyglyph'>=</span> <span class='varid'>null</span> <span class='varid'>loc</span> -<a name="line-283"></a> <span class='varid'>loc</span> <span class='keyglyph'>=</span> <span class='varid'>drop</span> <span class='num'>1</span> <span class='varid'>loc'</span> -<a name="line-284"></a> <span class='layout'>(</span><span class='varid'>prefix</span><span class='layout'>,</span> <span class='varid'>loc'</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>span</span> <span class='layout'>(</span><span class='varop'>/=</span> <span class='chr'>':'</span><span class='layout'>)</span> <span class='varid'>str</span>-<a name="line-285"></a>-<a name="line-286"></a><span class='comment'>-- Mapping from namespace-Prefixes to namespace-URIs</span>-<a name="line-287"></a>-<a name="line-288"></a><a name="UriMapping"></a><span class='keyword'>type</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>=</span> <span class='conid'>Map</span> <span class='conid'>String</span> <span class='conid'>String</span>-<a name="line-289"></a>-<a name="line-290"></a><a name="getUriMap"></a><span class='definition'>getUriMap</span> <span class='keyglyph'>::</span> <span class='conid'>XmlNode</span> <span class='varid'>n</span> <span class='keyglyph'>=></span> <span class='varid'>n</span> <span class='keyglyph'>-></span> <span class='conid'>UriMapping</span>-<a name="line-291"></a><span class='definition'>getUriMap</span>-<a name="line-292"></a> <span class='keyglyph'>=</span> <span class='varid'>uriMappingsFromNsAttrs</span> <span class='varop'>.</span> <span class='varid'>filter</span> <span class='varid'>isNsAttr</span> <span class='varop'>.</span> <span class='varid'>maybe</span> <span class='varid'>err</span> <span class='varid'>id</span> <span class='varop'>.</span> <span class='varid'>getAttrl</span>-<a name="line-293"></a> <span class='keyword'>where</span>-<a name="line-294"></a> <span class='varid'>err</span> <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='str'>"Internal error: getUriMap on none-element node"</span>-<a name="line-295"></a>-<a name="line-296"></a><a name="setUriMap"></a><span class='definition'>setUriMap</span> <span class='keyglyph'>::</span> <span class='conid'>XmlNode</span> <span class='varid'>n</span> <span class='keyglyph'>=></span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-></span> <span class='varid'>n</span> <span class='keyglyph'>-></span> <span class='varid'>n</span>-<a name="line-297"></a><span class='definition'>setUriMap</span> <span class='varid'>nsMap</span> <span class='varid'>node</span>-<a name="line-298"></a> <span class='keyglyph'>=</span> <span class='varid'>setElemAttrl</span> <span class='layout'>(</span><span class='varid'>mergeAttrl</span> <span class='layout'>(</span><span class='varid'>maybe</span> <span class='conid'>[]</span> <span class='varid'>id</span> <span class='varop'>$</span> <span class='varid'>getAttrl</span> <span class='varid'>node</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>uriMap2Attrs</span> <span class='varid'>nsMap</span><span class='layout'>)</span> <span class='varid'>node</span>-<a name="line-299"></a>-<a name="line-300"></a><a name="uriMap2Attrs"></a><span class='definition'>uriMap2Attrs</span> <span class='keyglyph'>::</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>-<a name="line-301"></a><span class='definition'>uriMap2Attrs</span>-<a name="line-302"></a> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>joinNsAttr</span> <span class='varop'>.</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>toAscList</span>-<a name="line-303"></a>-<a name="line-304"></a><a name="lookupPrefix"></a><span class='definition'>lookupPrefix</span> <span class='keyglyph'>::</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span>-<a name="line-305"></a><span class='definition'>lookupPrefix</span> <span class='varid'>uris</span> <span class='varid'>prefix</span>-<a name="line-306"></a> <span class='keyglyph'>=</span> <span class='varid'>fromJustErr</span> <span class='layout'>(</span><span class='str'>"No namespace-Uri bound to prefix: "</span><span class='varop'>++</span><span class='varid'>prefix</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>lookup</span> <span class='varid'>prefix</span> <span class='varid'>uris</span>-<a name="line-307"></a>-<a name="line-308"></a><a name="expandNSDecls"></a><span class='definition'>expandNSDecls</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span>-<a name="line-309"></a><span class='definition'>expandNSDecls</span>-<a name="line-310"></a> <span class='keyglyph'>=</span> <span class='varid'>mapTreeCtx</span> <span class='layout'>(</span><span class='varid'>expandNSElem</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>fromAscList</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='str'>"xml"</span><span class='layout'>,</span> <span class='varid'>xmlNamespace</span><span class='layout'>)</span><span class='layout'>,</span> <span class='layout'>(</span><span class='str'>"xmlns"</span><span class='layout'>,</span> <span class='varid'>xmlnsNamespace</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-311"></a>-<a name="line-312"></a><a name="expandNSElem"></a><span class='definition'>expandNSElem</span> <span class='keyglyph'>::</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-></span> <span class='conid'>XNode</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='conid'>UriMapping</span><span class='layout'>,</span> <span class='conid'>XNode</span><span class='layout'>)</span>-<a name="line-313"></a><span class='definition'>expandNSElem</span> <span class='varid'>umap</span> <span class='varid'>node</span>-<a name="line-314"></a> <span class='keyglyph'>|</span> <span class='varid'>isElem</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>umapNew</span><span class='layout'>,</span> <span class='varid'>nodeNew</span><span class='layout'>)</span>-<a name="line-315"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>umap</span><span class='layout'>,</span> <span class='varid'>node</span><span class='layout'>)</span>-<a name="line-316"></a> <span class='keyword'>where</span>-<a name="line-317"></a> <span class='varid'>nodeNew</span> <span class='keyglyph'>=</span> <span class='conid'>XTag</span> <span class='layout'>(</span><span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>getElemName</span> <span class='varid'>node</span><span class='layout'>)</span> <span class='varid'>attrNew</span>-<a name="line-318"></a> <span class='varid'>attrNew</span> <span class='keyglyph'>=</span> <span class='varid'>attrs</span> <span class='varop'>++</span> <span class='varid'>map</span> <span class='varid'>joinNsAttr</span> <span class='layout'>(</span><span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>toAscList</span> <span class='varid'>umapNew</span><span class='layout'>)</span>-<a name="line-319"></a> <span class='varid'>umapNew</span> <span class='keyglyph'>=</span> <span class='varid'>uriMappingsFromNsAttrs</span> <span class='varid'>nsAttrs</span> <span class='varop'>`</span><span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>union</span><span class='varop'>`</span> <span class='varid'>umap</span>-<a name="line-320"></a> <span class='layout'>(</span><span class='varid'>nsAttrs</span><span class='layout'>,</span> <span class='varid'>attrs</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>partition</span> <span class='varid'>isNsAttr</span> <span class='varop'>$</span> <span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>getAttrl</span> <span class='varid'>node</span>-<a name="line-321"></a>-<a name="line-322"></a><a name="uriMappingsFromNsAttrs"></a><span class='definition'>uriMappingsFromNsAttrs</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>UriMapping</span>-<a name="line-323"></a><span class='definition'>uriMappingsFromNsAttrs</span>-<a name="line-324"></a> <span class='keyglyph'>=</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>fromList</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='varid'>splitNsAttr</span>-<a name="line-325"></a>-<a name="line-326"></a><a name="isNsAttr"></a><span class='definition'>isNsAttr</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-327"></a><span class='definition'>isNsAttr</span>-<a name="line-328"></a> <span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='conid'>False</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varop'>==</span><span class='layout'>)</span> <span class='varid'>xmlnsNamespace</span> <span class='varop'>.</span> <span class='varid'>namespaceUri</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>getAttrName</span>-<a name="line-329"></a>-<a name="line-330"></a><a name="splitNsAttr"></a><span class='definition'>splitNsAttr</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span>-<a name="line-331"></a><span class='definition'>splitNsAttr</span> <span class='varid'>node</span>-<a name="line-332"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>localPart</span> <span class='varop'>$</span> <span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>getAttrName</span> <span class='varid'>node</span><span class='layout'>,</span> <span class='varid'>collectTextnodes</span> <span class='varop'>$</span> <span class='varid'>getChildren</span> <span class='varid'>node</span><span class='layout'>)</span>-<a name="line-333"></a>-<a name="line-334"></a><a name="joinNsAttr"></a><span class='definition'>joinNsAttr</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span>-<a name="line-335"></a><span class='definition'>joinNsAttr</span> <span class='layout'>(</span><span class='varid'>prefix</span><span class='layout'>,</span> <span class='varid'>uri</span><span class='layout'>)</span>-<a name="line-336"></a> <span class='keyglyph'>=</span> <span class='varid'>mkAttr</span> <span class='layout'>(</span><span class='varid'>mkQName</span> <span class='str'>"xmlns"</span> <span class='varid'>prefix</span> <span class='varid'>xmlnsNamespace</span><span class='layout'>)</span> <span class='keyglyph'>[</span><span class='varid'>mkText</span> <span class='varid'>uri</span><span class='keyglyph'>]</span>-<a name="line-337"></a>-<a name="line-338"></a><span class='comment'>-------------------------</span>-<a name="line-339"></a><span class='comment'>-- additions to XPATH:</span>-<a name="line-340"></a>-<a name="line-341"></a><a name="mkLiteralExpr"></a><span class='definition'>mkLiteralExpr</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Expr</span>-<a name="line-342"></a><span class='definition'>mkLiteralExpr</span> <span class='keyglyph'>=</span> <span class='conid'>LiteralExpr</span>-<a name="line-343"></a>-<a name="line-344"></a><a name="mkStringExpr"></a><span class='definition'>mkStringExpr</span> <span class='keyglyph'>::</span> <span class='conid'>Expr</span> <span class='keyglyph'>-></span> <span class='conid'>Expr</span>-<a name="line-345"></a><span class='definition'>mkStringExpr</span> <span class='keyglyph'>=</span> <span class='conid'>FctExpr</span> <span class='str'>"string"</span> <span class='varop'>.</span> <span class='varid'>return</span>-<a name="line-346"></a>-<a name="line-347"></a><a name="mkBoolExpr"></a><span class='definition'>mkBoolExpr</span> <span class='keyglyph'>::</span> <span class='conid'>Expr</span> <span class='keyglyph'>-></span> <span class='conid'>Expr</span>-<a name="line-348"></a><span class='definition'>mkBoolExpr</span> <span class='keyglyph'>=</span> <span class='conid'>FctExpr</span> <span class='str'>"boolean"</span> <span class='varop'>.</span> <span class='varid'>return</span>-<a name="line-349"></a>-<a name="line-350"></a><a name="mkTrueExpr"></a><span class='definition'>mkTrueExpr</span> <span class='keyglyph'>::</span> <span class='conid'>Expr</span>-<a name="line-351"></a><span class='definition'>mkTrueExpr</span> <span class='keyglyph'>=</span> <span class='conid'>FctExpr</span> <span class='str'>"true"</span> <span class='conid'>[]</span>-<a name="line-352"></a>-<a name="line-353"></a><a name="concatExpr"></a><span class='definition'>concatExpr</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>Expr</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>Expr</span>-<a name="line-354"></a><span class='definition'>concatExpr</span> <span class='conid'>[]</span> <span class='keyglyph'>=</span> <span class='conid'>LiteralExpr</span> <span class='str'>""</span>-<a name="line-355"></a><span class='definition'>concatExpr</span> <span class='keyglyph'>[</span><span class='varid'>lit</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>LiteralExpr</span> <span class='keyword'>_</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='varid'>lit</span>-<a name="line-356"></a><span class='definition'>concatExpr</span> <span class='varid'>xs1</span><span class='keyglyph'>@</span><span class='keyglyph'>[</span><span class='keyword'>_</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='conid'>FctExpr</span> <span class='str'>"string"</span> <span class='varid'>xs1</span>-<a name="line-357"></a><span class='definition'>concatExpr</span> <span class='varid'>xs</span> <span class='keyglyph'>=</span> <span class='conid'>FctExpr</span> <span class='str'>"concat"</span> <span class='varid'>xs</span>-<a name="line-358"></a>-<a name="line-359"></a><a name="splitExpr"></a><span class='definition'>splitExpr</span> <span class='keyglyph'>::</span> <span class='conid'>Expr</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>Expr</span><span class='keyglyph'>]</span>-<a name="line-360"></a><span class='definition'>splitExpr</span> <span class='layout'>(</span><span class='conid'>GenExpr</span> <span class='conid'>Union</span> <span class='varid'>expr</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>expr</span>-<a name="line-361"></a><span class='definition'>splitExpr</span> <span class='varid'>rest</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>rest</span><span class='keyglyph'>]</span>-<a name="line-362"></a>-<a name="line-363"></a><a name="unionExpr"></a><span class='definition'>unionExpr</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>Expr</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>Expr</span>-<a name="line-364"></a><span class='definition'>unionExpr</span> <span class='keyglyph'>[</span><span class='varid'>e</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> <span class='varid'>e</span>-<a name="line-365"></a><span class='definition'>unionExpr</span> <span class='varid'>es</span> <span class='keyglyph'>=</span> <span class='conid'>GenExpr</span> <span class='conid'>Union</span> <span class='varid'>es</span>-<a name="line-366"></a>-<a name="line-367"></a><a name="splitMatchByPrio"></a><span class='comment'>-- Intelligent splitting: Split an expression into subexpressions with equal priority</span>-<a name="line-368"></a><span class='comment'>-- for example: "a|c/d|e|f/g" => [(0.0, "a|e"), (0.5, "c/d|f/g")]</span>-<a name="line-369"></a><span class='definition'>splitMatchByPrio</span> <span class='keyglyph'>::</span> <span class='conid'>Expr</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>Float</span><span class='layout'>,</span> <span class='conid'>Expr</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-370"></a><span class='definition'>splitMatchByPrio</span> <span class='keyglyph'>=</span> -<a name="line-371"></a> <span class='varid'>map</span> <span class='varid'>compress</span> <span class='varop'>.</span> <span class='varid'>groupBy</span> <span class='varid'>eq</span> <span class='varop'>.</span> <span class='varid'>sortBy</span> <span class='varid'>cmp</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>computePriority</span> <span class='varop'>&&&</span> <span class='varid'>id</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>splitExpr</span>-<a name="line-372"></a> <span class='keyword'>where</span>-<a name="line-373"></a> <span class='varid'>eq</span> <span class='varid'>x</span> <span class='varid'>y</span> <span class='keyglyph'>=</span> <span class='varid'>fst</span> <span class='varid'>x</span> <span class='varop'>==</span> <span class='varid'>fst</span> <span class='varid'>y</span>-<a name="line-374"></a> <span class='varid'>cmp</span> <span class='varid'>x</span> <span class='varid'>y</span> <span class='keyglyph'>=</span> <span class='varid'>compare</span> <span class='layout'>(</span><span class='varid'>fst</span> <span class='varid'>x</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>fst</span> <span class='varid'>y</span><span class='layout'>)</span>-<a name="line-375"></a> <span class='varid'>compress</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>head</span> <span class='varop'>***</span> <span class='varid'>unionExpr</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>unzip</span>-<a name="line-376"></a>-<a name="line-377"></a><a name="computePriority"></a><span class='definition'>computePriority</span> <span class='keyglyph'>::</span> <span class='conid'>Expr</span> <span class='keyglyph'>-></span> <span class='conid'>Float</span>-<a name="line-378"></a><span class='definition'>computePriority</span> <span class='layout'>(</span><span class='conid'>PathExpr</span> <span class='conid'>Nothing</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='layout'>(</span><span class='conid'>LocPath</span> <span class='conid'>Rel</span> <span class='keyglyph'>[</span><span class='conid'>Step</span> <span class='keyword'>_</span> <span class='varid'>ntest</span> <span class='conid'>[]</span><span class='keyglyph'>]</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>computeNTestPriority</span> <span class='varid'>ntest</span>-<a name="line-379"></a><span class='definition'>computePriority</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='num'>0.5</span>-<a name="line-380"></a>-<a name="line-381"></a><a name="computeNTestPriority"></a><span class='definition'>computeNTestPriority</span> <span class='keyglyph'>::</span> <span class='conid'>NodeTest</span> <span class='keyglyph'>-></span> <span class='conid'>Float</span>-<a name="line-382"></a><span class='definition'>computeNTestPriority</span> <span class='layout'>(</span><span class='conid'>PI</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='num'>0.0</span>-<a name="line-383"></a><span class='definition'>computeNTestPriority</span> <span class='layout'>(</span><span class='conid'>TypeTest</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='comment'>-</span><span class='num'>0.5</span>-<a name="line-384"></a><span class='definition'>computeNTestPriority</span> <span class='layout'>(</span><span class='conid'>NameTest</span> <span class='varid'>nt</span><span class='layout'>)</span> -<a name="line-385"></a> <span class='keyglyph'>|</span> <span class='varid'>namePrefix</span> <span class='varid'>nt</span> <span class='varop'>/=</span> <span class='str'>""</span>-<a name="line-386"></a> <span class='varop'>&&</span> <span class='varid'>localPart</span> <span class='varid'>nt</span> <span class='varop'>==</span> <span class='str'>"*"</span> <span class='keyglyph'>=</span> <span class='comment'>-</span><span class='num'>0.25</span>-<a name="line-387"></a> <span class='keyglyph'>|</span> <span class='varid'>localPart</span> <span class='varid'>nt</span> <span class='varop'>==</span> <span class='str'>"*"</span> <span class='keyglyph'>=</span> <span class='comment'>-</span><span class='num'>0.5</span>-<a name="line-388"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='num'>0.0</span>-<a name="line-389"></a>-<a name="line-390"></a><a name="isMatchExpr"></a><span class='definition'>isMatchExpr</span> <span class='keyglyph'>::</span> <span class='conid'>Expr</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-391"></a><span class='definition'>isMatchExpr</span> <span class='layout'>(</span><span class='conid'>GenExpr</span> <span class='conid'>Union</span> <span class='varid'>exprs</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>all</span> <span class='varid'>isMatchExpr</span> <span class='varid'>exprs</span>-<a name="line-392"></a><span class='definition'>isMatchExpr</span> <span class='layout'>(</span><span class='conid'>PathExpr</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-393"></a><span class='definition'>isMatchExpr</span> <span class='layout'>(</span><span class='conid'>FctExpr</span> <span class='str'>"id"</span> <span class='keyglyph'>[</span><span class='conid'>LiteralExpr</span> <span class='keyword'>_</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-394"></a><span class='definition'>isMatchExpr</span> <span class='layout'>(</span><span class='conid'>FctExpr</span> <span class='str'>"key"</span> <span class='keyglyph'>[</span><span class='conid'>LiteralExpr</span> <span class='keyword'>_</span><span class='layout'>,</span> <span class='conid'>LiteralExpr</span> <span class='keyword'>_</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-395"></a><span class='definition'>isMatchExpr</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-396"></a>-<a name="line-397"></a><span class='comment'>--------------------------- </span>-<a name="line-398"></a><span class='comment'>-- Misc:</span>-<a name="line-399"></a>-<a name="line-400"></a><a name="fromJustErr"></a><span class='definition'>fromJustErr</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Maybe</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='varid'>a</span>-<a name="line-401"></a><span class='definition'>fromJustErr</span> <span class='varid'>msg</span> <span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='layout'>(</span><span class='varid'>error</span> <span class='varid'>msg</span><span class='layout'>)</span> <span class='varid'>id</span> -<a name="line-402"></a>-<a name="line-403"></a><a name="readWDefault"></a><span class='definition'>readWDefault</span> <span class='keyglyph'>::</span> <span class='conid'>Read</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='varid'>a</span>-<a name="line-404"></a><span class='definition'>readWDefault</span> <span class='varid'>a</span> <span class='varid'>str</span> <span class='keyglyph'>=</span> <span class='varid'>fst</span> <span class='varop'>$</span> <span class='varid'>head</span> <span class='varop'>$</span> <span class='varid'>reads</span> <span class='varid'>str</span> <span class='varop'>++</span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='varid'>a</span><span class='layout'>,</span> <span class='str'>""</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-405"></a>-<a name="line-406"></a><span class='comment'>--------------------------- </span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-XSLT-Compilation.html
@@ -1,511 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Text.XML.HXT.XSLT.Application-<a name="line-5"></a> Copyright : Copyright (C) 2006 Tim Walkenhorst, Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)-<a name="line-9"></a> Stability : experimental-<a name="line-10"></a> Portability: portable-<a name="line-11"></a>-<a name="line-12"></a> The compilation functions for XSLT stylesheets-<a name="line-13"></a>-<a name="line-14"></a>-}</span>-<a name="line-15"></a>-<a name="line-16"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-17"></a>-<a name="line-18"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XSLT</span><span class='varop'>.</span><span class='conid'>Compilation</span> -<a name="line-19"></a> <span class='layout'>(</span> <span class='varid'>prepareXSLTDocument</span> <span class='comment'>-- :: XmlTree -> XmlTree</span>-<a name="line-20"></a> <span class='layout'>,</span> <span class='varid'>assembleStylesheet</span> <span class='comment'>-- :: XmlTree -> [CompiledStylesheet] -> CompiledStylesheet</span>-<a name="line-21"></a> <span class='layout'>)</span>-<a name="line-22"></a><span class='keyword'>where</span>-<a name="line-23"></a>-<a name="line-24"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Monad</span>-<a name="line-25"></a>-<a name="line-26"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>-<a name="line-27"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Either</span>-<a name="line-28"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>List</span>-<a name="line-29"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Map</span> <span class='keyword'>as</span> <span class='conid'>Map</span> <span class='varid'>hiding</span> <span class='layout'>(</span><span class='conid'>Map</span><span class='layout'>)</span>-<a name="line-30"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Map</span><span class='layout'>(</span><span class='conid'>Map</span><span class='layout'>)</span>-<a name="line-31"></a>-<a name="line-32"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>ParserCombinators</span><span class='varop'>.</span><span class='conid'>Parsec</span><span class='varop'>.</span><span class='conid'>Prim</span> <span class='layout'>(</span> <span class='varid'>runParser</span> <span class='layout'>)</span>-<a name="line-33"></a>-<a name="line-34"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XSLT</span><span class='varop'>.</span><span class='conid'>Common</span>-<a name="line-35"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XSLT</span><span class='varop'>.</span><span class='conid'>Names</span>-<a name="line-36"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XSLT</span><span class='varop'>.</span><span class='conid'>CompiledStylesheet</span>-<a name="line-37"></a>-<a name="line-38"></a><span class='comment'>-- No deep meaning just a shortcut notation for a *very* common expression...</span>-<a name="line-39"></a>-<a name="line-40"></a><span class='keyword'>infixl</span> <span class='num'>9</span> <span class='varop'>><</span>-<a name="line-41"></a>-<a name="line-42"></a><a name="><"></a><span class='layout'>(</span><span class='varop'>><</span><span class='layout'>)</span> <span class='keyglyph'>::</span> <span class='conid'>XmlNode</span> <span class='varid'>n</span> <span class='keyglyph'>=></span> <span class='layout'>(</span><span class='conid'>UriMapping</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>n</span> <span class='keyglyph'>-></span> <span class='varid'>a</span>-<a name="line-43"></a><a name="f"></a><span class='definition'>f</span> <span class='varop'>><</span> <span class='varid'>node</span>-<a name="line-44"></a> <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varop'>$</span> <span class='varid'>getUriMap</span> <span class='varid'>node</span>-<a name="line-45"></a>-<a name="line-46"></a><span class='comment'>-- --------------------------</span>-<a name="line-47"></a>-<a name="line-48"></a><a name="parseExpr"></a><span class='definition'>parseExpr</span> <span class='keyglyph'>::</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>Expr</span>-<a name="line-49"></a><span class='definition'>parseExpr</span> <span class='varid'>uris</span> <span class='varid'>selectStr</span>-<a name="line-50"></a> <span class='keyglyph'>=</span> <span class='varid'>either</span> <span class='layout'>(</span><span class='varid'>error</span><span class='varop'>.</span><span class='varid'>show</span><span class='layout'>)</span> <span class='varid'>id</span> <span class='varid'>parseResult</span> -<a name="line-51"></a> <span class='keyword'>where</span>-<a name="line-52"></a> <span class='varid'>parseResult</span> <span class='keyglyph'>=</span> <span class='varid'>runParser</span> <span class='varid'>parseXPath</span> <span class='layout'>(</span><span class='varid'>toNsEnv</span> <span class='varop'>.</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>toList</span> <span class='varop'>$</span> <span class='varid'>uris</span><span class='layout'>)</span> <span class='layout'>(</span><span class='str'>"select-expr:"</span><span class='varop'>++</span><span class='varid'>selectStr</span><span class='layout'>)</span> <span class='varid'>selectStr</span> -<a name="line-53"></a>-<a name="line-54"></a><a name="parseSelect"></a><span class='definition'>parseSelect</span> <span class='keyglyph'>::</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>SelectExpr</span>-<a name="line-55"></a><span class='definition'>parseSelect</span> <span class='varid'>uris</span>-<a name="line-56"></a> <span class='keyglyph'>=</span> <span class='conid'>SelectExpr</span> <span class='varop'>.</span> <span class='varid'>parseExpr</span> <span class='varid'>uris</span>-<a name="line-57"></a>-<a name="line-58"></a><a name="parseTest"></a><span class='definition'>parseTest</span> <span class='keyglyph'>::</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>TestExpr</span>-<a name="line-59"></a><span class='definition'>parseTest</span> <span class='varid'>uris</span>-<a name="line-60"></a> <span class='keyglyph'>=</span> <span class='conid'>TestExpr</span> <span class='varop'>.</span> <span class='varid'>mkBoolExpr</span> <span class='varop'>.</span> <span class='varid'>parseExpr</span> <span class='varid'>uris</span>-<a name="line-61"></a>-<a name="line-62"></a><a name="parseStringExpr"></a><span class='definition'>parseStringExpr</span> <span class='keyglyph'>::</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>StringExpr</span>-<a name="line-63"></a><span class='definition'>parseStringExpr</span> <span class='varid'>uris</span>-<a name="line-64"></a> <span class='keyglyph'>=</span> <span class='conid'>StringExpr</span> <span class='varop'>.</span> <span class='varid'>mkStringExpr</span> <span class='varop'>.</span> <span class='varid'>parseExpr</span> <span class='varid'>uris</span>-<a name="line-65"></a>-<a name="line-66"></a><a name="parseMatch"></a><span class='definition'>parseMatch</span> <span class='keyglyph'>::</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>MatchExpr</span>-<a name="line-67"></a><span class='definition'>parseMatch</span> <span class='varid'>uris</span> <span class='varid'>str</span>-<a name="line-68"></a> <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>isMatchExpr</span> <span class='varid'>expr</span>-<a name="line-69"></a> <span class='keyword'>then</span> <span class='conid'>MatchExpr</span> <span class='varid'>expr</span>-<a name="line-70"></a> <span class='keyword'>else</span> <span class='varid'>error</span> <span class='varop'>$</span> <span class='varid'>str</span> <span class='varop'>++</span> <span class='str'>" is not a legal match-expression"</span>-<a name="line-71"></a> <span class='keyword'>where</span> -<a name="line-72"></a> <span class='varid'>expr</span> <span class='keyglyph'>=</span> <span class='varid'>parseExpr</span> <span class='varid'>uris</span> <span class='varid'>str</span>-<a name="line-73"></a>-<a name="line-74"></a><span class='comment'>-- --------------------------</span>-<a name="line-75"></a>-<a name="line-76"></a><a name="parseAVT"></a><span class='definition'>parseAVT</span> <span class='keyglyph'>::</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>StringExpr</span>-<a name="line-77"></a><span class='definition'>parseAVT</span> <span class='varid'>uris</span> <span class='varid'>str</span> <span class='keyglyph'>=</span> -<a name="line-78"></a> <span class='conid'>StringExpr</span> <span class='varop'>$</span> <span class='varid'>concatExpr</span> <span class='varop'>$</span> <span class='varid'>splitAVT</span> <span class='varid'>str</span> <span class='str'>""</span>-<a name="line-79"></a> <span class='keyword'>where</span>-<a name="line-80"></a>-<a name="line-81"></a> <span class='varid'>splitAVT</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>Expr</span><span class='keyglyph'>]</span>-<a name="line-82"></a> <span class='varid'>splitAVT</span> <span class='str'>""</span> <span class='varid'>acc</span> <span class='keyglyph'>=</span> <span class='varid'>acc2lit</span> <span class='varid'>acc</span>-<a name="line-83"></a> <span class='varid'>splitAVT</span> <span class='layout'>(</span><span class='chr'>'{'</span><span class='conop'>:</span><span class='chr'>'{'</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span> <span class='varid'>acc</span> <span class='keyglyph'>=</span> <span class='varid'>splitAVT</span> <span class='varid'>xs</span> <span class='varop'>$</span> <span class='chr'>'{'</span><span class='conop'>:</span><span class='varid'>acc</span>-<a name="line-84"></a> <span class='varid'>splitAVT</span> <span class='layout'>(</span><span class='chr'>'}'</span><span class='conop'>:</span><span class='chr'>'}'</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span> <span class='varid'>acc</span> <span class='keyglyph'>=</span> <span class='varid'>splitAVT</span> <span class='varid'>xs</span> <span class='varop'>$</span> <span class='chr'>'}'</span><span class='conop'>:</span><span class='varid'>acc</span>-<a name="line-85"></a> <span class='varid'>splitAVT</span> <span class='layout'>(</span><span class='chr'>'{'</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span> <span class='varid'>acc</span> <span class='keyglyph'>=</span> <span class='keyword'>let</span> <span class='layout'>(</span><span class='varid'>body</span><span class='layout'>,</span> <span class='varid'>rest</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>span</span> <span class='layout'>(</span><span class='varop'>`notElem`</span> <span class='str'>"{}"</span><span class='layout'>)</span> <span class='varid'>xs</span> <span class='keyword'>in</span>-<a name="line-86"></a> <span class='keyword'>if</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>null</span> <span class='varid'>rest</span><span class='layout'>)</span> <span class='varop'>&&</span> <span class='varid'>head</span> <span class='varid'>rest</span> <span class='varop'>==</span> <span class='chr'>'}'</span>-<a name="line-87"></a> <span class='keyword'>then</span> <span class='varid'>acc2lit</span> <span class='varid'>acc</span> <span class='varop'>++</span> <span class='varid'>parseExpr</span> <span class='varid'>uris</span> <span class='varid'>body</span> <span class='conop'>:</span> <span class='varid'>splitAVT</span> <span class='layout'>(</span><span class='varid'>tail</span> <span class='varid'>rest</span><span class='layout'>)</span> <span class='str'>""</span>-<a name="line-88"></a> <span class='keyword'>else</span> <span class='varid'>error</span> <span class='varop'>$</span> <span class='str'>"Unterminated expression "</span> <span class='varop'>++</span> <span class='varid'>xs</span> <span class='varop'>++</span> <span class='str'>" in AVT."</span>-<a name="line-89"></a> <span class='varid'>splitAVT</span> <span class='layout'>(</span><span class='chr'>'}'</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='varop'>$</span> <span class='str'>"deserted '}' in AVT."</span>-<a name="line-90"></a> <span class='varid'>splitAVT</span> <span class='layout'>(</span><span class='varid'>x</span><span class='conop'>:</span><span class='varid'>xs</span><span class='layout'>)</span> <span class='varid'>acc</span> <span class='keyglyph'>=</span> <span class='varid'>splitAVT</span> <span class='varid'>xs</span> <span class='varop'>$</span> <span class='varid'>x</span><span class='conop'>:</span><span class='varid'>acc</span>-<a name="line-91"></a>-<a name="line-92"></a> <span class='varid'>acc2lit</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>Expr</span><span class='keyglyph'>]</span> -<a name="line-93"></a> <span class='varid'>acc2lit</span> <span class='str'>""</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-94"></a> <span class='varid'>acc2lit</span> <span class='varid'>acc</span> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>mkLiteralExpr</span> <span class='varop'>$</span> <span class='varid'>reverse</span> <span class='varid'>acc</span><span class='keyglyph'>]</span>-<a name="line-95"></a>-<a name="line-96"></a><span class='comment'>-- --------------------------</span>-<a name="line-97"></a>-<a name="line-98"></a><a name="compileComputedQName"></a><span class='comment'>-- extract ComputedQName from "name" and "namespace" AVTs of an xsl:element- or xsl-attribute-node</span>-<a name="line-99"></a><span class='definition'>compileComputedQName</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>ComputedQName</span>-<a name="line-100"></a><span class='definition'>compileComputedQName</span> <span class='varid'>node</span> <span class='keyglyph'>=</span>-<a name="line-101"></a> <span class='layout'>(</span><span class='conid'>CompQName</span><span class='varop'>><</span><span class='varid'>node</span><span class='layout'>)</span> <span class='varid'>nameAVT</span> <span class='varid'>nsAVT</span>-<a name="line-102"></a> <span class='keyword'>where</span> -<a name="line-103"></a> <span class='varid'>nameAVT</span> <span class='keyglyph'>=</span> <span class='varid'>parseAVT</span><span class='varop'>><</span><span class='varid'>node</span> <span class='varop'>$</span> <span class='varid'>fetchAttribute</span> <span class='varid'>node</span> <span class='varid'>xsltName</span>-<a name="line-104"></a> <span class='varid'>nsAVT</span> <span class='keyglyph'>=</span> <span class='varid'>parseAVT</span><span class='varop'>><</span><span class='varid'>node</span> <span class='varop'>$</span> <span class='varid'>fetchAttributeWDefault</span> <span class='varid'>node</span> <span class='varid'>xsltNamespace</span> <span class='str'>""</span>-<a name="line-105"></a>-<a name="line-106"></a><span class='comment'>-- --------------------------</span>-<a name="line-107"></a>-<a name="line-108"></a><a name="compileComposite"></a><span class='definition'>compileComposite</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>Template</span>-<a name="line-109"></a><span class='definition'>compileComposite</span> <span class='keyglyph'>=</span> <span class='conid'>TemplComposite</span> <span class='varop'>.</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>compileTemplate</span> <span class='varop'>.</span> <span class='varid'>return</span><span class='layout'>)</span>-<a name="line-110"></a>-<a name="line-111"></a><a name="compileMessage"></a><span class='definition'>compileMessage</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>Template</span>-<a name="line-112"></a><span class='definition'>compileMessage</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> <span class='conid'>TemplMessage</span> <span class='varid'>halt</span> <span class='varid'>content</span>-<a name="line-113"></a> <span class='keyword'>where</span> <span class='varid'>halt</span> <span class='keyglyph'>=</span> <span class='varid'>termAttr</span> <span class='varop'>==</span> <span class='str'>"yes"</span>-<a name="line-114"></a> <span class='varid'>termAttr</span> <span class='keyglyph'>=</span> <span class='varid'>fetchAttributeWDefault</span> <span class='varid'>node</span> <span class='varid'>xsltTerminate</span> <span class='str'>"no"</span>-<a name="line-115"></a> <span class='varid'>content</span> <span class='keyglyph'>=</span> <span class='varid'>compileTemplate</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varid'>node</span><span class='layout'>)</span>-<a name="line-116"></a>-<a name="line-117"></a><a name="compileForEach"></a><span class='definition'>compileForEach</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>Template</span>-<a name="line-118"></a><span class='definition'>compileForEach</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> <span class='conid'>TemplForEach</span> <span class='varid'>expr</span> <span class='varid'>sorting</span> <span class='varid'>template</span>-<a name="line-119"></a> <span class='keyword'>where</span> <span class='varid'>expr</span> <span class='keyglyph'>=</span> <span class='varid'>parseSelect</span><span class='varop'>><</span><span class='varid'>node</span> <span class='varop'>$</span> <span class='varid'>fetchAttribute</span> <span class='varid'>node</span> <span class='varid'>xsltSelect</span>-<a name="line-120"></a> <span class='varid'>sorting</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>compileSortKey</span> <span class='varid'>srt</span>-<a name="line-121"></a> <span class='varid'>template</span> <span class='keyglyph'>=</span> <span class='varid'>compileTemplate</span> <span class='varid'>cnt</span>-<a name="line-122"></a> <span class='layout'>(</span><span class='varid'>srt</span><span class='layout'>,</span> <span class='varid'>cnt</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>partition</span> <span class='layout'>(</span><span class='varid'>isElemType</span> <span class='varid'>xsltSort</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>getChildren</span> <span class='varid'>node</span>-<a name="line-123"></a>-<a name="line-124"></a><a name="compileChoose"></a><span class='definition'>compileChoose</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>Template</span>-<a name="line-125"></a><span class='definition'>compileChoose</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> <span class='conid'>TemplChoose</span> <span class='varid'>whenParts</span>-<a name="line-126"></a> <span class='keyword'>where</span> <span class='varid'>whenParts</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>compl</span> <span class='varid'>children</span>-<a name="line-127"></a> <span class='varid'>children</span> <span class='keyglyph'>=</span> <span class='varid'>filter</span> <span class='varid'>isElem</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varid'>node</span><span class='layout'>)</span>-<a name="line-128"></a> <span class='varid'>compl</span> <span class='varid'>node'</span> <span class='keyglyph'>=</span> <span class='keyword'>let</span> <span class='varid'>elemName</span> <span class='keyglyph'>=</span> <span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>getElemName</span> <span class='varid'>node'</span> <span class='keyword'>in</span>-<a name="line-129"></a> <span class='keyword'>if</span> <span class='varid'>equivQName</span> <span class='varid'>elemName</span> <span class='varid'>xsltWhen</span> <span class='keyword'>then</span> <span class='varid'>compileWhen</span> <span class='varid'>node'</span>-<a name="line-130"></a> <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>equivQName</span> <span class='varid'>elemName</span> <span class='varid'>xsltOtherwise</span> <span class='keyword'>then</span> <span class='varid'>compileOtherwise</span> <span class='varid'>node'</span>-<a name="line-131"></a> <span class='keyword'>else</span> <span class='varid'>error</span> <span class='layout'>(</span><span class='str'>"No elements of type "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>elemName</span> <span class='varop'>++</span> <span class='str'>" allowed within xsl-choose template!"</span><span class='layout'>)</span>-<a name="line-132"></a>-<a name="line-133"></a><a name="compileWhen"></a><span class='definition'>compileWhen</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>When</span>-<a name="line-134"></a><span class='definition'>compileWhen</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> <span class='conid'>WhenPart</span> <span class='varid'>expr</span> <span class='varop'>$</span> <span class='varid'>compileTemplate</span> <span class='varop'>$</span> <span class='varid'>getChildren</span> <span class='varid'>node</span>-<a name="line-135"></a> <span class='keyword'>where</span> <span class='varid'>expr</span> <span class='keyglyph'>=</span> <span class='varid'>parseTest</span><span class='varop'>><</span><span class='varid'>node</span> <span class='varop'>$</span> <span class='varid'>fetchAttribute</span> <span class='varid'>node</span> <span class='varid'>xsltTest</span>-<a name="line-136"></a>-<a name="line-137"></a><a name="compileOtherwise"></a><span class='comment'>-- Otherwise is treated as a when-Part with node-test "true()"</span>-<a name="line-138"></a><span class='definition'>compileOtherwise</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>When</span>-<a name="line-139"></a><span class='definition'>compileOtherwise</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> <span class='conid'>WhenPart</span> <span class='layout'>(</span><span class='conid'>TestExpr</span> <span class='varid'>mkTrueExpr</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>compileTemplate</span> <span class='varop'>$</span> <span class='varid'>getChildren</span> <span class='varid'>node</span>-<a name="line-140"></a>-<a name="line-141"></a><a name="compileIf"></a><span class='comment'>-- "if" is treated as a convenience-form of choose with exactly one "when"-Part</span>-<a name="line-142"></a><span class='definition'>compileIf</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>Template</span>-<a name="line-143"></a><span class='definition'>compileIf</span> <span class='keyglyph'>=</span> <span class='conid'>TemplChoose</span> <span class='varop'>.</span> <span class='varid'>return</span> <span class='varop'>.</span> <span class='varid'>compileWhen</span>-<a name="line-144"></a>-<a name="line-145"></a><span class='comment'>-- -----------------------------------</span>-<a name="line-146"></a>-<a name="line-147"></a><a name="parseExNames"></a><span class='definition'>parseExNames</span> <span class='keyglyph'>::</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>ExName</span><span class='keyglyph'>]</span>-<a name="line-148"></a><span class='definition'>parseExNames</span> <span class='varid'>urm</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>parseExName</span> <span class='varid'>urm</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>words</span>-<a name="line-149"></a>-<a name="line-150"></a><a name="compileElement"></a><span class='definition'>compileElement</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>Template</span>-<a name="line-151"></a><span class='definition'>compileElement</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> -<a name="line-152"></a> <span class='conid'>TemplElement</span> <span class='varid'>compQName</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>empty</span> <span class='varid'>attribSets</span> <span class='varid'>template</span>-<a name="line-153"></a> <span class='keyword'>where</span> -<a name="line-154"></a> <span class='varid'>compQName</span> <span class='keyglyph'>=</span> <span class='varid'>compileComputedQName</span> <span class='varid'>node</span>-<a name="line-155"></a> <span class='varid'>attribSets</span> <span class='keyglyph'>=</span> <span class='conid'>UsedAttribSets</span> <span class='varop'>$</span> <span class='varid'>parseExNames</span><span class='varop'>><</span><span class='varid'>node</span>-<a name="line-156"></a> <span class='varop'>$</span> <span class='varid'>fetchAttributeWDefault</span> <span class='varid'>node</span> <span class='varid'>xsltUseAttributeSets</span> <span class='str'>""</span>-<a name="line-157"></a> <span class='varid'>template</span> <span class='keyglyph'>=</span> <span class='varid'>compileTemplate</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varid'>node</span><span class='layout'>)</span>-<a name="line-158"></a>-<a name="line-159"></a><a name="compileAttribute"></a><span class='definition'>compileAttribute</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>Template</span>-<a name="line-160"></a><span class='definition'>compileAttribute</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> -<a name="line-161"></a> <span class='conid'>TemplAttribute</span> <span class='layout'>(</span><span class='varid'>compileComputedQName</span> <span class='varid'>node</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>compileTemplate</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varid'>node</span><span class='layout'>)</span>-<a name="line-162"></a>-<a name="line-163"></a><a name="compileText"></a><span class='comment'>-- compiles xsl:text</span>-<a name="line-164"></a><span class='definition'>compileText</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>Template</span>-<a name="line-165"></a><span class='definition'>compileText</span> <span class='keyglyph'>=</span> <span class='conid'>TemplText</span> <span class='varop'>.</span> <span class='varid'>collectTextnodes</span> <span class='varop'>.</span> <span class='varid'>getChildren</span>-<a name="line-166"></a>-<a name="line-167"></a><a name="compileTextnode"></a><span class='comment'>-- compiles textNode </span>-<a name="line-168"></a><span class='definition'>compileTextnode</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>Template</span>-<a name="line-169"></a><span class='definition'>compileTextnode</span> <span class='keyglyph'>=</span> <span class='conid'>TemplText</span> <span class='varop'>.</span> <span class='varid'>fromJust</span> <span class='varop'>.</span> <span class='varid'>getText</span>-<a name="line-170"></a>-<a name="line-171"></a><a name="compileValueOf"></a><span class='definition'>compileValueOf</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>Template</span>-<a name="line-172"></a><span class='definition'>compileValueOf</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> -<a name="line-173"></a> <span class='conid'>TemplValueOf</span> <span class='varop'>$</span> <span class='varid'>parseStringExpr</span><span class='varop'>><</span><span class='varid'>node</span> <span class='varop'>$</span> <span class='varid'>fetchAttribute</span> <span class='varid'>node</span> <span class='varid'>xsltSelect</span>-<a name="line-174"></a>-<a name="line-175"></a><a name="compileComment"></a><span class='definition'>compileComment</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>Template</span>-<a name="line-176"></a><span class='definition'>compileComment</span> <span class='keyglyph'>=</span> <span class='conid'>TemplComment</span> <span class='varop'>.</span> <span class='varid'>compileTemplate</span> <span class='varop'>.</span> <span class='varid'>getChildren</span>-<a name="line-177"></a>-<a name="line-178"></a><a name="compileProcInstr"></a><span class='definition'>compileProcInstr</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>Template</span>-<a name="line-179"></a><span class='definition'>compileProcInstr</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> -<a name="line-180"></a> <span class='conid'>TemplProcInstr</span> <span class='varid'>name</span> <span class='varid'>content</span>-<a name="line-181"></a> <span class='keyword'>where</span>-<a name="line-182"></a> <span class='varid'>name</span> <span class='keyglyph'>=</span> <span class='varid'>parseAVT</span><span class='varop'>><</span><span class='varid'>node</span> <span class='varop'>$</span> <span class='varid'>fetchAttribute</span> <span class='varid'>node</span> <span class='varid'>xsltName</span>-<a name="line-183"></a> <span class='varid'>content</span> <span class='keyglyph'>=</span> <span class='varid'>compileTemplate</span> <span class='varop'>$</span> <span class='varid'>getChildren</span> <span class='varid'>node</span>-<a name="line-184"></a>-<a name="line-185"></a><span class='comment'>-- -----------------------------------</span>-<a name="line-186"></a>-<a name="line-187"></a><a name="compileLiteralResultElement"></a><span class='definition'>compileLiteralResultElement</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>Template</span>-<a name="line-188"></a><span class='definition'>compileLiteralResultElement</span> <span class='varid'>node</span> <span class='keyglyph'>=</span>-<a name="line-189"></a> <span class='conid'>TemplElement</span> <span class='varid'>compQName</span> <span class='varid'>nsUris</span> <span class='varid'>attribSets</span> <span class='varid'>content</span>-<a name="line-190"></a> <span class='keyword'>where</span> -<a name="line-191"></a> <span class='varid'>nsUris</span> <span class='keyglyph'>=</span> <span class='varid'>extractAddUris</span> <span class='varid'>node</span>-<a name="line-192"></a> <span class='varid'>compQName</span> <span class='keyglyph'>=</span> <span class='conid'>LiteralQName</span> <span class='varop'>$</span> <span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>getElemName</span> <span class='varid'>node</span>-<a name="line-193"></a> <span class='varid'>attribSets</span> <span class='keyglyph'>=</span> <span class='conid'>UsedAttribSets</span> <span class='varop'>$</span> <span class='varid'>parseExNames</span><span class='varop'>><</span><span class='varid'>node</span> <span class='varop'>$</span> <span class='varid'>attrSetsStr</span>-<a name="line-194"></a> <span class='varid'>attrSetsStr</span> <span class='keyglyph'>=</span> <span class='varid'>fetchAttributeWDefault</span> <span class='varid'>node</span> <span class='varid'>xsltUseAttributeSetsLRE</span> <span class='str'>""</span>-<a name="line-195"></a> <span class='varid'>content</span> <span class='keyglyph'>=</span> <span class='conid'>TemplComposite</span> <span class='varop'>$</span> <span class='varid'>attributes</span> <span class='varop'>++</span> <span class='keyglyph'>[</span><span class='varid'>template</span><span class='keyglyph'>]</span>-<a name="line-196"></a> <span class='varid'>attributes</span> <span class='keyglyph'>=</span> <span class='varid'>mapMaybe</span> <span class='layout'>(</span><span class='varid'>compileLREAttribute</span><span class='varop'>><</span><span class='varid'>node</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>getAttrl</span> <span class='varid'>node</span>-<a name="line-197"></a> <span class='varid'>template</span> <span class='keyglyph'>=</span> <span class='varid'>compileTemplate</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varid'>node</span><span class='layout'>)</span>-<a name="line-198"></a>-<a name="line-199"></a><a name="compileLREAttribute"></a><span class='definition'>compileLREAttribute</span> <span class='keyglyph'>::</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>Maybe</span> <span class='conid'>Template</span>-<a name="line-200"></a><span class='definition'>compileLREAttribute</span> <span class='varid'>uris</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> -<a name="line-201"></a> <span class='keyword'>if</span> <span class='varid'>isSpecial</span> -<a name="line-202"></a> <span class='keyword'>then</span> <span class='conid'>Nothing</span>-<a name="line-203"></a> <span class='keyword'>else</span> <span class='conid'>Just</span> <span class='varop'>$</span> <span class='conid'>TemplAttribute</span> <span class='layout'>(</span><span class='conid'>LiteralQName</span> <span class='varid'>name</span><span class='layout'>)</span> <span class='varid'>val</span> -<a name="line-204"></a> <span class='keyword'>where</span> -<a name="line-205"></a> <span class='varid'>isSpecial</span> <span class='keyglyph'>=</span> <span class='varid'>namespaceUri</span> <span class='varid'>name</span> <span class='varop'>`elem`</span> <span class='keyglyph'>[</span><span class='varid'>xsltUri</span><span class='layout'>,</span> <span class='varid'>xmlnsNamespace</span><span class='keyglyph'>]</span>-<a name="line-206"></a> <span class='varid'>name</span> <span class='keyglyph'>=</span> <span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>getAttrName</span> <span class='varid'>node</span>-<a name="line-207"></a> <span class='varid'>val</span> <span class='keyglyph'>=</span> <span class='conid'>TemplValueOf</span> <span class='varop'>$</span> <span class='varid'>parseAVT</span> <span class='varid'>uris</span> <span class='varop'>$</span> <span class='varid'>collectTextnodes</span> <span class='varop'>$</span> <span class='varid'>getChildren</span> <span class='varid'>node</span>-<a name="line-208"></a>-<a name="line-209"></a><span class='comment'>-- -----------------------------------</span>-<a name="line-210"></a>-<a name="line-211"></a><a name="compileApplyTempl"></a><span class='definition'>compileApplyTempl</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>Template</span>-<a name="line-212"></a><span class='definition'>compileApplyTempl</span> <span class='varid'>node</span> <span class='keyglyph'>=</span>-<a name="line-213"></a> <span class='conid'>TemplApply</span> <span class='varid'>expr</span> <span class='varid'>mode</span> <span class='varid'>args</span> <span class='varid'>sorting</span>-<a name="line-214"></a> <span class='keyword'>where</span>-<a name="line-215"></a> <span class='varid'>expr</span> <span class='keyglyph'>=</span> <span class='varid'>liftM</span> <span class='layout'>(</span><span class='varid'>parseSelect</span><span class='varop'>><</span><span class='varid'>node</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>tryFetchAttribute</span> <span class='varid'>node</span> <span class='varid'>xsltSelect</span>-<a name="line-216"></a> <span class='varid'>mode</span> <span class='keyglyph'>=</span> <span class='varid'>liftM</span> <span class='layout'>(</span><span class='varid'>parseExName</span><span class='varop'>><</span><span class='varid'>node</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>tryFetchAttribute</span> <span class='varid'>node</span> <span class='varid'>xsltMode</span>-<a name="line-217"></a> <span class='varid'>args</span> <span class='keyglyph'>=</span> <span class='varid'>compileVariables</span> <span class='varop'>$</span> <span class='varid'>filter</span> <span class='layout'>(</span><span class='varid'>isElemType</span> <span class='varid'>xsltWithParam</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>par</span>-<a name="line-218"></a> <span class='varid'>sorting</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>compileSortKey</span> <span class='varid'>srt</span>-<a name="line-219"></a> <span class='layout'>(</span><span class='varid'>srt</span><span class='layout'>,</span><span class='varid'>par</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>partition</span> <span class='layout'>(</span><span class='varid'>isElemType</span> <span class='varid'>xsltSort</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>getChildren</span> <span class='varid'>node</span>-<a name="line-220"></a>-<a name="line-221"></a><a name="compileApplyImports"></a><span class='definition'>compileApplyImports</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>Template</span>-<a name="line-222"></a><span class='definition'>compileApplyImports</span> <span class='sel'>_node</span>-<a name="line-223"></a> <span class='keyglyph'>=</span> <span class='conid'>TemplApplyImports</span>-<a name="line-224"></a>-<a name="line-225"></a><a name="compileCallTempl"></a><span class='definition'>compileCallTempl</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>Template</span>-<a name="line-226"></a><span class='definition'>compileCallTempl</span> <span class='varid'>node</span> <span class='keyglyph'>=</span>-<a name="line-227"></a> <span class='conid'>TemplCall</span> <span class='varid'>name</span> <span class='varid'>args</span>-<a name="line-228"></a> <span class='keyword'>where</span>-<a name="line-229"></a> <span class='varid'>name</span> <span class='keyglyph'>=</span> <span class='varid'>parseExName</span><span class='varop'>><</span><span class='varid'>node</span> <span class='varop'>$</span> <span class='varid'>fetchAttribute</span> <span class='varid'>node</span> <span class='varid'>xsltName</span>-<a name="line-230"></a> <span class='varid'>args</span> <span class='keyglyph'>=</span> <span class='varid'>compileVariables</span> <span class='varop'>$</span> <span class='varid'>filter</span> <span class='layout'>(</span><span class='varid'>isElemType</span> <span class='varid'>xsltWithParam</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>getChildren</span> <span class='varid'>node</span>-<a name="line-231"></a>-<a name="line-232"></a><a name="compileTemplVariable"></a><span class='definition'>compileTemplVariable</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>Template</span>-<a name="line-233"></a><span class='definition'>compileTemplVariable</span> <span class='keyglyph'>=</span> <span class='conid'>TemplVariable</span> <span class='varop'>.</span> <span class='varid'>compileVariable</span>-<a name="line-234"></a>-<a name="line-235"></a><span class='comment'>-- -----------------------------------</span>-<a name="line-236"></a>-<a name="line-237"></a><a name="compileCopy"></a><span class='definition'>compileCopy</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>Template</span>-<a name="line-238"></a><span class='definition'>compileCopy</span> <span class='varid'>node</span> <span class='keyglyph'>=</span>-<a name="line-239"></a> <span class='conid'>TemplCopy</span> <span class='varid'>attribSets</span> <span class='varop'>$</span> <span class='varid'>compileTemplate</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varid'>node</span><span class='layout'>)</span>-<a name="line-240"></a> <span class='keyword'>where</span>-<a name="line-241"></a> <span class='varid'>attribSets</span> <span class='keyglyph'>=</span> <span class='conid'>UsedAttribSets</span> <span class='varop'>$</span> <span class='varid'>parseExNames</span><span class='varop'>><</span><span class='varid'>node</span> <span class='varop'>$</span> <span class='varid'>fetchAttributeWDefault</span> <span class='varid'>node</span> <span class='varid'>xsltUseAttributeSets</span> <span class='str'>""</span>-<a name="line-242"></a>-<a name="line-243"></a><a name="compileCopyOf"></a><span class='definition'>compileCopyOf</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>Template</span>-<a name="line-244"></a><span class='definition'>compileCopyOf</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> <span class='conid'>TemplCopyOf</span> <span class='varop'>$</span> <span class='varid'>parseExpr</span><span class='varop'>><</span><span class='varid'>node</span> <span class='varop'>$</span> <span class='varid'>fetchAttribute</span> <span class='varid'>node</span> <span class='varid'>xsltSelect</span>-<a name="line-245"></a>-<a name="line-246"></a><span class='comment'>-- -----------------------------------</span>-<a name="line-247"></a>-<a name="line-248"></a><a name="compileTemplate"></a><span class='definition'>compileTemplate</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>Template</span>-<a name="line-249"></a><span class='definition'>compileTemplate</span> <span class='keyglyph'>[</span><span class='varid'>node</span><span class='keyglyph'>]</span> <span class='keyglyph'>=</span> -<a name="line-250"></a> <span class='keyword'>if</span> <span class='varid'>isElem</span> <span class='varid'>node</span>-<a name="line-251"></a> <span class='keyword'>then</span> <span class='keyword'>let</span> <span class='varid'>elemName</span> <span class='keyglyph'>=</span> <span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>getElemName</span> <span class='varid'>node</span> <span class='keyword'>in</span> -<a name="line-252"></a> <span class='keyword'>if</span> <span class='varid'>equivQName</span> <span class='varid'>elemName</span> <span class='varid'>xsltMessage</span> <span class='keyword'>then</span> <span class='varid'>compileMessage</span> <span class='varid'>node</span>-<a name="line-253"></a> <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>equivQName</span> <span class='varid'>elemName</span> <span class='varid'>xsltForEach</span> <span class='keyword'>then</span> <span class='varid'>compileForEach</span> <span class='varid'>node</span>-<a name="line-254"></a> <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>equivQName</span> <span class='varid'>elemName</span> <span class='varid'>xsltChoose</span> <span class='keyword'>then</span> <span class='varid'>compileChoose</span> <span class='varid'>node</span> -<a name="line-255"></a> <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>equivQName</span> <span class='varid'>elemName</span> <span class='varid'>xsltIf</span> <span class='keyword'>then</span> <span class='varid'>compileIf</span> <span class='varid'>node</span>-<a name="line-256"></a> <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>equivQName</span> <span class='varid'>elemName</span> <span class='varid'>xsltElement</span> <span class='keyword'>then</span> <span class='varid'>compileElement</span> <span class='varid'>node</span>-<a name="line-257"></a> <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>equivQName</span> <span class='varid'>elemName</span> <span class='varid'>xsltAttribute</span> <span class='keyword'>then</span> <span class='varid'>compileAttribute</span> <span class='varid'>node</span>-<a name="line-258"></a> <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>equivQName</span> <span class='varid'>elemName</span> <span class='varid'>xsltText</span> <span class='keyword'>then</span> <span class='varid'>compileText</span> <span class='varid'>node</span>-<a name="line-259"></a> <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>equivQName</span> <span class='varid'>elemName</span> <span class='varid'>xsltValueOf</span> <span class='keyword'>then</span> <span class='varid'>compileValueOf</span> <span class='varid'>node</span>-<a name="line-260"></a> <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>equivQName</span> <span class='varid'>elemName</span> <span class='varid'>xsltComment</span> <span class='keyword'>then</span> <span class='varid'>compileComment</span> <span class='varid'>node</span>-<a name="line-261"></a> <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>equivQName</span> <span class='varid'>elemName</span> <span class='varid'>xsltProcInstr</span> <span class='keyword'>then</span> <span class='varid'>compileProcInstr</span> <span class='varid'>node</span>-<a name="line-262"></a> <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>equivQName</span> <span class='varid'>elemName</span> <span class='varid'>xsltApplyTemplates</span> <span class='keyword'>then</span> <span class='varid'>compileApplyTempl</span> <span class='varid'>node</span>-<a name="line-263"></a> <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>equivQName</span> <span class='varid'>elemName</span> <span class='varid'>xsltApplyImports</span> <span class='keyword'>then</span> <span class='varid'>compileApplyImports</span> <span class='varid'>node</span>-<a name="line-264"></a> <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>equivQName</span> <span class='varid'>elemName</span> <span class='varid'>xsltCallTemplate</span> <span class='keyword'>then</span> <span class='varid'>compileCallTempl</span> <span class='varid'>node</span>-<a name="line-265"></a> <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>equivQName</span> <span class='varid'>elemName</span> <span class='varid'>xsltVariable</span> <span class='keyword'>then</span> <span class='varid'>compileTemplVariable</span> <span class='varid'>node</span>-<a name="line-266"></a> <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>equivQName</span> <span class='varid'>elemName</span> <span class='varid'>xsltCopy</span> <span class='keyword'>then</span> <span class='varid'>compileCopy</span> <span class='varid'>node</span>-<a name="line-267"></a> <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>equivQName</span> <span class='varid'>elemName</span> <span class='varid'>xsltCopyOf</span> <span class='keyword'>then</span> <span class='varid'>compileCopyOf</span> <span class='varid'>node</span>-<a name="line-268"></a>-<a name="line-269"></a> <span class='comment'>-- no other xslt elements allowed here:</span>-<a name="line-270"></a> <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>namespaceUri</span> <span class='varid'>elemName</span> <span class='varop'>==</span> <span class='varid'>xsltUri</span>-<a name="line-271"></a> <span class='keyword'>then</span> <span class='varid'>error</span> <span class='varop'>$</span> <span class='str'>"xslt-element "</span> <span class='varop'>++</span> <span class='varid'>localPart</span> <span class='varid'>elemName</span> <span class='varop'>++</span> <span class='str'>" not allowed within this context."</span>-<a name="line-272"></a>-<a name="line-273"></a> <span class='comment'>-- for now all other elements will be considered as Literal Result Elements</span>-<a name="line-274"></a> <span class='keyword'>else</span> <span class='varid'>compileLiteralResultElement</span> <span class='varid'>node</span>-<a name="line-275"></a>-<a name="line-276"></a> <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>isText</span> <span class='varid'>node</span> <span class='keyword'>then</span> <span class='varid'>compileTextnode</span> <span class='varid'>node</span>-<a name="line-277"></a>-<a name="line-278"></a> <span class='keyword'>else</span>-<a name="line-279"></a> <span class='varid'>error</span> <span class='varop'>$</span> <span class='str'>"Unsupported node-type in xslt sheet: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>getNode</span> <span class='varid'>node</span><span class='layout'>)</span>-<a name="line-280"></a><span class='definition'>compileTemplate</span> <span class='varid'>list</span> <span class='keyglyph'>=</span> <span class='varid'>compileComposite</span> <span class='varid'>list</span>-<a name="line-281"></a>-<a name="line-282"></a>-<a name="line-283"></a><span class='comment'>-- -----------------------------------</span>-<a name="line-284"></a><span class='comment'>-- Assembling of the entire stylesheet</span>-<a name="line-285"></a>-<a name="line-286"></a><a name="assembleStylesheet"></a><span class='definition'>assembleStylesheet</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>CompiledStylesheet</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>CompiledStylesheet</span>-<a name="line-287"></a><span class='definition'>assembleStylesheet</span> <span class='varid'>xslNode</span> <span class='varid'>imports</span> <span class='keyglyph'>=</span>-<a name="line-288"></a> <span class='conid'>CompStylesheet</span> <span class='varid'>matchRules</span> <span class='varid'>namedRules</span> <span class='varid'>variables</span> <span class='varid'>attsets</span> <span class='varid'>strips</span> <span class='varid'>aliases</span>-<a name="line-289"></a> <span class='keyword'>where</span> -<a name="line-290"></a> <span class='comment'>-- entire contents:</span>-<a name="line-291"></a> <span class='layout'>(</span><span class='varid'>namedRules</span><span class='layout'>,</span> -<a name="line-292"></a> <span class='varid'>matchRules</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>assembleRules</span> <span class='varid'>ruleElems</span> <span class='varid'>importedMatchRules</span> <span class='varid'>importedNamedRules</span>-<a name="line-293"></a> <span class='varid'>variables</span> <span class='keyglyph'>=</span> <span class='varid'>assembleVariables</span> <span class='varid'>varElems</span> <span class='varid'>importedVariables</span>-<a name="line-294"></a> <span class='varid'>attsets</span> <span class='keyglyph'>=</span> <span class='varid'>assembleAttrSets</span> <span class='varid'>attsetElems</span> <span class='varid'>importedAttribSets</span>-<a name="line-295"></a> <span class='varid'>strips</span> <span class='keyglyph'>=</span> <span class='varid'>assembleStrips</span> <span class='varid'>stripElems</span> <span class='varid'>preserveElems</span> <span class='varid'>importedStrips</span>-<a name="line-296"></a> <span class='varid'>aliases</span> <span class='keyglyph'>=</span> <span class='varid'>assembleAliases</span> <span class='varid'>nsAliasElems</span> <span class='varid'>importedAliases</span>-<a name="line-297"></a>-<a name="line-298"></a> <span class='comment'>-- element content:</span>-<a name="line-299"></a> <span class='layout'>(</span><span class='varid'>nsAliasElems</span><span class='layout'>,</span> <span class='sel'>_r5</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>partition</span> <span class='layout'>(</span><span class='varid'>isElemType</span> <span class='varid'>xsltNamespaceAlias</span><span class='layout'>)</span> <span class='varid'>r4</span>-<a name="line-300"></a> <span class='layout'>(</span><span class='varid'>ruleElems</span><span class='layout'>,</span> <span class='varid'>r4</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>partition</span> <span class='layout'>(</span><span class='varid'>isElemType</span> <span class='varid'>xsltTemplate</span><span class='layout'>)</span> <span class='varid'>r3</span>-<a name="line-301"></a> <span class='layout'>(</span><span class='varid'>varElems</span><span class='layout'>,</span> <span class='varid'>r3</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>partition</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>node</span> <span class='keyglyph'>-></span> <span class='varid'>isElemType</span> <span class='varid'>xsltVariable</span> <span class='varid'>node</span> <span class='varop'>||</span> <span class='varid'>isElemType</span> <span class='varid'>xsltParam</span> <span class='varid'>node</span><span class='layout'>)</span> <span class='varid'>r2</span>-<a name="line-302"></a> <span class='layout'>(</span><span class='varid'>attsetElems</span><span class='layout'>,</span> <span class='varid'>r2</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>partition</span> <span class='layout'>(</span><span class='varid'>isElemType</span> <span class='varid'>xsltAttributeSet</span><span class='layout'>)</span> <span class='varid'>r1</span>-<a name="line-303"></a> <span class='layout'>(</span><span class='varid'>preserveElems</span><span class='layout'>,</span> <span class='varid'>r1</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>partition</span> <span class='layout'>(</span><span class='varid'>isElemType</span> <span class='varid'>xsltPreserveSpace</span><span class='layout'>)</span> <span class='varid'>r0</span>-<a name="line-304"></a> <span class='layout'>(</span><span class='varid'>stripElems</span><span class='layout'>,</span> <span class='varid'>r0</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>partition</span> <span class='layout'>(</span><span class='varid'>isElemType</span> <span class='varid'>xsltStripSpace</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>getChildren</span> <span class='varid'>xslNode</span>-<a name="line-305"></a>-<a name="line-306"></a> <span class='comment'>-- imported stuff:</span>-<a name="line-307"></a> <span class='varid'>importedAttribSets</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>getAttributeSets</span> <span class='varid'>imports</span>-<a name="line-308"></a> <span class='varid'>importedVariables</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>getVariables</span> <span class='varid'>revImports</span>-<a name="line-309"></a> <span class='varid'>importedNamedRules</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>getNamedRules</span> <span class='varid'>revImports</span>-<a name="line-310"></a> <span class='varid'>importedMatchRules</span> <span class='keyglyph'>=</span> <span class='varid'>concatMap</span> <span class='varid'>getMatchRules</span> <span class='varid'>revImports</span>-<a name="line-311"></a> <span class='varid'>importedStrips</span> <span class='keyglyph'>=</span> <span class='varid'>concatMap</span> <span class='varid'>getStrips</span> <span class='varid'>revImports</span>-<a name="line-312"></a> <span class='varid'>importedAliases</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>getAliases</span> <span class='varid'>revImports</span>-<a name="line-313"></a> <span class='varid'>revImports</span> <span class='keyglyph'>=</span> <span class='varid'>reverse</span> <span class='varid'>imports</span>-<a name="line-314"></a>-<a name="line-315"></a><a name="assembleRules"></a><span class='definition'>assembleRules</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>MatchRule</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>Map</span> <span class='conid'>ExName</span> <span class='conid'>NamedRule</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='conid'>Map</span> <span class='conid'>ExName</span> <span class='conid'>NamedRule</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='conid'>MatchRule</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-316"></a><span class='definition'>assembleRules</span> <span class='varid'>nodes</span> <span class='varid'>importedMatches</span> <span class='varid'>importedProcs</span> <span class='keyglyph'>=</span>-<a name="line-317"></a> <span class='layout'>(</span><span class='varid'>resProcs</span><span class='layout'>,</span> <span class='varid'>resMatches</span><span class='layout'>)</span>-<a name="line-318"></a> <span class='keyword'>where</span>-<a name="line-319"></a> -<a name="line-320"></a> <span class='comment'>-- matches: </span>-<a name="line-321"></a> <span class='varid'>resMatches</span> <span class='keyglyph'>=</span> <span class='varid'>localMatches</span> <span class='varop'>++</span> <span class='varid'>importedMatches</span>-<a name="line-322"></a> <span class='varid'>localMatches</span> <span class='keyglyph'>=</span> <span class='varid'>reverse</span> <span class='varop'>$</span> <span class='varid'>sortBy</span> <span class='varid'>cmp</span> <span class='varid'>matches</span>-<a name="line-323"></a> <span class='varid'>cmp</span> <span class='varid'>rulA</span> <span class='varid'>rulB</span> <span class='keyglyph'>=</span> <span class='varid'>compare</span> <span class='layout'>(</span><span class='varid'>getRulePrio</span> <span class='varid'>rulA</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>getRulePrio</span> <span class='varid'>rulB</span><span class='layout'>)</span>-<a name="line-324"></a>-<a name="line-325"></a> <span class='comment'>-- procedures:</span>-<a name="line-326"></a> <span class='varid'>resProcs</span> <span class='keyglyph'>=</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>unions</span> <span class='layout'>(</span><span class='varid'>localProcs</span><span class='conop'>:</span><span class='varid'>importedProcs</span><span class='layout'>)</span>-<a name="line-327"></a> <span class='varid'>localProcs</span> <span class='keyglyph'>=</span> <span class='varid'>foldl</span> <span class='varid'>ins</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>empty</span> <span class='varid'>procs</span>-<a name="line-328"></a> <span class='varid'>ins</span> <span class='varid'>map'</span> <span class='varid'>rule</span> <span class='keyglyph'>=</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>insertWith</span> <span class='layout'>(</span><span class='varid'>error</span> <span class='varop'>$</span> <span class='str'>"named-rule "</span><span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>getRuleName</span> <span class='varid'>rule</span><span class='layout'>)</span> <span class='varop'>++</span><span class='str'>" is already defined on this level"</span><span class='layout'>)</span>-<a name="line-329"></a> <span class='layout'>(</span><span class='varid'>getRuleName</span> <span class='varid'>rule</span><span class='layout'>)</span> <span class='varid'>rule</span> <span class='varid'>map'</span>-<a name="line-330"></a>-<a name="line-331"></a> <span class='comment'>-- compile all xsl:template's:</span>-<a name="line-332"></a> <span class='layout'>(</span><span class='varid'>procs</span><span class='layout'>,</span> <span class='varid'>matches</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>catMaybes</span> <span class='varop'>***</span> <span class='varid'>concat</span> <span class='varop'>$</span> <span class='varid'>unzip</span> <span class='varop'>$</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>compileRule</span> <span class='varid'>importedMatches</span><span class='layout'>)</span> <span class='varid'>nodes</span>-<a name="line-333"></a>-<a name="line-334"></a><a name="assembleVariables"></a><span class='definition'>assembleVariables</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='layout'>(</span><span class='conid'>Map</span> <span class='conid'>ExName</span> <span class='conid'>Variable</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='conid'>Map</span> <span class='conid'>ExName</span> <span class='conid'>Variable</span><span class='layout'>)</span> -<a name="line-335"></a><span class='definition'>assembleVariables</span> <span class='varid'>varElems</span> <span class='keyglyph'>=</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>unions</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='varid'>compileVariables</span> <span class='varid'>varElems</span><span class='conop'>:</span><span class='layout'>)</span>-<a name="line-336"></a>-<a name="line-337"></a><a name="assembleAttrSets"></a><span class='definition'>assembleAttrSets</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>Map</span> <span class='conid'>ExName</span> <span class='keyglyph'>[</span><span class='conid'>AttributeSet</span><span class='keyglyph'>]</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>Map</span> <span class='conid'>ExName</span> <span class='keyglyph'>[</span><span class='conid'>AttributeSet</span><span class='keyglyph'>]</span>-<a name="line-338"></a><span class='definition'>assembleAttrSets</span> <span class='varid'>attsetElems</span> <span class='keyglyph'>=</span>-<a name="line-339"></a> <span class='varid'>foldr</span> <span class='layout'>(</span><span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>unionWith</span> <span class='layout'>(</span><span class='varop'>++</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varid'>localAttribSets</span>-<a name="line-340"></a> <span class='keyword'>where</span>-<a name="line-341"></a> <span class='varid'>localAttribSets</span> <span class='keyglyph'>=</span> <span class='varid'>foldr</span> <span class='varid'>insertAs</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>empty</span>-<a name="line-342"></a> <span class='varop'>$</span> <span class='varid'>map</span> <span class='varid'>compileAttributeSet</span> <span class='varid'>attsetElems</span>-<a name="line-343"></a> <span class='varid'>insertAs</span> <span class='keyword'>as</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>AttribSet</span> <span class='varid'>name</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>insertWith</span> <span class='layout'>(</span><span class='varop'>++</span><span class='layout'>)</span> <span class='varid'>name</span> <span class='keyglyph'>[</span><span class='keyword'>as</span><span class='keyglyph'>]</span>-<a name="line-344"></a>-<a name="line-345"></a><a name="assembleStrips"></a><span class='definition'>assembleStrips</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span><span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>Strips</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>Strips</span><span class='keyglyph'>]</span>-<a name="line-346"></a><span class='definition'>assembleStrips</span> <span class='varid'>stripElems</span> <span class='varid'>preserveElems</span> <span class='keyglyph'>=</span>-<a name="line-347"></a> <span class='layout'>(</span><span class='varid'>localStrips</span> <span class='conop'>:</span><span class='layout'>)</span>-<a name="line-348"></a> <span class='keyword'>where</span>-<a name="line-349"></a> <span class='varid'>localStrips</span> <span class='keyglyph'>=</span> <span class='varid'>feedStrips</span> <span class='layout'>(</span><span class='varid'>concatMap</span> <span class='varid'>compileStrips</span> <span class='varid'>stripElems</span><span class='layout'>)</span>-<a name="line-350"></a> <span class='varop'>$</span> <span class='varid'>feedPreserves</span> <span class='layout'>(</span><span class='varid'>concatMap</span> <span class='varid'>compilePreserves</span> <span class='varid'>preserveElems</span><span class='layout'>)</span>-<a name="line-351"></a> <span class='varop'>$</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>empty</span>-<a name="line-352"></a>-<a name="line-353"></a><a name="assembleAliases"></a><span class='definition'>assembleAliases</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>NSAliasing</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>NSAliasing</span>-<a name="line-354"></a><span class='definition'>assembleAliases</span> <span class='varid'>nsAliasElems</span> <span class='keyglyph'>=</span>-<a name="line-355"></a> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>unions</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='varid'>localAliases</span><span class='conop'>:</span><span class='layout'>)</span>-<a name="line-356"></a> <span class='keyword'>where</span>-<a name="line-357"></a> <span class='varid'>localAliases</span> <span class='keyglyph'>=</span> <span class='varid'>foldr</span> <span class='varid'>addAlias'</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>empty</span> <span class='varid'>nsAliasElems</span>-<a name="line-358"></a> <span class='varid'>addAlias'</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> <span class='varid'>uncurry</span> <span class='layout'>(</span><span class='varid'>addAlias</span><span class='varop'>><</span><span class='varid'>node</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>compileAlias</span> <span class='varid'>node</span>-<a name="line-359"></a>-<a name="line-360"></a><span class='comment'>-- -----------------------------------</span>-<a name="line-361"></a>-<a name="line-362"></a><a name="compileRule"></a><span class='comment'>-- compile a rule from an xsl:template element.</span>-<a name="line-363"></a><span class='comment'>-- The resulting rule can either be a one or more match rule or a named rule, or both.</span>-<a name="line-364"></a><span class='comment'>-- The first argument is needed for xsl:apply-imports and contains</span>-<a name="line-365"></a><span class='comment'>-- a list of all subsequently imported rules</span>-<a name="line-366"></a><span class='definition'>compileRule</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>MatchRule</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='conid'>Maybe</span> <span class='conid'>NamedRule</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='conid'>MatchRule</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-367"></a><span class='definition'>compileRule</span> <span class='varid'>imports</span> <span class='varid'>node</span> <span class='keyglyph'>=</span>-<a name="line-368"></a>-<a name="line-369"></a> <span class='keyword'>if</span> <span class='varid'>isNothing</span> <span class='varid'>match</span> <span class='varop'>&&</span> <span class='varid'>isNothing</span> <span class='varid'>name</span> -<a name="line-370"></a> <span class='keyword'>then</span> <span class='varid'>error</span> <span class='str'>"Error: Bogus rule (xsl:template) with neither match nor name attribute is illegal"</span>-<a name="line-371"></a>-<a name="line-372"></a> <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>isJust</span> <span class='varid'>mode</span> <span class='varop'>&&</span> <span class='varid'>isNothing</span> <span class='varid'>match</span> -<a name="line-373"></a> <span class='keyword'>then</span> <span class='varid'>error</span> <span class='str'>"Error: Bogus mode attribute on none-match rule is illegal"</span>-<a name="line-374"></a>-<a name="line-375"></a> <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>isJust</span> <span class='varid'>priority</span> <span class='varop'>&&</span> <span class='varid'>isNothing</span> <span class='varid'>match</span> -<a name="line-376"></a> <span class='keyword'>then</span> <span class='varid'>error</span> <span class='str'>"Error: Bogus priority attribute on none-match rule is illegal"</span>-<a name="line-377"></a>-<a name="line-378"></a> <span class='keyword'>else</span> -<a name="line-379"></a> <span class='layout'>(</span>-<a name="line-380"></a> <span class='varid'>liftM</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>n</span> <span class='keyglyph'>-></span> <span class='conid'>NamRule</span> <span class='varid'>n</span> <span class='varid'>params</span> <span class='varid'>template</span><span class='layout'>)</span> <span class='varid'>name</span>-<a name="line-381"></a> <span class='layout'>,</span> <span class='varid'>concat</span> <span class='varop'>$</span> <span class='varid'>maybeToList</span> <span class='varop'>$</span> <span class='varid'>liftM</span> <span class='layout'>(</span><span class='varid'>assembleMatchRule</span> <span class='varid'>priority</span> <span class='varid'>mode</span> <span class='varid'>imports</span> <span class='varid'>params</span> <span class='varid'>template</span><span class='layout'>)</span> <span class='varid'>match</span>-<a name="line-382"></a> <span class='layout'>)</span> -<a name="line-383"></a>-<a name="line-384"></a> <span class='keyword'>where</span>-<a name="line-385"></a> <span class='varid'>match</span> <span class='keyglyph'>=</span> <span class='varid'>liftM</span> <span class='layout'>(</span><span class='varid'>parseMatch</span><span class='varop'>><</span><span class='varid'>node</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>tryFetchAttribute</span> <span class='varid'>node</span> <span class='varid'>xsltMatch</span>-<a name="line-386"></a> <span class='varid'>name</span> <span class='keyglyph'>=</span> <span class='varid'>liftM</span> <span class='layout'>(</span><span class='varid'>parseExName</span><span class='varop'>><</span><span class='varid'>node</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>tryFetchAttribute</span> <span class='varid'>node</span> <span class='varid'>xsltName</span>-<a name="line-387"></a> <span class='varid'>priority</span> <span class='keyglyph'>=</span> <span class='varid'>liftM</span> <span class='varid'>read</span> <span class='varop'>$</span> <span class='varid'>tryFetchAttribute</span> <span class='varid'>node</span> <span class='varid'>xsltPriority</span>-<a name="line-388"></a> <span class='varid'>mode</span> <span class='keyglyph'>=</span> <span class='varid'>liftM</span> <span class='layout'>(</span><span class='varid'>parseExName</span><span class='varop'>><</span><span class='varid'>node</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>tryFetchAttribute</span> <span class='varid'>node</span> <span class='varid'>xsltMode</span>-<a name="line-389"></a> <span class='varid'>template</span> <span class='keyglyph'>=</span> <span class='varid'>compileTemplate</span> <span class='varid'>content</span>-<a name="line-390"></a> <span class='varid'>params</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>compileVariable</span> <span class='varid'>paramsXml</span>-<a name="line-391"></a> <span class='layout'>(</span><span class='varid'>paramsXml</span><span class='layout'>,</span> <span class='varid'>content</span><span class='layout'>)</span> <span class='keyglyph'>=</span>-<a name="line-392"></a> <span class='varid'>partition</span> <span class='layout'>(</span><span class='varid'>isElemType</span> <span class='varid'>xsltParam</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>getChildren</span> <span class='varid'>node</span>-<a name="line-393"></a>-<a name="line-394"></a><a name="assembleMatchRule"></a><span class='definition'>assembleMatchRule</span> <span class='keyglyph'>::</span> <span class='conid'>Maybe</span> <span class='conid'>Float</span> <span class='keyglyph'>-></span> <span class='conid'>Maybe</span> <span class='conid'>ExName</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>MatchRule</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>Variable</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>Template</span> <span class='keyglyph'>-></span> <span class='conid'>MatchExpr</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>MatchRule</span><span class='keyglyph'>]</span>-<a name="line-395"></a><span class='definition'>assembleMatchRule</span> <span class='varid'>pri</span> <span class='varid'>m</span> <span class='varid'>imp</span> <span class='varid'>par</span> <span class='varid'>tmpl</span> <span class='varid'>mtch</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>MatchExpr</span> <span class='varid'>expr</span><span class='layout'>)</span> <span class='keyglyph'>=</span>-<a name="line-396"></a> <span class='keyword'>if</span> <span class='varid'>isJust</span> <span class='varid'>pri</span>-<a name="line-397"></a> <span class='keyword'>then</span> <span class='varid'>return</span> <span class='varop'>$</span> <span class='conid'>MatRule</span> <span class='varid'>mtch</span> <span class='layout'>(</span><span class='varid'>fromJust</span> <span class='varid'>pri</span><span class='layout'>)</span> <span class='varid'>m</span> <span class='varid'>imp</span> <span class='varid'>par</span> <span class='varid'>tmpl</span>-<a name="line-398"></a> <span class='keyword'>else</span> <span class='varid'>map</span> <span class='varid'>expand</span> <span class='varop'>$</span> <span class='varid'>splitMatchByPrio</span> <span class='varid'>expr</span>-<a name="line-399"></a> <span class='keyword'>where</span> -<a name="line-400"></a> <span class='varid'>expand</span> <span class='layout'>(</span><span class='varid'>pri'</span><span class='layout'>,</span> <span class='varid'>mtch'</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='conid'>MatRule</span> <span class='layout'>(</span><span class='conid'>MatchExpr</span> <span class='varid'>mtch'</span><span class='layout'>)</span> <span class='varid'>pri'</span> <span class='varid'>m</span> <span class='varid'>imp</span> <span class='varid'>par</span> <span class='varid'>tmpl</span>-<a name="line-401"></a>-<a name="line-402"></a><span class='comment'>-- -----------------------------------</span>-<a name="line-403"></a>-<a name="line-404"></a><a name="compileVariables"></a><span class='definition'>compileVariables</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>Map</span> <span class='conid'>ExName</span> <span class='conid'>Variable</span>-<a name="line-405"></a><span class='definition'>compileVariables</span> <span class='varid'>nodes</span> <span class='keyglyph'>=</span>-<a name="line-406"></a> <span class='varid'>foldl</span> <span class='varid'>insertVar</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>empty</span> <span class='varop'>$</span> <span class='varid'>varList</span>-<a name="line-407"></a> <span class='keyword'>where</span>-<a name="line-408"></a> <span class='varid'>varList</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>compileVariable</span> <span class='varop'>$</span> <span class='varid'>nodes</span>-<a name="line-409"></a> <span class='varid'>insertVar</span> <span class='varid'>map'</span> <span class='varid'>var</span> <span class='keyglyph'>=</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>insertWith</span> <span class='layout'>(</span><span class='varid'>error</span> <span class='varop'>$</span> <span class='str'>"parameter or variable "</span><span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>getVarName</span> <span class='varid'>var</span><span class='layout'>)</span> <span class='varop'>++</span><span class='str'>" is already defined on this level"</span><span class='layout'>)</span>-<a name="line-410"></a> <span class='layout'>(</span><span class='varid'>getVarName</span> <span class='varid'>var</span><span class='layout'>)</span> <span class='varid'>var</span> <span class='varid'>map'</span>-<a name="line-411"></a>-<a name="line-412"></a><a name="compileVariable"></a><span class='definition'>compileVariable</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>Variable</span>-<a name="line-413"></a><span class='definition'>compileVariable</span> <span class='varid'>node</span> <span class='keyglyph'>=</span>-<a name="line-414"></a> <span class='conid'>MkVar</span> <span class='varid'>modus</span> <span class='varid'>name</span> <span class='varid'>exprOrRtf</span>-<a name="line-415"></a> <span class='keyword'>where</span> -<a name="line-416"></a> <span class='varid'>modus</span> <span class='keyglyph'>=</span> <span class='varid'>isElemType</span> <span class='varid'>xsltParam</span> <span class='varid'>node</span>-<a name="line-417"></a> <span class='varid'>name</span> <span class='keyglyph'>=</span> <span class='varid'>parseExName</span><span class='varop'>><</span><span class='varid'>node</span> <span class='varop'>$</span> <span class='varid'>fetchAttribute</span> <span class='varid'>node</span> <span class='varid'>xsltName</span>-<a name="line-418"></a> <span class='varid'>exprOrRtf</span> <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>hasAttribute</span> <span class='varid'>node</span> <span class='varid'>xsltSelect</span> <span class='varop'>||</span> <span class='varid'>null</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varid'>node</span><span class='layout'>)</span>-<a name="line-419"></a> <span class='keyword'>then</span> <span class='conid'>Left</span> <span class='varop'>$</span> <span class='varid'>parseExpr</span><span class='varop'>><</span><span class='varid'>node</span> <span class='varop'>$</span> <span class='varid'>fetchAttributeWDefault</span> <span class='varid'>node</span> <span class='varid'>xsltSelect</span> <span class='str'>"''"</span>-<a name="line-420"></a> <span class='keyword'>else</span> <span class='conid'>Right</span> <span class='varop'>$</span> <span class='varid'>compileTemplate</span> <span class='varop'>$</span> <span class='varid'>getChildren</span> <span class='varid'>node</span>-<a name="line-421"></a>-<a name="line-422"></a><span class='comment'>-- -----------------------------------</span>-<a name="line-423"></a>-<a name="line-424"></a><a name="compileAttributeSet"></a><span class='definition'>compileAttributeSet</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>AttributeSet</span>-<a name="line-425"></a><span class='definition'>compileAttributeSet</span> <span class='varid'>node</span> <span class='keyglyph'>=</span>-<a name="line-426"></a> <span class='conid'>AttribSet</span> <span class='varid'>name</span> <span class='varid'>usedsets</span> <span class='varid'>template</span>-<a name="line-427"></a> <span class='keyword'>where</span>-<a name="line-428"></a> <span class='varid'>name</span> <span class='keyglyph'>=</span> <span class='varid'>parseExName</span><span class='varop'>><</span><span class='varid'>node</span> <span class='varop'>$</span> <span class='varid'>fetchAttribute</span> <span class='varid'>node</span> <span class='varid'>xsltName</span>-<a name="line-429"></a> <span class='varid'>usedsets</span> <span class='keyglyph'>=</span> <span class='conid'>UsedAttribSets</span> <span class='varop'>$</span> <span class='varid'>parseExNames</span><span class='varop'>><</span><span class='varid'>node</span> <span class='varop'>$</span> <span class='varid'>fetchAttributeWDefault</span> <span class='varid'>node</span> <span class='varid'>xsltUseAttributeSets</span> <span class='str'>""</span>-<a name="line-430"></a> <span class='varid'>template</span> <span class='keyglyph'>=</span> <span class='varid'>compileTemplate</span> <span class='varop'>$</span> <span class='varid'>filter</span> <span class='layout'>(</span><span class='varid'>isElemType</span> <span class='varid'>xsltAttribute</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>getChildren</span> <span class='varid'>node</span>-<a name="line-431"></a>-<a name="line-432"></a><span class='comment'>-- -----------------------------------</span>-<a name="line-433"></a>-<a name="line-434"></a><a name="compileSortKey"></a><span class='definition'>compileSortKey</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>SortKey</span>-<a name="line-435"></a><span class='definition'>compileSortKey</span> <span class='varid'>node</span> <span class='keyglyph'>=</span>-<a name="line-436"></a> <span class='conid'>SortK</span> <span class='varid'>expr</span> <span class='varid'>dataType</span> <span class='varid'>order</span>-<a name="line-437"></a> <span class='keyword'>where</span>-<a name="line-438"></a> <span class='varid'>expr</span> <span class='keyglyph'>=</span> <span class='varid'>parseStringExpr</span><span class='varop'>><</span><span class='varid'>node</span> <span class='varop'>$</span> <span class='varid'>fetchAttributeWDefault</span> <span class='varid'>node</span> <span class='varid'>xsltSelect</span> <span class='str'>"."</span>-<a name="line-439"></a> <span class='varid'>dataType</span> <span class='keyglyph'>=</span> <span class='varid'>parseAVT</span><span class='varop'>><</span><span class='varid'>node</span> <span class='varop'>$</span> <span class='varid'>fetchAttributeWDefault</span> <span class='varid'>node</span> <span class='varid'>xsltDataType</span> <span class='str'>"text"</span>-<a name="line-440"></a> <span class='varid'>order</span> <span class='keyglyph'>=</span> <span class='varid'>parseAVT</span><span class='varop'>><</span><span class='varid'>node</span> <span class='varop'>$</span> <span class='varid'>fetchAttributeWDefault</span> <span class='varid'>node</span> <span class='varid'>xsltOrder</span> <span class='str'>"ascending"</span>-<a name="line-441"></a>-<a name="line-442"></a><span class='comment'>-- -----------------------------------</span>-<a name="line-443"></a>-<a name="line-444"></a><a name="parseNTests"></a><span class='definition'>parseNTests</span> <span class='keyglyph'>::</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>NTest</span><span class='keyglyph'>]</span>-<a name="line-445"></a><span class='definition'>parseNTests</span> <span class='varid'>uris</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>parseNTest</span> <span class='varid'>uris</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>words</span>-<a name="line-446"></a>-<a name="line-447"></a><a name="compileStrips"></a><span class='definition'>compileStrips</span><span class='layout'>,</span><span class='varid'>compilePreserves</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>NTest</span><span class='keyglyph'>]</span>-<a name="line-448"></a><span class='definition'>compileStrips</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> <span class='varid'>parseNTests</span><span class='varop'>><</span><span class='varid'>node</span> <span class='varop'>$</span> <span class='varid'>fetchAttribute</span> <span class='varid'>node</span> <span class='varid'>xsltElements</span>-<a name="line-449"></a><a name="compilePreserves"></a><span class='definition'>compilePreserves</span> <span class='keyglyph'>=</span> <span class='varid'>compileStrips</span>-<a name="line-450"></a>-<a name="line-451"></a><span class='comment'>-- -----------------------------------</span>-<a name="line-452"></a>-<a name="line-453"></a><a name="compileAlias"></a><span class='definition'>compileAlias</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='conid'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span>-<a name="line-454"></a><span class='definition'>compileAlias</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> -<a name="line-455"></a> <span class='layout'>(</span><span class='varid'>fetchAttribute</span> <span class='varid'>node</span> <span class='varid'>xsltStylesheetPrefix</span><span class='layout'>,</span> <span class='varid'>fetchAttribute</span> <span class='varid'>node</span> <span class='varid'>xsltResultPrefix</span><span class='layout'>)</span>-<a name="line-456"></a>-<a name="line-457"></a><span class='comment'>-- -----------------------------------</span>-<a name="line-458"></a><span class='comment'>-- Document level preprocessing</span>-<a name="line-459"></a>-<a name="line-460"></a><a name="prepareXSLTDocument"></a><span class='definition'>prepareXSLTDocument</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span>-<a name="line-461"></a><span class='definition'>prepareXSLTDocument</span> <span class='keyglyph'>=</span> <span class='varid'>expandExEx</span> <span class='varop'>.</span> <span class='varid'>expandNSDecls</span> <span class='varop'>.</span> <span class='varid'>stripStylesheet</span> <span class='varop'>.</span> <span class='varid'>removePiCmt</span>-<a name="line-462"></a>-<a name="line-463"></a><a name="removePiCmt"></a><span class='definition'>removePiCmt</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span>-<a name="line-464"></a><span class='definition'>removePiCmt</span> <span class='keyglyph'>=</span> <span class='varid'>fromJustErr</span> <span class='str'>"XSLT: No root element"</span> <span class='varop'>.</span> <span class='varid'>filterTree</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>n</span> <span class='keyglyph'>-></span> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>isPi</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='varop'>&&</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>isCmt</span> <span class='varid'>n</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-465"></a>-<a name="line-466"></a><span class='comment'>-- Expand exclude-result-prefixes AND extension-element-prefixes</span>-<a name="line-467"></a>-<a name="line-468"></a><a name="expandExEx"></a><span class='definition'>expandExEx</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span>-<a name="line-469"></a><span class='definition'>expandExEx</span> <span class='keyglyph'>=</span> <span class='varid'>mapTreeCtx</span> <span class='varid'>expandExExElem</span> <span class='layout'>(</span><span class='keyglyph'>[</span><span class='varid'>xsltUri</span><span class='layout'>,</span><span class='varid'>xmlNamespace</span><span class='layout'>,</span><span class='varid'>xmlnsNamespace</span><span class='keyglyph'>]</span><span class='layout'>,</span><span class='conid'>[]</span><span class='layout'>)</span>-<a name="line-470"></a>-<a name="line-471"></a><a name="expandExExElem"></a><span class='definition'>expandExExElem</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>XNode</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='layout'>(</span><span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span><span class='layout'>,</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span><span class='layout'>)</span><span class='layout'>,</span> <span class='conid'>XNode</span><span class='layout'>)</span>-<a name="line-472"></a><span class='definition'>expandExExElem</span> <span class='varid'>c</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='varid'>excl</span><span class='layout'>,</span> <span class='varid'>ext</span><span class='layout'>)</span> <span class='varid'>node</span>-<a name="line-473"></a> <span class='keyglyph'>|</span> <span class='varid'>isElem</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>exclAcc</span><span class='layout'>,</span> <span class='varid'>extAcc</span><span class='layout'>)</span><span class='layout'>,</span> <span class='varid'>nodeNew</span><span class='layout'>)</span>-<a name="line-474"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>c</span><span class='layout'>,</span> <span class='varid'>node</span><span class='layout'>)</span>-<a name="line-475"></a> <span class='keyword'>where</span>-<a name="line-476"></a> <span class='varid'>nodeNew</span> <span class='keyglyph'>=</span> <span class='varid'>setAttribute</span> <span class='varid'>nameExcl</span> <span class='layout'>(</span><span class='varid'>unwords</span> <span class='varid'>exclAcc</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>setAttribute</span> <span class='varid'>nameExt</span> <span class='layout'>(</span><span class='varid'>unwords</span> <span class='varid'>extAcc</span><span class='layout'>)</span> <span class='varid'>node</span>-<a name="line-477"></a> <span class='varid'>exclAcc</span> <span class='keyglyph'>=</span> <span class='varid'>exclNew</span> <span class='varop'>++</span> <span class='varid'>excl</span>-<a name="line-478"></a> <span class='varid'>extAcc</span> <span class='keyglyph'>=</span> <span class='varid'>extNew</span> <span class='varop'>++</span> <span class='varid'>ext</span>-<a name="line-479"></a> <span class='varid'>exclNew</span> <span class='keyglyph'>=</span> <span class='varid'>extNew</span> <span class='varop'>++</span> <span class='layout'>(</span><span class='varid'>parsePreList</span><span class='varop'>><</span><span class='varid'>node</span> <span class='varop'>$</span> <span class='varid'>fetchAttributeWDefault</span> <span class='varid'>node</span> <span class='varid'>nameExcl</span> <span class='str'>""</span><span class='layout'>)</span>-<a name="line-480"></a> <span class='varid'>extNew</span> <span class='keyglyph'>=</span> <span class='varid'>parsePreList</span><span class='varop'>><</span><span class='varid'>node</span> <span class='varop'>$</span> <span class='varid'>fetchAttributeWDefault</span> <span class='varid'>node</span> <span class='varid'>nameExt</span> <span class='str'>""</span>-<a name="line-481"></a> <span class='layout'>(</span><span class='varid'>nameExcl</span><span class='layout'>,</span>-<a name="line-482"></a> <span class='varid'>nameExt</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='layout'>(</span><span class='varid'>namespaceUri</span> <span class='varop'>$</span> <span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>getElemName</span> <span class='varid'>node</span><span class='layout'>)</span> <span class='varop'>==</span> <span class='varid'>xsltUri</span>-<a name="line-483"></a> <span class='keyword'>then</span> <span class='layout'>(</span><span class='varid'>xsltExlcudeResultPrefixes</span> <span class='layout'>,</span> <span class='varid'>xsltExtensionElementPrefixes</span> <span class='layout'>)</span>-<a name="line-484"></a> <span class='keyword'>else</span> <span class='layout'>(</span><span class='varid'>xsltExlcudeResultPrefixesLRE</span><span class='layout'>,</span> <span class='varid'>xsltExtensionElementPrefixesLRE</span><span class='layout'>)</span>-<a name="line-485"></a>-<a name="line-486"></a><span class='comment'>-- parse a prefix list, create a list of uris: </span>-<a name="line-487"></a><span class='comment'>-- "pre1 pre2 pre3" -> ["pre1.uri","pre2.uri","pre3.uri"]</span>-<a name="line-488"></a>-<a name="line-489"></a><a name="parsePreList"></a><span class='definition'>parsePreList</span> <span class='keyglyph'>::</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span>-<a name="line-490"></a><span class='definition'>parsePreList</span> <span class='varid'>uris</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>lookupPrefix</span> <span class='varid'>uris</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>words</span>-<a name="line-491"></a>-<a name="line-492"></a><span class='comment'>-- -----------------------------------</span>-<a name="line-493"></a><span class='comment'>-- Extraction of contextual Information from an XML-Node</span>-<a name="line-494"></a>-<a name="line-495"></a><a name="extractAddUris"></a><span class='definition'>extractAddUris</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>UriMapping</span>-<a name="line-496"></a><span class='definition'>extractAddUris</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> -<a name="line-497"></a> <span class='layout'>(</span><span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>filter</span> <span class='layout'>(</span><span class='varop'>`notElem`</span> <span class='varid'>exclUris</span><span class='layout'>)</span><span class='layout'>)</span><span class='varop'>><</span><span class='varid'>node</span>-<a name="line-498"></a> <span class='keyword'>where</span>-<a name="line-499"></a> <span class='varid'>exclUris</span> <span class='keyglyph'>=</span> <span class='varid'>words</span> <span class='varop'>$</span> <span class='varid'>fetchAttributeWDefault</span> <span class='varid'>node</span> <span class='varid'>xsltExlcudeResultPrefixesLRE</span> <span class='str'>""</span>-<a name="line-500"></a>-<a name="line-501"></a><span class='comment'>-- -----------------------------------</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-XSLT-CompiledStylesheet.html
@@ -1,277 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Text.XML.HXT.XSLT.Application-<a name="line-5"></a> Copyright : Copyright (C) 2006 Tim Walkenhorst, Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)-<a name="line-9"></a> Stability : experimental-<a name="line-10"></a> Portability: portable-<a name="line-11"></a> Version : $Id: CompiledStylesheet.hs,v 1.3 2007/05/02 06:41:05 hxml Exp $-<a name="line-12"></a>-<a name="line-13"></a> Types for compiled stylesheets-<a name="line-14"></a>-<a name="line-15"></a>-}</span>-<a name="line-16"></a>-<a name="line-17"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-18"></a>-<a name="line-19"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XSLT</span><span class='varop'>.</span><span class='conid'>CompiledStylesheet</span>-<a name="line-20"></a><span class='keyword'>where</span> -<a name="line-21"></a>-<a name="line-22"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XSLT</span><span class='varop'>.</span><span class='conid'>Common</span>-<a name="line-23"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XSLT</span><span class='varop'>.</span><span class='conid'>Names</span>-<a name="line-24"></a>-<a name="line-25"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>-<a name="line-26"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>List</span>-<a name="line-27"></a>-<a name="line-28"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Map</span><span class='layout'>(</span><span class='conid'>Map</span><span class='layout'>)</span>-<a name="line-29"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Map</span> <span class='keyword'>as</span> <span class='conid'>Map</span> <span class='varid'>hiding</span> <span class='layout'>(</span><span class='conid'>Map</span><span class='layout'>)</span>-<a name="line-30"></a>-<a name="line-31"></a><span class='comment'>-- -------------------</span>-<a name="line-32"></a>-<a name="line-33"></a><span class='comment'>-- compiled-Stylesheet:</span>-<a name="line-34"></a>-<a name="line-35"></a><a name="CompiledStylesheet"></a><span class='keyword'>data</span> <span class='conid'>CompiledStylesheet</span> <span class='keyglyph'>=</span> -<a name="line-36"></a> <span class='conid'>CompStylesheet</span>-<a name="line-37"></a> <span class='keyglyph'>[</span><span class='conid'>MatchRule</span><span class='keyglyph'>]</span> -<a name="line-38"></a> <span class='layout'>(</span><span class='conid'>Map</span> <span class='conid'>ExName</span> <span class='conid'>NamedRule</span><span class='layout'>)</span>-<a name="line-39"></a> <span class='layout'>(</span><span class='conid'>Map</span> <span class='conid'>ExName</span> <span class='conid'>Variable</span><span class='layout'>)</span> -<a name="line-40"></a> <span class='layout'>(</span><span class='conid'>Map</span> <span class='conid'>ExName</span> <span class='keyglyph'>[</span><span class='conid'>AttributeSet</span><span class='keyglyph'>]</span><span class='layout'>)</span> -<a name="line-41"></a> <span class='keyglyph'>[</span><span class='conid'>Strips</span><span class='keyglyph'>]</span> -<a name="line-42"></a> <span class='conid'>NSAliasing</span> -<a name="line-43"></a> <span class='keyword'>deriving</span> <span class='conid'>Show</span>-<a name="line-44"></a>-<a name="line-45"></a><a name="getMatchRules"></a><span class='definition'>getMatchRules</span> <span class='keyglyph'>::</span> <span class='conid'>CompiledStylesheet</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>MatchRule</span><span class='keyglyph'>]</span>-<a name="line-46"></a><span class='definition'>getMatchRules</span> <span class='layout'>(</span><span class='conid'>CompStylesheet</span> <span class='varid'>matchRules</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>matchRules</span>-<a name="line-47"></a>-<a name="line-48"></a><a name="getNamedRules"></a><span class='definition'>getNamedRules</span> <span class='keyglyph'>::</span> <span class='conid'>CompiledStylesheet</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='conid'>Map</span> <span class='conid'>ExName</span> <span class='conid'>NamedRule</span><span class='layout'>)</span>-<a name="line-49"></a><span class='definition'>getNamedRules</span> <span class='layout'>(</span><span class='conid'>CompStylesheet</span> <span class='keyword'>_</span> <span class='varid'>namedRules</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>namedRules</span>-<a name="line-50"></a>-<a name="line-51"></a><a name="getVariables"></a><span class='definition'>getVariables</span> <span class='keyglyph'>::</span> <span class='conid'>CompiledStylesheet</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='conid'>Map</span> <span class='conid'>ExName</span> <span class='conid'>Variable</span><span class='layout'>)</span>-<a name="line-52"></a><span class='definition'>getVariables</span> <span class='layout'>(</span><span class='conid'>CompStylesheet</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='varid'>variables</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>variables</span>-<a name="line-53"></a>-<a name="line-54"></a><a name="getAttributeSets"></a><span class='definition'>getAttributeSets</span> <span class='keyglyph'>::</span> <span class='conid'>CompiledStylesheet</span> <span class='keyglyph'>-></span> <span class='conid'>Map</span> <span class='conid'>ExName</span> <span class='keyglyph'>[</span><span class='conid'>AttributeSet</span><span class='keyglyph'>]</span>-<a name="line-55"></a><span class='definition'>getAttributeSets</span> <span class='layout'>(</span><span class='conid'>CompStylesheet</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='varid'>attrSets</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>attrSets</span>-<a name="line-56"></a>-<a name="line-57"></a><a name="getStrips"></a><span class='definition'>getStrips</span> <span class='keyglyph'>::</span> <span class='conid'>CompiledStylesheet</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>Strips</span><span class='keyglyph'>]</span>-<a name="line-58"></a><span class='definition'>getStrips</span> <span class='layout'>(</span><span class='conid'>CompStylesheet</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='varid'>strips</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>strips</span>-<a name="line-59"></a>-<a name="line-60"></a><a name="getAliases"></a><span class='definition'>getAliases</span> <span class='keyglyph'>::</span> <span class='conid'>CompiledStylesheet</span> <span class='keyglyph'>-></span> <span class='conid'>NSAliasing</span>-<a name="line-61"></a><span class='definition'>getAliases</span> <span class='layout'>(</span><span class='conid'>CompStylesheet</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='varid'>aliases</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>aliases</span>-<a name="line-62"></a>-<a name="line-63"></a><span class='comment'>-- -------------------</span>-<a name="line-64"></a><span class='comment'>-- Match-Rules:</span>-<a name="line-65"></a>-<a name="line-66"></a><a name="MatchRule"></a><span class='keyword'>data</span> <span class='conid'>MatchRule</span> <span class='keyglyph'>=</span> -<a name="line-67"></a> <span class='conid'>MatRule</span> <span class='conid'>MatchExpr</span>-<a name="line-68"></a> <span class='conid'>Float</span> <span class='comment'>-- priority</span>-<a name="line-69"></a> <span class='layout'>(</span><span class='conid'>Maybe</span> <span class='conid'>ExName</span><span class='layout'>)</span> <span class='comment'>-- mode</span>-<a name="line-70"></a> <span class='keyglyph'>[</span><span class='conid'>MatchRule</span><span class='keyglyph'>]</span> <span class='comment'>-- Imported rules only for xsl:apply-imports</span>-<a name="line-71"></a> <span class='keyglyph'>[</span><span class='conid'>Variable</span><span class='keyglyph'>]</span> <span class='comment'>-- xsl:param list</span>-<a name="line-72"></a> <span class='conid'>Template</span> <span class='comment'>-- content</span>-<a name="line-73"></a> <span class='comment'>--deriving Show -- output of imported Rules makes it unreadable</span>-<a name="line-74"></a>-<a name="line-75"></a><span class='keyword'>instance</span> <span class='conid'>Show</span> <span class='conid'>MatchRule</span> <span class='keyword'>where</span>-<a name="line-76"></a> <span class='varid'>show</span> <span class='layout'>(</span><span class='conid'>MatRule</span> <span class='varid'>expr</span> <span class='varid'>prio</span> <span class='varid'>mode</span> <span class='varid'>imprules</span> <span class='varid'>params</span> <span class='varid'>content</span><span class='layout'>)</span>-<a name="line-77"></a> <span class='keyglyph'>=</span> <span class='str'>"MkRule expr: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>expr</span> <span class='varop'>++</span> <span class='str'>"\n prio: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>prio</span> <span class='varop'>++</span> <span class='str'>"\n mode: "</span><span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>mode</span> -<a name="line-78"></a> <span class='varop'>++</span> <span class='str'>"\n no. imported rules: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='layout'>(</span><span class='varid'>length</span> <span class='varid'>imprules</span><span class='layout'>)</span> <span class='varop'>++</span> <span class='str'>"\n xsl-params: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>params</span> -<a name="line-79"></a> <span class='varop'>++</span> <span class='str'>"\n content: "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>content</span> <span class='varop'>++</span><span class='str'>"\n"</span>-<a name="line-80"></a>-<a name="line-81"></a><a name="getRulePrio"></a><span class='definition'>getRulePrio</span> <span class='keyglyph'>::</span> <span class='conid'>MatchRule</span> <span class='keyglyph'>-></span> <span class='conid'>Float</span>-<a name="line-82"></a><span class='definition'>getRulePrio</span> <span class='layout'>(</span><span class='conid'>MatRule</span> <span class='keyword'>_</span> <span class='varid'>prio</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>prio</span>-<a name="line-83"></a>-<a name="line-84"></a><a name="getRuleMode"></a><span class='definition'>getRuleMode</span> <span class='keyglyph'>::</span> <span class='conid'>MatchRule</span> <span class='keyglyph'>-></span> <span class='conid'>Maybe</span> <span class='conid'>ExName</span>-<a name="line-85"></a><span class='definition'>getRuleMode</span> <span class='layout'>(</span><span class='conid'>MatRule</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='varid'>mode</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>mode</span>-<a name="line-86"></a>-<a name="line-87"></a><a name="getRuleImports"></a><span class='definition'>getRuleImports</span> <span class='keyglyph'>::</span> <span class='conid'>MatchRule</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>MatchRule</span><span class='keyglyph'>]</span>-<a name="line-88"></a><span class='definition'>getRuleImports</span> <span class='layout'>(</span><span class='conid'>MatRule</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='keyword'>_</span> <span class='varid'>imports</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>imports</span>-<a name="line-89"></a>-<a name="line-90"></a><span class='comment'>-- -------------------</span>-<a name="line-91"></a><span class='comment'>-- Named-Rules:</span>-<a name="line-92"></a>-<a name="line-93"></a><a name="NamedRule"></a><span class='keyword'>data</span> <span class='conid'>NamedRule</span> <span class='keyglyph'>=</span> <span class='conid'>NamRule</span> <span class='conid'>ExName</span> <span class='keyglyph'>[</span><span class='conid'>Variable</span><span class='keyglyph'>]</span> <span class='conid'>Template</span>-<a name="line-94"></a> <span class='keyword'>deriving</span> <span class='conid'>Show</span>-<a name="line-95"></a>-<a name="line-96"></a><a name="getRuleName"></a><span class='definition'>getRuleName</span> <span class='keyglyph'>::</span> <span class='conid'>NamedRule</span> <span class='keyglyph'>-></span> <span class='conid'>ExName</span>-<a name="line-97"></a><span class='definition'>getRuleName</span> <span class='layout'>(</span><span class='conid'>NamRule</span> <span class='varid'>name</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>name</span>-<a name="line-98"></a>-<a name="line-99"></a><span class='comment'>-- -------------------</span>-<a name="line-100"></a><span class='comment'>-- Variables </span>-<a name="line-101"></a>-<a name="line-102"></a><a name="Variable"></a><span class='keyword'>data</span> <span class='conid'>Variable</span> <span class='keyglyph'>=</span> <span class='conid'>MkVar</span> -<a name="line-103"></a> <span class='conid'>Bool</span> <span class='comment'>-- modus: False => xsl:variable, True => xsl:param</span>-<a name="line-104"></a> <span class='conid'>ExName</span> <span class='comment'>-- name</span>-<a name="line-105"></a> <span class='layout'>(</span><span class='conid'>Either</span> <span class='conid'>Expr</span> <span class='conid'>Template</span><span class='layout'>)</span> <span class='comment'>-- select-expression or result tree fragment</span>-<a name="line-106"></a> <span class='keyword'>deriving</span> <span class='conid'>Show</span>-<a name="line-107"></a>-<a name="line-108"></a><a name="getVarName"></a><span class='definition'>getVarName</span> <span class='keyglyph'>::</span> <span class='conid'>Variable</span> <span class='keyglyph'>-></span> <span class='conid'>ExName</span>-<a name="line-109"></a><span class='definition'>getVarName</span> <span class='layout'>(</span><span class='conid'>MkVar</span> <span class='keyword'>_</span> <span class='varid'>name</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>name</span>-<a name="line-110"></a>-<a name="line-111"></a><a name="isParam"></a><span class='definition'>isParam</span> <span class='keyglyph'>::</span> <span class='conid'>Variable</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-112"></a><span class='definition'>isParam</span> <span class='layout'>(</span><span class='conid'>MkVar</span> <span class='varid'>isP</span> <span class='keyword'>_</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>isP</span>-<a name="line-113"></a>-<a name="line-114"></a><span class='comment'>-- -------------------</span>-<a name="line-115"></a><span class='comment'>-- Attribute sets:</span>-<a name="line-116"></a>-<a name="line-117"></a><a name="UsedAttribSets"></a><span class='keyword'>newtype</span> <span class='conid'>UsedAttribSets</span> <span class='keyglyph'>=</span> <span class='conid'>UsedAttribSets</span> <span class='keyglyph'>[</span><span class='conid'>ExName</span><span class='keyglyph'>]</span>-<a name="line-118"></a> <span class='keyword'>deriving</span> <span class='conid'>Show</span>-<a name="line-119"></a>-<a name="line-120"></a><a name="AttributeSet"></a><span class='keyword'>data</span> <span class='conid'>AttributeSet</span> <span class='keyglyph'>=</span> <span class='conid'>AttribSet</span> <span class='conid'>ExName</span> <span class='conid'>UsedAttribSets</span> <span class='conid'>Template</span>-<a name="line-121"></a> <span class='keyword'>deriving</span> <span class='conid'>Show</span>-<a name="line-122"></a>-<a name="line-123"></a><span class='comment'>-- -------------------</span>-<a name="line-124"></a><span class='comment'>-- Whitespace-stripping</span>-<a name="line-125"></a>-<a name="line-126"></a><a name="NTest"></a><span class='keyword'>type</span> <span class='conid'>NTest</span> <span class='keyglyph'>=</span> <span class='conid'>ExName</span> -<a name="line-127"></a>-<a name="line-128"></a><a name="parseNTest"></a><span class='definition'>parseNTest</span> <span class='keyglyph'>::</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>NTest</span>-<a name="line-129"></a><span class='definition'>parseNTest</span> <span class='keyglyph'>=</span> <span class='varid'>parseExName</span>-<a name="line-130"></a>-<a name="line-131"></a><a name="Strips"></a><span class='keyword'>type</span> <span class='conid'>Strips</span> <span class='keyglyph'>=</span> <span class='conid'>Map</span> <span class='conid'>NTest</span> <span class='conid'>Bool</span>-<a name="line-132"></a>-<a name="line-133"></a><span class='comment'>-- Lookup whether an element of the source document must be stripped.</span>-<a name="line-134"></a><span class='comment'>-- Strip descriptions are ordered by descending import precedence:</span>-<a name="line-135"></a>-<a name="line-136"></a><a name="lookupStrip"></a><span class='definition'>lookupStrip</span> <span class='keyglyph'>::</span> <span class='conid'>ExName</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>Strips</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span>-<a name="line-137"></a><span class='definition'>lookupStrip</span> <span class='varid'>name</span>-<a name="line-138"></a> <span class='keyglyph'>=</span> <span class='varid'>head</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='varop'>++</span> <span class='keyglyph'>[</span><span class='conid'>False</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>mapMaybe</span> <span class='layout'>(</span><span class='varid'>lookupStrip1</span> <span class='varid'>name</span><span class='layout'>)</span>-<a name="line-139"></a>-<a name="line-140"></a><span class='comment'>-- Try to match a qualified name with a set of strip- and preserve-space attributes of the same import precedence:</span>-<a name="line-141"></a>-<a name="line-142"></a><a name="lookupStrip1"></a><span class='definition'>lookupStrip1</span> <span class='keyglyph'>::</span> <span class='conid'>ExName</span> <span class='keyglyph'>-></span> <span class='conid'>Strips</span> <span class='keyglyph'>-></span> <span class='conid'>Maybe</span> <span class='conid'>Bool</span>-<a name="line-143"></a><span class='definition'>lookupStrip1</span> <span class='varid'>name</span> <span class='varid'>spec</span> <span class='keyglyph'>=</span> -<a name="line-144"></a> <span class='keyword'>if</span> <span class='varid'>isJust</span> <span class='varid'>nameMatch</span> <span class='keyword'>then</span> <span class='varid'>nameMatch</span>-<a name="line-145"></a> <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>isJust</span> <span class='varid'>prefMatch</span> <span class='keyword'>then</span> <span class='varid'>prefMatch</span>-<a name="line-146"></a> <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>isJust</span> <span class='varid'>globMatch</span> <span class='keyword'>then</span> <span class='varid'>globMatch</span>-<a name="line-147"></a> <span class='keyword'>else</span> <span class='conid'>Nothing</span>-<a name="line-148"></a> <span class='keyword'>where</span>-<a name="line-149"></a> <span class='varid'>nameMatch</span> <span class='keyglyph'>=</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>lookup</span> <span class='layout'>(</span> <span class='varid'>name</span> <span class='layout'>)</span> <span class='varid'>spec</span>-<a name="line-150"></a> <span class='varid'>prefMatch</span> <span class='keyglyph'>=</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>lookup</span> <span class='layout'>(</span><span class='conid'>ExName</span> <span class='str'>"*"</span> <span class='varop'>$</span> <span class='varid'>exUri</span> <span class='varid'>name</span><span class='layout'>)</span> <span class='varid'>spec</span>-<a name="line-151"></a> <span class='varid'>globMatch</span> <span class='keyglyph'>=</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>lookup</span> <span class='layout'>(</span><span class='conid'>ExName</span> <span class='str'>"*"</span> <span class='str'>""</span> <span class='layout'>)</span> <span class='varid'>spec</span>-<a name="line-152"></a>-<a name="line-153"></a><a name="feedSpaces"></a><span class='definition'>feedSpaces</span> <span class='keyglyph'>::</span> <span class='conid'>Bool</span> <span class='keyglyph'>-></span> <span class='keyglyph'>[</span><span class='conid'>NTest</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>Strips</span> <span class='keyglyph'>-></span> <span class='conid'>Strips</span>-<a name="line-154"></a><span class='definition'>feedSpaces</span> <span class='varid'>strip</span> <span class='varid'>tests</span> <span class='keyglyph'>=</span> -<a name="line-155"></a> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>unionWithKey</span> <span class='varid'>feedErr</span> <span class='varop'>$</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>fromListWithKey</span> <span class='varid'>feedErr</span> <span class='varop'>$</span> <span class='varid'>zip</span> <span class='varid'>tests</span> <span class='varop'>$</span> <span class='varid'>repeat</span> <span class='varid'>strip</span>-<a name="line-156"></a> <span class='keyword'>where</span>-<a name="line-157"></a> <span class='varid'>feedErr</span> <span class='varid'>k</span> <span class='keyglyph'>=</span> <span class='varid'>error</span> <span class='varop'>$</span> <span class='str'>"Ambiguous strip- or preserve-space rules for "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>k</span>-<a name="line-158"></a>-<a name="line-159"></a><a name="feedStrips"></a><span class='definition'>feedStrips</span><span class='layout'>,</span> <span class='varid'>feedPreserves</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>NTest</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>Strips</span> <span class='keyglyph'>-></span> <span class='conid'>Strips</span>-<a name="line-160"></a><span class='definition'>feedStrips</span> <span class='keyglyph'>=</span> <span class='varid'>feedSpaces</span> <span class='conid'>True</span>-<a name="line-161"></a><a name="feedPreserves"></a><span class='definition'>feedPreserves</span> <span class='keyglyph'>=</span> <span class='varid'>feedSpaces</span> <span class='conid'>False</span>-<a name="line-162"></a>-<a name="line-163"></a><a name="stripDocument"></a><span class='definition'>stripDocument</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>Strips</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span>-<a name="line-164"></a><span class='definition'>stripDocument</span> <span class='varid'>strips</span>-<a name="line-165"></a> <span class='keyglyph'>=</span> <span class='varid'>stripSpaces</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='keyword'>_</span> <span class='varid'>n</span> <span class='keyglyph'>-></span> <span class='varid'>lookupStrip</span> <span class='layout'>(</span><span class='varid'>mkExName</span> <span class='varop'>$</span> <span class='varid'>fromJust</span> <span class='varop'>$</span> <span class='varid'>getElemName</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='varid'>strips</span><span class='layout'>)</span> <span class='conid'>False</span>-<a name="line-166"></a>-<a name="line-167"></a><a name="stripStylesheet"></a><span class='definition'>stripStylesheet</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span>-<a name="line-168"></a><span class='definition'>stripStylesheet</span>-<a name="line-169"></a> <span class='keyglyph'>=</span> <span class='varid'>stripSpaces</span> <span class='varid'>isStrip</span> <span class='conid'>True</span>-<a name="line-170"></a> <span class='keyword'>where</span>-<a name="line-171"></a> <span class='varid'>isStrip</span> <span class='varid'>strip'</span> <span class='varid'>node</span>-<a name="line-172"></a> <span class='keyglyph'>=</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>isElemType</span> <span class='varid'>xsltText</span> <span class='varid'>node</span><span class='layout'>)</span>-<a name="line-173"></a> <span class='varop'>&&</span>-<a name="line-174"></a> <span class='layout'>(</span> <span class='varid'>maybe</span> <span class='varid'>strip'</span> <span class='layout'>(</span><span class='varop'>==</span><span class='str'>"default"</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>tryFetchAttribute</span> <span class='varid'>node</span> <span class='varid'>xmlSpace</span> <span class='layout'>)</span>-<a name="line-175"></a>-<a name="line-176"></a><a name="stripSpaces"></a><span class='definition'>stripSpaces</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Bool</span> <span class='keyglyph'>-></span> <span class='conid'>XNode</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>Bool</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>XmlTree</span>-<a name="line-177"></a><span class='definition'>stripSpaces</span> <span class='varid'>f</span> <span class='varid'>def</span> <span class='keyglyph'>=</span> -<a name="line-178"></a> <span class='varid'>fromJustErr</span> <span class='str'>"stripSpaces (internal error)"</span> <span class='varop'>.</span> <span class='varid'>filterTreeCtx</span> <span class='varid'>step</span> <span class='varid'>def</span>-<a name="line-179"></a> <span class='keyword'>where</span>-<a name="line-180"></a> <span class='varid'>step</span> <span class='varid'>strip</span> <span class='varid'>node</span> -<a name="line-181"></a> <span class='keyglyph'>|</span> <span class='varid'>isElem</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>f</span> <span class='varid'>strip</span> <span class='varid'>node</span><span class='layout'>,</span> <span class='conid'>True</span><span class='layout'>)</span>-<a name="line-182"></a> <span class='keyglyph'>|</span> <span class='varid'>isWhitespaceNode</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>strip</span> <span class='layout'>,</span> <span class='varid'>not</span> <span class='varid'>strip</span><span class='layout'>)</span>-<a name="line-183"></a> <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>strip</span> <span class='layout'>,</span> <span class='conid'>True</span><span class='layout'>)</span>-<a name="line-184"></a>-<a name="line-185"></a><span class='comment'>-- -------------------</span>-<a name="line-186"></a><span class='comment'>-- Namespace aliases and exclusion</span>-<a name="line-187"></a>-<a name="line-188"></a><span class='comment'>-- Map a namespace URI to a new URI tuple,</span>-<a name="line-189"></a>-<a name="line-190"></a><a name="NSAliasing"></a><span class='keyword'>type</span> <span class='conid'>NSAliasing</span> <span class='keyglyph'>=</span> <span class='conid'>Map</span> <span class='conid'>String</span> <span class='conid'>String</span>-<a name="line-191"></a>-<a name="line-192"></a><a name="addAlias"></a><span class='definition'>addAlias</span> <span class='keyglyph'>::</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>NSAliasing</span> <span class='keyglyph'>-></span> <span class='conid'>NSAliasing</span>-<a name="line-193"></a><span class='definition'>addAlias</span> <span class='varid'>uris</span> <span class='varid'>oldPr</span> <span class='varid'>newPr</span>-<a name="line-194"></a> <span class='keyglyph'>=</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>insertWith</span> <span class='layout'>(</span><span class='varid'>error</span> <span class='varop'>$</span> <span class='str'>"duplicate mapping for "</span> <span class='varop'>++</span> <span class='varid'>old</span><span class='layout'>)</span> <span class='varid'>old</span> <span class='varid'>new</span>-<a name="line-195"></a> <span class='keyword'>where</span>-<a name="line-196"></a> <span class='varid'>old</span> <span class='keyglyph'>=</span> <span class='varid'>lookupPrefix</span> <span class='varid'>uris</span> <span class='varid'>oldPr</span>-<a name="line-197"></a> <span class='varid'>new</span> <span class='keyglyph'>=</span> <span class='varid'>lookupPrefix</span> <span class='varid'>uris</span> <span class='varid'>newPr</span>-<a name="line-198"></a>-<a name="line-199"></a><span class='comment'>-- lookup an alias in a namespace-mapping.</span>-<a name="line-200"></a><span class='comment'>-- returns the original name, if there is no alias for that name.</span>-<a name="line-201"></a>-<a name="line-202"></a><a name="lookupAlias"></a><span class='definition'>lookupAlias</span> <span class='keyglyph'>::</span> <span class='conid'>NSAliasing</span> <span class='keyglyph'>-></span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='conid'>QName</span>-<a name="line-203"></a><span class='definition'>lookupAlias</span> <span class='varid'>nsm</span> <span class='varid'>qn</span>-<a name="line-204"></a> <span class='keyglyph'>=</span> <span class='varid'>mkQName</span> <span class='layout'>(</span><span class='varid'>namePrefix</span> <span class='varid'>qn</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>localPart</span> <span class='varid'>qn</span><span class='layout'>)</span> -<a name="line-205"></a> <span class='varop'>$</span> <span class='varid'>maybe</span> <span class='layout'>(</span><span class='varid'>namespaceUri</span> <span class='varid'>qn</span><span class='layout'>)</span> <span class='varid'>id</span>-<a name="line-206"></a> <span class='varop'>$</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>lookup</span> <span class='layout'>(</span><span class='varid'>namespaceUri</span> <span class='varid'>qn</span><span class='layout'>)</span> <span class='varid'>nsm</span>-<a name="line-207"></a> -<a name="line-208"></a><a name="aliasUriMapping"></a><span class='definition'>aliasUriMapping</span> <span class='keyglyph'>::</span> <span class='conid'>NSAliasing</span> <span class='keyglyph'>-></span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-></span> <span class='conid'>UriMapping</span>-<a name="line-209"></a><span class='definition'>aliasUriMapping</span> <span class='varid'>nsm</span> <span class='keyglyph'>=</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>map</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>uri</span> <span class='keyglyph'>-></span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>findWithDefault</span> <span class='varid'>uri</span> <span class='varid'>uri</span> <span class='varid'>nsm</span><span class='layout'>)</span>-<a name="line-210"></a>-<a name="line-211"></a><span class='comment'>-- -------------------</span>-<a name="line-212"></a><span class='comment'>-- Templates:</span>-<a name="line-213"></a>-<a name="line-214"></a><a name="Template"></a><span class='keyword'>data</span> <span class='conid'>Template</span>-<a name="line-215"></a> <span class='keyglyph'>=</span> <span class='conid'>TemplComposite</span> <span class='keyglyph'>[</span><span class='conid'>Template</span><span class='keyglyph'>]</span> -<a name="line-216"></a> <span class='keyglyph'>|</span> <span class='conid'>TemplForEach</span> <span class='conid'>SelectExpr</span> <span class='keyglyph'>[</span><span class='conid'>SortKey</span><span class='keyglyph'>]</span> <span class='conid'>Template</span>-<a name="line-217"></a> <span class='keyglyph'>|</span> <span class='conid'>TemplChoose</span> <span class='keyglyph'>[</span><span class='conid'>When</span><span class='keyglyph'>]</span> <span class='comment'>-- otherwise will be represented by <xsl:when test="true()"/> in the abstract Syntax</span>-<a name="line-218"></a> <span class='keyglyph'>|</span> <span class='conid'>TemplMessage</span> <span class='conid'>Bool</span> <span class='comment'>-- halt?</span>-<a name="line-219"></a> <span class='conid'>Template</span> <span class='comment'>-- content </span>-<a name="line-220"></a> <span class='keyglyph'>|</span> <span class='conid'>TemplElement</span> <span class='conid'>ComputedQName</span>-<a name="line-221"></a> <span class='conid'>UriMapping</span> <span class='comment'>-- Namespaces which *must* be added</span>-<a name="line-222"></a> <span class='conid'>UsedAttribSets</span> <span class='comment'>-- </span>-<a name="line-223"></a> <span class='conid'>Template</span> <span class='comment'>-- content</span>-<a name="line-224"></a> <span class='keyglyph'>|</span> <span class='conid'>TemplAttribute</span> <span class='conid'>ComputedQName</span>-<a name="line-225"></a> <span class='conid'>Template</span> <span class='comment'>-- content</span>-<a name="line-226"></a> <span class='keyglyph'>|</span> <span class='conid'>TemplText</span> <span class='conid'>String</span>-<a name="line-227"></a> <span class='keyglyph'>|</span> <span class='conid'>TemplValueOf</span> <span class='conid'>StringExpr</span> <span class='comment'>-- select</span>-<a name="line-228"></a> <span class='keyglyph'>|</span> <span class='conid'>TemplComment</span> <span class='conid'>Template</span>-<a name="line-229"></a> <span class='keyglyph'>|</span> <span class='conid'>TemplProcInstr</span> <span class='conid'>StringExpr</span> <span class='comment'>-- name</span>-<a name="line-230"></a> <span class='conid'>Template</span> <span class='comment'>-- content</span>-<a name="line-231"></a> <span class='keyglyph'>|</span> <span class='conid'>TemplApply</span> <span class='layout'>(</span><span class='conid'>Maybe</span> <span class='conid'>SelectExpr</span><span class='layout'>)</span> -<a name="line-232"></a> <span class='layout'>(</span><span class='conid'>Maybe</span> <span class='conid'>ExName</span><span class='layout'>)</span> <span class='comment'>-- mode</span>-<a name="line-233"></a> <span class='layout'>(</span><span class='conid'>Map</span> <span class='conid'>ExName</span> <span class='conid'>Variable</span><span class='layout'>)</span> <span class='comment'>-- passed arguments</span>-<a name="line-234"></a> <span class='keyglyph'>[</span><span class='conid'>SortKey</span><span class='keyglyph'>]</span>-<a name="line-235"></a> <span class='keyglyph'>|</span> <span class='conid'>TemplApplyImports</span>-<a name="line-236"></a> <span class='keyglyph'>|</span> <span class='conid'>TemplVariable</span> <span class='conid'>Variable</span>-<a name="line-237"></a> <span class='keyglyph'>|</span> <span class='conid'>TemplCall</span> <span class='conid'>ExName</span> <span class='comment'>-- name</span>-<a name="line-238"></a> <span class='layout'>(</span><span class='conid'>Map</span> <span class='conid'>ExName</span> <span class='conid'>Variable</span><span class='layout'>)</span> <span class='comment'>-- passed arguments</span>-<a name="line-239"></a> <span class='keyglyph'>|</span> <span class='conid'>TemplCopy</span> <span class='conid'>UsedAttribSets</span>-<a name="line-240"></a> <span class='conid'>Template</span>-<a name="line-241"></a> <span class='keyglyph'>|</span> <span class='conid'>TemplCopyOf</span> <span class='conid'>Expr</span>-<a name="line-242"></a> <span class='keyword'>deriving</span> <span class='conid'>Show</span>-<a name="line-243"></a>-<a name="line-244"></a><a name="SortKey"></a><span class='keyword'>data</span> <span class='conid'>SortKey</span>-<a name="line-245"></a> <span class='keyglyph'>=</span> <span class='conid'>SortK</span> <span class='conid'>StringExpr</span> <span class='comment'>-- select</span>-<a name="line-246"></a> <span class='conid'>StringExpr</span> <span class='comment'>-- data-type: number or text(default)</span>-<a name="line-247"></a> <span class='conid'>StringExpr</span> <span class='comment'>-- order: ascending(default) or descending</span>-<a name="line-248"></a> <span class='keyword'>deriving</span> <span class='conid'>Show</span>-<a name="line-249"></a>-<a name="line-250"></a><a name="When"></a><span class='keyword'>data</span> <span class='conid'>When</span>-<a name="line-251"></a> <span class='keyglyph'>=</span> <span class='conid'>WhenPart</span> <span class='conid'>TestExpr</span> <span class='conid'>Template</span> -<a name="line-252"></a> <span class='keyword'>deriving</span> <span class='conid'>Show</span>-<a name="line-253"></a>-<a name="line-254"></a><a name="ComputedQName"></a><span class='keyword'>data</span> <span class='conid'>ComputedQName</span>-<a name="line-255"></a> <span class='keyglyph'>=</span> <span class='conid'>LiteralQName</span> <span class='conid'>QName</span>-<a name="line-256"></a> <span class='keyglyph'>|</span> <span class='conid'>CompQName</span> <span class='conid'>UriMapping</span> <span class='comment'>-- namespace-env</span>-<a name="line-257"></a> <span class='conid'>StringExpr</span> <span class='comment'>-- name</span>-<a name="line-258"></a> <span class='conid'>StringExpr</span> <span class='comment'>-- namespace</span>-<a name="line-259"></a> <span class='keyword'>deriving</span> <span class='conid'>Show</span>-<a name="line-260"></a>-<a name="line-261"></a><span class='comment'>-- -------------------</span>-<a name="line-262"></a><span class='comment'>-- different kinds of expressions</span>-<a name="line-263"></a>-<a name="line-264"></a><a name="SelectExpr"></a><span class='keyword'>newtype</span> <span class='conid'>SelectExpr</span> <span class='keyglyph'>=</span> <span class='conid'>SelectExpr</span> <span class='conid'>Expr</span> <span class='keyword'>deriving</span> <span class='conid'>Show</span>-<a name="line-265"></a><a name="TestExpr"></a><span class='keyword'>newtype</span> <span class='conid'>TestExpr</span> <span class='keyglyph'>=</span> <span class='conid'>TestExpr</span> <span class='conid'>Expr</span> <span class='keyword'>deriving</span> <span class='conid'>Show</span>-<a name="line-266"></a><a name="StringExpr"></a><span class='keyword'>newtype</span> <span class='conid'>StringExpr</span> <span class='keyglyph'>=</span> <span class='conid'>StringExpr</span> <span class='conid'>Expr</span> <span class='keyword'>deriving</span> <span class='conid'>Show</span>-<a name="line-267"></a><a name="MatchExpr"></a><span class='keyword'>newtype</span> <span class='conid'>MatchExpr</span> <span class='keyglyph'>=</span> <span class='conid'>MatchExpr</span> <span class='conid'>Expr</span> <span class='keyword'>deriving</span> <span class='conid'>Show</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-XSLT-Names.html
@@ -1,162 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Text.XML.HXT.XSLT.Application-<a name="line-5"></a> Copyright : Copyright (C) 2006 Tim Walkenhorst, Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe@fh-wedel.de)-<a name="line-9"></a> Stability : experimental-<a name="line-10"></a> Portability: portable-<a name="line-11"></a> Version : $Id: Names.hs,v 1.2 2006/11/11 15:36:05 hxml Exp $-<a name="line-12"></a>-<a name="line-13"></a> Names and constants for HXSLT-<a name="line-14"></a>-<a name="line-15"></a>-}</span>-<a name="line-16"></a>-<a name="line-17"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-18"></a>-<a name="line-19"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XSLT</span><span class='varop'>.</span><span class='conid'>Names</span>-<a name="line-20"></a><span class='keyword'>where</span>-<a name="line-21"></a>-<a name="line-22"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XSLT</span><span class='varop'>.</span><span class='conid'>Common</span>-<a name="line-23"></a>-<a name="line-24"></a><a name="xsltPrefix"></a><span class='definition'>xsltPrefix</span> <span class='keyglyph'>::</span> <span class='conid'>String</span>-<a name="line-25"></a><span class='definition'>xsltPrefix</span> <span class='keyglyph'>=</span> <span class='str'>"xsl"</span>-<a name="line-26"></a>-<a name="line-27"></a><a name="xsltUri"></a><span class='definition'>xsltUri</span> <span class='keyglyph'>::</span> <span class='conid'>String</span>-<a name="line-28"></a><span class='definition'>xsltUri</span> <span class='keyglyph'>=</span> <span class='str'>"http://www.w3.org/1999/XSL/Transform"</span>-<a name="line-29"></a>-<a name="line-30"></a><a name="mkXsltName"></a><span class='definition'>mkXsltName</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>QName</span>-<a name="line-31"></a><span class='definition'>mkXsltName</span> <span class='varid'>name</span> <span class='keyglyph'>=</span> <span class='varid'>mkQName</span> <span class='varid'>xsltPrefix</span> <span class='varid'>name</span> <span class='varid'>xsltUri</span>-<a name="line-32"></a>-<a name="line-33"></a><a name="mkXsltAttribName"></a><span class='definition'>mkXsltAttribName</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>QName</span>-<a name="line-34"></a><span class='definition'>mkXsltAttribName</span> <span class='varid'>name</span> <span class='keyglyph'>=</span> <span class='varid'>mkQName</span> <span class='str'>""</span> <span class='varid'>name</span> <span class='str'>""</span>-<a name="line-35"></a>-<a name="line-36"></a><a name="xsltTransform"></a><span class='comment'>-- XSLT-Element QNames</span>-<a name="line-37"></a><span class='definition'>xsltTransform</span>-<a name="line-38"></a> <span class='layout'>,</span> <span class='varid'>xsltStylesheet</span>-<a name="line-39"></a> <span class='layout'>,</span> <span class='varid'>xsltMessage</span>-<a name="line-40"></a> <span class='layout'>,</span> <span class='varid'>xsltForEach</span>-<a name="line-41"></a> <span class='layout'>,</span> <span class='varid'>xsltChoose</span>-<a name="line-42"></a> <span class='layout'>,</span> <span class='varid'>xsltWhen</span>-<a name="line-43"></a> <span class='layout'>,</span> <span class='varid'>xsltOtherwise</span>-<a name="line-44"></a> <span class='layout'>,</span> <span class='varid'>xsltIf</span>-<a name="line-45"></a> <span class='layout'>,</span> <span class='varid'>xsltElement</span>-<a name="line-46"></a> <span class='layout'>,</span> <span class='varid'>xsltAttribute</span>-<a name="line-47"></a> <span class='layout'>,</span> <span class='varid'>xsltText</span>-<a name="line-48"></a> <span class='layout'>,</span> <span class='varid'>xsltValueOf</span>-<a name="line-49"></a> <span class='layout'>,</span> <span class='varid'>xsltComment</span>-<a name="line-50"></a> <span class='layout'>,</span> <span class='varid'>xsltProcInstr</span>-<a name="line-51"></a> <span class='layout'>,</span> <span class='varid'>xsltInclude</span>-<a name="line-52"></a> <span class='layout'>,</span> <span class='varid'>xsltImport</span>-<a name="line-53"></a> <span class='layout'>,</span> <span class='varid'>xsltTemplate</span>-<a name="line-54"></a> <span class='layout'>,</span> <span class='varid'>xsltApplyTemplates</span>-<a name="line-55"></a> <span class='layout'>,</span> <span class='varid'>xsltApplyImports</span>-<a name="line-56"></a> <span class='layout'>,</span> <span class='varid'>xsltCallTemplate</span>-<a name="line-57"></a> <span class='layout'>,</span> <span class='varid'>xsltVariable</span>-<a name="line-58"></a> <span class='layout'>,</span> <span class='varid'>xsltParam</span>-<a name="line-59"></a> <span class='layout'>,</span> <span class='varid'>xsltWithParam</span>-<a name="line-60"></a> <span class='layout'>,</span> <span class='varid'>xsltAttributeSet</span>-<a name="line-61"></a> <span class='layout'>,</span> <span class='varid'>xsltCopy</span>-<a name="line-62"></a> <span class='layout'>,</span> <span class='varid'>xsltCopyOf</span>-<a name="line-63"></a> <span class='layout'>,</span> <span class='varid'>xsltSort</span>-<a name="line-64"></a> <span class='layout'>,</span> <span class='varid'>xsltStripSpace</span>-<a name="line-65"></a> <span class='layout'>,</span> <span class='varid'>xsltPreserveSpace</span>-<a name="line-66"></a> <span class='layout'>,</span> <span class='varid'>xsltNamespaceAlias</span> <span class='keyglyph'>::</span> <span class='conid'>QName</span>-<a name="line-67"></a>-<a name="line-68"></a><span class='definition'>xsltTransform</span> <span class='keyglyph'>=</span> <span class='varid'>mkXsltName</span> <span class='str'>"transform"</span>-<a name="line-69"></a><a name="xsltStylesheet"></a><span class='definition'>xsltStylesheet</span> <span class='keyglyph'>=</span> <span class='varid'>mkXsltName</span> <span class='str'>"stylesheet"</span>-<a name="line-70"></a><a name="xsltMessage"></a><span class='definition'>xsltMessage</span> <span class='keyglyph'>=</span> <span class='varid'>mkXsltName</span> <span class='str'>"message"</span>-<a name="line-71"></a><a name="xsltForEach"></a><span class='definition'>xsltForEach</span> <span class='keyglyph'>=</span> <span class='varid'>mkXsltName</span> <span class='str'>"for-each"</span>-<a name="line-72"></a><a name="xsltChoose"></a><span class='definition'>xsltChoose</span> <span class='keyglyph'>=</span> <span class='varid'>mkXsltName</span> <span class='str'>"choose"</span>-<a name="line-73"></a><a name="xsltWhen"></a><span class='definition'>xsltWhen</span> <span class='keyglyph'>=</span> <span class='varid'>mkXsltName</span> <span class='str'>"when"</span>-<a name="line-74"></a><a name="xsltOtherwise"></a><span class='definition'>xsltOtherwise</span> <span class='keyglyph'>=</span> <span class='varid'>mkXsltName</span> <span class='str'>"otherwise"</span>-<a name="line-75"></a><a name="xsltIf"></a><span class='definition'>xsltIf</span> <span class='keyglyph'>=</span> <span class='varid'>mkXsltName</span> <span class='str'>"if"</span>-<a name="line-76"></a><a name="xsltElement"></a><span class='definition'>xsltElement</span> <span class='keyglyph'>=</span> <span class='varid'>mkXsltName</span> <span class='str'>"element"</span>-<a name="line-77"></a><a name="xsltAttribute"></a><span class='definition'>xsltAttribute</span> <span class='keyglyph'>=</span> <span class='varid'>mkXsltName</span> <span class='str'>"attribute"</span>-<a name="line-78"></a><a name="xsltText"></a><span class='definition'>xsltText</span> <span class='keyglyph'>=</span> <span class='varid'>mkXsltName</span> <span class='str'>"text"</span>-<a name="line-79"></a><a name="xsltValueOf"></a><span class='definition'>xsltValueOf</span> <span class='keyglyph'>=</span> <span class='varid'>mkXsltName</span> <span class='str'>"value-of"</span>-<a name="line-80"></a><a name="xsltComment"></a><span class='definition'>xsltComment</span> <span class='keyglyph'>=</span> <span class='varid'>mkXsltName</span> <span class='str'>"comment"</span>-<a name="line-81"></a><a name="xsltProcInstr"></a><span class='definition'>xsltProcInstr</span> <span class='keyglyph'>=</span> <span class='varid'>mkXsltName</span> <span class='str'>"processing-instruction"</span>-<a name="line-82"></a><a name="xsltInclude"></a><span class='definition'>xsltInclude</span> <span class='keyglyph'>=</span> <span class='varid'>mkXsltName</span> <span class='str'>"include"</span>-<a name="line-83"></a><a name="xsltImport"></a><span class='definition'>xsltImport</span> <span class='keyglyph'>=</span> <span class='varid'>mkXsltName</span> <span class='str'>"import"</span>-<a name="line-84"></a><a name="xsltTemplate"></a><span class='definition'>xsltTemplate</span> <span class='keyglyph'>=</span> <span class='varid'>mkXsltName</span> <span class='str'>"template"</span>-<a name="line-85"></a><a name="xsltApplyTemplates"></a><span class='definition'>xsltApplyTemplates</span> <span class='keyglyph'>=</span> <span class='varid'>mkXsltName</span> <span class='str'>"apply-templates"</span>-<a name="line-86"></a><a name="xsltApplyImports"></a><span class='definition'>xsltApplyImports</span> <span class='keyglyph'>=</span> <span class='varid'>mkXsltName</span> <span class='str'>"apply-imports"</span>-<a name="line-87"></a><a name="xsltCallTemplate"></a><span class='definition'>xsltCallTemplate</span> <span class='keyglyph'>=</span> <span class='varid'>mkXsltName</span> <span class='str'>"call-template"</span>-<a name="line-88"></a><a name="xsltVariable"></a><span class='definition'>xsltVariable</span> <span class='keyglyph'>=</span> <span class='varid'>mkXsltName</span> <span class='str'>"variable"</span>-<a name="line-89"></a><a name="xsltParam"></a><span class='definition'>xsltParam</span> <span class='keyglyph'>=</span> <span class='varid'>mkXsltName</span> <span class='str'>"param"</span>-<a name="line-90"></a><a name="xsltWithParam"></a><span class='definition'>xsltWithParam</span> <span class='keyglyph'>=</span> <span class='varid'>mkXsltName</span> <span class='str'>"with-param"</span>-<a name="line-91"></a><a name="xsltAttributeSet"></a><span class='definition'>xsltAttributeSet</span> <span class='keyglyph'>=</span> <span class='varid'>mkXsltName</span> <span class='str'>"attribute-set"</span>-<a name="line-92"></a><a name="xsltCopy"></a><span class='definition'>xsltCopy</span> <span class='keyglyph'>=</span> <span class='varid'>mkXsltName</span> <span class='str'>"copy"</span>-<a name="line-93"></a><a name="xsltCopyOf"></a><span class='definition'>xsltCopyOf</span> <span class='keyglyph'>=</span> <span class='varid'>mkXsltName</span> <span class='str'>"copy-of"</span>-<a name="line-94"></a><a name="xsltSort"></a><span class='definition'>xsltSort</span> <span class='keyglyph'>=</span> <span class='varid'>mkXsltName</span> <span class='str'>"sort"</span>-<a name="line-95"></a><a name="xsltStripSpace"></a><span class='definition'>xsltStripSpace</span> <span class='keyglyph'>=</span> <span class='varid'>mkXsltName</span> <span class='str'>"strip-space"</span>-<a name="line-96"></a><a name="xsltPreserveSpace"></a><span class='definition'>xsltPreserveSpace</span> <span class='keyglyph'>=</span> <span class='varid'>mkXsltName</span> <span class='str'>"preserve-space"</span>-<a name="line-97"></a><a name="xsltNamespaceAlias"></a><span class='definition'>xsltNamespaceAlias</span> <span class='keyglyph'>=</span> <span class='varid'>mkXsltName</span> <span class='str'>"namespace-alias"</span>-<a name="line-98"></a>-<a name="line-99"></a><a name="xsltTerminate"></a><span class='comment'>-- XSLT-Attribute QNames</span>-<a name="line-100"></a><span class='definition'>xsltTerminate</span>-<a name="line-101"></a> <span class='layout'>,</span> <span class='varid'>xsltSelect</span>-<a name="line-102"></a> <span class='layout'>,</span> <span class='varid'>xsltTest</span>-<a name="line-103"></a> <span class='layout'>,</span> <span class='varid'>xsltName</span>-<a name="line-104"></a> <span class='layout'>,</span> <span class='varid'>xsltNamespace</span>-<a name="line-105"></a> <span class='layout'>,</span> <span class='varid'>xsltUseAttributeSets</span>-<a name="line-106"></a> <span class='layout'>,</span> <span class='varid'>xsltHRef</span>-<a name="line-107"></a> <span class='layout'>,</span> <span class='varid'>xsltMatch</span>-<a name="line-108"></a> <span class='layout'>,</span> <span class='varid'>xsltPriority</span>-<a name="line-109"></a> <span class='layout'>,</span> <span class='varid'>xsltMode</span>-<a name="line-110"></a> <span class='layout'>,</span> <span class='varid'>xsltDataType</span>-<a name="line-111"></a> <span class='layout'>,</span> <span class='varid'>xsltOrder</span>-<a name="line-112"></a> <span class='layout'>,</span> <span class='varid'>xsltElements</span>-<a name="line-113"></a> <span class='layout'>,</span> <span class='varid'>xsltStylesheetPrefix</span>-<a name="line-114"></a> <span class='layout'>,</span> <span class='varid'>xsltResultPrefix</span>-<a name="line-115"></a> <span class='layout'>,</span> <span class='varid'>xsltVersion</span>-<a name="line-116"></a> <span class='layout'>,</span> <span class='varid'>xsltExlcudeResultPrefixes</span>-<a name="line-117"></a> <span class='layout'>,</span> <span class='varid'>xsltExtensionElementPrefixes</span> <span class='keyglyph'>::</span> <span class='conid'>QName</span>-<a name="line-118"></a>-<a name="line-119"></a><span class='definition'>xsltTerminate</span> <span class='keyglyph'>=</span> <span class='varid'>mkXsltAttribName</span> <span class='str'>"terminate"</span> -<a name="line-120"></a><a name="xsltSelect"></a><span class='definition'>xsltSelect</span> <span class='keyglyph'>=</span> <span class='varid'>mkXsltAttribName</span> <span class='str'>"select"</span> -<a name="line-121"></a><a name="xsltTest"></a><span class='definition'>xsltTest</span> <span class='keyglyph'>=</span> <span class='varid'>mkXsltAttribName</span> <span class='str'>"test"</span> -<a name="line-122"></a><a name="xsltName"></a><span class='definition'>xsltName</span> <span class='keyglyph'>=</span> <span class='varid'>mkXsltAttribName</span> <span class='str'>"name"</span>-<a name="line-123"></a><a name="xsltNamespace"></a><span class='definition'>xsltNamespace</span> <span class='keyglyph'>=</span> <span class='varid'>mkXsltAttribName</span> <span class='str'>"namespace"</span>-<a name="line-124"></a><a name="xsltUseAttributeSets"></a><span class='definition'>xsltUseAttributeSets</span> <span class='keyglyph'>=</span> <span class='varid'>mkXsltAttribName</span> <span class='str'>"use-attribute-sets"</span>-<a name="line-125"></a><a name="xsltHRef"></a><span class='definition'>xsltHRef</span> <span class='keyglyph'>=</span> <span class='varid'>mkXsltAttribName</span> <span class='str'>"href"</span>-<a name="line-126"></a><a name="xsltMatch"></a><span class='definition'>xsltMatch</span> <span class='keyglyph'>=</span> <span class='varid'>mkXsltAttribName</span> <span class='str'>"match"</span>-<a name="line-127"></a><a name="xsltPriority"></a><span class='definition'>xsltPriority</span> <span class='keyglyph'>=</span> <span class='varid'>mkXsltAttribName</span> <span class='str'>"priority"</span>-<a name="line-128"></a><a name="xsltMode"></a><span class='definition'>xsltMode</span> <span class='keyglyph'>=</span> <span class='varid'>mkXsltAttribName</span> <span class='str'>"mode"</span>-<a name="line-129"></a><a name="xsltDataType"></a><span class='definition'>xsltDataType</span> <span class='keyglyph'>=</span> <span class='varid'>mkXsltAttribName</span> <span class='str'>"data-type"</span>-<a name="line-130"></a><a name="xsltOrder"></a><span class='definition'>xsltOrder</span> <span class='keyglyph'>=</span> <span class='varid'>mkXsltAttribName</span> <span class='str'>"order"</span>-<a name="line-131"></a><a name="xsltElements"></a><span class='definition'>xsltElements</span> <span class='keyglyph'>=</span> <span class='varid'>mkXsltAttribName</span> <span class='str'>"elements"</span>-<a name="line-132"></a><a name="xsltStylesheetPrefix"></a><span class='definition'>xsltStylesheetPrefix</span> <span class='keyglyph'>=</span> <span class='varid'>mkXsltAttribName</span> <span class='str'>"stylesheet-prefix"</span>-<a name="line-133"></a><a name="xsltResultPrefix"></a><span class='definition'>xsltResultPrefix</span> <span class='keyglyph'>=</span> <span class='varid'>mkXsltAttribName</span> <span class='str'>"result-prefix"</span>-<a name="line-134"></a><a name="xsltVersion"></a><span class='definition'>xsltVersion</span> <span class='keyglyph'>=</span> <span class='varid'>mkXsltAttribName</span> <span class='str'>"version"</span>-<a name="line-135"></a><a name="xsltExlcudeResultPrefixes"></a><span class='definition'>xsltExlcudeResultPrefixes</span> <span class='keyglyph'>=</span> <span class='varid'>mkXsltAttribName</span> <span class='str'>"exclude-result-prefixes"</span>-<a name="line-136"></a><a name="xsltExtensionElementPrefixes"></a><span class='definition'>xsltExtensionElementPrefixes</span> <span class='keyglyph'>=</span> <span class='varid'>mkXsltAttribName</span> <span class='str'>"extension-element-prefixes"</span>-<a name="line-137"></a>-<a name="line-138"></a><a name="xsltUseAttributeSetsLRE"></a><span class='comment'>-- XSLT-Attribute QNames for special Literal result element attributes</span>-<a name="line-139"></a><span class='definition'>xsltUseAttributeSetsLRE</span>-<a name="line-140"></a> <span class='layout'>,</span> <span class='varid'>xsltVersionLRE</span>-<a name="line-141"></a> <span class='layout'>,</span> <span class='varid'>xsltExlcudeResultPrefixesLRE</span>-<a name="line-142"></a> <span class='layout'>,</span> <span class='varid'>xsltExtensionElementPrefixesLRE</span> <span class='keyglyph'>::</span> <span class='conid'>QName</span>-<a name="line-143"></a>-<a name="line-144"></a><span class='definition'>xsltUseAttributeSetsLRE</span> <span class='keyglyph'>=</span> <span class='varid'>mkXsltName</span> <span class='str'>"use-attribute-sets"</span> -<a name="line-145"></a><a name="xsltVersionLRE"></a><span class='definition'>xsltVersionLRE</span> <span class='keyglyph'>=</span> <span class='varid'>mkXsltName</span> <span class='str'>"version"</span>-<a name="line-146"></a><a name="xsltExlcudeResultPrefixesLRE"></a><span class='definition'>xsltExlcudeResultPrefixesLRE</span> <span class='keyglyph'>=</span> <span class='varid'>mkXsltName</span> <span class='str'>"exclude-result-prefixes"</span>-<a name="line-147"></a><a name="xsltExtensionElementPrefixesLRE"></a><span class='definition'>xsltExtensionElementPrefixesLRE</span> <span class='keyglyph'>=</span> <span class='varid'>mkXsltName</span> <span class='str'>"extension-element-prefixes"</span>-<a name="line-148"></a>-<a name="line-149"></a><a name="xmlSpace"></a><span class='comment'>-- xml:space attribute-name</span>-<a name="line-150"></a><span class='definition'>xmlSpace</span> <span class='keyglyph'>::</span> <span class='conid'>QName</span>-<a name="line-151"></a>-<a name="line-152"></a><span class='definition'>xmlSpace</span> <span class='keyglyph'>=</span> <span class='varid'>mkQName</span> <span class='str'>"xml"</span> <span class='str'>"space"</span> <span class='varid'>xmlNamespace</span>-</pre></body>-</html>
− doc/hdoc/src/Text-XML-HXT-XSLT-XsltArrows.html
@@ -1,320 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html>-<head>-<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->-<title>Haskell Code by HsColour</title>-<link type='text/css' rel='stylesheet' href='hscolour.css' />-</head>-<body>-<pre><a name="line-1"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-2"></a>-<a name="line-3"></a><span class='comment'>{- |-<a name="line-4"></a> Module : Text.XML.HXT.XSLT.XsltArrows-<a name="line-5"></a> Copyright : Copyright (C) 2006 Tim Walkenhorst, Uwe Schmidt-<a name="line-6"></a> License : MIT-<a name="line-7"></a>-<a name="line-8"></a> Maintainer : Uwe Schmidt (uwe@fh-wedel.de)-<a name="line-9"></a> Stability : experimental-<a name="line-10"></a> Portability: portable-<a name="line-11"></a> Version : $Id: XsltArrows.hs,v 1.1 2006/11/11 15:36:05 hxml Exp $-<a name="line-12"></a>-<a name="line-13"></a> The HXT arrow interface for the XSLT module-<a name="line-14"></a>-<a name="line-15"></a> The application programming interface to the arrow modules of the Haskell XML Toolbox.-<a name="line-16"></a> This module exports all important arrows for input, output, parsing, validating and transforming XML.-<a name="line-17"></a> It also exports all basic datatypes and functions of the toolbox.-<a name="line-18"></a>-<a name="line-19"></a>-}</span>-<a name="line-20"></a>-<a name="line-21"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-22"></a>-<a name="line-23"></a>-<a name="line-24"></a><span class='keyword'>module</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XSLT</span><span class='varop'>.</span><span class='conid'>XsltArrows</span>-<a name="line-25"></a> <span class='layout'>(</span> <span class='varid'>xsltCompileStylesheet</span>-<a name="line-26"></a> <span class='layout'>,</span> <span class='varid'>xsltCompileStylesheetFromURI</span>-<a name="line-27"></a> <span class='layout'>,</span> <span class='varid'>xsltApplyStylesheet</span>-<a name="line-28"></a> <span class='layout'>,</span> <span class='varid'>xsltApplyStylesheetFromURI</span>-<a name="line-29"></a> <span class='layout'>,</span> <span class='conid'>CompiledStylesheet</span>-<a name="line-30"></a> <span class='layout'>)</span>-<a name="line-31"></a><span class='keyword'>where</span>-<a name="line-32"></a>-<a name="line-33"></a><span class='keyword'>import</span> <span class='conid'>Prelude</span> <span class='varid'>hiding</span> <span class='layout'>(</span> <span class='varid'>catch</span> <span class='layout'>)</span>-<a name="line-34"></a>-<a name="line-35"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Exception</span>-<a name="line-36"></a> <span class='layout'>(</span> <span class='conid'>SomeException</span>-<a name="line-37"></a> <span class='layout'>,</span> <span class='varid'>catch</span>-<a name="line-38"></a> <span class='layout'>,</span> <span class='varid'>evaluate</span> <span class='layout'>)</span>-<a name="line-39"></a>-<a name="line-40"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ListArrows</span>-<a name="line-41"></a>-<a name="line-42"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>-<a name="line-43"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlIOStateArrow</span>-<a name="line-44"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlArrow</span>-<a name="line-45"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>Arrow</span><span class='varop'>.</span><span class='conid'>ReadDocument</span>-<a name="line-46"></a>-<a name="line-47"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XSLT</span><span class='varop'>.</span><span class='conid'>Names</span>-<a name="line-48"></a>-<a name="line-49"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XSLT</span><span class='varop'>.</span><span class='conid'>CompiledStylesheet</span>-<a name="line-50"></a> <span class='layout'>(</span> <span class='conid'>CompiledStylesheet</span> <span class='layout'>)</span>-<a name="line-51"></a>-<a name="line-52"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XSLT</span><span class='varop'>.</span><span class='conid'>Compilation</span>-<a name="line-53"></a> <span class='layout'>(</span> <span class='varid'>prepareXSLTDocument</span>-<a name="line-54"></a> <span class='layout'>,</span> <span class='varid'>assembleStylesheet</span>-<a name="line-55"></a> <span class='layout'>)</span>-<a name="line-56"></a>-<a name="line-57"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span class='varop'>.</span><span class='conid'>HXT</span><span class='varop'>.</span><span class='conid'>XSLT</span><span class='varop'>.</span><span class='conid'>Application</span>-<a name="line-58"></a> <span class='layout'>(</span> <span class='varid'>applyStylesheet</span> <span class='layout'>)</span>-<a name="line-59"></a>-<a name="line-60"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-61"></a>-<a name="line-62"></a><span class='comment'>-- | arrow for applying a pure partial function, catch the error case and issue the error</span>-<a name="line-63"></a>-<a name="line-64"></a><a name="arrWithCatch"></a><span class='definition'>arrWithCatch</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>IOSArrow</span> <span class='varid'>a</span> <span class='varid'>b</span>-<a name="line-65"></a><span class='definition'>arrWithCatch</span> <span class='varid'>f</span>-<a name="line-66"></a> <span class='keyglyph'>=</span> <span class='varid'>arrIO</span> <span class='layout'>(</span><span class='varid'>applyf</span> <span class='varid'>f</span><span class='layout'>)</span>-<a name="line-67"></a> <span class='varop'>>>></span>-<a name="line-68"></a> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>applyA</span> <span class='layout'>(</span><span class='varid'>arr</span> <span class='varid'>issueErr</span><span class='layout'>)</span> <span class='varop'>>>></span> <span class='varid'>none</span><span class='layout'>)</span>-<a name="line-69"></a> <span class='varop'>|||</span>-<a name="line-70"></a> <span class='varid'>this</span>-<a name="line-71"></a> <span class='layout'>)</span>-<a name="line-72"></a>-<a name="line-73"></a><a name="applyf"></a><span class='definition'>applyf</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='conid'>IO</span> <span class='layout'>(</span><span class='conid'>Either</span> <span class='conid'>String</span> <span class='varid'>b</span><span class='layout'>)</span>-<a name="line-74"></a><span class='definition'>applyf</span> <span class='varid'>f</span> <span class='varid'>x</span>-<a name="line-75"></a> <span class='keyglyph'>=</span> <span class='varid'>catch'</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-76"></a> <span class='varid'>res</span> <span class='keyglyph'><-</span> <span class='varid'>evaluate</span> <span class='layout'>(</span> <span class='varid'>f</span> <span class='varid'>x</span> <span class='layout'>)</span>-<a name="line-77"></a> <span class='varid'>return</span> <span class='varop'>.</span> <span class='conid'>Right</span> <span class='varop'>$</span> <span class='varid'>res</span>-<a name="line-78"></a> <span class='layout'>)</span>-<a name="line-79"></a> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>e</span> <span class='keyglyph'>-></span> <span class='varid'>return</span> <span class='varop'>.</span> <span class='conid'>Left</span> <span class='varop'>.</span> <span class='layout'>(</span><span class='str'>"XSLT: "</span> <span class='varop'>++</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>show</span> <span class='varop'>$</span> <span class='varid'>e</span><span class='layout'>)</span>-<a name="line-80"></a> <span class='keyword'>where</span>-<a name="line-81"></a> <span class='varid'>catch'</span> <span class='keyglyph'>::</span> <span class='conid'>IO</span> <span class='varid'>a</span> <span class='keyglyph'>-></span> <span class='layout'>(</span><span class='conid'>SomeException</span> <span class='keyglyph'>-></span> <span class='conid'>IO</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>-></span> <span class='conid'>IO</span> <span class='varid'>a</span>-<a name="line-82"></a> <span class='varid'>catch'</span> <span class='keyglyph'>=</span> <span class='varid'>catch</span>-<a name="line-83"></a> -<a name="line-84"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-85"></a>-<a name="line-86"></a><span class='comment'>-- | lift prepareXSLTDocument</span>-<a name="line-87"></a>-<a name="line-88"></a><a name="prepareXSLTDoc"></a><span class='definition'>prepareXSLTDoc</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-89"></a><span class='definition'>prepareXSLTDoc</span>-<a name="line-90"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>arrWithCatch</span> <span class='varid'>prepareXSLTDocument</span>-<a name="line-91"></a> <span class='varop'>>>></span>-<a name="line-92"></a> <span class='varid'>traceDoc</span> <span class='str'>"prepareXSLTDocument"</span>-<a name="line-93"></a> <span class='layout'>)</span>-<a name="line-94"></a> <span class='varop'>`when`</span>-<a name="line-95"></a> <span class='varid'>documentStatusOk</span>-<a name="line-96"></a>-<a name="line-97"></a><span class='comment'>-- | read an XSLT stylesheet</span>-<a name="line-98"></a>-<a name="line-99"></a><a name="readXSLTDoc"></a><span class='definition'>readXSLTDoc</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-></span> <span class='conid'>IOSArrow</span> <span class='conid'>String</span> <span class='conid'>XmlTree</span>-<a name="line-100"></a><span class='definition'>readXSLTDoc</span> <span class='varid'>options</span>-<a name="line-101"></a> <span class='keyglyph'>=</span> <span class='varid'>readFromDocument</span> <span class='layout'>(</span><span class='varid'>options</span> <span class='varop'>++</span> <span class='varid'>defaultOptions</span><span class='layout'>)</span>-<a name="line-102"></a> <span class='keyword'>where</span>-<a name="line-103"></a> <span class='varid'>defaultOptions</span>-<a name="line-104"></a> <span class='keyglyph'>=</span> <span class='keyglyph'>[</span> <span class='layout'>(</span><span class='varid'>a_check_namespaces</span><span class='layout'>,</span> <span class='varid'>v_1</span><span class='layout'>)</span>-<a name="line-105"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>a_validate</span><span class='layout'>,</span> <span class='varid'>v_0</span><span class='layout'>)</span>-<a name="line-106"></a> <span class='layout'>,</span> <span class='layout'>(</span><span class='varid'>a_preserve_comment</span><span class='layout'>,</span> <span class='varid'>v_0</span><span class='layout'>)</span>-<a name="line-107"></a> <span class='keyglyph'>]</span>-<a name="line-108"></a>-<a name="line-109"></a><span class='comment'>-- | Normalize stylesheet, expand includes, select imports and assemble the rules</span>-<a name="line-110"></a>-<a name="line-111"></a><a name="compileSSTWithIncludeStack"></a><span class='definition'>compileSSTWithIncludeStack</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>CompiledStylesheet</span>-<a name="line-112"></a><span class='definition'>compileSSTWithIncludeStack</span> <span class='varid'>incStack</span>-<a name="line-113"></a> <span class='keyglyph'>=</span> <span class='varid'>traceMsg</span> <span class='num'>2</span> <span class='str'>"compile stylesheet"</span>-<a name="line-114"></a> <span class='varop'>>>></span>-<a name="line-115"></a> <span class='varid'>getChildren</span> <span class='comment'>-- remove document root</span>-<a name="line-116"></a> <span class='varop'>>>></span>-<a name="line-117"></a> <span class='varid'>isElem</span> <span class='comment'>-- select XSLT root element</span>-<a name="line-118"></a> <span class='varop'>>>></span>-<a name="line-119"></a> <span class='varid'>choiceA</span>-<a name="line-120"></a> <span class='keyglyph'>[</span> <span class='varid'>isXsltLREstylesheet</span> <span class='comment'>-- simplified syntax</span>-<a name="line-121"></a> <span class='conop'>:-></span> <span class='layout'>(</span> <span class='varid'>xsltlre2stylesheet</span>-<a name="line-122"></a> <span class='varop'>>>></span>-<a name="line-123"></a> <span class='varid'>assStylesheet</span> <span class='conid'>[]</span>-<a name="line-124"></a> <span class='layout'>)</span>-<a name="line-125"></a> <span class='layout'>,</span> <span class='varid'>isXsltStylesheetElem</span> <span class='comment'>-- xsl:stylesheet or xsl:transform</span>-<a name="line-126"></a> <span class='conop'>:-></span> <span class='layout'>(</span> <span class='varid'>expStylesheet</span>-<a name="line-127"></a> <span class='varop'>$<</span> <span class='layout'>(</span> <span class='varid'>listA</span> <span class='layout'>(</span> <span class='varid'>getChildren</span> <span class='comment'>-- take contents and expand includes</span>-<a name="line-128"></a> <span class='varop'>>>></span>-<a name="line-129"></a> <span class='varid'>expandIncludes</span> <span class='varid'>incStack</span>-<a name="line-130"></a> <span class='layout'>)</span>-<a name="line-131"></a> <span class='varop'>>>></span>-<a name="line-132"></a> <span class='varid'>partitionA</span> <span class='varid'>isXsltImport</span> <span class='comment'>-- separate imports from normal rules</span>-<a name="line-133"></a> <span class='layout'>)</span>-<a name="line-134"></a> <span class='layout'>)</span>-<a name="line-135"></a> <span class='layout'>,</span> <span class='varid'>this</span>-<a name="line-136"></a> <span class='conop'>:-></span> <span class='layout'>(</span> <span class='varid'>issueErr</span> <span class='str'>"XSLT: Either xsl:stylesheet/xsl:transform or simplified syntax expected"</span>-<a name="line-137"></a> <span class='varop'>>>></span>-<a name="line-138"></a> <span class='varid'>none</span>-<a name="line-139"></a> <span class='layout'>)</span>-<a name="line-140"></a> <span class='keyglyph'>]</span>-<a name="line-141"></a> <span class='keyword'>where</span>-<a name="line-142"></a> <span class='varid'>assStylesheet</span> <span class='varid'>imports</span> <span class='comment'>-- do the assembly, the compilation</span>-<a name="line-143"></a> <span class='keyglyph'>=</span> <span class='varid'>arrWithCatch</span> <span class='layout'>(</span><span class='varid'>flip</span> <span class='varid'>assembleStylesheet</span> <span class='varop'>$</span> <span class='varid'>imports</span><span class='layout'>)</span>-<a name="line-144"></a>-<a name="line-145"></a> <span class='varid'>expStylesheet</span> <span class='layout'>(</span><span class='varid'>imports</span><span class='layout'>,</span> <span class='varid'>rest</span><span class='layout'>)</span>-<a name="line-146"></a> <span class='keyglyph'>=</span> <span class='varid'>traceMsg</span> <span class='num'>2</span> <span class='str'>"expandStylesheet"</span>-<a name="line-147"></a> <span class='varop'>>>></span>-<a name="line-148"></a> <span class='varid'>setChildren</span> <span class='varid'>rest</span> <span class='comment'>-- remove import rules from stylesheet</span>-<a name="line-149"></a> <span class='varop'>>>></span>-<a name="line-150"></a> <span class='varid'>assStylesheet</span> <span class='varop'>$<</span> <span class='varid'>listA</span> <span class='layout'>(</span> <span class='varid'>constL</span> <span class='varid'>imports</span> <span class='comment'>-- read the imports and assemble the stylesheet</span>-<a name="line-151"></a> <span class='varop'>>>></span>-<a name="line-152"></a> <span class='varid'>getXsltAttrValue</span> <span class='varid'>xsltHRef</span>-<a name="line-153"></a> <span class='varop'>>>></span>-<a name="line-154"></a> <span class='varid'>compileSSTFromUriWithIncludeStack</span> <span class='varid'>incStack</span>-<a name="line-155"></a> <span class='layout'>)</span>-<a name="line-156"></a>-<a name="line-157"></a><span class='comment'>-- | read an include and check for recursive includes</span>-<a name="line-158"></a>-<a name="line-159"></a><a name="readSSTWithIncludeStack"></a><span class='definition'>readSSTWithIncludeStack</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>IOSArrow</span> <span class='conid'>String</span> <span class='conid'>XmlTree</span>-<a name="line-160"></a><span class='definition'>readSSTWithIncludeStack</span> <span class='varid'>incStack</span>-<a name="line-161"></a> <span class='keyglyph'>=</span> <span class='varid'>ifP</span> <span class='layout'>(</span><span class='varop'>`elem`</span> <span class='varid'>incStack</span><span class='layout'>)</span>-<a name="line-162"></a> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>issueErr</span> <span class='varop'>$<</span> <span class='varid'>arr</span> <span class='varid'>recursiveInclude</span><span class='layout'>)</span> <span class='varop'>>>></span> <span class='varid'>none</span> <span class='layout'>)</span>-<a name="line-163"></a> <span class='layout'>(</span> <span class='varid'>readXSLTDoc</span> <span class='conid'>[]</span>-<a name="line-164"></a> <span class='varop'>>>></span>-<a name="line-165"></a> <span class='varid'>prepareXSLTDoc</span>-<a name="line-166"></a> <span class='layout'>)</span> -<a name="line-167"></a> <span class='keyword'>where</span>-<a name="line-168"></a> <span class='varid'>recursiveInclude</span> <span class='varid'>uri</span>-<a name="line-169"></a> <span class='keyglyph'>=</span> <span class='str'>"XSLT error: "</span>-<a name="line-170"></a> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>uri</span> <span class='varop'>++</span> <span class='str'>" is recursively imported/included."</span> -<a name="line-171"></a> <span class='varop'>++</span> <span class='varid'>concatMap</span> <span class='layout'>(</span><span class='layout'>(</span><span class='str'>"\n imported/included from: "</span> <span class='varop'>++</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>show</span><span class='layout'>)</span> <span class='varid'>incStack</span>-<a name="line-172"></a>-<a name="line-173"></a><a name="compileSSTFromUriWithIncludeStack"></a><span class='definition'>compileSSTFromUriWithIncludeStack</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>IOSArrow</span> <span class='conid'>String</span> <span class='conid'>CompiledStylesheet</span>-<a name="line-174"></a><span class='definition'>compileSSTFromUriWithIncludeStack</span> <span class='varid'>incStack</span>-<a name="line-175"></a> <span class='keyglyph'>=</span> <span class='varid'>comp</span> <span class='varop'>$<</span> <span class='varid'>this</span>-<a name="line-176"></a> <span class='keyword'>where</span>-<a name="line-177"></a> <span class='varid'>comp</span> <span class='varid'>uri</span>-<a name="line-178"></a> <span class='keyglyph'>=</span> <span class='varid'>readSSTWithIncludeStack</span> <span class='varid'>incStack</span>-<a name="line-179"></a> <span class='varop'>>>></span>-<a name="line-180"></a> <span class='varid'>compileSSTWithIncludeStack</span> <span class='layout'>(</span><span class='varid'>uri</span><span class='conop'>:</span><span class='varid'>incStack</span><span class='layout'>)</span>-<a name="line-181"></a>-<a name="line-182"></a><a name="expandIncludes"></a><span class='definition'>expandIncludes</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='keyglyph'>-></span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-183"></a><span class='definition'>expandIncludes</span> <span class='varid'>incStack</span>-<a name="line-184"></a> <span class='keyglyph'>=</span> <span class='varid'>isElem</span>-<a name="line-185"></a> <span class='varop'>>>></span>-<a name="line-186"></a> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>expandInclude</span> <span class='varop'>$<</span> <span class='varid'>getXsltAttrValue</span> <span class='varid'>xsltHRef</span> <span class='layout'>)</span>-<a name="line-187"></a> <span class='varop'>`when`</span>-<a name="line-188"></a> <span class='varid'>isXsltInclude</span>-<a name="line-189"></a> <span class='layout'>)</span>-<a name="line-190"></a> <span class='keyword'>where</span>-<a name="line-191"></a> <span class='varid'>expandInclude</span> <span class='varid'>href</span>-<a name="line-192"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>constA</span> <span class='varid'>href</span>-<a name="line-193"></a> <span class='varop'>>>></span>-<a name="line-194"></a> <span class='varid'>readSSTWithIncludeStack</span> <span class='varid'>incStack</span>-<a name="line-195"></a> <span class='varop'>>>></span>-<a name="line-196"></a> <span class='varid'>getChildren</span>-<a name="line-197"></a> <span class='varop'>>>></span>-<a name="line-198"></a> <span class='varid'>isElem</span>-<a name="line-199"></a> <span class='varop'>>>></span>-<a name="line-200"></a> <span class='varid'>choiceA</span>-<a name="line-201"></a> <span class='keyglyph'>[</span> <span class='varid'>isXsltLREstylesheet</span>-<a name="line-202"></a> <span class='conop'>:-></span> <span class='varid'>xsltlre2template</span>-<a name="line-203"></a>-<a name="line-204"></a> <span class='layout'>,</span> <span class='varid'>isXsltStylesheetElem</span>-<a name="line-205"></a> <span class='conop'>:-></span> <span class='layout'>(</span> <span class='varid'>getChildren</span>-<a name="line-206"></a> <span class='varop'>>>></span>-<a name="line-207"></a> <span class='varid'>expandIncludes</span> <span class='layout'>(</span><span class='varid'>href</span><span class='conop'>:</span><span class='varid'>incStack</span><span class='layout'>)</span>-<a name="line-208"></a> <span class='layout'>)</span>-<a name="line-209"></a>-<a name="line-210"></a> <span class='layout'>,</span> <span class='varid'>this</span>-<a name="line-211"></a> <span class='conop'>:-></span> <span class='varid'>issueFatal</span> <span class='layout'>(</span><span class='str'>"XSLT error: Included file "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>href</span> <span class='varop'>++</span> <span class='str'>" is not a stylesheet"</span><span class='layout'>)</span>-<a name="line-212"></a> <span class='keyglyph'>]</span>-<a name="line-213"></a> <span class='layout'>)</span>-<a name="line-214"></a>-<a name="line-215"></a><a name="isXsltElem"></a><span class='definition'>isXsltElem</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-216"></a><span class='definition'>isXsltElem</span> <span class='varid'>qn</span> <span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varop'>>>></span> <span class='varid'>hasNameWith</span> <span class='layout'>(</span><span class='varid'>equivQName</span> <span class='varid'>qn</span><span class='layout'>)</span>-<a name="line-217"></a>-<a name="line-218"></a><a name="isXsltAttr"></a><span class='definition'>isXsltAttr</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-219"></a><span class='definition'>isXsltAttr</span> <span class='varid'>qn</span> <span class='keyglyph'>=</span> <span class='varid'>isAttr</span> <span class='varop'>>>></span> <span class='varid'>hasNameWith</span> <span class='layout'>(</span><span class='varid'>equivQName</span> <span class='varid'>qn</span><span class='layout'>)</span>-<a name="line-220"></a>-<a name="line-221"></a><a name="hasXsltAttr"></a><span class='definition'>hasXsltAttr</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-222"></a><span class='definition'>hasXsltAttr</span> <span class='varid'>qn</span> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>getAttrl</span> <span class='varop'>>>></span> <span class='varid'>isXsltAttr</span> <span class='varid'>qn</span> <span class='layout'>)</span>-<a name="line-223"></a> <span class='varop'>`guards`</span>-<a name="line-224"></a> <span class='varid'>this</span>-<a name="line-225"></a>-<a name="line-226"></a><a name="isXsltInclude"></a><span class='definition'>isXsltInclude</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-227"></a><span class='definition'>isXsltInclude</span> <span class='keyglyph'>=</span> <span class='varid'>isXsltElem</span> <span class='varid'>xsltInclude</span>-<a name="line-228"></a>-<a name="line-229"></a><a name="isXsltImport"></a><span class='definition'>isXsltImport</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-230"></a><span class='definition'>isXsltImport</span> <span class='keyglyph'>=</span> <span class='varid'>isXsltElem</span> <span class='varid'>xsltImport</span>-<a name="line-231"></a>-<a name="line-232"></a><a name="isXsltLREstylesheet"></a><span class='definition'>isXsltLREstylesheet</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-233"></a><span class='definition'>isXsltLREstylesheet</span> <span class='keyglyph'>=</span> <span class='varid'>hasXsltAttr</span> <span class='varid'>xsltVersionLRE</span>-<a name="line-234"></a>-<a name="line-235"></a><a name="isXsltStylesheetElem"></a><span class='definition'>isXsltStylesheetElem</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-236"></a><span class='definition'>isXsltStylesheetElem</span> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>isXsltElem</span> <span class='varid'>xsltTransform</span>-<a name="line-237"></a> <span class='varop'><+></span>-<a name="line-238"></a> <span class='varid'>isXsltElem</span> <span class='varid'>xsltStylesheet</span>-<a name="line-239"></a> <span class='layout'>)</span>-<a name="line-240"></a> <span class='varop'>>>></span>-<a name="line-241"></a> <span class='varid'>hasXsltAttr</span> <span class='varid'>xsltVersion</span>-<a name="line-242"></a>-<a name="line-243"></a><a name="getXsltAttrValue"></a><span class='definition'>getXsltAttrValue</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='conid'>QName</span> <span class='keyglyph'>-></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>-<a name="line-244"></a><span class='definition'>getXsltAttrValue</span> <span class='varid'>qn</span> <span class='keyglyph'>=</span> <span class='varid'>getAttrl</span> <span class='varop'>>>></span> <span class='varid'>isXsltAttr</span> <span class='varid'>qn</span> <span class='varop'>>>></span> <span class='varid'>xshow</span> <span class='varid'>getChildren</span>-<a name="line-245"></a>-<a name="line-246"></a><a name="xsltlre2template"></a><span class='definition'>xsltlre2template</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-247"></a><span class='definition'>xsltlre2template</span> <span class='keyglyph'>=</span> <span class='varid'>mkqelem</span> <span class='varid'>xsltTemplate</span> <span class='keyglyph'>[</span><span class='varid'>sqattr</span> <span class='varid'>xsltMatch</span> <span class='str'>"/"</span><span class='keyglyph'>]</span> <span class='keyglyph'>[</span><span class='varid'>this</span><span class='keyglyph'>]</span>-<a name="line-248"></a>-<a name="line-249"></a><a name="xsltlre2stylesheet"></a><span class='definition'>xsltlre2stylesheet</span> <span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=></span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-250"></a><span class='definition'>xsltlre2stylesheet</span> <span class='keyglyph'>=</span> <span class='varid'>mkqelem</span> <span class='varid'>xsltTransform</span> <span class='conid'>[]</span> <span class='keyglyph'>[</span> <span class='varid'>this</span> <span class='varop'>>>></span> <span class='varid'>xsltlre2template</span> <span class='keyglyph'>]</span>-<a name="line-251"></a>-<a name="line-252"></a><span class='comment'>--</span>-<a name="line-253"></a>-<a name="line-254"></a><a name="checkApplySST"></a><span class='definition'>checkApplySST</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-></span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-255"></a><span class='definition'>checkApplySST</span> <span class='varid'>appl</span>-<a name="line-256"></a> <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>isRoot</span>-<a name="line-257"></a> <span class='varop'>>>></span>-<a name="line-258"></a> <span class='varid'>replaceChildren</span> <span class='varid'>appl</span>-<a name="line-259"></a> <span class='varop'>>>></span>-<a name="line-260"></a> <span class='varid'>traceDoc</span> <span class='str'>"XSLT stylesheet applied"</span>-<a name="line-261"></a> <span class='varop'>>>></span>-<a name="line-262"></a> <span class='varid'>setDocumentStatusFromSystemState</span> <span class='str'>"applying XSLT styleshhet"</span>-<a name="line-263"></a> <span class='layout'>)</span>-<a name="line-264"></a> <span class='varop'>`orElse`</span>-<a name="line-265"></a> <span class='varid'>issueErr</span> <span class='str'>"XSLT: complete document with root node required for stylesheet application"</span>-<a name="line-266"></a>-<a name="line-267"></a><span class='comment'>-- | Compile a document representing an XSLT stylesheet into an internal representation</span>-<a name="line-268"></a><span class='comment'>--</span>-<a name="line-269"></a><span class='comment'>-- The internal representation is an abstract syntax tree for the XSLT rules.</span>-<a name="line-270"></a><span class='comment'>-- XSLT imports and includes are evaluated and the rules are normalized and prepared</span>-<a name="line-271"></a><span class='comment'>-- for easy application.</span>-<a name="line-272"></a>-<a name="line-273"></a><a name="xsltCompileStylesheet"></a><span class='definition'>xsltCompileStylesheet</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>CompiledStylesheet</span>-<a name="line-274"></a><span class='definition'>xsltCompileStylesheet</span>-<a name="line-275"></a> <span class='keyglyph'>=</span> <span class='varid'>prepareXSLTDoc</span>-<a name="line-276"></a> <span class='varop'>>>></span>-<a name="line-277"></a> <span class='varid'>compileSSTWithIncludeStack</span> <span class='conid'>[]</span>-<a name="line-278"></a>-<a name="line-279"></a><span class='comment'>-- | A convinient function for combining reading a stylesheet and compilation.</span>-<a name="line-280"></a><span class='comment'>--</span>-<a name="line-281"></a><span class='comment'>-- Reading an XSLT stylesheet is always done without validation but with</span>-<a name="line-282"></a><span class='comment'>-- namespace propagation. Comments are removed from the stylesheet.</span>-<a name="line-283"></a>-<a name="line-284"></a><a name="xsltCompileStylesheetFromURI"></a><span class='definition'>xsltCompileStylesheetFromURI</span> <span class='keyglyph'>::</span> <span class='conid'>IOSArrow</span> <span class='conid'>String</span> <span class='conid'>CompiledStylesheet</span>-<a name="line-285"></a><span class='definition'>xsltCompileStylesheetFromURI</span> <span class='keyglyph'>=</span> <span class='varid'>compileSSTFromUriWithIncludeStack</span> <span class='conid'>[]</span>-<a name="line-286"></a>-<a name="line-287"></a><span class='comment'>-- | apply a compiled XSLT stylesheet to a whole document tree</span>-<a name="line-288"></a><span class='comment'>--</span>-<a name="line-289"></a><span class='comment'>-- The compiled stylesheet must have been created with 'xsltCompileStylesheet'</span>-<a name="line-290"></a><span class='comment'>-- or 'xsltCompileStylesheetFromURI'</span>-<a name="line-291"></a>-<a name="line-292"></a><a name="xsltApplyStylesheet"></a><span class='definition'>xsltApplyStylesheet</span> <span class='keyglyph'>::</span> <span class='conid'>CompiledStylesheet</span> <span class='keyglyph'>-></span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-293"></a><span class='definition'>xsltApplyStylesheet</span> <span class='varid'>css</span>-<a name="line-294"></a> <span class='keyglyph'>=</span> <span class='varid'>checkApplySST</span> <span class='layout'>(</span><span class='varid'>arrWithCatch</span> <span class='layout'>(</span><span class='varid'>applyStylesheet</span> <span class='varid'>css</span><span class='layout'>)</span> <span class='varop'>>>.</span> <span class='varid'>concat</span><span class='layout'>)</span>-<a name="line-295"></a>-<a name="line-296"></a><span class='comment'>-- | apply an XSLT stylesheet given by an URI to a whole document tree</span>-<a name="line-297"></a><span class='comment'>--</span>-<a name="line-298"></a><span class='comment'>-- The string parameter is the URI of the XSLT stylesheet.</span>-<a name="line-299"></a><span class='comment'>-- In case of an error during stylesheet compilation or stylesheet application</span>-<a name="line-300"></a><span class='comment'>-- all children of the root node are removed and</span>-<a name="line-301"></a><span class='comment'>-- the error status is set in the attribute list of the root node of the input document.</span>-<a name="line-302"></a>-<a name="line-303"></a><a name="xsltApplyStylesheetFromURI"></a><span class='definition'>xsltApplyStylesheetFromURI</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-></span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-304"></a><span class='definition'>xsltApplyStylesheetFromURI</span> <span class='varid'>uri</span>-<a name="line-305"></a> <span class='keyglyph'>=</span> <span class='varid'>xsltApplyStylesheet</span> <span class='varop'>$<</span> <span class='layout'>(</span><span class='varid'>constA</span> <span class='varid'>uri</span> <span class='varop'>>>></span> <span class='varid'>xsltCompileStylesheetFromURI</span><span class='layout'>)</span>-<a name="line-306"></a>-<a name="line-307"></a><span class='comment'>{--<a name="line-308"></a>xsltApplyStylesheetWParams :: Map ExName Expr -> CompiledStylesheet -> IOSArrow XmlTree XmlTree-<a name="line-309"></a>xsltApplyStylesheetWParams wp css = arrL (applyStylesheetWParams wp css)-<a name="line-310"></a>-}</span>-</pre></body>-</html>
− doc/hdoc/src/hscolour.css
@@ -1,5 +0,0 @@-.keyglyph, .layout {color: red;}-.keyword {color: blue;}-.comment, .comment a {color: green;}-.str, .chr {color: teal;}-.keyword,.conid, .varid, .conop, .varop, .num, .cpp, .sel, .definition {}
doc/index.html view
@@ -1,12 +1,12 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head>- <title>Haskell XML Toolbox 8.3.0</title>+ <title>Haskell XML Toolbox 8.3.1</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body style="background-color: #ffffff;">- <h1>Haskell XML Toolbox 8.3.0</h1>+ <h1>Haskell XML Toolbox 8.3.1</h1> <h3>Contents</h3> <ul>@@ -185,8 +185,8 @@ <a name="down"></a> <h3>Downloads</h3> <p>- <a href="hxt-8.3.0.tar.gz">Haskell XML Toolbox 8.3.0</a>,- released 2009-03-18:+ <a href="hxt-8.3.1.tar.gz">Haskell XML Toolbox 8.3.1</a>,+ released 2009-06-16: </p> <ul> <li>This version works with ghc 6.10 with cabal 1.6.@@ -225,7 +225,7 @@ <p> Before installing this version, install the curl and tagsoup modules. For a quick install with Cabal execute the following commands in- <tt>.../HXT-8.3.0</tt>+ <tt>.../HXT-8.3.1</tt> </p> <pre> cabal configure@@ -251,6 +251,21 @@ <a name="change"></a> <h3>Change History</h3> <ul>+ <li>In <a href="hxt-8.3.1.tar.gz">Version 8.3.1</a>+ This is only a bug fix release.+ <ul>+ <li>+ Interface and option handling for libcurl reworked.+ New input option "a_no_redirect" for preventing autmatic+ redirect added.+ </li>+ <li>+ Encoding of none XML/HTML text data done with the same+ encoding routines as for XML/HTML. This enables easy processing+ of other text documents.+ </li>+ </ul>+ </li> <li>In <a href="hxt-8.3.0.tar.gz">Version 8.3.0</a> <ul> <li>@@ -486,7 +501,7 @@ 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>+ 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>@@ -590,7 +605,7 @@ </a> </td> </tr>- <tr><td><i>Last modified: 2009-03-18</i></td><td> </td></tr>+ <tr><td><i>Last modified: 2009-06-16</i></td><td> </td></tr> </table> </body>
examples/arrows/AGentleIntroductionToHXT/Makefile view
@@ -39,7 +39,7 @@ $(MAKE) distclean all test : $(prog)- $(foreach op,$(tests),$(prog) $(op) "http://www.haskell.org/" "-" ;)+ $(foreach op,$(tests),echo $(prog) $(op) "http://www.haskell.org/" "-" ; $(prog) $(op) "http://www.haskell.org/" "-" ;) $(foreach i,$(EXAMPLES),$(MAKE) -C $i $@ ;) dist :
examples/arrows/hparser/Makefile view
@@ -112,7 +112,7 @@ @echo @echo "===> the source of another lousy html document containing empty elements" ; echo ; sleep 2 cat $(EX4a)- @sleep 2 ; echo ; echo "===> parser accepts this document and tries to build a document tree" ; echo ; sleep 2+ @sleep 2 ; echo ; echo "===> parser accepts this document and tries to format this as a HTML document without any dangarous empty elements" ; echo ; sleep 2 $(prog) --indent --preserve-comment --parse-html --output-html --no-empty-elements $(EX4a) @echo
hxt.cabal view
@@ -1,6 +1,6 @@ -- arch-tag: Haskell XML Toolbox main description file name: hxt-version: 8.3.0+version: 8.3.1 license: OtherLicense license-file: LICENCE maintainer: Uwe Schmidt <uwe@fh-wedel.de>@@ -129,16 +129,16 @@ ghc-options: -Wall extensions: MultiParamTypeClasses DeriveDataTypeable FunctionalDependencies FlexibleInstances - build-depends: base >= 4,- haskell98 >= 1,- containers >= 0.1,- directory >= 1,- filepath >= 1,+ build-depends: base >= 4 && < 5,+ haskell98 >= 1 && < 2,+ containers >= 0.1 && < 1,+ directory >= 1 && < 2,+ filepath >= 1 && < 2, parsec >= 2.1 && < 3,- HUnit >= 1.2,- network >= 2.1,- parallel >= 1.0,- bytestring >= 0.9,- tagsoup >= 0.6,- curl >= 1.3+ HUnit >= 1.2 && < 2,+ network >= 2.1 && < 3,+ parallel >= 1.0 && < 2,+ bytestring >= 0.9 && < 1,+ tagsoup >= 0.6 && < 1,+ curl >= 1.3 && < 2
src/Control/Arrow/ArrowList.hs view
@@ -331,7 +331,7 @@ -- | generalization of arrow combinator '<+>' --- -- definition: @ catA = foldl (<+>) none @+ -- definition: @ catA = foldl (\<+\>) none @ catA :: [a b c] -> a b c catA = foldl (<+>) none
src/Control/Arrow/ArrowState.hs view
@@ -1,3 +1,5 @@+{-# LANGUAGE MultiParamTypeClasses, FunctionalDependencies #-}+ -- ------------------------------------------------------------ {- |
src/Control/Arrow/ArrowTree.hs view
@@ -32,7 +32,7 @@ import Control.Arrow.ArrowList import Control.Arrow.ArrowIf -infixl 5 />, </+infixl 5 />, //>, </ -- ------------------------------------------------------------ @@ -124,6 +124,22 @@ (/>) :: Tree t => a (t b) (t b) -> a (t b) (t b) -> a (t b) (t b) f /> g = f >>> getChildren >>> g++ -- |+ -- pronounced \"double slash\", meaning g arbitrarily deep inside f+ --+ -- defined as @ f \/\/> g = f >>> getChildren >>> deep g @+ --+ -- example: @ hasName \"html\" \/\/> hasName \"table\" @+ --+ -- This expression selects+ -- all top level \"table\" elements within an \"html\" element, an expression.+ -- Attantion: This does not correspond+ -- to the XPath selection path \"html\/\/table\". The latter on matches all table elements+ -- even nested ones, but @\/\/>@ gives in many cases the appropriate functionality.++ (//>) :: Tree t => a (t b) (t b) -> a (t b) (t b) -> a (t b) (t b)+ f //> g = f >>> getChildren >>> deep g -- |
src/Control/Arrow/IOStateListArrow.hs view
@@ -1,3 +1,5 @@+{-# LANGUAGE MultiParamTypeClasses, FlexibleInstances #-}+ -- ------------------------------------------------------------ {- |
src/Control/Arrow/StateListArrow.hs view
@@ -1,3 +1,5 @@+{-# LANGUAGE MultiParamTypeClasses, FlexibleInstances #-}+ -- ------------------------------------------------------------ {- |
src/Data/Atom.hs view
@@ -1,3 +1,5 @@+{-# LANGUAGE DeriveDataTypeable #-}+ -- ------------------------------------------------------------ {- |
src/Data/Tree/NTree/TypeDefs.hs view
@@ -1,3 +1,5 @@+{-# LANGUAGE DeriveDataTypeable #-}+ -- ------------------------------------------------------------ {- |
src/Makefile view
@@ -10,7 +10,6 @@ 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 @@ -24,7 +23,7 @@ HXT_PACKAGE_NAME=$(HXT_PACKAGE)-$(VERSION) -HDOCFLAGS = -v -h $(HDOC_FLAGS) --use-package=base+HDOCFLAGS = -v -v -v -h HDOC = haddock $(HDOCFLAGS) RM = rm -f@@ -283,6 +282,12 @@ clean_$(HXT_PACKAGE) : $(RM) $(HXT_DRIVER) $(HXT_DRIVER:.o=.hi) $(HXT_OBJ) $(HXT_HI) $(HXT_LIB)++# ------------------------------------------------------------++doc : $(HXT_SRC)+ [ -d $(HDOC_DIR) ] || mkdir -p $(HDOC_DIR)+ $(HDOC) -t "Haskell Xml Toolbox $(VERSION): The complete API" -o $(HDOC_DIR) $(HXT_SRC) # ------------------------------------------------------------
src/Text/XML/HXT/Arrow/DocumentInput.hs view
@@ -29,41 +29,29 @@ import Control.Arrow.ArrowIf import Control.Arrow.ArrowTree import Control.Arrow.ArrowIO+import Control.Arrow.ListArrow -import Data.Char- ( toLower- )-import Data.List- ( isPrefixOf- )+import Data.List ( isPrefixOf ) import Data.Maybe -import System.FilePath- ( takeExtension )+import System.FilePath ( takeExtension ) -import Text.XML.HXT.DOM.Unicode- ( getDecodingFct- , guessEncoding- , normalizeNL- )+import Text.XML.HXT.DOM.Unicode ( getDecodingFct+ , guessEncoding+ , normalizeNL+ ) import qualified Text.XML.HXT.IO.GetFILE as FILE import qualified Text.XML.HXT.IO.GetHTTPLibCurl as LibCURL -{- not longer needed, libcurl is used-import qualified Text.XML.HXT.IO.GetHTTPNative as HTTP-import qualified Text.XML.HXT.IO.GetHTTPCurl as CURL--}- import Text.XML.HXT.DOM.Interface +import Text.XML.HXT.Arrow.ParserInterface ( parseXmlDocEncodingSpec+ , parseXmlEntityEncodingSpec+ , removeEncodingSpec+ ) import Text.XML.HXT.Arrow.XmlArrow import Text.XML.HXT.Arrow.XmlIOStateArrow-import Text.XML.HXT.Arrow.ParserInterface- ( parseXmlDocEncodingSpec- , parseXmlEntityEncodingSpec- , removeEncodingSpec- ) -- ---------------------------------------------------------- @@ -128,7 +116,7 @@ >>> arrIO (uncurry FILE.getCont) >>>- ( arr addError -- io error occured+ ( arr (uncurry addError) -- io error occured ||| arr addTxtContent -- content read )@@ -144,16 +132,18 @@ >>> arrIO FILE.getStdinCont >>>- ( arr addError -- io error occured+ ( arr (uncurry addError) -- io error occured ||| arr addTxtContent -- content read ) ) -addError :: String -> IOStateArrow s XmlTree XmlTree-addError e+addError :: [(String, String)] -> String -> IOStateArrow s XmlTree XmlTree+addError al e = issueFatal e >>>+ seqA (map (uncurry addAttr) al)+ >>> setDocumentStatusFromSystemState "accessing documents" addMimeType :: IOStateArrow s XmlTree XmlTree@@ -180,7 +170,7 @@ getHttpContents = getCont $<< ( getAttrValue transferURI &&&- ( ( getAttrlAsAssoc -- get all attributes of root node+ ( ( getAttrlAsAssoc -- get all attributes of root node &&& getAllParamsString -- get all system params )@@ -202,37 +192,11 @@ arrIO0 ( LibCURL.getCont options uri ) ) >>>- ( arr addError- |||- arr addContent- )- )- -{- old stuff- = 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 (uncurry addError) ||| arr addContent ) )- where- proxy = lookup1 a_proxy options- curl = lookup1 a_use_curl options- curlOpt = lookup1 a_options_curl options--} addContent :: (AssocList String String, String) -> IOStateArrow s XmlTree XmlTree addContent (al, c)@@ -339,15 +303,16 @@ getXmlContents' parseEncodingSpec = ( getURIContents >>>- ( ( parseEncodingSpec- >>>- filterErrorMsg- >>>- decodeDocument- )- `when`- isXmlHtml- )+ choiceA+ [ isXmlHtmlDoc :-> ( parseEncodingSpec+ >>>+ filterErrorMsg+ >>>+ decodeDocument+ )+ , isTextDoc :-> decodeDocument+ , this :-> this+ ] >>> perform ( getAttrValue transferURI >>>@@ -360,12 +325,21 @@ ) `when` isRoot- where- isXmlHtml- = getAttrValue transferMimeType- >>>- arr (\ mt -> isHtmlMimeType mt || isXmlMimeType mt) +isMimeDoc :: (String -> Bool) -> IOStateArrow s XmlTree XmlTree+isMimeDoc isMT = fromLA $+ ( ( getAttrValue transferMimeType >>^ stringToLower )+ >>>+ isA (\ t -> null t || isMT t)+ )+ `guards` this++isTextDoc, isXmlHtmlDoc :: IOStateArrow s XmlTree XmlTree++isTextDoc = isMimeDoc isTextMimeType++isXmlHtmlDoc = isMimeDoc (\ mt -> isHtmlMimeType mt || isXmlMimeType mt)+ -- ------------------------------------------------------------ getEncoding :: IOStateArrow s XmlTree String@@ -374,26 +348,32 @@ >>> 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+ , getAttrValue a_encoding -- 3. guess: take encoding parameter in root node+ , getParamString a_encoding -- 4. 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 +getTextEncoding :: IOStateArrow s XmlTree String+getTextEncoding+ = catA [ getAttrValue transferEncoding -- 1. guess: take the transfer encoding+ , getAttrValue a_encoding -- 2. guess: take encoding parameter in root node+ , getParamString a_encoding -- 3. guess: take encoding parameter in global state+ , constA isoLatin1 -- default : no encoding+ ]+ >. (head . filter (not . null)) -- make the filter deterministic: take 1. entry from list of guesses + decodeDocument :: IOStateArrow s XmlTree XmlTree decodeDocument- = ( decodeArr $< getEncoding )- `when`- ( isRoot >>> isXmlOrHtmlDoc )+ = choiceA+ [ ( isRoot >>> isXmlHtmlDoc ) :-> ( decodeArr normalizeNL $< getEncoding )+ , ( isRoot >>> isTextDoc ) :-> ( decodeArr id $< getTextEncoding )+ , this :-> this+ ] where- isXmlOrHtmlDoc- = ( getAttrValue transferMimeType >>^ map toLower )- >>>- isA (\ t -> null t || isXmlMimeType t || isHtmlMimeType t)-- decodeArr :: String -> IOStateArrow s XmlTree XmlTree- decodeArr enc+ decodeArr :: (String -> String) -> String -> IOStateArrow s XmlTree XmlTree+ decodeArr normalizeNewline enc = maybe notFound found . getDecodingFct $ enc where found df@@ -412,7 +392,9 @@ = processChildren ( getText -- get the document content >>> arr df -- decode the text, result is (string, [errMsg])- >>> ( ( (normalizeNL . fst) ^>> mkText ) -- take decoded string, normalize newline and build text node+ >>> ( ( (fst >>> normalizeNewline) -- take decoded string, normalize newline and build text node+ ^>> mkText+ ) <+> ( if isTrueValue ignoreErrs then none -- encoding errors are ignored
src/Text/XML/HXT/Arrow/Namespace.hs view
@@ -121,7 +121,7 @@ -- | 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 @+-- Calls 'cleanupNamespaces' with @ collectNamespaceDecl \<+> collectPrefixUriPairs @ uniqueNamespacesFromDeclAndQNames :: ArrowXml a => a XmlTree XmlTree uniqueNamespacesFromDeclAndQNames
src/Text/XML/HXT/Arrow/ReadDocument.hs view
@@ -29,39 +29,32 @@ import Control.Arrow.ListArrows import Text.XML.HXT.DOM.Interface+import Text.XML.HXT.DOM.Util ( stringToLower ) 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.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- )+import Text.XML.HXT.Arrow.ProcessDocument ( getDocumentContents+ , parseXmlDocument+ , parseHtmlDocument+ , propagateAndValidateNamespaces+ ) -import Data.Char- ( toLower- )+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"+this filter can be configured by an option list, a value of type 'Text.XML.HXT.DOM.TypeDefs.Attributes' available options: @@ -107,6 +100,8 @@ - 'a_proxy' : proxy for http access, e.g. www-cache:3128 +- 'a_redirect' : automatically follow redirected URIs, default is yes+ - 'a_use_curl' : obsolete and ignored, HTTP acccess is always done with curl bindings for libcurl - 'a_strict_input' : file input is done strictly using the 'Data.ByteString' input functions. This ensures correct closing of files, especially when working with@@ -119,7 +114,9 @@ it is recomended to use the @curl-.*@ options syntax described below. - 'a_encoding' : default document encoding ('utf8', 'isoLatin1', 'usAscii', 'iso8859_2', ... , 'iso8859_16', ...).- Only XML and HTML documents are decoded, documents with none XML\/HTML mime types are not decoded. The whole content is returned in a single text node+ Only XML, HTML and text documents are decoded,+ default decoding for XML\/HTML is utf8, for text iso latin1 (no decoding).+ The whole content is returned in a single text node. - 'a_mime_types' : set the mime type table for file input with given file. The format of this config file must be in the syntax of a debian linux \"mime.types\" config file @@ -229,7 +226,7 @@ loadMineTypes f = setMimeTypeTableFromFile f getMimeType- = getAttrValue transferMimeType >>^ map toLower+ = getAttrValue transferMimeType >>^ stringToLower processDoc mimeType = traceMsg 1 ("readDocument: " ++ show src ++ " (mime type: " ++ show mimeType ++ ") will be processed")@@ -286,7 +283,7 @@ validateWithRelax = hasEntry a_relax_schema options relaxSchema = lookup1 a_relax_schema options parseHtml = hasOption a_parse_html- isHtml = parseHtml -- force HTML+ isHtml = parseHtml -- force HTML || ( parseByMimeType && isHtmlMimeType mimeType ) isXml = ( not parseByMimeType && not parseHtml )@@ -296,7 +293,7 @@ ( isXmlMimeType mimeType || null mimeType- ) -- mime type is XML or not known+ ) -- mime type is XML or not known ) isXmlOrHtml = isHtml || isXml parseByMimeType = hasOption a_parse_by_mimetype
src/Text/XML/HXT/Arrow/XPathSimple.hs view
@@ -10,29 +10,29 @@ Portability: portable XPath selection for simple XPath expressions with list arrows- instead of navigatable trees.+ instead of navigable trees. - It is recomended, that this module is imported qualified,+ It is recommended, that this module is imported qualified, e.g like @Text.XML.HXT.Arrow.XPathSimple as XS@. The arrows defined in this module have the same functionality as the functions in 'Text.XML.HXT.Arrow.XPath'. - The computation modell in XPath is a navigatable tree,- that means a tree wicht can be traveresed in arbitrary directions,- not only from the root to the leafs. Sometimes this modell- leads to inefficent XPath processing for simple queries, which+ The computation model in XPath is a navigable tree,+ that means a tree which can be traversed in arbitrary directions,+ not only from the root to the leafs. Sometimes this model+ leads to inefficient XPath processing for simple queries, which only need a top down tree traversal. When evaluating an XPath expression with these functions, first an attempt is made to map the XPath expression to a pure arrow. If this is possible- due to the siplicity of the XPath expressions, the result is computed+ due to the simplicity of the XPath expressions, the result is computed directly, else the query is processed by the corresponding function in 'Text.XML.HXT.Arrow.XPath'. The simple evaluation is possible, when in the XPath expression- only the top down axis (self, child, descendant, descendant or self are used,- when no builtin functions concerning the position of a node are used,+ only the top down axes (self, child, descendant, descendant or self) are used,+ when no built-in functions concerning the position of a node are used, and no comparison of nodes e.g. in node set union is required. -}
src/Text/XML/HXT/DOM/MimeTypes.hs view
@@ -59,57 +59,53 @@ text_xml = "text/xml" text_xml_external_parsed_entity = "text/xml-external-parsed-entity" -isHtmlMimeType :: String -> Bool-isHtmlMimeType t- = t == text_html+isTextMimeType :: String -> Bool+isTextMimeType = ("text/" `isPrefixOf`) -isXmlMimeType :: String -> Bool-isXmlMimeType t- = ( t `elem` [ application_xhtml- , application_xml- , application_xml_external_parsed_entity- , application_xml_dtd- , text_xml- , text_xml_external_parsed_entity- ]- ||- "+xml" `isSuffixOf` t -- application/mathml+xml- ) -- or image/svg+xml+isHtmlMimeType :: String -> Bool+isHtmlMimeType t = t == text_html -defaultMimeTypeTable :: MimeTypeTable-defaultMimeTypeTable- = M.fromList mimeTypeDefaults+isXmlMimeType :: String -> Bool+isXmlMimeType t = ( t `elem` [ application_xhtml+ , application_xml+ , application_xml_external_parsed_entity+ , application_xml_dtd+ , text_xml+ , text_xml_external_parsed_entity+ ]+ ||+ "+xml" `isSuffixOf` t -- application/mathml+xml+ ) -- or image/svg+xml -extensionToMimeType :: String -> MimeTypeTable -> String-extensionToMimeType e- = fromMaybe "" . lookupMime +defaultMimeTypeTable :: MimeTypeTable+defaultMimeTypeTable = M.fromList mimeTypeDefaults++extensionToMimeType :: String -> MimeTypeTable -> String+extensionToMimeType e = fromMaybe "" . lookupMime where- lookupMime t- = M.lookup e t -- try exact match- `mplus`- M.lookup (map toLower e) t -- else try lowercase match- `mplus`- M.lookup (map toUpper e) t -- else try uppercase match+ lookupMime t = M.lookup e t -- try exact match+ `mplus`+ M.lookup (map toLower e) t -- else try lowercase match+ `mplus`+ M.lookup (map toUpper e) t -- else try uppercase match -- ------------------------------------------------------------ -readMimeTypeTable :: FilePath -> IO MimeTypeTable-readMimeTypeTable inp- = do- cb <- B.readFile inp- return . M.fromList . parseMimeTypeTable . C.unpack $ cb+readMimeTypeTable :: FilePath -> IO MimeTypeTable+readMimeTypeTable inp = do+ cb <- B.readFile inp+ return . M.fromList . parseMimeTypeTable . C.unpack $ cb -parseMimeTypeTable :: String -> [(String, String)]-parseMimeTypeTable- = concat- . map buildPairs- . map words- . filter (not . ("#" `isPrefixOf`))- . filter (not . all (isSpace))- . lines+parseMimeTypeTable :: String -> [(String, String)]+parseMimeTypeTable = concat+ . map buildPairs+ . map words+ . filter (not . ("#" `isPrefixOf`))+ . filter (not . all (isSpace))+ . lines where- buildPairs :: [String] -> [(String, String)]- buildPairs [] = []- buildPairs (mt:exts) = map (\ x -> (x, mt)) $ exts+ buildPairs :: [String] -> [(String, String)]+ buildPairs [] = []+ buildPairs (mt:exts) = map (\ x -> (x, mt)) $ exts -- ------------------------------------------------------------
src/Text/XML/HXT/DOM/QualifiedName.hs view
@@ -1,3 +1,5 @@+{-# LANGUAGE DeriveDataTypeable #-}+ -- ------------------------------------------------------------ {- |@@ -116,7 +118,7 @@ -- 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"+-- When dealing with namespaces, the document tree must be processed by 'Text.XML.HXT.Arrow.Namespace.propagateNamespaces' -- to split names of structure \"prefix:localPart\" and label the name with the apropriate namespace uri data QName = LP ! XName
src/Text/XML/HXT/DOM/TypeDefs.hs view
@@ -1,3 +1,5 @@+{-# LANGUAGE DeriveDataTypeable #-}+ -- ------------------------------------------------------------ {- |
src/Text/XML/HXT/DOM/Util.hs view
@@ -1,9 +1,23 @@--- |--- utility functions----- Version : $Id: Util.hs,v 1.3 2006/05/01 18:56:24 hxml Exp $+-- ------------------------------------------------------------ +{- |+ Module : Text.XML.HXT.DOM.Util+ Copyright : Copyright (C) 2008 Uwe Schmidt+ License : MIT++ Maintainer : Uwe Schmidt (uwe@fh-wedel.de)+ Stability : stable+ Portability: portable++ Little useful things for strings, lists and other values++-}++-- ------------------------------------------------------------+ module Text.XML.HXT.DOM.Util ( stringTrim+ , stringToLower , stringToUpper , normalizeNumber , normalizeWhitespace@@ -37,20 +51,25 @@ import Data.Char -- ------------------------------------------------------------+ -- | -- remove leading and trailing whitespace with standard Haskell predicate isSpace stringTrim :: String -> String-stringTrim- = reverse . dropWhile isSpace . reverse . dropWhile isSpace+stringTrim = reverse . dropWhile isSpace . reverse . dropWhile isSpace -- |--- convert string to upercase with standard Haskell toUpper function+-- convert string to uppercase with standard Haskell toUpper function stringToUpper :: String -> String-stringToUpper- = map toUpper+stringToUpper = map toUpper +-- |+-- convert string to lowercase with standard Haskell toLower function++stringToLower :: String -> String+stringToLower = map toLower+ -- | Removes leading \/ trailing whitespaces and leading zeros normalizeNumber :: String -> String@@ -58,18 +77,15 @@ = reverse . dropWhile (== ' ') . reverse . dropWhile (\x -> x == '0' || x == ' ') - -- | Reduce whitespace sequences to a single whitespace normalizeWhitespace :: String -> String-normalizeWhitespace- = unwords . words+normalizeWhitespace = unwords . words -- | replace all whitespace chars by blanks normalizeBlanks :: String -> String-normalizeBlanks- = map (\ x -> if isSpace x then ' ' else x)+normalizeBlanks = map (\ x -> if isSpace x then ' ' else x) -- ------------------------------------------------------------ @@ -95,7 +111,7 @@ -- ------------------------------------------------------------ -escapeXml :: String -> String -> String+escapeXml :: String -> String -> String escapeXml escSet = concatMap esc where@@ -118,8 +134,8 @@ -- -- see also : 'attrEscapeXml' -textEscapeXml :: String -> String-textEscapeXml = escapeXml "<&"+textEscapeXml :: String -> String+textEscapeXml = escapeXml "<&" -- | -- escape XML chars in attribute values, same as stringEscapeXml, but none blank whitespace@@ -127,10 +143,10 @@ -- -- see also : 'stringEscapeXml' -attrEscapeXml :: String -> String-attrEscapeXml = escapeXml "<>\"\'&\n\r\t"+attrEscapeXml :: String -> String+attrEscapeXml = escapeXml "<>\"\'&\n\r\t" -stringToInt :: Int -> String -> Int+stringToInt :: Int -> String -> Int stringToInt base digits = sign * (foldl acc 0 $ concatMap digToInt digits1) where
src/Text/XML/HXT/DOM/XmlKeywords.hs view
@@ -57,6 +57,7 @@ a_modifier, a_name, a_no_empty_elements,+ a_no_redirect, a_no_xml_pi, a_options_curl, a_output_encoding,@@ -71,6 +72,7 @@ a_propagate_errors, a_proxy, a_remove_whitespace,+ a_redirect, a_show_haskell, a_show_tree, a_source,@@ -165,6 +167,7 @@ a_modifier = "modifier" a_name = "name" a_no_empty_elements = "no-empty-elements"+a_no_redirect = "no-redirect" a_no_xml_pi = "no-xml-pi" a_options_curl = "options-curl" a_output_file = "output-file"@@ -178,6 +181,7 @@ a_preserve_comment = "preserve-comment" a_propagate_errors = "propagate-errors" a_proxy = "proxy"+a_redirect = "redirect" a_remove_whitespace = "remove-whitespace" a_show_haskell = "show-haskell" a_show_tree = "show-tree"
src/Text/XML/HXT/DOM/XmlOptions.hs view
@@ -45,6 +45,8 @@ 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_redirect] (NoArg (att a_redirect v_1)) "automatically follow redirected URIs"+ , Option "" [a_no_redirect] (NoArg (att a_redirect v_0)) "switch off following redirected URIs" , Option "" [a_use_curl] (NoArg (att a_use_curl v_1)) "obsolete, since hxt-8.1 HTTP access is always done with curl bindings" , Option "" [a_do_not_use_curl] (NoArg (att a_use_curl v_0)) "obsolete, since hxt-8.1 HTTP access is always done with curl bindings" , Option "" [a_options_curl] (ReqArg (att a_options_curl) "STR") "additional curl options, e.g. for timeout, ..."
src/Text/XML/HXT/IO/GetFILE.hs view
@@ -39,10 +39,12 @@ , getPermissions , readable )+import Text.XML.HXT.DOM.XmlKeywords -- ------------------------------------------------------------ -getStdinCont :: Bool -> IO (Either String String)+getStdinCont :: Bool -> IO (Either ([(String, String)], String)+ String) getStdinCont strictInput = do c <- try ( if strictInput@@ -54,20 +56,26 @@ return (either readErr Right c) where readErr e- = Left ( "system error when reading from stdin: "- ++ ioeGetErrorString e+ = Left ( [ (transferStatus, "999")+ , (transferMessage, msg)+ ]+ , msg )+ where+ msg = "stdin read error: " ++ es+ es = ioeGetErrorString e -getCont :: Bool -> String -> IO (Either String String)+getCont :: Bool -> String -> IO (Either ([(String, String)], String)+ String) getCont strictInput source = do -- preliminary exists <- doesFileExist source' if not exists- then return (Left ("file " ++ show source' ++ " not found"))+ then return $ fileErr "file not found" else do perm <- getPermissions source' if not (readable perm)- then return (Left ("file " ++ show source' ++ " not readable"))+ then return $ fileErr "file not readable" else do c <- try ( if strictInput then do@@ -83,11 +91,15 @@ -- please NO call of unEscapeString for file names, NOT: source' = drivePath . unEscapeString $ source source' = drivePath $ source readErr e- = Left ( "system error when reading file "- ++ show source- ++ ": "- ++ ioeGetErrorString e+ = fileErr (ioeGetErrorString e)+ fileErr msg0+ = Left ( [ (transferStatus, "999")+ , (transferMessage, msg)+ ]+ , msg )+ where+ msg = "file read error: " ++ show msg0 ++ " when accessing " ++ show source' -- remove leading / if file starts with windows drive letter, e.g. /c:/windows -> c:/windows drivePath ('/' : file@(d : ':' : _more))
src/Text/XML/HXT/IO/GetHTTPLibCurl.hs view
@@ -1,46 +1,50 @@ -- ------------------------------------------------------------------ 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.GetHTTPLibCurl+ Copyright : Copyright (C) 2008 Uwe Schmidt+ License : MIT++ Maintainer : Uwe Schmidt (uwe@fh-wedel.de)+ Stability : stable+ Portability: portable++ GET for http access with libcurl++-}++-- ------------------------------------------------------------+ module Text.XML.HXT.IO.GetHTTPLibCurl ( getCont ) where -import Control.Arrow- ( first )+import Control.Arrow ( first+ , (>>>)+ ) import Control.Concurrent.MVar-import Control.Monad- ( when )+import Control.Monad ( when ) -import Data.Char- ( isDigit- , toLower- )-import Data.List- ( isPrefixOf- )+import Data.Char ( isDigit+ , isSpace+ )+import Data.List ( isPrefixOf ) import Network.Curl import System.IO-import System.IO.Unsafe- ( unsafePerformIO- )+import System.IO.Unsafe ( unsafePerformIO ) -import Text.ParserCombinators.Parsec- ( parse- )+import Text.ParserCombinators.Parsec ( parse )++import Text.XML.HXT.DOM.Util ( stringToLower ) import Text.XML.HXT.DOM.XmlKeywords-import Text.XML.HXT.DOM.XmlOptions- ( isTrueValue- )+import Text.XML.HXT.DOM.XmlOptions ( isTrueValue )+ import Text.XML.HXT.Parser.ProtocolHandlerUtil- ( parseContentType- )+ ( parseContentType ) import Text.XML.HXT.Version -- ------------------------------------------------------------@@ -61,6 +65,7 @@ putMVar isInitCurl True -- ------------------------------------------------------------+ -- -- the http protocol handler implemented by calling libcurl -- (<http://curl.haxx.se/>)@@ -70,65 +75,91 @@ -- The naming convetion is as follows: A curl option must be prefixed by the string -- \"curl\" and then written exactly as described in the curl man page -- (<http://curl.haxx.se/docs/manpage.html>).+-- -- Example: -- -- > getCont [("curl--user-agent","My first HXT app"),("curl-e","http://the.referer.url/")] "http://..." -- -- will set the user agent and the referer URL for this request. -getCont :: [(String, String)] -> String -> IO (Either String ([(String, String)], String))+getCont :: [(String, String)] -> String -> IO (Either ([(String, String)], String)+ ([(String, String)], String)) getCont options uri = do initCurl resp <- curlGetResponse uri curlOptions+ -- dumpResponse return $ evalResponse resp where+ _dumpResponse r+ = do+ hPutStrLn stderr $ show $ respCurlCode r+ hPutStrLn stderr $ show $ respStatus r+ hPutStrLn stderr $ respStatusLine r+ hPutStrLn stderr $ show $ respHeaders r+ hPutStrLn stderr $ respBody r+ curlOptions = defaultOptions ++ concatMap (uncurry copt) options ++ standardOptions- defaultOptions++ defaultOptions -- these options may be overwritten = [ CurlUserAgent ("hxt/" ++ hxt_version ++ " via libcurl")- ]- standardOptions- = [ CurlFailOnError False- , CurlHeader True- , CurlNoProgress True , CurlFollowLocation True ]++ standardOptions -- these options can't be overwritten+ = [ CurlFailOnError False+ , CurlHeader False+ , CurlNoProgress True+ ] evalResponse r | rc /= CurlOK- = Left ( "http error when requesting URI "+ = Left ( [ mkH transferStatus "999"+ , mkH transferMessage $ "curl library rc: " ++ show rc+ ]+ , "curl library error when requesting URI " ++ show uri ++ ": (curl return code=" ++ show rc ++ ") " ) | rs < 200 && rs >= 300- = Left ( "http error when accessing URI "+ = Left ( contentT rsh ++ headers+ , "http error when accessing URI " ++ show uri ++ ": " ++ show rsl ) | otherwise- = Right ( contentT ++ headers, respBody r+ = Right ( contentT rsh ++ headers, respBody r ) where+ mkH x y = (x, dropWhile isSpace y)+ headers- = map (\ (k, v) -> (httpPrefix ++ k, v)) rsh- ++ statusLine (words rsl)+ = map (\ (k, v) -> mkH (httpPrefix ++ k) v) rsh+ +++ statusLine (words rsl) contentT- = concat- . map ( either (const []) id- . parse parseContentType ""- )- . map snd- . take 1- . filter ((== "content-type") . fst)- . map (first (map toLower))- $ rsh+ = map (first stringToLower) -- all header names to lowercase+ >>>+ filter ((== "content-type") . fst) -- select content-type header+ >>>+ reverse -- when libcurl is called with automatic redirects, there are more than one content-type headers+ >>>+ take 1 -- take the last one, (if at leat one is found)+ >>>+ map snd -- select content-type value+ >>>+ map ( either (const []) id+ . parse parseContentType "" -- parse the content-type for mimetype and charset+ )+ >>>+ concat - statusLine (vers : code : msg)- = [ (transferVersion, vers)- , (transferMessage, unwords msg)- , (transferStatus, code)+ statusLine (vers : _code : msg) -- the status line of the curl response can be an old one, e.g. in the case of a redirect,+ = [ mkH transferVersion vers -- so the return code is taken from the status field, which is contains the last status+ , mkH transferMessage $ unwords msg+ , mkH transferStatus $ show rs ] statusLine _ = []@@ -145,7 +176,7 @@ | "curl" `isPrefixOf` k = opt2copt (drop 4 k) v - | k == a_proxy+ | k `elem` [a_proxy, a_redirect] = opt2copt k v | k == a_options_curl@@ -167,7 +198,8 @@ | k `elem` ["-H", "--header"] = [CurlHttpHeaders $ lines v] | k == "--ignore-content-length" = [CurlIgnoreContentLength $ isTrue v] | k `elem` ["-I", "--head"] = [CurlNoBody $ isTrue v]- | k `elem` ["-L", "--location"] = [CurlFollowLocation $ isTrue v]+ | k `elem` ["-L", "--location", a_redirect]+ = [CurlFollowLocation $ isTrue v] | k == "--max-filesize" && isIntArg v = [CurlMaxFileSizeLarge $ read v]
src/Text/XML/HXT/Parser/ProtocolHandlerUtil.hs view
@@ -1,9 +1,20 @@ -- ------------------------------------------------------------------ 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+ Copyright : Copyright (C) 2008 Uwe Schmidt+ License : MIT++ Maintainer : Uwe Schmidt (uwe@fh-wedel.de)+ Stability : stable+ Portability: portable++ Protocol handler utility functions++-}++-- ------------------------------------------------------------+ module Text.XML.HXT.Parser.ProtocolHandlerUtil ( parseContentType )@@ -12,18 +23,19 @@ import Text.XML.HXT.DOM.XmlKeywords -import Text.XML.HXT.DOM.Util- ( stringToUpper- )+import Text.XML.HXT.DOM.Util ( stringToUpper+ , stringTrim+ ) import qualified Text.ParserCombinators.Parsec as P -- ------------------------------------------------------------------ try to extract charset spec from Content-Type header--- e.g. "text/html; charset=ISO-8859-1" --- sometimes the server deliver the charset spec in quotes+-- |+-- Try to extract charset spec from Content-Type header+-- e.g. \"text\/html; charset=ISO-8859-1\"+--+-- Sometimes the server deliver the charset spec in quotes -- these are removed parseContentType :: P.Parser [(String, String)]@@ -31,7 +43,7 @@ = P.try ( do mimeType <- ( do mt <- P.many (P.noneOf ";")- return [ (transferMimeType, mt) ]+ rtMT mt ) charset <- ( do P.char ';'@@ -45,9 +57,11 @@ ) P.<|> ( do- mimeType <- P.many (P.noneOf ";")- return [ (transferMimeType, mimeType) ]+ mt <- P.many (P.noneOf ";")+ rtMT mt )+ where+ rtMT mt = return [ (transferMimeType, stringTrim mt) ] -- ------------------------------------------------------------
src/Text/XML/HXT/Parser/XmlParsec.hs view
@@ -663,7 +663,7 @@ -- - 2.parameter root : a document root -- -- - returns : the same tree, but with an additional--- attribute "encoding" in the root node+-- attribute \"encoding\" in the root node -- in case of a valid encoding spec -- else the unchanged tree
src/hxt-package.hs view
@@ -76,18 +76,18 @@ , " ghc-options: -Wall" , " extensions: MultiParamTypeClasses DeriveDataTypeable FunctionalDependencies FlexibleInstances" , ""- , " build-depends: base >= 4,"- , " haskell98 >= 1,"- , " containers >= 0.1,"- , " directory >= 1,"- , " filepath >= 1,"+ , " build-depends: base >= 4 && < 5,"+ , " haskell98 >= 1 && < 2,"+ , " containers >= 0.1 && < 1,"+ , " directory >= 1 && < 2,"+ , " filepath >= 1 && < 2," , " parsec >= 2.1 && < 3,"- , " HUnit >= 1.2,"- , " network >= 2.1,"- , " parallel >= 1.0,"- , " bytestring >= 0.9,"- , " tagsoup >= 0.6,"- , " curl >= 1.3"+ , " HUnit >= 1.2 && < 2,"+ , " network >= 2.1 && < 3,"+ , " parallel >= 1.0 && < 2,"+ , " bytestring >= 0.9 && < 1,"+ , " tagsoup >= 0.6 && < 1,"+ , " curl >= 1.3 && < 2" ] main :: IO()